DC中clock_uncertainty与CTS之前clock_uncertainty的关系
时间:10-02
整理:3721RD
点击:
理论上:DC中clock_uncertainty=jitter+skew+margin,在CTS阶段的uncertainty=jitter+margin,所以CTS阶段的clock_uncertainty的值比DC阶段的要小。但在实践过程中我是这样做的:DC中的uncertainty为1ns,ICC后第1次导出netlist,抽取寄生参数进行STA分析时,hold violation数目多且总的hold violation达到1000多ns,最大的hold violation为-2.13ns但数量只有5个。因此,我在CTS之前将clock_uncertainty设置为2ns,CTS之后进行clock_opt -fix_hold_all_clocks -only_hold_time来修复hold,这样做虽然会增加gate area但不会增加我整体design的area,再次进行STA分析时,hold violation大大减小了。问:我这种方法是否可行?
顶顶顶
那就是證明你用一大堆 hold time buffer 解了 hold time violation, 時鐘頻率長沒差, 若短不一定行得通.
10M的时钟频率,setup余量很多很多
hold violation多半是skew没有调好吧,看你的速度虽然不快,但是uncertainty 2ns有点大
我的时钟频率为10M,CTS之后skew大概是0.98ns的样子,如果pre_CTS之前,set_clock_uncertainty -hold 2 [get_clocks clk_in]应该就不矛盾了吧?
pre-cts可以设置的大一点,在post-CTS改小点,看你的sign-off需求,这个uncertainty没有太硬性的要求,以PT报出来的timing结果为准吧