芯片时钟树设计常用的结构及其对比

时钟树,是一个由时钟到达其终点的,中间插入了一些缓冲器的,一般呈现网状或者树状的结构。时钟树的结构多种多样,比如 H 型时钟树(H-Tree)、鱼骨型时钟树(fishbone clock tree)、多点时钟树(multi-point clock tree)、X 型时钟树(X-tree)、时钟网络(clock mesh)等等。

在数字集成电路中,主要运用的时钟信号都是同步时钟信号,一般来说,同步时钟控制整个芯片的运作,我们希望数据可以有序的传递下去,所以我们希望时钟的到达每个元件的时间可以相对一致。为了达到这个目的,我们将这些需要平衡的叶节点,按照时钟进行分组,这就是时钟组(clock  group)。因此,我们希望时钟树可以在同一个时钟组中做的相对平坦,即时钟偏差尽可能小。但是,这种情况并不绝对,在某些情况下,时钟偏差稍大些,可能更容易满足路径的时序要求,因为有些路径可能因为自身比较长,所以可能需要时钟先到达。包括某些路径其实对同步时钟的要求并不高,所以时序的影响并不大。

H型时钟树

H型时钟树的目标是所有的时钟路径到达寄存器的时间相同,以做到没有时钟偏差为目标。如下图所示,H型时钟树的时钟根(clock root)一般会选择连接到整个时钟网络的中心点,然后一级一级的分出去,就像是一个个的H一样,也因此得名H型时钟树,如图所示。    

66b6731263c0dc19c6867827ce016f4c.png

由于 H 型时钟树对时钟网络的要求比较严苛,希望于寄存器可以摆放的整齐规律,导致H型时钟树需要插入过多时钟元件。H型时钟树虽然在时钟的偏差上表现很好,可以大幅度降低时钟偏差,但是会因为插入时钟元件过多,导致增加了阻塞的问题,在绕线的时候会增大难度,甚至可能需要增加面积。H 型时钟树现在更多的应用于对时序要求比较严格,但是对面积要求比较低的芯片设计中。

鱼骨型时钟树

鱼骨型时钟树(fishbone clock tree)是一种基于H型时钟树发展出来的时钟树结构。如下图所示,鱼骨型时钟树由主干和分支构成,状如鱼骨,所以被称为鱼骨型时钟树。下图中的鱼骨型时钟树的主干采用 NDR 中定义的金属,主干金属要远远宽于其他金属,其上根据负载不同插入驱动缓冲器,主干将电流输送到每条分支上,再由分支各自驱动相连的叶节点,其时钟偏差主要存在于各个分支时钟路径到叶节点的时钟延时不同,主干上大部分是公共路径。因此,鱼骨型时钟树的时钟偏差较小。    

9af877df10709851877f640d8689eff5.png

X型时钟树

X型时钟树如下图所示,与H型时钟树结构类似,也是一种比较规律的对称的时钟树结构,对寄存器的要摆放有着极高的要求,不同的是,X型时钟树会利用一些90度的连线,它的扇出是 4,因此,相较于 H 型时钟树的扇出 2 而言,X 型时钟树的构造时所需的缓存器少得多,但是 X 型时钟树对工具在建立时钟树时的算法要求比较高。

e4b4ab8e848e3895b81c39931fd88b98.png

平衡型时钟树

平衡型时钟树结构采用的是由上而下两个层次的驱动,比较适用于分层次

的时钟树设计以及大规模时钟树设计。平衡型时钟树结构在时钟路径上插入缓    

冲器或反相器,来平衡时钟源到各个时钟叶节点的延时。该结构的时钟树增加

了时钟路径上的单元,可能会导致占用芯片面积的增加,但是能很好的控制时

钟插入延迟。平衡型时钟树结构如下图所示。

97a2b749ad86efb907447d7448de7834.png

时钟网络(clock mesh)

时钟网络(clock mesh),通过对整个芯片进行网格化处理,通过线网将时钟信号先分配到各个网格格点上,然后再由格点分配到各自对应的时钟叶节点上。因此,时钟网络在时钟源到线网的时钟延时都是相同的,可以认为是经过了公共路径,因此,时钟偏差更低于鱼骨型时钟树。但是,因为时钟网络需要很多网格,且需要大量时钟驱动来连接时钟源到格点的路径,因此,时钟网络的功耗远高于其他种类的时钟树,此外,其 OCV 的容错率比较低。 如下图所示。    

d119a4f2a9917318b86d599ea179f758.png

一般来说,同一个时钟控制的一条路径,在静态时序分析中,我们会将钟源延迟设置为 0,仅考虑网络延时。在这存在一个公共路径(common  path)的问题。公共路径指的是从时钟到引脚之间的捕获路径和发射路径需要共同经过的路径,因为在计算 slack 的时候,两者同时相减,所以可以看作是没有钟源延时的,但是这种情况仅仅可以在同一时钟的情况下才成立。

