
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.6 −gated_clock_conversion
−gated_clock_conversion在综合设置中的位置如图1.16所示。

图1.16
−gated_clock_conversion用于管理门控时钟(Gated Clock)。所谓门控时钟是指由门电路而非专用时钟模块(如MMCM或PLL)生成的时钟。如图1.17所示即为门控时钟案例的代码。在该案例中,gate_clk由输入时钟clk和clkdiv2相与构成。其中clkdiv2是clk的二分频时钟。

图1.17
门控时钟会给设计带来一些负面影响。典型的危害包括:时钟信号可能会有毛刺;时钟歪斜(Clock Skew)的情况会继续恶化。同时,一个不可忽略的影响是Vivado并不会主动对门控时钟插入BUFG(全局时钟缓冲器),这就意味着该时钟会占用传统的布线资源,也就是Fabric中的布线资源,而不会使用时钟网络资源,从而可能会跟其他关键路径争夺布线资源,并影响时序。
−gated_clock_conversion可将门控时钟信号变为使能信号,对于如图1.17所示的代码,Vivado默认的综合设置结果如图1.18所示,此时−gated_clock_conversion关闭。可以看到对于gate_clk,工具并未插入BUFG。

图1.18
如果将−gated_clock_conversion设置为on,那么综合设置后的结果如图1.19所示。此时,clkdiv2变为使能信号,连接到触发器的CE端口,同时,该信号与rst相与,作为复位信号连接到触发器的复位端口,从而移除了门控时钟。

图1.19
结论:
① 门控时钟会给设计带来一些负面影响,可通过−gated_clock_conversion消除。
② 当时钟负载少且时钟频率低(如小于5MHz)时,可以适当使用门控时钟。此时建议手工插入BUFG。