《电子技术应用》

千万门级模块鱼骨型时钟网络的实现

2016年电子技术应用第8期 作者:许谷涵1,严 伟1,朱兆伟2,郑永力2
2016/11/29 14:09:00

  许谷涵1,严  伟1,朱兆伟2,郑永力2

  (1.北京大学 软件与微电子学院,北京100871;2.世芯电子科技(无锡)有限公司,江苏 无锡214000)

  摘  要: 在芯片规模越来越大的背景下,针对千万门级以上规模芯片模块,提出一种基于单鱼骨型时钟网络的改进型时钟结构,并给出在后端设计过程中基于EDA工具的具体实现方法。该时钟结构兼具鱼骨型时钟结构的特点,相较于自动化不定型时钟树,具备较低的时钟延迟、时钟漂移、片上误差和动态功耗。以规模2 600万门的28 nm芯片模块(工程代号YCU-AM)为例进行实现过程阐述,实验结果表明,该型时钟结构较不定型时钟树使模块整体功耗降低约5%。

  关键词: 物理设计;时钟树;低功耗;千万门级模块

0 引言

  现阶段在芯片后端设计过程中分割产生的模块规模越来越大,单模块规模最大已经达到千万门级。千万门级模块中时钟网络复杂,功耗占比大[1],是芯片设计中的棘手问题。在28 nm工艺节点之后由于连线间距进一步缩小到0.1 μm以下,插入过多的缓冲单元会使得绕线变长,产生很大的时钟延迟和功耗,在千万门级模块中,时钟延迟甚至可以达到一个周期以上。鱼骨型时钟网络时钟根节点到时钟末端级数少,可以节约功耗和面积[2],在千万门级模块中,不论从功耗、延迟,还是从可靠性的角度上看,网型的鱼骨结构相比于不定型时钟树应该会有一定优势[3]。

1 单鱼骨型时钟网络的结构

  单鱼骨型(FISHBONE)时钟树的基本结构如图1所示。对千万门级模块而言,使用单鱼骨树来平衡所有的寄存器和宏单元,会造成延迟过大、驱动能力不够等一系列问题。

图像 001.png

图1  单鱼骨型时钟结构

  因此,我们提出一种寄存器与宏单元分离的多主干驱动的复合型时钟网络(H-FISHBONE)。如图2所示,H-FISHBONE由多个驱动寄存器的鱼骨树和多组复合驱动器驱动的宏单元块构成,二者分别经多级驱动连接至时钟根节点。

图像 002.png

图2  H-FISHBONE结构

2 H-FISHBONE的实现流程

  H-FISHBONE具体实现流程如图3所示,本文以YCU-AM模块为例,阐述在后端设计过程中,如何实现H-FISHBONE型时钟网络。YCU_AM模块采用三星28 nm工艺,9层绕线金属。供电电压1 V,时钟频率200 MHz,版图3 400 μm×3 590 μm,宏单元570个,共2 600万门。

图像 003.png

图3  H-FISHBONE实现流程

  2.1 提取时钟结构,分析门控时钟单元级数

  用Primetime对初始网表进行分析,采取时钟路径追踪的方法可以得到详细的时钟结构,主要分析时钟级数。如图4所示,以时钟根节点为第0级,按照与时钟根节点连接关系的级数,根节点后1~3级不等的门控单元(ICG)。

图像 004.png