多源时钟树(multi-source clock tree)

多源时钟树结构,顾名思义,即具有多个时钟源的时钟树,是一种因为低功耗技术发展起来的时钟树综合技术,其目标是为了降低时钟功耗。多源时钟树是一种定制时钟结构,与传统时钟树结构相比,该结构对片上变化具有更多的容差(tolerance),并且在角落之间具有更好的性能。多源时钟树主要分为两种,一种为常规多源时钟树(Regular Multisource Clock Tree),还有一种是结构化多源时钟树(Structural Multisource Clock Tree)。

常规多源时钟与结构化多源时钟都是由全局时钟结构(global clock structure)和本地子树(local subtree)构成。全局时钟树结构包括了一个时钟根(clock root),一个全局时钟树(通常是 H 树结构),时钟网格驱动(clock mesh buffer),时钟网格(clock mesh)。常规多源时钟的本地子树通过一组预定义的驱动程序,称为 tap 驱动程序,连接到时钟网格,再经过 tap 驱动连接到门控单元或者是 sink 点。而在结构化多源时钟的本地子树中,是直接通过时钟网络连接到门控单元或者是 sink 点。与常规多源时钟相比,结构型多源时钟在本地子树中,不使用 tap 驱动。    

全局时钟树结构(Global clock tree structure)是一种结构对称并且平衡的时钟树。在芯片上分配时钟以驱动局部子树(local subtree),并且在工艺角上具有最好的时钟偏差。其结构主要是 H-tree、时钟网格(clock  mesh)+H-tree、时钟带等,其优点是全自动化设计、功耗较低,缺点是若设计规模较大的情况下,OCV 的容错率极低。

结构化多源时钟树(structure MSCTS)是全局时钟结构直接驱动本地子树的结构。子树合成和优化主要包括时钟门的合并,分割,大小调整和重定位,保留输入树中的数字级别,且不允许缓冲区插入或删除,在子树优化期间,全局结构上的负载可能会发生变化。其优点是较低的时钟树偏差和非常高的 OCV 的容错率,其缺点主要是被网格下方几个级别限制,时钟逻辑长,功耗高。

常规多源时钟树(regular  MSCTS)全局时钟分布和本地子树之间存在一层 tap驱动程序,使用常规时钟树综合来综合和优化本地子树,由于预定义的 tap 驱动程序,全局结构上的负载是固定的。其优点是比结构化多源时钟树更低的功率、比常规时钟树更好的 OCV 容错率,其缺点是与常规时钟树相比更高的功耗。

门控时钟(clock gating)技术

所谓门控时钟,指的是用控制信号控制时钟的开启,在模块不工作时关闭时钟,在工作时打开时钟,通过降低触发器的总反转率达到降低功耗的目的。根据其关闭的触发器数量,可以将门控时钟分为多种粒度的门控时钟,典型情况下可以划分为细粒度、粗粒度时钟[15]。例如用一个门控单元关闭整个芯片的情况是粗粒度门控时钟, 此时将门控单元摆放在时钟根结点处可使门控时钟更易于实现。用一个门控单元关闭一个电路模块中部分触发器工作的情况可成为细粒度门控,一般可用一个门控单元控制几十个触发器。在芯片设计中,不同粒度的门控时钟通常会结合使用,下图是一个门控时钟单元的典型结构。    

5f0243ef08035db23bc741bfc5521679.png

拓扑结构比较

在进行传统的平衡时钟树综合时,时钟树拓扑结构的变化主要分为横向生长和纵向延生两个方面。 如下图所示,其中,Arrow1和Arrow3为纵向延伸;Arrow2为横向生长。

df4960c50bc93779d65aae68ade70274.png

由于平衡时钟树结构的目标是平衡时钟的偏差,因此在时钟树综合过程中,为了减小叶节点之间的时钟偏差,时钟树会加大纵向的延伸,减小横向的生长,导致插入缓冲单元的数量增加,这样能够对每条时钟路径的延迟进行更细粒度的调整,从而得到较小的时钟偏差,但采用上述方式会导致时钟树规模的增加。其综合得到的时钟树如下图(a)所示。    

9424a0951c8ad95523e705d8d12115b9.png

考虑到纵向生长插入的缓冲单元增加对设计功耗的影响,可以通过减小时钟树的规模,加大时钟树横向生长的方法来减少缓冲单元的的数目。得到的时钟树如上图所示。跟纵向延伸的时钟树结构相比,由于加大横向生长的时钟树插入的缓冲单元减少,使得该时钟结构对时钟路径延迟的控制更加粗糙,会导致时钟偏差的增加。因此,在进行时钟树综合时,设计者需要考虑设计的时序要求来对时钟树的规模进行控制。    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芯片电源完整性与信号完整性设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值