Identifying the Clock Tree Endpoints
4种endpoints:
1.stop pin
DFF CK pin
2.Exclude pin(不需要去balance,只优化DRC,不优化skew)
(1)exclude pin 是排除在时钟树timing计算和优化之外的endpoint
(2)工具仅优化DRC
(3)也叫ignore pin
3.Floating pin
类似于stop pin,但需要user额外指定latency
4.Non-Stop pins
当成一个正常的buf,不优化skew和latency,直接穿过去,如ICG
一、Stop pin
人为指定stop pin,用set_clock_tree_exception -stop pin
例如,在outport上设stop pin,来计算latency
工具默认stop pin:默认clock都是ck pin
二、Exclude pins
implicit(工具默认)
- source pins of clock trees in the fanout of another clock.
- Non clock input pins of sequential cells
3.Multiplexer select pins
选择器
4.Three state enable pins 三线
5.Output port
6.定义了错误的pin,如只有input pin,没有output pin
7.set_case_analysis也不考虑skew、latency
8. Input pins of combinational cells or intergrated clock-gating cells that do not have any fanout or that do not have any enabled timing arcs
Explicit
有一些stop pin确定没有时序逻辑,没有timing check的,想设成exclude pins用的命令:
set_clock_tree_exception -exclude_pins[get_pins U2/A]
如:比较复杂的reg,latency比较长,可能会影响整个clock tree的latency,一般会exclude掉,不让工具单独处理,或者没有timing check的也被设成exclude pin。
三、Floating pins
set_clock_tree_exception -floating_pins U4/clk -float_pin_max_delay_rise 0.5 -float_pin_max_delay_fall 0.5
一般用在hard macro
四、Specifying Nonstop Pins
ICG/DIVIDER
五、Specifying Dont touch Subtree
A与B CLK Tree 很好,C不好,只想动C,那么A、B设成dont touch subtree,命令如下:
set_clock_tree_exception -dont_touch_subtrees
六、Various clock pin in CTS
Stop pin: optimize DRC,skew and insertion delay
Float pin: like stop pin but consider internal clock latency
Exclude pin: only optimize DRC, not skew or insertion delay
Non stop pin: optimize DRC, not skew or insertion delay