LVDS系列12:Xilinx Ultrascale系可编程输入延迟(二)

本节讲解Ultrascale IDELAYE3的参数;

 IDELAYE3参数:
在这里插入图片描述
REFCLK_FREQUENCY:如果使用COUNT模式,保持300MHz的默认值即可;
如果使用TIME模式,则该值与IDELAYCTRL参考时钟要匹配;

在这里插入图片描述
在这里插入图片描述
DELAY_SRC:在这里插入图片描述
如果想延时来自IOB的输入信号,那么使用IDATAIN,如果想延时来自FPGA内部逻辑的信号时,使用DATAIN,DELAY_SRC参数设置为DATAIN时,未使用的IDATAIN端口需悬空;在这里插入图片描述
CASCADE:
如果不使用级联,那么CASCADE设置为NONE。
当所需要的延迟大于1.25ns(Ultrascale)或是1.1ns(Ultrascale+)时,可以使用级联,下图为组件之间的连接关系图;
在这里插入图片描述
上图中可以看到,IDELAYE3的级联操作需要ODELAYE3一起穿插使用,第一级CASCADE参数设置为MASTER,中间级设置为SLAVE_MIDDLE,最后一级设置为SLAVE_END,级联组件之间的布线是专用高速布线,IDELAYE3 或 ODELAYE3 级联的固定内部插入延迟总量是初始插入延迟与级联插入延迟的总和。此延迟按 IDELAYE3 和 ODELAYE3 级联次数而成倍增加。
在TIME模式下级联时,同一site下两者延迟要相同,如把IDELAYE3延时0.75ns,级联的ODELAYE3延时0.75ns,那么就延时了1.5ns,在FIXED模式下DELAY_VALUE设置两者相同,VAR_LOAD模式下两者CNTVALUEIN输入相同值;
由于级联使用到了ODELAYE3,级联的详细使用等后续ODELAYE3介绍后再考虑讲解;
在这里插入图片描述
DELAY_FORMAT:该参数选择使用TIME模式还是COUNT模式;
原语抽头分辨率为,Ultrascale系列抽头分辨率为2.5ps15ps,Ultrascale+系列抽头分辨率为2.1ps12ps;

COUNT模式:
不使用IDELAYCTRL;
不对眼延迟线进行校准,且电压温度发生变化时也不会保持不变;
REFCLK_FREQUENCY 属性保留为默认值 (300 MHz)即可;
将 EN_VTC 输入管脚连接到低电平,由于COUNT模式不需要校准,所以不使用VTC校准功能,拉低该管脚可确保禁用 IDELAYE3中的校准和VT维护逻辑;
COUNT模式下延时长短使用抽头数量表示,该模式下DELAY_VALUE参数表示预设延时抽头数量,CNTVALUEIN/OUT[8:0]值分别表示为延迟线设置值或是组件正在使用的抽头数量;
共有512个抽头,抽头数量值0~511;
由于COUNT模式没有校准操作,所以抽头到底延迟多少时间根本无法获知,仿真中看到的只是一个标准值,实际上板工作时随工艺电压温度影响,只能确定每个抽头的延迟范围为Ultrascale系列抽头分辨率为2.5ps15ps,Ultrascale+系列抽头分辨率为2.1ps12ps,至于使用时延迟时间具体为其中哪个值,这个没法获取,所以该模式下不要纠结延时多少,延时多长时间不重要,延迟线的抽头数量才重要,所以COUNT模式下延时的计量靠抽头数量而不是延时时间;

