> 技术文档 > FPGA中IDELAY+ISERDES的作用_fpga idelay

FPGA中IDELAY+ISERDES的作用_fpga idelay

IDELAY模块(输入延迟模块)是FPGA(如Xilinx、Intel等主流厂商器件)中常用的基础I/O原语,用于对输入信号进行精细的相位(时钟)延迟调整,其主要作用是对外部输入(input)的信号采样相位进行精确对齐或平移。常与ISERDES(串并转换器,Input SERializer/Deserializer)组合,用于高速接口采集数据


1.IDELAY模块的主要作用

  • 时序校正 & 相位调整
    外部输入信号的到达时序,因走线长短、PCB信号质量、上升沿延迟、温度等影响,实际到达FPGA引脚的时序常常并不理想。IDELAY为输入信号路径插入可控的“延迟”单元,以皮秒(ps)级为粒度,动态调整输入信号的相位或到达时间,使其与采样时钟沿(或采样窗口)更好对齐。
  • 抗噪声/抗抖动
    通过调整采样位置到信号“眼图”的最佳采样点(数据稳定区),以提升数据采样的可靠性。

        常见应用场景:

  • DDR/DDR2/DDR3/DDR4 SDRAM接口的数据线DQ/DQS延迟对齐
  • Camera MIPI、LVDS高速数据采集接口
  • JESD204B,SPI接口中的高速采样
  • 通用IO时序优化

2.IDELAY+ISERDES的作用

  • “串并转换”+“输入延迟控制”=高速数据高可靠采集
  • 高速数据总线:如DDR、LVDS、SDR/DDR输入,数据线多且速率高(如400Mbps、800Mbps、1600Mbps或更高)
  • 采样窗口极窄,如果直接用普通IO采样,容易因为板级延迟/抖动导致采样失败。
  • ISERDES负责将高速“串行数据”分转换为FPGA可处理的“并行数据”(降低内部处理时钟速率)。
  • IDELAY则作用于ISERDES的前级,微调信号采样时刻,使采样点处于输入数据信号的最佳“稳定区”。
  • 通常FPGA厂商推荐配套使用,软硬件协同调整IDELAY的tap值到最佳点,获得最大的采样裕度

典型结构图(逻辑关系)

     输入信号
        │
     ┌───────┐
     │ IDELAY│──┬─►(调整后的信号)
     └───────┘  │
                │
             ┌──────┐
             │ISERDES│──► 并行数据输出
             └──────┘

3.采样时刻具体指什么?为什么要进行相位调整?如何得到最佳调整范围?
 

采样时刻指的是什么?

在数字系统中,“采样时刻”通常指**用时钟沿对输入信号进行采样(Latch、寄存)**的具体时刻。

  • 在FPGA中,IO口往往由采样时钟(如系统时钟或从属接收时钟)驱动采样触发器(例如D触发器)。
  • 对于高速串行信号(如LVDS、DDR、MIPI等),采样时刻=时钟沿到达采样单元的时刻
  • 这个时刻如果正好对应于串行数据中的“稳定区”(也就是眼图的开口处),则采样到高/低电平的概率更高、误码率更低;反之,若采样时刻落在信号跳变时,容易采样到错误的数据。

形象地说:

就像你要在高速运动物体上拍一个清晰照片,快门必须在物体静止的一瞬间。如果快门提前或延后,拍到的可能是模糊边缘,这相当于采样到错误数据。


串行数据为何还要做相位调整?

即使输入的是串行数据(例如每秒传输几百兆/几G比特),你依然必须在合适的时刻对数据做采样,因为:

  • 串行数据本质是高频的“1/0”电平序列(如101011…),但由于PCB走线、上升/下降时间、抖动等原因,实际每一位的稳定期间可能很短
  • FPGA内部的采样时钟可能与外部数据的边沿并不对齐,有“相位差”。
  • 只有把采样时钟的沿(采样时刻)对齐到数据的“稳定窗”区域,采到的数据才可靠
  • IDELAY的作用就是用来“推迟/提前”输入信号,在逻辑上将数据的有效区与采样时钟沿对准。

所以,无论并行还是串行,只要是高速数字采集,就一定要关心“采样相位是否对齐”!


如何判断并设置最佳采样相位?

这一点是实际调试的重点。

理论依据

  • 一个串行比特周期内,只有一小段数据是静稳不变的,称为“眼图开口”或者“裕度窗口”。
  • FPGA采样信号的时钟/采样点落在这个窗口内最理想。

实践流程

a) 扫IDELAY tap
  • IDELAY模块通常有多个“tap”值(如32、64、256级,每级约10~20ps延迟),你可以用控制信号逐步调节输入信号的延迟。
  • 每调一次tap,实际上就是让采样信号在一个比特周期内往后/前推一点
b) 边扫描边采样观测
  • 固定一串输入数据,边调整IDELAY tap,一边在FPGA里采样记录,比较是否采样数据错误。
  • 画出错误率 vs IDELAY tap曲线,会发现只有一段tap值下错误率最低(甚至为零)。
c) 选择“最佳采样点”
  • 在“没有错误”的tap区间正中间,就是“最佳采样位置”。这时候采样时钟沿最对齐输入数据稳定区,抗噪声抖动最强。

这种过程就叫做“窗口扫描”或“眼图扫描”

工具辅助

  • Xilinx/Intel等都有对应的硬件原厂“眼图扫描”实验工具,也可以用soft IP核实现自动化过程。
  • DDR控制器、LVDS采集IP通常内建这类自动训练功能。

举例

假设串行信号一比特周期为1200ps,IDELAY支持0-31共32级,每级约40ps延迟。

  • 当调节IDELAY tap = 0~31时,FPGA每采样点都落在数据周期不同的地方,我们希望采样点落在离信号跳变最远的中间
  • 扫完后在tap=10~18时,数据可靠无误,于是最终取tap=14为最佳值。