clock tree 做长做短在icc和innovus的对比
1.时钟树做长做短
icc : set_clock_tree_exceptions -float_pin 0.5 "[get_pins */CK]"
innovus: set_ccopt_property insertion_delay 0.5 -pin [get_pins */CK]
2.定义时钟应该穿过的sink点
icc : set_clock_tree_exceptions -non_stop_pins [get_pins */CK]
innovus : set_ccopt_property sink_type through -pin [get_pins */CK]
3.定义时钟应该去掉的sink点
icc : set_clock_tree_exceptions -exclude_pin [get_pins */CK]
innovus : set_ccopt_property sink_type ignore -pin [get_pins */CK]
4.定义时钟因该去平衡的点
icc : set_clock_tree_exceptions -stop_pin [get_pins */CK]
innovus : set_ccopt_property sink_type stop -pin [get_pins */CK]
5.innovus的较icc特色的时钟定义点
a. 自己定义从哪穿过从哪穿出的,应该穿过的sink点,类似2的
innovus : set_ccopt_property trace_through_to -pin *instA/in *instA/out
note: trace_trouch_to 如果同一个in,多个out,后面的会覆盖前面的,
例如 set_ccopt_property trace_through_to -pin *instA/in *instA/out1
set_ccopt_property trace_through_to -pin *instA/in *instA/ou2
则只会保留 set_ccopt_property trace_through_to -pin *instA/in *instA/ou2
如果想要2个都保留,需要用另一种方式
create_ccopt_generated_clock_tree -name gen_clk_1 -source *instA/ou1 -generated_by *instA/in
create_ccopt_generated_clock_tree -name gen_clk_2 -source *instA/ou2 -generated_by *instA/in
这样两个trach_through_to就能都保留了
b.定义时钟长度应该尽量短,但也属于3中ignore的一种
innovus : set_ccopt_property sink_type min -pin [get_pins */CK]
c.ignore的另一种,直接不当时钟了,DRV不需要按照时钟来
innovus : set_ccopt_property sink_type exclude -pin [get_pins */CK]
innovus :Summary of the differences between a Stop pin, Ignore pin, and Exclude pin:
Stop pin |
Ignore pin | Exclude pin |
|
|
|
posted on 2020-06-01 11:49 learnsure 阅读(6925) 评论(0) 编辑 收藏 举报