set_sense
使用set_sense可以人为的制造sink pin和ignore pin,set_sense两种常用开关: -stop_propagation(给指定clock设置endpoint)和**-clock_leaf**。
例1:set_sense -stop_propagation -type clock -clocks [get_clocks clk] [get_pins FF1/Q] (如果是一个output pin,那么input 端clk会被balance)
此时FF1/CK就会被当作sink pin,CTS阶段会balance,如果此时FF1后面有generate clock,那么generate clock仍然会长tree,只不过不会与clk其他的sink pin balance。
如果get_pins FF1/clk,那么clk会被作为ignore pin不会被balance,但是会给它前面插一个特殊的buffer,表示clk在这个buf之后的分支不长tree,ICC2中这个特殊的buf命名规则是btd, buf前使用clock tree约束修drc violation(max_tran/max_cap),buf后使用data path的约束修drc violation,同样的如果inst后面有generate clock,set_sense也会让它单独长tree,不跟clock clk其他sink pin banlance。
例2:set_sense -clock_leaf -clocks [get_clocks clk] [get_pins FF1/CK]
给clock clk设置leaf pin FF1/CK,FF1/CK是clock pin所以这里作为sink pin,设置在非clock pin上相当于ignore pin。此时CTS结果如图6,此时FF1在clock clk时钟树上需要balance,在FF1/Q之后的generate clock需要自己balance,效果和se

本文介绍如何使用set_sense和set_disable_timing优化时钟树平衡(CTS)及单元内部时序弧,确保分频时钟独立生长且不影响主时钟平衡,并通过屏蔽无效时序弧提高时序分析效率。
最低0.47元/天 解锁文章
2206

被折叠的 条评论
为什么被折叠?



