讨论一个DC的时钟约束问题
时间:10-02
整理:3721RD
点击:
如图,clk分出两个时钟clk0,clk1,如果clk0 和 clk1是clk的两个不同相位
create_clk clk
create_generated_clk clk0 -div2
create_generated_clk clk1 -div2
这样设置,下面的case哪个有问题或者说风险
1 clk,clk0有时序路径, clk,clk1有时序路径,clk0,clk1没有时序路径
2 clk0,clk1之间有时序路径
都是同源时钟, 因此相位差都是固定的。 如果之间都有时序的话, 都可以完整检查出来, 主要看你设计是怎么样的。
我觉得不能说有什么问题。
个人理解。求高手指出意见
对于case2, clk0 clk1 的clk period 是 1个root_clk cycle 还是 2个root_clk cycle?
timing check 的话当然是一个 root_clk cycle
用上面的constrain的话,是1个root_clk cycle吗 ? 暂时没有DC环境,没法做实验。
master clock 就是 最开始的clock, 但是clk0, 和clk1 之间有时序要check的话, 就会有类似 launch clock 是clk0, capture clk 是clk1. 这是其中一个。
说一下我的理解:
这两个 clock 如果有 timing path 的话,那应该是 multi cycle 吧
如果不是 multi cycle,那最小的相位差就是 1 个 source clock cycle,那一定有个机制认出是不是同一个edge,比如说要大于两个 clock 的uncertainty 与 capture clock 的 setup time 之和,这个希望有高手告知。反正一般情况下那 1 个 source clock cycle 是可以做 timing constrain 了。
但是i这样 hold 会很麻烦,为了满足 hold ,最终插的 delay 将导致两个 clock 同相。
当然,以上只针对 ff,latch的话就另当别论了。