FPGA中时钟的用法

描述

生成时钟包括自动生成时钟(又称为自动衍生时钟)和用户生成时钟。自动生成时钟通常由PLL或MMCM生成,也可以由具有分频功能的时钟缓冲器生成如7系列FPGA中的BUFR、UltraScale系列FPGA中的BUFGCE_DIV/BUFG_GT以及Versal中的MBUFG/BUFG_GT等。对于这类时钟,Vivado会自动创建时钟,并不需要用户手工通过create_generated_clock创建。

案例1:单端时钟

这是比较典型的场景,如下图所示:时钟由全局时钟管脚进入经IBUF驱动MMCM以及BUFG。此时只用在输入时钟管脚处(图中红色椭圆标记)创建时钟即可,MMCM生成时钟如图中端口CLKOUT0,Vivado会自动创建。注意主时钟的位置在sysClk对应的全局时钟管脚处,不是MMCM的输出端口,也不是BUFG的输出端口。

缓冲器

缓冲器

案例2:差分时钟

如下图所示,差分时钟转单端驱动MMCM,这里主时钟为clk_pin_p(图中红色方框所示),因此只用对该端口施加create_clock命令。

缓冲器

使用create_clock时,对于差分时钟,施加对象为差分的P端而不是N端,同时只用对P端使用该命令,如下图所示。

缓冲器

有了上述约束,工具就会自动推断出MMCM生成时钟,这可通过report_clocks命令查看并验证,如下图所示(需要打开综合后的网表)。

缓冲器

案例3:7系列FPGA中高速收发器的TXOUTCLK/RXOUTCLK

如下图所示,7系列FPGA中高速收发器的TXOUTCLK,输出端口接BUFG。这时要在TXOUTCLK处施加命令create_clock,因此,要用get_pins而不是get_ports。

缓冲器

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分