dc综合时为什么需要将clock和复位信号的drive设为0呢?
dc综合时要将clock和复位信号的drive设置为0可以说是众所周知的,资料上说是因为设置为0后DC才不会加缓冲,这个容易理解。可是为什么不让DC加缓冲呢,加了缓冲之后是不是在后端加时钟树的时候会不方便呢,还是什么。如果我不将drive设置为0会出现什么结果呢。有人研究过吗?
本人没研究过后端,所以有些问题搞不明白,希望高手提点。谢谢了。
clock tree 是由后端专用工具cts做的。
dc的时候还没有布局布线信息,即使让dc做tree出来,也是不准确的,或者说是添乱的。
同意,前端千万不要想着插入buff会对后端有利,后端不需要这些,插入buff只会更麻烦,另外不要忘记set_done_touch clock和reset
谢谢楼上二位的回答,受教了。
再请问你一个问题,既然clk设置了set_dont_touch了,DC就不会优化clk了,所以设置set_drive 0是不是就没必要了呢,或者说set_drive 0之后是不是也没有必要设置dont_touch了呢,望指点,谢谢啊!
没做cts之前,DC的clk要设置成ideal。因为即使加了驱动,也和实际的有很大差别。这也是为什么不加CTS的后仿真没有意义的原因
再请问你一个问题,既然clk设置了set_dont_touch了,DC就不会优化clk了,所以设置set_drive 0是不是就没必要了呢,或者说set_drive 0之后是不是也没有必要设置dont_touch了呢,望指点,谢谢啊!
set_dont_touch只是不要插入buff,set_drive set_load是为了DC计算delay用的,为0表示drive无穷大,delay为0
谢谢你的回答, 也是不是就是说,如果只是设置了set_dont_touch的话,clk的延时会由于drive和load的存在而变的很大,或者说clk的上升时间或者下降时间会变的很大。
这样会不会造成违例呢,依据上面分析,这种情况对于综合的结果和set_drive 0与set_dont_touch同时作用的综合结果会有什么区别呢,是不是report_timing的时候会出问题呢?如果report_timing不出问题的话,两种情况综合结果就一样了是吧?
我综合的时候试了一下,只是设置了set_dont_touch,set_drive也设置了,设置所有输入的drive为10,可是综合后,report_timing没有问题,并且时钟也没有预想的有一个上升的时间,依然是ideal,直上直下的。这是怎么回事呢?
