工具默认的,只在一个master clock做balance,多个master clock不做balance。
工具默认的,master clock产生generated clock也会做balance,同属于一个master clock。
Defining a Clock Balance Group
CLKA与CLKB各自的cell之间也有timing check或者design要求,此时需要A与B要做balance。
定义一个clock balance group,用set_inter_clock_delay_options 命令。也可以给这个group定义一个名字用 -balance_group_name选项。
如:set_inter_clock_delay_option -balance_group{CLK1 CLK2}
Defining the Interclock Delay Requirement
1.默认,工具在clock之间有a goal of zero delay offset.
2.如果有不同需求,可以用下面方法指定:
(1)指定在clock tree或clock groups一个delay offset
(2)为每个clock指定clock latency
set_inter_clock_delay_options
[-balance_group source_objects]
[-balance_group_name string]
[-delay_offset float]
[-offset_to source_objects]
[-offset_from offset_from_obj]
正值表示-offset_to选项中指定的时钟落后于-offset_from选项中指定的时钟。
负值表示-offset_to选项中指定的时钟早于-offset_from选项中指定的时钟。
Defining the Delay Balance Buffers
默认的,工具用buf 和 INV做balance。
可以规定工具用哪些标准单元库在某一特定的步骤或优化。
set_clock_tree_reference -delay_insertion_only在insertion delay时可以指定用哪些cell.
Specify the Target Insertion Delay
set_inter_clock_delay_options -target_delay_clock clkA -target_delay_value 400
设置target delay一般做大,插入delay cell就行,而做短很难。
如下图:Block A与Block B有timing check,共用一个时钟C,Block A的内部latency是200,Block B是400,A与B之间有timing check,会有天然200的skew,所以将A设成400的target delay。
Specifying the Clock Tree Reference
Reference 都是指定std cell 的类型
做balance一些方法:
- insert buffer
- size cell X8驱动变成X6,delay变大
- detour 比如latency太短,非要做长,加cell不好加,会让net绕一圈,把net变长。
加入哪些cell,给一个list,工具根据给的list去做
set_clock_tree_references
eg.
set_clock_tree_reference -reference{clk1a6 clk1a9 clk1a15 clk1a27} -clock clkA
A clock 没有指定(-sizing_only;-delay_insertion_only)默认都能用上面reference的cell,比如size ,delay insertion,boundary cell insertion
CTS Cells Selection
CTS cell 以CK/DCCK开头命名。
只要是在clk上的都要用特殊的cell.不管是buf,INV和逻辑cell
对clock timing,power要求更严,用更稳定的cell。对clock信号要求transtion的上升沿和下降沿一致,稳定性会更好。
怎么做到上升沿和下降沿一致呢?
会有特殊的电路,能修正波形,同时也会占用更大的面积。
所以clock cell与common cell的区别:
1.clock cell包含修正波形的电路
2.clock cell 面积会更大一点
CTS cell 选择rule
- 不许用太弱的驱动(因为稳定性差,cell delay大,transition大)
- 不用太强的驱动,会有IR drop和EM问题。如果用的话,metal要求更宽,周围一圈不放cell,当然这也是特例。
- 不同VT也不用,防止OCV,稳定性
CTS Cells Naming Rules