vivado IDELAY原语使用

介绍:vivado iodelay可以调整输入FPGA IO信号的延时,集成在芯片IOB内部以ps为单位。适用于外部输入信号时钟和数据由于走线延时不等长导致的不同步,可以通过给时钟或者数据加idelay单元,使得时钟能稳定的采集到数据。

在7系列的FPGA里,该原语名字为idelay2,用法如下所示。

CINVCTRL_SEL: 是否动态翻转时钟信号C的极性
DELAY_SRC:输入信号来源

        IDATAIN:输入信号来自于端口(管脚输入的信号),输入数据信号要接在IDATAIN端口

        DATAIN:输入信号来自于数据(内部的信号),用于级连延时链。输入信号要接在DATAIN    端口

IDELAY_TYPE有三种模式:

        fixed:固定延时模式,通过调整输入IDELAY_VALUE数值可以实现不同挡位的延时效果。但是每次编译完延时就固定了。

        VAR_LOADABLE:动态加载抽头值模式,可以在线调整延时大小,通过调整输入CNTVALUEIN的数值,可以实时的修改端口的延时状态。

SIGNAL_PATTERN:用于配置输入信号属性,不同类型信号路径上的抖动不同

        CLOCK:时钟信号;

        DATA:数据信号;

HIGH_PERFORMANCE_MODE:是否使用高性能模式减小抖动,会增加功耗。

IDELAYCTRL原语

IDELAYCTRL:使用IDELAY或者ODELAY,IDELAYCTRL必须被使用。因为IDELAY或者ODELAY的延迟精度是由IDELAYCTRL的输入时钟决定的,一般为200MHz。REFCLK输入时钟最好经过BUFG上全局时钟树。

用法如下所示:

   wire   ref_clock_bufg;  
 (* IODELAY_GROUP = "selectio_wiz_1_group" *)
  IDELAYCTRL   delayctrl (
     .RDY    (delay_locked),
     .REFCLK (ref_clock_bufg),
     .RST    (!rst_n));

  BUFG   ref_clk_bufg (
     .I (clk_200m),
     .O (ref_clock_bufg));

/******************FIXED 模式*************************************/

  (* IODELAY_GROUP = "selectio_wiz_1_group" *)
     IDELAYE2
        # (
           .CINVCTRL_SEL           ("FALSE"),            // TRUE, FALSE
           .DELAY_SRC              ("IDATAIN"),        // IDATAIN, DATAIN
           .HIGH_PERFORMANCE_MODE  ("TRUE"),                            // TRUE, FALSE
           .IDELAY_TYPE            ("FIXED"),        // FIXED, VARIABLE, or VAR_LOADABLE
           .IDELAY_VALUE           (CLK0_TAPS),                // 0 to 31
           .REFCLK_FREQUENCY       (200.0),
           .PIPE_SEL               ("FALSE"),
           .SIGNAL_PATTERN         ("CLOCK"))           // CLOCK, DATA
        idelaye2_clk0
          (
           .DATAOUT                (dco_0_temp_delay),  // Delayed clock
           .DATAIN                 (1'b0),              // Data from FPGA lo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值