输入延迟资源(IDELAY2)说明

本文详细介绍了Xilinx 7系列FPGA中的IDELAYE2模块,这是一个31阶可编程延迟单元,可用于组合逻辑和时序逻辑的延迟调整。IDELAYE2支持固定延迟、可变延迟和可加载可变延迟三种模式,并可通过IDELAYCTRL进行控制。博客还提供了官方参考代码示例,展示了如何配置IDELAYE2的不同工作模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        此篇是我在学习中做的归纳与总结,其中如果存在版权或知识错误或问题请直接联系我,欢迎留言。
        PS:本着知识共享的原则,此篇博客可以转载,但请标明出处!

        每个I/O模块都包含了一个可编程的延迟原句,称作IDELAYE2。IDELAY可以连接到ILOGICE2/ISERDESE2或者ILOGICE3/ISERDESE2模块。IDELAY2是一个可编程的31阶延迟原句,延迟参数可以参考7系列FPGA对应器件家族的器件手册。它既可以应用于组合逻辑也可以应用于时序逻辑或者同时用于两者。另外,它也可以直接被FPGA逻辑访问。IDELAY允许即将输入的信号在各自的输入管脚上做延迟处理,该延迟由IDELAYCTRL原句控制,延迟参考时钟频率在7系列器件手册有明确定义。

        IDELAYE2:
        IDELAYE2逻辑是一个31抽头的循环延时补偿模块,对输入的信号进行指定分辨率的延时,FPGA可以直接访问。Tap延时分辨率由IDELAYCTRL的参考时钟提供持续补偿。图(1)是IDELAYE2接口示意图,表(1)是对这些接口的描述。

引脚说明:

        在IDELAYCTRL中,对于IDELAY2使用的时钟做了说明,它的工作时钟区域有(190-210MHz)和(290-310MHz)两个。

        IDELAY模式:
        IDELAY主要有四种操作模式,下面我们分别来介绍主要使用的三种模式。


        1.固定延迟模式(IDELAY_TPYE=FIXED)
                在该模式下数据延迟由属性IDELAY_VALUE设置,且延迟固定,不可更改。在该模式下,IDELAYCTRL原句必须例化。


        2.可变延迟模式(IDELAY_TPYE=VARIABLE)
                在该模式下,延迟值可以在配置后通过CE和INC端口进行动态配置。同样,在该模式下,IDELAYCTRL原句也必须例化。该模式下的逻辑控制对应关系如表2-6所示。

        3.可加载可变延迟模式(IDELAY_TYPE=VAR_LOAD)
                该模式下功能与VARIABLE模式下类似,只不过可以通过CNTVALUEIN加载延迟节拍数。多了一种延迟加载方法。当LD端口有效时可以加载新的延迟CNTVALUE值到控制模块。该模式下逻辑功能关系如表2-7所示。

官方参考代码:

(* IODELAY_GROUP = "ADC_DCLK_DELAY" *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL
 
IDELAYE2 #(
    .CINVCTRL_SEL("FALSE"),          // Enable dynamic clock inversion (FALSE, TRUE)
    .DELAY_SRC("IDATAIN"),           // Delay input (IDATAIN, DATAIN)
    .HIGH_PERFORMANCE_MODE("TRUE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE")
    .IDELAY_TYPE("FIXED"),           // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
    .IDELAY_VALUE(5'h0E),                // Input delay tap setting (0-31)
    .PIPE_SEL("FALSE"),              // Select pipelined mode, FALSE, TRUE
    .REFCLK_FREQUENCY(200.0),        // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
    .SIGNAL_PATTERN("CLOCK")          // DATA, CLOCK input signal
)
IDELAYE2_inst (
    .CNTVALUEOUT( ), // 5-bit output: Counter value output
    .DATAOUT( ),         // 1-bit output: Delayed data output
    //.C( 1'b1 ),                     // 1-bit input: Clock input  a_adc_clk_bufio_div_4
    .C(  ),                     // 1-bit input: Clock input  
    .CE(1'b0),                   // 1-bit input: Active high enable increment/decrement input
    .CINVCTRL(1'b0),       // 1-bit input: Dynamic clock inversion input
    .CNTVALUEIN(cntvaluein),   // 5-bit -input: Counter value input
    .DATAIN(1'b0),           // 1-bit input: Internal delay data input
    .IDATAIN( ),         // 1-bit input: Data input from the I/O
    .INC(1'b0),                 // 1-bit input: Increment / Decrement tap delay input
    .LD( LD ),                   // 1-bit input: Load IDELAY_VALUE input
    .LDPIPEEN(1'b0),       // 1-bit input: Enable PIPELINE register to load data input
    .REGRST(~RDY)            // 1-bit input: Active-high reset tap-delay input
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚怀若水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值