Xilinx IDELAYCTRL

xilinx 7 Series - Kintex7 325T
vivado 2019.2


IDELAYCTRL 模块用来配合IDELAYE2和ODELAYE2原语使用。其用于提供经过校准的延时单元,减少工艺、电压、温度变化造成的影响。

image.png

接口描述

RST - Reset

输入的异步复位信号,高有效。

REFCLK - Reference Clock

参考时钟。

  • 为IDELAYCTRL提供参考时钟,用于校准时间单位。
  • 这个时钟必须由BUFG或BUFH驱动。
  • 参考时钟的偏移PPM必须在规定的范围内(IDELAYCTRL_REF_PRECISION)。

RDY- Ready

RDY信号指示同区域内的IDELAY和ODELAY校准完成。

  • 如果REFCLK保持高电平或低电平超过一个时钟周期,RDY信号将被置低。
  • 如果RDY被去掉低电平,IDELAYCTRL模块必须被复位。如下图所示。
    image.png

相关参数

image.png

约束

Q1: 若IDELAYCTRL有一个实例,同时IODELAY有多个在同一个IODELAY_GROUP中。vivado会自动复制IDELAYCTRL。

Q2: 当存在两组或更多组IODELAY的时候,在不约束的情况下Vivado不知道该如何布局布线,因此会报错误。

约束1

将所有Idelay的"IODELAY_GROUP"全部设为一个,同时整个工程仅保留一个Idelayctrl。

set_property IODELAY_GROUP {YOUR_NAME} [get_cells {test_inst/rx_inst/IDELAYE2_inst}]

例如

1set_property IODELAY_GROUP IODELAY_MIG [get_cells IDELAYCTRL_UNIT]
2set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT0/adc_interface_dpa_i/IDELAY_CLOCK_RX]      
3set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT0/adc_interface_dpa_i/IDELAY_RX_DATA_*]  
4set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT1/adc_interface_dpa_i/IDELAY_CLOCK_RX]      
5set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT1/adc_interface_dpa_i/IDELAY_RX_DATA_*]

约束2

使用位置约束,将每组的IODELAY和IDELAYCTRL约束在同一个CLOCK区域,不同组在不同的CLOCK区域中。

例如

1set_property BEL IDELAYE2 [get_cells cap_lvds_0/lvds_input/inst/idelaye2_clk]
2set_property LOC IDELAY_X0Y75 [get_cells cap_lvds_0/lvds_input/inst/idelaye2_clk]
3set_property BEL IDELAYCTRL [get_cells cap_lvds_0/lvds_input/inst/delayctrl]
4set_property LOC IDELAYCTRL_X0Y1 [get_cells cap_lvds_0/lvds_input/inst/delayctrl]

参考