TIME模式:
必须使用IDELAYCTRL;
IDELAYCTRL参考时钟频率必须与REFCLK_FREQUENCY参数匹配;
使用FIXED模式时,EN_VTC管脚置高,一直开启校准;
使用VARIABLE或VAR_LOAD模式时,需主动操作EN_VTC管脚,也就是要修改抽头值时,将EN_VTC管脚置0,停止校准操作,等待写入修改抽头值完毕后,再将EN_VTC管脚置1,也就是组件正常工作时要将EN_VTC管脚置1,保证工作时EN_VTC管脚置1能校准延迟;
这里有一点要注意:
在内置自校准(BISC :built-in self-calibration)过程中,输入延迟线IDELAY用于消除串并转换过程中第一个触发器输入处的时钟到数据偏差。此过程会耗用一定数量的输入延迟线抽头,这称为 Align_Delay,该Align_Delay延迟仿真无法观察,只有实际上板才能看到。
当 DELAY_VALUE 设置为 0 ps 时,报告的 Align_Delay值介于 45 到 65 个抽头之间,通过 CNTVALUEOUT可以读出该值。
如果在输入延迟线中全部写入 0 值,或者如果写入的抽头数量小于报告的 Align_Delay 值,则会影响 BISC 插入的Align_Delay,并可能在捕获数据时引发问题。
Align_Delay这里相关后续细节讲解;
在这里插入图片描述
UPDATE_MODE:用于设置更改延迟生效时间的模式;
ASYNC:异步模式,延迟的递增或递减在CLK 时钟端口边沿触发,与数据变化无关。
SYNC:同步模式,延迟的递增或递减在CLK 时钟边沿和 DATAIN (或 IDATAIN)的边沿同步更新。此模式适用于始终定期切换的时钟或数据。
MANUAL:手动模式,则需要 2 次 LOAD 断言有效才能使新值生效。第一次 LOAD 将 CNTVALUEIN 定义的值加载到延迟线选择寄存器中,第二次LOAD必须与CE一起断言有效,以使新值生效。这对于需要使用延迟线更新一定数量的数据通道的设计是有益的,该手动模式与7系的VAR_LOAD_PIPE模式功能相同;
注释:在没有其他特殊要求时,简单使用,首选方法是 ASYNC 模式,因为延迟线仅在延迟线的CLK时钟上更新,而无需考虑其它信号或事件。
在这里插入图片描述
DELAY_VALUE:
当 DELAY_FORMAT属性设置为TIME模式时,DELAY_VALUE属性表示延时时间,以ps为单位。
且实际延时,除DELAY_VALUE参数设置的延时外,IDELAYE3还具有时钟/数据对齐延迟,如前述的Align_Delay,数据经过组件还有一个固定的延时(像是7系就是过组件,就算抽头数为0,也有一个600ps的固定延时,这里U系固定延时在仿真中应该能看到)。通过IDELAYE3的延迟总量为对齐延迟、固定延时、DELAY_VALUE三者之和。
在TIME 模式下DELAY_VALUE表示以ps为单位的时间值,但CNTVALUEIN[8:0]、 CNTVALUEOUT[8:0]在延迟线上读取或写入的值是抽头数的值,不是时间值。因此,更改延迟线的时间需要进行一些计算,后续结合实际详细讲解;
当DELAY_FORMAT参数设置为COUNT模式时, DELAY_VALUE属性表示抽头数量。由于在 COUNT 模式下没有校准或补偿,因此时钟/数据没有 Align_Delay。此时通过 IDELAYE3 的延迟应该就为过组件的固定延迟加上抽头的延迟,后续在仿真中应该能观察到。
在COUNT模式下使用延迟线时,EN_VTC管脚必须设置低电平。在TIME 模式下使用延迟线时,当IDELAYCTRL的RDY为低电平时,EN_VTC管脚必须设置高电平。
在这里插入图片描述
DELAY_TYPE:延时模式设置;
FIXED模式:设置为固定时间延时的延迟模式,配置后无法更改;
VARIABLE模式:可变抽头线,抽头线可递增递减的延迟模式;
VAR_LOAD模式:可变抽头线,可动态加载抽头值同时可以递增递减抽头值的延迟模式;

延时模式比较复杂,后续章节将结合实际一一讲解;
本文章由威三学社出品
对课程感兴趣可以私信联系

