威三电子  

               威三电子

LVDS系列17:Xilinx Ultrascale系输出延迟ODELAYE3

2026-07-28 09:11:59

浏览:

Ultrascale 系的输出原语ODELAYE3可以对任何输出信号进行延迟,这些输出信号可以直接从器件逻辑进行转发,或是使用单沿SDR或双沿DDR时钟寄存在触


         Ultrascale 系的输出原语ODELAYE3可以对任何输出信号进行延迟,这些输出信号可以直接从器件逻辑进行转发,或是使用单沿SDR或双沿DDR时钟寄存在触发器或是OSERDES中,可以延迟的范围较广;

         ODELAYE3原语与IDELAYE3原语一样包含512个抽头延迟线,抽头分辨率的范围也与IDELAYE3一致,Ultrascale系列,抽头分辨率为2.5ps~15psUltrascale+系列,抽头分辨率为2.1ps~12ps

 

ODELAYE3同样有两种模式:

COUNT模式:不使用IDELAYCTRL组件,延时线不校准,没有电压温度补偿,延迟线只用抽头进行计数,不使用ps进行计数,参数DELAY_VALUE用抽头数量表示,0-511

TIME模式:使用IDELAYCTRL组件,延时线按请求的时间进行校准,电压温度补偿确保延时线的延迟值不随时间变化,参数DELAY_VALUEps表示;

 

l  ODELAYE3原语:

框图:

 

例化模板:

