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 |
|
|
|