Xilinx IDELAYCTRL
xilinx 7 Series - Kintex7 325T
vivado 2019.2
IDELAYCTRL 模块用来配合IDELAYE2和ODELAYE2原语使用。其用于提供经过校准的延时单元,减少工艺、电压、温度变化造成的影响。
接口描述
RST - Reset
输入的异步复位信号,高有效。
REFCLK - Reference Clock
参考时钟。
- 为IDELAYCTRL提供参考时钟,用于校准时间单位。
- 这个时钟必须由BUFG或BUFH驱动。
- 参考时钟的偏移PPM必须在规定的范围内(IDELAYCTRL_REF_PRECISION)。
RDY- Ready
RDY信号指示同区域内的IDELAY和ODELAY校准完成。
- 如果REFCLK保持高电平或低电平超过一个时钟周期,RDY信号将被置低。
- 如果RDY被去掉低电平,IDELAYCTRL模块必须被复位。如下图所示。
相关参数
约束
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]
参考
- 7 Series FPGAs SelectIO Resources User Guide (UG471 (v1.10) May 8, 2018)
- 52502 - Vivado - A single unconstrained IDELAYCTRL is not automatically replicated as in ISE MAP (xilinx.com)
- 使用Idelay进行时序调节遇到的问题及解决方法记录 - 知乎 (zhihu.com)