xilinx原语

本文详细介绍了Xilinx FPGA中时钟管理的关键技术,包括全局时钟与区域时钟的区别、各种时钟缓冲器的作用与配置方法,以及差分时钟的处理方式。通过具体的Verilog代码示例,展示了如何实现时钟信号的正确驱动。

1:diff_term表示pn端之间的100欧姆电阻。

2:差分时钟如果不是经rcc管脚进入的建议用IBUFGDS原语,如果是由rcc管脚进入的用IBUFDS也无所谓(实测9361)

3:经过IBUFDS或者IBUFGDS出来的时钟可以不用加BUFG,因为编译器会默认加上(实际通过sch观察的)。

//1
IBUFDS #(
   .DIFF_TERM           ("TRUE"),       // Differential Termination
   .IBUF_LOW_PWR        ("FALSE"),     // Low power="TRUE", Highest performance="FALSE" 
   //.IOSTANDARD          ("LVDS_25")     // Specify the input I/O standard
   .IOSTANDARD          ("LVDS")     // Specify the input I/O standard
) 
u_clkds
(
    .I                  (i_ad_clk_p),
    .IB                 (i_ad_clk_n),
    .O                  (adclk_int)
);

//2
BUFR
    #(.SIM_DEVICE("7SERIES"),
    .BUFR_DIVIDE("BYPASS"))
    clkout_buf_inst
    (   .O (adclk_bufg),
        .CE(),
        .CLR(),
        .I (adclk_int)
        //.I (adclk_dly)
    );
//3    
BUFG   u_clkbufg
(
    .I                  (adclk_bufg),
    .O                  (adclk_gclk)
);

相关知识点:

BUFR是区域时钟缓冲器,要进入区域时钟网络,必须例化BUFR

ibuf是输入缓冲器,用于将外部输入的时钟信号进行缓冲和放大;---一般通过pin进入后编译器会默认加上。

bufg是全局缓冲器,用于将经过ibuf缓冲的时钟信号进行进一步的放大和分配

4.实测——输入pcie硬核的差分时钟经过IBUFDS_GTE2,出来后不能直接驱动ila(布线报错),需经过bufg在给ila(才不会报错)——这一点存疑(因为在bd里面同样不经过bufg也没报错)——推断应该和布线资源的消耗有关系,如果报错了就按报错的推荐加bufg。

IBUFDS_GTE2原语————进入GT的两个差分时钟必须要使用该原语,才能给ip核使用。

IBUFDS_GTE2 #(
      .CLKCM_CFG("TRUE"),   // Refer to Transceiver User Guide
      .CLKRCV_TRST("TRUE"), // Refer to Transceiver User Guide
      .CLKSWING_CFG(2'b11)  // Refer to Transceiver User Guide
   )
   IBUFDS_GTE2_inst (
      .O(O),         // 1-bit output: Refer to Transceiver User Guide
      .ODIV2(ODIV2), // 1-bit output: Refer to Transceiver User Guide
      .CEB(CEB),     // 1-bit input: Refer to Transceiver User Guide
      .I(I),         // 1-bit input: Refer to Transceiver User Guide
      .IB(IB)        // 1-bit input: Refer to Transceiver User Guide
   );

5:HR是没有odelay2的如下图

十:

十一:

idelay_ctrl里面的RDY信号不能进Ila,否则综合会报错——实测确实。

十二:

delay_resolution=1/(32 * 2 * f) =78.125ps

delay_time=600ps + tap * delay_resolution

十三:一般需要结合pcb布线延时来调整(一般保持在5mil之内的延时都还好),采样率越高越不容易调整(建立时间和保持时间越不能保证)

十四:如果要对 P N管脚进来的信号做延时,是分别对p n先用idelay 后,延时之后在用ibufdes。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值