文献标识码:A
DOI:10.16157/j.issn.0258-7998.171805
中文引用格式:高华,李辉. 14 nm工艺下基于H-Tree和clock mesh混合时钟树的研究与实现[J].电子技术应用,2017,43(11):34-37,42.
英文引用格式:Gao Hua,Li Hui. Research and realization of the H-Tree and clock mesh mixed clock tree based on 14 nm technology[J].Application of Electronic Technique,2017,43(11):34-37,42.
0 引言
随着开云棋牌官网在线客服生产工艺的不断发展,数字芯片的工作频率显著提升,芯片功耗也随之增加。时钟信号作为数字系统的“心脏”,对于数字系统的功能、性能和稳定性起决定性作用[1]。因此时钟信号的特性以及时钟树的布局引起了设计人员的高度重视,如何降低时钟信号的传播延时(Clock Latency)和时钟偏移(Clock Skew),减小PVT(Process,voltage, temperature)环境变量的影响和功耗成为了当今时钟树设计的主题。另外,在生产工艺迅速发展的今天,工艺的提升必然会对数字IC的设计方法提出新的要求,传统的时钟树结构和驱动器单元库不再适应新的工艺带来的更高要求,因此在先进的生产工艺GF14 nm下进行基于H-Tree和clock mesh的混合时钟树设计具备一定的实用性和研究价值。
现阶段,数字IC主流的时钟树结构有H-Tree、X-Tree、balanced-Tree以及clock mesh等[2],H-Tree从中心点到各个叶节点的距离理论上相等,因此具有时钟偏移小的优点。但是其对寄存器布局约束要求严格,布线难度大;clock mesh的时钟树长度短,因此时钟延迟较小,但是时钟偏移却难以保证[3]。为了充分利用两种时钟树结构的优势,减少时钟信号的传播延迟和偏差,降低环境因素的影响,本文基于GF14 nm工艺,研究 H-Tree和clock mesh混合时钟树结构。
1 基于H-Tree和clock mesh的时钟树结构
时钟信号的传播在物理设计中的实现形式称为时钟树,时钟树的起点被称为根节点(Root pin),时钟信号经过一系列分布节点到达寄存器的时钟输入端,这些时钟信号传播的终点被称为叶节点(Leaf pin)。时钟信号从根节点出发,通过逐级插入的驱动器(Buffer)最终到达叶节点,从而构成了整个时钟树[4]。
基于H-Tree和clock mesh的混合时钟树的逻辑结构主要由3部分组成:Top-H、clock mesh和Local-H。Top-H是Top Level上的H-Tree结构;clock mesh是一张均匀传播时钟信号的网络,作为Top-H和Local-H连接的桥梁;Local-H是局部H-Tree,其主要发生在每个模块的内部,对应的叶节点为实际存在的寄存器。具体的逻辑结构如下所述:
(1)在Top-H部分,时钟信号由根节点出发,经过芯片层次上的驱动器TMAC传播,将时钟信号等距离地传递到模块单元中。整体TMAC以H-Tree结构分布,其中水平方向的TMAC称为TMACH,垂直方向的TMAC称为TMACV。顶层H-Tree的最后一级驱动器被称为MBUF,MBUF的输出端实际上为时钟信号的真实输出。为了和clock mesh完成连接,将同一级的MBUF的输出端连接到同一连线上,称为shortBar;
(2)在clock mesh阶段,根据模块和电源网络的布局将mesh网络覆盖到芯片金属高层,为了减少时钟信号受到的噪声串扰和环境等因素的影响,垂直网络和水平网络交替放置在电源和地线周围;
(3)Local-H部分,首先需要根据clock mesh的位置在每个模块内部合理放置mesh buffer,即模块内部H-Tree的根节点。mesh buffer根据就近原则通过anchor pin与clock mesh相连;另一方面,为了更好地产生局部H-Tree的架构,模块内部的寄存器需要根据逻辑层次以Cluster的形式对称分布,mesh buffer的输出端作为局部时钟树的起点进行时钟树综合[5]。
综上所述,时钟信号由根节点出发,经过Top-H等距离传播到芯片clock mesh网络,然后通过mesh上的anchor pin传播到模块内部的mesh buffer上,最后由mesh buffer作为局部时钟树的根节点经过各级驱动器传播到最终的寄存器单元。基于H-Tree和clock mesh的混合时钟树的逻辑结构如图1所示。
2 混合时钟树的设计方法及实现
下面介绍基于H-Tree和clock mesh的混合时钟树的具体实现案例。该设计为GF14 nm工艺下的一款GPU芯片,GF14 nm工艺是Global Foundary研发的目前全球前沿的生产制程。芯片的面积约为22 mm×16 mm,芯片的主频率为1.3 GHz,采用基于H-Tree和clock mesh的混合时钟树结构,时钟偏移要求控制在80 ps以下,传播延迟要求小于350 ps。
不同于逻辑结构,混合时钟树设计方法的物理实现分为两个实施阶段[6]:clock spine、clock mesh。clock spine阶段主要实现H-Tree的搭建,即芯片层次的H-Tree和模块内部的H-Tree,芯片层次的H-Tree需要借助TMAC实现,模块内部的H-Tree需要首先对内部寄存器进行放置约束,然后以mesh buffer为根节点做H-Tree;clock mesh主要完成时钟网的布局、anchor pin的设定以及局部模块驱动器(Mesh buffer)的放置。
2.1 Clock Spine的设计
2.1.1 Top-H的设计与实现
clock spine的设计包括芯片层次和模块内部的H-Tree。以GFXCLK时钟信号为例,GFXCLK信号源产生自芯片时钟模块的PLL单元 ,PLL通过数字频率综合单元(Digital Frequency Synthesizer,DFS)产生稳定频率的时钟输出。芯片层次的H-Tree从时钟根节点出发,首先沿着vertical spine传播,通过各级的TMACV驱动horizontal spine[7]。垂直脊骨上的驱动器为TMACV,水平脊骨上的驱动器为TMACH。clock spine的整体结构如图2所示。
水平脊骨的优点在于能够均衡地将GFXCLK信号传播到相关模块,并且极大限度地节约了横向的绕线资源[8]。水平脊骨的布局特点为同一脊骨的TMACH都要放置在同一水平线上,这样基于TMACH的H-Tree就会在水平方向进行布线。水平脊骨的叶节点称为MBUF,即MBUF是芯片层次上H-Tree的最后一级驱动器,MBUF的输出为每个模块读取的真实GFXCLK信号。水平脊骨的设计难点在于TMACH的布局和放置,由于芯片逻辑层次的复杂性和门电路的庞大数目,TMACH放置在任何的模块内部都会对当前模块的布线阻塞和时序产生消极的影响,因此在放置TAMCH之前需要重点处理GFXCLK时钟相关模块的布局规划。整个芯片中和GFXCLK时钟相关的模块有60个,将这60个模块分布在不同的行,在每一行中将布线难度大的模块和布线难度小的模块交替放置,最后把TMACH放置在布线难度小的模块内部。这样可以把TMACH对整个芯片的阻塞和时序的影响降到了最低。Horizontal spine的具体结构如图3所示。
2.1.2 Local-H的设计与实现
对于模块内部的时钟树,同样采用H-Tree结构。H-Tree的根节点称为mesh buffer,mesh buffer放置在靠近clock mesh的地方。为了使得模块内部的H-Tree整体的时钟偏移和传播延迟最小化,在单元放置过程中在IC Complier 2中利用create_bound以及create_rp_group将同一个逻辑层次的寄存器放置在特定区域,并且所有的特定区域在模块内部呈现准对称分布。
create_rp_group-name GFXCLKgroup1-rows 10-columns 3
add_to_rp_group GFXCLKgroup1-cells [get_flat_cells *]
create_bound -name GFXCLKbound1-dimensions{10 3}-type hard [get_flat_cells *]
如图4所示为芯片内部某模块的局部时钟树,模块内部有9个clock mesh,相邻clock mesh的距离为200 μm,GFXCLK时钟信号从9个clock mesh引入到模块内部并做局部H-Tree,时钟树的逻辑层次为18级。
2.2 Clock Mesh的设计
Clock mesh在混合时钟树结构中起到均匀传播时钟信号的作用。clock mesh分为Hmesh和Vmesh。Hmesh为水平方向,放置在M10层;Vmesh为垂直方向,放置在M11层。为了减少时钟信号在mesh传播过程中受到的信号和噪声串扰,将Vmesh交错放置在电源和地线之间。同时为了抑制clock mesh可能出现的IR Drop和EM问题,在布线规划时将mesh做宽,每一条mesh的宽度为0.96 μm,mesh与相近的电源地线的距离为1.928 μm[9]。由于高层金属较好的时序特性,仅在M10和M11层均匀的覆盖了clock mesh,并未占用多余的绕线资源。芯片层次的clock mesh如图5所示。
2.3 clock mesh和spine的结合
完成clock mesh和clock spine的布局规划之后,需要将mesh和spine进行连接才能形成完整的时钟树结构。clock spine的最后一级驱动器为MBUF,利用shortBar将同一水平线上的MBUF的输出连接在一起作为GFXCLK的“输出条”。然后将shortBar与M11层Vmesh进行连接,也就是将GFXCLK信号传播到垂直mesh网络上,Vmesh继续驱动M10层的Hmesh网络,从而使得整个clock mesh均匀分布着时钟信号。为了将GFXCLK时钟信号引入到每个模块内部,需要在Hmesh末端接入anchor pin,anchor pin的另一端连接到mesh buffer,也就是内部H-Tree的根节点,从而驱动整个时钟网络。具体连接关系如图6所示。
为了测试该时钟树结构的性能,选取GPU中gp_tsd模块为例,gp_tsd模块为GPU中的控制数据处理模块,模块内部包含GFCLK时钟。GFCLK在gp_tsd模块内部的实现方式如图7所示。为了更好地呈现mesh buffer的位置,图7仅显示了前5级时钟树的形状。
在PrimeTime中,将以上基于H-Tree和clock mesh的时钟网络进行反标并且分析整个时钟网络的latency和skew,最终得到GFXCLK的skew为54 ps,latency为320 ps,如图8所示,满足设计要求。
同时,基于H-Tree和clock mesh的时钟网络具备布线距离短和时钟驱动器数量少的特点,有效降低了数字芯片的功耗。本设计利用Synopsys的产品PrimetimePX进行功耗分析,并利用图形化界面的Show Power Analysis Driver选项得到时钟树优化前后功耗分析柱状图如图9、图10所示。
由以上柱状图可以看出,优化后模块总功率减少了约为2.53%。其中静态功耗即Leakage Power为0.011 7 W,占总功耗的3.78%;动态功耗即Switch Power和Internal Power分别为0.214 5 W与0.082 5 W,占总功耗的96.22%;总功耗约为0.308 7 W。
3 总结
本文提出了一种基于H-Tree和clock mesh的混合时钟树结构,该时钟结构的实现分为clock spine和clock mesh两个部分,clock spine包含芯片层次和模块内部的H-Tree的搭建,clock mesh均匀地分布在芯片内部并且负责芯片层次和模块内部时钟树的连接。实验给出了在GF14 nm工艺下GPU内部GFXCLK混合时钟树的设计,经过PrimeTime以及PTPX的反标和分析,证明了该混合时钟树具备良好的时钟偏移和时钟延迟,明显减少的时钟树布线长度也有效减小了芯片的整体功耗。
参考文献
[1] BAKOGLU H B.Circuits,interconnections,and packaging for VLSI.1990.
[2] CHEN P H,MALKANI S,PENG C M.Fixing antenna problem by dynamic diode,dropping and jumper insertion.Proc Quality Electronic Design.2000.
[3] BAKOGLU H B,WALKER J T,MEINDL J D.A symmetric clock-distributiontree and optimized high-speed interconnections for re-duced clock skew in ULSI andWSI circuits.Proc.IEEE Int.Conf. Computer Design.1986.
[4] 戴红卫,郭炜,韩泽耀,等.一款低功耗SoC芯片的时钟管理策略[J].微电子学与计算机,2005(3).
[5] 陈菲菲,王振宇,严伟.鱼骨型时钟结构的快速实现方法[J].微电子学与计算机,2014(2).
[6] 冀蓉,曾献君,陈亮,等.同步数字系统时钟分布及偏斜补偿技术研究[J].计算机工程与科学,2009(3).
[7] 千路,林平分.ASIC后端设计中的时钟偏移以及时钟树综合[J].开云棋牌官网在线客服技术,2008(6).
[8] 胡静珍,唐长文,闵昊.深亚微米数字集成电路的自动化设计方法学[J].微电子学,2002(4).
作者信息:
高 华,李 辉
(中国科学技术大学 信息科学技术学院,安徽 合肥230026)