码迷,mamicode.com
首页 > 其他好文 > 详细

xilinx FPGA全局时钟资源的使用

时间:2019-11-20 15:34:33      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:bsp   触发器   因此   lin   使用方法   pll   int   class   结构   

1.什么是xilinx fpga全局时钟资源

  时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动、延迟、偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了预期的逻辑功能。xilinx fpga内的全局时钟资源可以很好的优化时钟的性能,因此在设计时要尽可能多的使用fpga内部的时钟资源。xilinx fpga内部的全局时钟采用全铜工艺实现,配合专用时钟缓冲和驱动结构,可以使进入全局时钟网络的时钟到达fpga内部各个逻辑单元的抖动和延迟最小。全局时钟资源是专用布线资源,存在于全铜布线层上,使用全局时钟资源不会影响芯片的其他布线资源。最好的全局时钟解决方案是:让时钟从全铜工艺的全局时钟输入管脚进入fpga,然后经内部的全局时钟缓冲单元去控制各个触发器。xilinx常用的全局时钟资源原语有:全局时钟缓冲IBUFG、差分全局时钟缓冲IBUFGDS、全局缓冲BUFG、数字时钟管理单元DCM、锁相环PLL。

2.全局时钟资源的使用方法

  IBUFG是从全局时钟输入管脚输入的单端时钟的第一级缓冲,IBUFGDS是指的是差分时钟的缓冲。只要是从全局时钟管脚的输入的时钟必须要经过IBUFG,如果不经过,那么ise在布局布线时就会报错,反之如果使用了IBUFG,那么信号一定是从全局时钟输入管脚输入的,这是因为IBUFG和IBUFGDS的输入只和fpga的全局时钟输入引脚有物理上的连接,与普通的IO和内部逻辑块CLB没有物理上的连接。BUFG是全局缓冲,BUFG的输出到达fpga内部各个逻辑单元的时钟延迟与抖动都是最小的。BUFG不但可以驱动IBUFG和DCM的输出,还可以驱动其他普通的片内信号和普通io,当某个信号扇出很大时,而且要求的抖动延迟最小时,可以用BUFG驱动该信号,普通IO和普通的片内逻辑信号进入全局时钟布线层有一个固定的延迟,一般在10ns左右,即普通信号或普通IO从输入到BUFG的输出有一个约10ns左右的固有延迟,但BUFG的输出到片内所有的单元(IOB,CLB,选择性块RAM)的延时可以忽略不计。时钟资源原语的使用方法主要有以下四种:

  1.IBUFG/IBUFGDS + BUFG

IBUFG IBUFG_INST(
  .I(clk_in),
  .O(clk_bufg)
);

BUFG BUFG_INST(
  .I(clk_bufg),
  .O(clk_out)
);

 

  2.内部逻辑信号 + BUFG

BUFG BUFG_INST(
  .I(internal_sig),
  .O(clk_out)
);

 

  3.IBUFG/IBUFGDS + DCM + BUFG (常用方法,比较灵活)

IBUFG IBUFG_INST(
  .I(clk_in),
  .O(clk_bufg)
);

  dcm dcm_inst (
    .CLKIN_IN(clk_bufg), 
    .RST_IN(dcm_lvds_rst),              
    .CLKDV_OUT(dcm_lvds_clk0_div), 
    .CLKFX_OUT(), 
    .CLK0_OUT(dcm_lvds_clk0), 
    .LOCKED_OUT(dcm_lvds_locked)
    );

BUFG BUFG_sen_rx_div_clk(

       .I(dcm_lvds_clk0_div),
       .O(sen_rx_div_clk) 
);

 

  4.内部逻辑信号 + DCM + BUFG (DCM的信号源选择内部,不使用加了BUFG的外部信号源)

 dcm dcm_inst (
    .CLKIN_IN(internal_sig), 
    .RST_IN(dcm_lvds_rst),              
    .CLKDV_OUT(dcm_lvds_clk0_div), 
    .CLKFX_OUT(), 
    .CLK0_OUT(dcm_lvds_clk0), 
    .LOCKED_OUT(dcm_lvds_locked)
    );
BUFG BUFG_sen_rx_div_clk( .I(dcm_lvds_clk0_div), .O(sen_rx_div_clk) );

 

xilinx FPGA全局时钟资源的使用

标签:bsp   触发器   因此   lin   使用方法   pll   int   class   结构   

原文地址:https://www.cnblogs.com/muyuqingchen/p/11886364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!