热度 8| ||
背景:传统的cts的实现靠对各个sink点做balance实现,考虑到ocv的影响,最终会有skew的margin吃不到,对于高性能芯片,这部分的余量就显得尤为珍贵。这时候,几种不同的结构的时钟树应运而生。区别于工具自动做的传统时钟树,常见的三种应用于高性能设计时钟树结构有:Htree,Fishbone,clock mesh。从实现角度来说,Htree更容易实现,且性能改善明显,加上EDA工具算法的改进,已经可以自动完成Htree的搭建,所以Htree目前应用更广泛。
Hree简介:
顾名思义,就是clock tree的形状类似H形,从root点对称分支,分支再对称分,形成一级一级H状的tree,尽头设置专用的buffer作为tap点,每个tap点再挂对应的sink,这样就尽可能的均匀划分出一堆一堆的sink,保证最大程度的skew最优。而H形的主干可以采用高层NDR绕线,尽量保证trunk的latency最小,甚至可以采用big buffer作为驱动的tap,进一步减少延迟。
Htree的实现:
早期Htree的实现是需要工程师规划区域,写脚本完成tap点的插入以及trunk的绕线,也就是需要熟悉clock的分支情况,然后addInst,attachTerm等命令结合,在floorplan阶段完成Htree的预处理,cts阶段工具会依照规划的Htree结构对各个tap点assign leaf cell,完成时钟树综合。
如今,Cadence的P&R工具Innovus已经可以自动实现这个过程,只需根据设计需求规划好tap点的区域,用命令即可完成之前人工脚本的工作,进一步自动化:
create_ccopt_flexible_htree
synthesis_ccopt_flexible_htrees
具体用法可参见用户手册。
Htree的优势:通过trunk的高层NDR以及大buffer尽量缩短了clock的latency,同时由于对common path进行了预处理,减少了ocv对launch和capture path的影响。
缺点:对于靠近root点附近的sink来说,相当于增加了clock latency的长度,一定程度上增加了clock cell的数量,同事加上大buffer的使用,对于功耗会有所损失。
考虑的实际design的需求,用户可以进行权衡取舍再决定策略。