图4  YCU-AM内部时序器件级数关系简图

  2.2 多级时钟门控单元展平化处理

  多级时钟门控单元的存在,不利于平衡时钟漂移,所以要将多级门控时钟单元展平化处理为一级,既能保持控制功耗的功能,也有利于时钟漂移的平衡。由于DFT设计过程中,会将ICG复用到扫描链中,因此在工作(Function)模式下,需要先将ICG的扫描链使能端全部逻辑连接到逻辑低电平钳位单元(TIE-0),然后调用ICC的flatten-clock-gating引擎进行展平化处理,为保证展平化过程精准及节省运行时间,我们要为ICC指出处于二、三级的ICG。

  2.3 分离宏单元和寄存器

  对于千万门级模块,大量的宏单元和寄存器连在同一单鱼骨树上,将不利于平衡时钟漂移和时序收敛。因此我们将宏单元和寄存器拆分,对宏单元用复合驱动器进行驱动构建多组宏单元块,对寄存器构建多组FISHBONE。最后进行FISHBONE和宏单元块的再平衡。拆分时,对于同寄存器有共同ICG连接关系的宏单元,在ICG的输入端引入一个与其相同类型的伪ICG,将宏单元重新连接到伪ICG上,以保证宏单元的各种输入条件不变;在时钟根节点隔离单元之后插入两个并联的驱动单元,分别连接宏单元与寄存器。

  2.4 插入伪ICG解高扇出(High Fanout)

  由于标准单元驱动能力有限,如果其驱动的负载电容过大会产生高扇出问题。我们采取克隆高扇出ICG的方法,克隆出的ICG称伪ICG。伪ICG是按照距离自动寻址的方式插入,先寻找高扇出ICG最近的寄存器,插入第一个伪器件,伪器件驱动其周围70×70范围内的负载(根据负载的多少适当减增范围),然后由近及远插入多个伪器件。

  2.5 多组FISHBONE的构建

  如图4所示,FF1和FF2之间相差一级门控时钟单元的单元延迟,要插入一个与所用ICG单元延迟相近的缓冲单元,用来平衡FF1和FF2之间的延迟。经过以上几步,得到时钟结构连接关系如图5所示,其中G是伪ICG,B是平衡缓冲单元,H是插入FISHBONE三级驱动的位置。构建FISHBONE的个数,需根据负载的数量和分布来确定。本设计有44 000个负载(均匀分布在大约3 000×3 000的范围内),从均匀性和最简化角度考虑,将版图分为6个区域进行多鱼骨树的构建,每个单鱼骨树驱动7 000-8 000个负载。如图6所示。

图像 005.png

图5  连接关系图

图像 006.png

图6  FISHBONE主干的位置分布

  FISHBONE的构建有以下几个重要参数:(1)金属线分布属性;(2)驱动比(drive-rate=total load/L3driver);(3)驱动单元间隔(row-step)。由于高层金属的抗电迁移能力更强,并且对下层的噪声影响也小很多,所以选择高层金属来构建FISHBONE。本设计选择横向走线的IA层为主干位置,驱动分支设定在M7。

  驱动比用于确定各级缓冲单元的数量,本设计中驱动比设置为40,可根据负载数量以及之后的静态时序分析结果适当调节驱动比。驱动单元间隔,需要是布局通道(Row)的整数倍,本设计设置为2,可根据主干金属线长度适当增减。本设计单鱼骨树详细布线如图7所示。

图像 007.png

图7  FISHBONE详细布线图

  2.6 FISHBONE和宏单元块的再平衡

  宏单元和FISHBONE分别是由多组复合驱动直接驱动,与时钟根节点的距离和负载大小不同,选择的多级驱动也不同,因此在完成以上步骤之后,要进行寄生参数的提取和静态时序分析,对比各个部分的时钟延迟,适当调节部分参数(复合驱动的级数、驱动比、驱动间距、主干、分支金属宽度等)用以平衡时钟漂移。

3 分析结果

  如表1分别是YCU_AM进行时钟树综合(CTS)实现不定型时钟树、实现单鱼骨树以及本文方法实现H-FISHBONE的三组时序结果对比。从表中可以看出,单鱼骨树时钟漂移竟然达到2 ns,不适用于千万门级模块,相比不定型时钟树,H-FISHBONE平均时钟延迟降低了约47%,时钟漂移降低了约35%。分别对实现CTS和H-FISHBONE后模块行功耗分析,测试端角ml-cworst-125c-min,测试信号翻转率为0.1,静态概率0.5。得到结果如表2、表3所示;可以看出使用H-FISHBONE模块单元内部功耗降低约13%,动态翻转功耗降低约31%,使得模块整体功耗降低约5%。

图像 008.png


图像 009.png

图像 010.png

4 结束语

  本文针对千万门级以上模块提出了改进型的H-FISHBONE型时钟网络,以2 600万门YCU_AM模块为例介绍了H-FISHBONE在后端设计过程中的实现方法,通过实验结果发现H-FISHBONE在降低时钟延迟和动态功耗上有显著的优势,为千万门级模块提出了一种在时钟网络构建方面减小时钟偏斜和降低功耗有效可行的方法。

  参考文献

  [1] DENG C,CAI Y C,ZHOU Q.Register clustering methodology for low power clock tree synthesis[J].Journal of Computer Science & Technology,2015,30(2):391-403.

  [2] LIN H T,CHUANG Y L,YANG Z H, et al. Pulsed-latch utilization for clock-tree power optimization[J].IEEE Transactions on Very Large Scale Integration Systems,2014,22(4):721-733.

  [3] CHIPANA R,KASTENSMIDE F L.SET susceptibility analysis of clock tree and clock mesh topologies[C].2014 IEEE Computer Society Annual Symposium on VLSI(ISVLSI).2014:559-564.

   

  

  


继续阅读>>