热度 1|
最近研究时钟树,小规模regs的时钟网络,芯片要求时钟钟树的clock_latency时间在max corner要做到少于1ns, 寄存器的数量是400多个,但是比较均匀的分布在芯片的芯片的区域,类似稀疏矩阵。芯片的core area 8mm x 8mm .挑战开始了。
第一种采用传统的方法时钟工具自动生成时钟树的方法,怎么自动生成工具只能做到3n的clock_latency ,这个值是实质反标的时钟树,也就是设计了set_propagated_clock [all_clocks],之后得到,不管怎么调节transition fanout skew
等这些参数都没有效果。
决定改用手工定制时钟树的方法,主要通过以下方法,定制时钟树达到事半功倍的效果,浏览理想时钟的reg的分布情况,根据分布情况搭建时钟的主干网络,
选用大 INV或者 BUF单元做驱动,第一级 第二级第三级尽量的线的距离要长些大概是2000um~3000um o.13um的工艺,其次尽量采用1对4或以上的驱动,同属父节点的时钟树子节点的单元成上下的摆放在一起,减少单元线之际的链接,同时也减少 峰值电流对power rail的影响。时钟线最好使用加倍的厚度的时钟线,这样减少时钟线的线电电阻,加快时钟树。
addInst -cell BUFX16 -inst clk1 -loc {500 500} -status fixed
addNet clk1_net1
atttachTerm clk1 Y clk1_net1
detachTerm xxx/xxx/reg1 ck
detachTerm xxx/xxx/reg2 ck
detachTerm xxx/xxx/reg3 ck
detachTerm xxx/xxx/reg4 ck
attachTerm xxx/xxx/reg1 ck clk1_net1
attachTerm xxx/xxx/reg2 ck clk1_net1
attachTerm xxx/xxx/reg3 ck clk1_net1
attachTerm xxx/xxx/reg4 ck clk1_net1
这样一次类推就可以把整个时钟树网路搭建起来,
经过这样手工调节,最大的时钟树的级数6级,时钟clock_latency 为少于1.1ns