如何约束逻辑综合中的generated clock 和异步时钟

科技   2024-12-08 15:26   美国  

generated clock


考虑上图所示的例子,时钟在驱动触发器(flip-2)之前经过二分频的触发器(或flip-1)。问题是时钟端口上的时钟定义以及与时钟相关的其他定义,如uncertainty不确定性,不会通过时序逻辑传播;在这种情况下,不会传播到二分频触发器(或flip-1)的输出。因此,要使flop-2受到时钟的约束,需要在flop-1的输出处施加新的时钟定义。

推荐的方法是在flop1 的输出处创建一个generated clock,在它与主时钟之间建立关系。

create_clock -period 2 [get_ports CLK]
set_clock_uncertainty -setup 0.25 [get_clocks CLK]

create_generated_clock -divide_by 2 -name -CLK_SLW -source [get_ports CLK] [get_pins div2flop/out]
set_clock_uncertainty -setup 0.4 [get_clocks CLK_SLW]

在本例中,我们实际上将2ns的周期增加一倍,使其成为4ns。然后,我们为generated clock命名CLK_SLW,并将源指定为名为CLK的端口。最后,我们将generated clock应用于一个名为div2flop/out的引脚上。由于我们指定源时钟为端口CLK,如果源时钟周期发生变化,generated clock周期也将自动更新。然后,我们也可以应用其他约束,如uncertainty。

 

异步时钟

数字芯片实验室
前瞻性的眼光,和持之以恒的学习。
 最新文章