overlap clock如何做CTS
内部的generated clock的source也全都设在了MUX的Y端,在综合的时候是将clk1,clk2看成两种不同的模式,通过设置set_case_analysis 0/1 S
来进行综合(先用clk1综合,再clk2增量编译),到CTS的时候,已经将S端的case_analysis remove了,为什么所有的generated clock的source
全是clk2?clk1,clk2的sink个数相差非常大,请问该如何正确设置(综合时及CTS时)?
分成3段做CTS,
clk1到MUX
clk2到MUX
MUX输出到所有FF
谢谢小编,具体意思是:
1,set_case_analysis 1 S ,做clk1的CTS
2,set_case_analysis 0 S, 做clk2的CTS
3,再 create_clock clk_master [get_pins MUX/S] 做S端上clk的CTS?
是按这三步来做吗?
我的理解是:先对mux之后的tree做快速时钟的平衡,
再做mux之前的平衡
有必要吗,选最快的时钟周期为做时钟数的约束,慢的自然就满足了。
MUX之前的平衡是什么意思?
把MUX的I0,I1都定义为leaf pin。定义3个clock,root分别是clk1,clk2和MUX的输出,把clk1和clk2放在一个clock group中。跑一次CTS就搞定了
具体来说这样吗?
remove_case_analysis [get_pins mux/S]
create_clock clk1 [get_pins mux/In1]
create_clock clk2 [get_pins mux/In0]
create_clock clk3 [get_pins mux/Y]
create_generated_clock ONLY from source mux/Y?
options
CTS
?
mux之前的clk1 clk2做个group ,mux之后的generate clock当成第三个root就成了,,,看你选的 get pins有点问题,,,clk1 clk2也要从root开始,pll或者port,,i1,i2应该是clk1 clk2的终点了,也就是保护pin了,,,用做从port到这点的tree.也许我没理解你的意思,你自己看看,,,三个clock的设置应该一样就可以了,,,就是多了了group (clk1 clk2),,,,如果必要把generate clock的tree设成保护pin或者macro,clk1 和clk2就不会穿过了。
Got it, thanks.
I've done CTS using the method given:
clk1, and clk2 have no sinks, and the clock tree is built rignt from mux/Y(in our design, clk1 comes from PAD, clk2 comes from and OSC), I do think the result is as expected, is this right?
besides, a Warning(there are multiple arcs between the input and output of the MUX)is issued since case_analysis on mux/S is removed, is this warning to be ignored?
thanks in advance.
and one more question,
during synthesis, I think there's no need to do incremental mapping for clk1(or clk2).
Using clk1(or clk2) as the clock source with the proper set_case_analysis is fine since clk1&clk2 are the same to synthesis
yeah?
mark下,没明白
那么可以先长mux Y端后的,然后设置成dont touch 应该也是可以的。我不太理解你说的3个clock设置成一样 是什么意思,是creat clock的定义吗?dc阶段还是icc啊