ODELAYE3 #(

  .CASCADE('NONE'),          // Cascade setting (MASTER, NONE, SLAVE_END, SLAVE_MIDDLE)

  .DELAY_FORMAT('TIME'),     // (COUNT, TIME)

  .DELAY_TYPE('FIXED'),      // Set the type of tap delay line (FIXED, VARIABLE, VAR_LOAD)

  .DELAY_VALUE(0),           // Output delay tap setting

  .IS_CLK_INVERTED(1'b0),    // Optional inversion for CLK

  .IS_RST_INVERTED(1'b0),    // Optional inversion for RST

  .REFCLK_FREQUENCY(300.0),  // IDELAYCTRL clock input frequency in MHz (200.0-2667.0).

  .SIM_DEVICE('ULTRASCALE'), // Set the device version (ULTRASCALE)

  .UPDATE_MODE('ASYNC')      // Determines when updates to the delay will take effect (ASYNC, MANUAL, SYNC)

)

ODELAYE3_inst (

  .CASC_OUT(CASC_OUT),       // 1-bit output: Cascade delay output to IDELAY input cascade

  .CNTVALUEOUT(CNTVALUEOUT), // 9-bit output: Counter value output

  .DATAOUT(DATAOUT),         // 1-bit output: Delayed data from ODATAIN input port

  .CASC_IN(CASC_IN),         // 1-bit input: Cascade delay input from slave IDELAY CASCADE_OUT

  .CASC_RETURN(CASC_RETURN), // 1-bit input: Cascade delay returning from slave IDELAY DATAOUT

  .CE(CE),                   // 1-bit input: Active high enable increment/decrement input

  .CLK(CLK),                 // 1-bit input: Clock input

  .CNTVALUEIN(CNTVALUEIN),   // 9-bit input: Counter value input

  .EN_VTC(EN_VTC),           // 1-bit input: Keep delay constant over VT

  .INC(INC),                 // 1-bit input: Increment/Decrement tap delay input

  .LOAD(LOAD),               // 1-bit input: Load DELAY_VALUE input

  .ODATAIN(ODATAIN),         // 1-bit input: Data input

  .RST(RST)                  // 1-bit input: Asynchronous Reset to the DELAY_VALUE

);

 

端口:

CASC_OUTCASC_INCASC_RETURN三个端口用于级联操作,如果不级联,将这几个端口悬空即可;

CLK为控制接口的同步时钟;

CEINC端口的功能与IDELAYE3相同,用于抽头递增递减操作;

LOADCNTVALUEINCNTVALUEOUT三个端口用于动态加载抽头值;

DATAOUT端口连接到IOB将信号输出到FPGA外部;

 

参数:

 

CASCADE:不级联设置为NONE,使用级联时需从这三种MASTER, SLAVE_END, SLAVE_MIDDLE

    选择中选择对应的位置,下一节将对级联进行仿真验证;

 

DELAY_TYPE:延时类型,共有FIXED, VARIABLE, VAR_LOAD三种类型,与IDELAYE3的三种类型的操作逻辑基本一致;

 

DELAY_VALUE:初始延迟值,在COUNT模式下表示抽头数量,范围0-511,在TIME模式下表示延时ps值,Ultrascale器件范围0-1250Ultrascale+器件范围0-1100

 

 

REFCLK_FREQUENCY:参考时钟,COUNT模式下设置为300即可,TIME模式下需要与IDELAYCTRL的时钟频率相对应;

 

 

DELAY_FORMAT:延时模式,TIME或是COUNT,与IDELAYE3中的延时模式逻辑一致;

使用COUNT模式时,不使用IDELAYCTRL,不校准延迟线,REFCLK_FREQUENCY设置未默认的300MHz,保持EN_VTC端口为低以防止校正逻辑工作;使用抽头数量表示延迟线的延迟,共512个抽头,CNTVALUEINCNTVALUEOUT总线表示抽头数量;

使用TIME模式时,使用IDELAYCTRLREFCLK_FREQUENCY时钟频率必须与IDELAYCTRL的时钟频率相同,在修改延迟线时必须先拉低EN_VTC管脚,在校准逻辑未工作的情况下进行延迟线的修改,修改完毕后EN_VTC置高;

 

UPDATE_MODE:更新模式,与IDELAYE3的更新模式相同,保持默认的的ASYNC即可;

 

l  ODELAYE3使用:

---DELAY_FORMATCOUNT

FIXED模式:

         固定延迟模式,原语加载DELAY_VALUE种的值作为抽头值,范围0-511,工作时EN_VTC保持为低电平,不补偿校准;

 

VARIABLE模式:

可变延迟线模式,可以使用INC=1&CE=1递增抽头,INC=0&CE=1递减抽头;

操作步骤如下,首先保持EN_VTC为低电平:

1 等待至少10个周期;

2 使用CEINC递增递减延迟线;

3 等待至少5个时钟周期;

 

VAR_LOAD模式:

可从CNTVALUEOUT总线读取抽头数量,可以通过INC&CELOAD&CNTVALUEIN更改延迟;

具体通过LOAD&CNTVALUEIN更改延迟执行步骤可以参照前述IDELAYE3COUNT模式下VAR_LOAD模式的更改延迟线的操作步骤,两者可通用;

 

---DELAY_FORMATTIME

FIXED模式:

固定延迟模式,原语加载DELAY_VALUE种的值作为总延时,单位为ps,工作时EN_VTC保持为高电平,一直开启补偿校准;

 

VARIABLE模式:

可变延迟线模式,可以使用INC=1&CE=1递增抽头,INC=0&CE=1递减抽头;

操作步骤如下:

1 拉低EN_VTC管脚,关闭补偿校准;

2 等待至少10个周期;

3 使用CEINC递增递减延迟线;

4 等待至少15个时钟周期;

5 拉高EN_VTC管脚,开启补偿校准;

 

VAR_LOAD模式:

可从CNTVALUEOUT总线读取抽头数量,可以通过INC&CELOAD&CNTVALUEIN更改延迟;

具体通过LOAD&CNTVALUEIN更改延迟执行步骤可以参照前述IDELAYE3TIME模式下VAR_LOAD模式的更改延迟线的操作步骤,两者可通用;

 

 

l  仿真查看:

ODELAYE3的延时逻辑基本可以使用之前IDELAYE3的延时逻辑,

COUNT模式下:

递增:

递减:

动态加载:

抽头0延时0.144ns

抽头500延时2.144ns,仿真单tap延时4ps

同样,COUNT模式实际使用时,只看抽头数量,由于没有补偿校准,所以延时时间没有办法确定;

 

TIME模式下:

仿真结果与COUNT模式基本一致;

这里上板看下抽头数量:

使用VU+的芯片,设置TIME模式,FIXED模式,

从上述图中可以看出,

延时0ps,抽头值为0

延时500ps,抽头值为145

延时1100ps,抽头值为323

Tap延时 = 1100/323 = 3.4056ps

Tap延时 * 145 = 493ps ,接近500ps

当延时0ps时可以看到,抽头值为0,而之前IDELAYE3设置0ps延时的时候,抽头值会有一个45-65的抽头值Align_Delay,可以看到ODELAYE3没有这个Align_Delay了,

由于输入延迟执行BISC时,需要消除内部偏差并补偿***个捕获触发器的输入路径的时钟和数据插入延迟之间的内部偏差,也就是IDELAYE3的输入数据和内部捕获时钟是异步的,两者的路径有偏差,需要align_delay去补偿,这样采样时才能更稳定,

ODELAYE3的输入数据是在fpga内部产生的,是同步的,不需要添加额外的补偿align_delay即可直接被驱动输出;

 

本文章由威三学院出品

对课程感兴趣可以私信联系 

 

 


0
LVDS系列17:Xilinx Ultrascale系输出延迟ODELAYE3
Ultrascale 系的输出原语ODELAYE3可以对任何输出信号进行延迟,这些输出信号可以直接从器件逻辑进行转发,或是使用单沿SDR或双沿DDR时钟寄存在触
长按图片保存/分享

北京威三电子科技有限公司

突破技术壁垒,芯创智联领航未来

 


北京威三电子科技有限公司 版权所有
京ICP备2026012969号
 

热线:

159-2199-9232

 

图片展示

淘宝店铺:

威三科教

地址:

北京市延庆区辰龙国际6号楼406室

微信公众号:

北京威三电子科技有限公司 

热线:159-2199-9232

淘宝店铺:威三科教

地址:北京市延庆区辰龙国际6号楼406


微信公众号

图片展示
北京威三电子科技有限公司 版权所有| 京ICP备2026012969号
微信公众号
客服中心
热线电话
15921999232
上班时间
周一到周五
二维码
扫码关注
客服中心
热线电话
15921999232
上班时间
周一到周五
二维码
扫码关注
添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功!
添加微信好友,详细了解产品
我知道了