<think>好的,用户问到了“idelay3”,我需要先确定这是什么。首先,可能是一个技术术语,或者是某个领域中的工具、软件、硬件模块? 首先,我会回想自己已有的知识。在电子设计自动化(EDA)领域,尤其是FPGA(现场可编程门阵列)设计中,Xilinx(现在是AMD的一部分)的器件中有一些原语用于时序调整,比如IDELAY和ODELAY。IDELAY用于输入延迟,ODELAY用于输出延迟。这些原语帮助调整信号在输入/输出时的延迟,以满足时序要求,特别是在高速接口中,如DDR、LVDS等。 然后,“idelay3”可能指的是Xilinx的第三代IDELAY原语,比如IDELAYE3Xilinx在不同系列FPGA中会更新这些原语,比如从7系列UltraScaleUltraScale+,原语可能会有改进或版本升级。IDELAYE3可能是在较新器件中使用的,提供更精细的延迟控制,或者支持更多的功能,比如更宽的延迟范围、更精确的步进等。 接下来,需要确认IDELAYE3的具体特性和应用场景。比如,延迟的步长、最大延迟值、控制接口(是否通过AXI配置,还是直接使用控制信号)、是否支持动态调整延迟值等。此外,可能涉及到的时钟网络,参考时钟的选择,以及校准机制,比如是否自动校准以应对温度和电压变化的影响。 用户可能是在进行FPGA设计时遇到了时序问题,需要调整输入信号的延迟,因此想了解IDELAY3使用方法。或者他们可能在阅读文档时遇到了这个术语,需要进一步解释。需要确保回答覆盖这些方面,并提供足够的技术细节,同时保持结构清晰,便于理解。 还需要考虑用户可能的背景。如果是初学者,可能需要更基础的解释,包括IDELAY的作用、为什么需要调整延迟、如何配置IDELAYE3原语等。如果是经验丰富的工程师,可能更关注第三代相比前代的改进、具体参数、使用中的注意事项等。 另外,需要注意Xilinx/AMD的文档结构,指出用户可以参考的具体手册,如UltraScale Architecture Configurable Logic Block User Guide或其他相关资源,以便他们进一步查阅。 最后,检查是否有混淆的可能,比如是否存在其他领域中的“idelay3”,比如软件中的某个库或工具,但根据常见的用法,更可能是在FPGA设计中的原语。因此,回答应集中在Xilinx FPGAIDELAYE3原语上,确保信息准确,并指导用户如何应用和配置它。</think>关于“IDELAY3”(或称为IDELAYE3)的介绍: 1. **基本定义** IDELAYE3Xilinx(现AMD)UltraScale/UltraScale+系列FPGA中提供的一种输入延迟原语,属于高性能时序调整模块。它通过精确控制信号路径的延迟,帮助解决高速接口(如DDR、千兆以太网)中的时序收敛问题。 2. **核心功能** - **可编程延迟**:支持以精细步长(如UltraScale中为$5 \sim 10\ \text{ps}$)调整信号延迟,最大延迟范围可达$$ \text{MAX_DELAY} = 1250 \times \text{步长} $$ - **动态/静态模式**:支持实时动态调整或固定延迟配置 - **校准机制**:内置校准电路,可自动补偿电压和温度变化(PVT) 3. **关键参数** | 参数 | 典型值/选项 | |---------------|---------------------------| | 延迟分辨率 | 5ps (参考时钟为325MHz时) | | 最大延迟步数 | 1250步 | | 控制接口 | 通过RTL信号或AXI配置 | | 时钟输入 | 需独立参考时钟(REF_CLK) | 4. **应用场景** - **源同步接口**:对齐数据与随路时钟 - **高速ADC/DAC**:补偿PCB走线延迟差异 - **跨时钟域**:调整信号到达时间以满足建立/保持时间 5. **使用流程示例** ```verilog IDELAYE3 #( .CASCADE("NONE"), // 是否级联多个延迟单元 .DELAY_FORMAT("TIME"), // 延迟单位设为时间模式 .DELAY_SRC("IDATAIN"), // 输入信号源 .REFCLK_FREQUENCY(300.0) // 参考时钟频率(MHz) ) idelay_inst ( .CASC_IN(), // 级联输入 .CASC_OUT(), // 级联输出 .CASC_RETURN(), // 级联返回路径 .CE(1&#39;b0), // 动态模式下的使能信号 .CLK(ref_clk), // 参考时钟 .CNTVALUEIN(), // 动态延迟输入 .DATAIN(1&#39;b0), // 非级联模式数据输入 .IDATAIN(rx_data), // 待延迟信号输入 .INC(1&#39;b0), // 动态模式增量控制 .LOAD(1&#39;b0), // 加载静态延迟值 .CNTVALUEOUT(), // 当前延迟值输出 .DATAOUT(delayed_data) // 延迟后输出 ); ``` 6. **设计注意事项** - **参考时钟稳定性**:需使用专用时钟网络,抖动需小于$$ \frac{\text{步长}}{2} $$ - **信号完整性**:建议在PCB布局时保持延迟调整信号路径对称 - **时序约束**:需在XDC文件中添加`set_input_delay`约束 建议进一步参考以下文档: - 《UltraScale Architecture Configurable Logic Block User Guide》(UG574) - 《SelectIO Resources User Guide》(UG571) 是否需要针对具体应用场景展开说明?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值