![Vivado从此开始(进阶篇)](https://wfqqreader-1252317822.image.myqcloud.com/cover/973/47378973/b_47378973.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.6 −gated_clock_conversion
−gated_clock_conversion在综合设置中的位置如图1.16所示。
![img](https://epubservercos.yuewen.com/AEF021/26763875301469706/epubprivate/OEBPS/Images/txt001_17.jpg?sign=1738810672-XAQXOmDW8yNvE242oDe6ZN9jTCGs0E71-0-83c21906da932f4b41118b8d953fc76f)
图1.16
−gated_clock_conversion用于管理门控时钟(Gated Clock)。所谓门控时钟是指由门电路而非专用时钟模块(如MMCM或PLL)生成的时钟。如图1.17所示即为门控时钟案例的代码。在该案例中,gate_clk由输入时钟clk和clkdiv2相与构成。其中clkdiv2是clk的二分频时钟。
![img](https://epubservercos.yuewen.com/AEF021/26763875301469706/epubprivate/OEBPS/Images/txt001_18.jpg?sign=1738810672-4ewvj7aTHugh5qvK1qLVz9jcstcGnaof-0-a6e9c77e346d926289fcef7ab4f23899)
图1.17
门控时钟会给设计带来一些负面影响。典型的危害包括:时钟信号可能会有毛刺;时钟歪斜(Clock Skew)的情况会继续恶化。同时,一个不可忽略的影响是Vivado并不会主动对门控时钟插入BUFG(全局时钟缓冲器),这就意味着该时钟会占用传统的布线资源,也就是Fabric中的布线资源,而不会使用时钟网络资源,从而可能会跟其他关键路径争夺布线资源,并影响时序。
−gated_clock_conversion可将门控时钟信号变为使能信号,对于如图1.17所示的代码,Vivado默认的综合设置结果如图1.18所示,此时−gated_clock_conversion关闭。可以看到对于gate_clk,工具并未插入BUFG。
![img](https://epubservercos.yuewen.com/AEF021/26763875301469706/epubprivate/OEBPS/Images/txt001_19.jpg?sign=1738810672-sUc8sRUEbD2ELEw55h7exeEn6ZTSxcZm-0-3496a59075e577c00d94c8b7873eb6d1)
图1.18
如果将−gated_clock_conversion设置为on,那么综合设置后的结果如图1.19所示。此时,clkdiv2变为使能信号,连接到触发器的CE端口,同时,该信号与rst相与,作为复位信号连接到触发器的复位端口,从而移除了门控时钟。
![img](https://epubservercos.yuewen.com/AEF021/26763875301469706/epubprivate/OEBPS/Images/txt001_20.jpg?sign=1738810672-KJmxa9bW1h8DCe1sLVpCpGOFHZdCHwOw-0-96b033dd8245d020b585d38988aed250)
图1.19
结论:
① 门控时钟会给设计带来一些负面影响,可通过−gated_clock_conversion消除。
② 当时钟负载少且时钟频率低(如小于5MHz)时,可以适当使用门控时钟。此时建议手工插入BUFG。