一种高速低噪声的发散型时钟树结构∗

2018-07-10 09:18吴雨臻袁书伟钟传杰
舰船电子工程 2018年6期
关键词:缓冲器驱动器时序

吴雨臻 袁书伟 钟传杰

(江南大学物联网工程学院 无锡 214122)

1 引言

随着半导体制造工艺的不断发展,芯片集成度越来越高,规模越来越大,门级数目越来越多[1]。时钟树结构的设计成为数字后端设计的重中之重。时钟树综合(CTS)的主要目的是使时钟偏差、相位延时尽量最小化,最大限度地为时序收敛服务[2]。在时钟网络中,通常应用EDA工具生成二叉型时钟树结构[3]。

这种方法实现时间短,但使用的缓冲器较多,时钟级数与时钟延时较大,影响时序收敛[4],更重要的是OCV(On Chip Variation)难以避免会发生[5]。在实际情况中,芯片级(TOP)设计中时钟树网络的负载包括触发器与模块单元(Block)。通常负载为模块单元的时钟路径延时相对很大,最终导致时钟树的最大延时过大,造成很大的时钟偏差[6]。同时,在芯片级设计中,芯片面积很大,时钟路径互连线很长,使用传统CTS方法生成的时钟树不能提供很好的时钟传输速度,也难以避免噪声的影响。

针对大规模芯片级后端设计,本文提出了一种发散性时钟树结构,利用该方法可以解决传统CTS产生的芯片级时钟树中时钟绕线过长、噪声过大等缺点,得到更小的时钟延时与更小的时钟偏差,以满足时序要求。

结果表明,在芯片级设计中,通过该方法实现的时钟树比传统二叉树型时钟树减少了27%的时钟延时和22%的时钟偏差,且大幅度减少了59%的串扰噪声,从而大量减少时序违例的数目。

2 发散型时钟树结构简介

局部的发散型时钟树结构如图1所示,即使用驱动能力强大的多级驱动器将时钟信号由时钟源点推至芯片中心,再由该点针对负载分布进行时钟发散,将芯片分为若干区域,各区域分别实现负载为触发器的二叉树时钟树与多级驱动器直接驱动负载为模块单元的时钟树相结合的方法。

3 发散型时钟树结构设计流程

图2为发散型时钟树结构的基本设计流程。

在完成芯片的模块布局和标准单元放置以后,计算时钟传输路径的距离,根据多级驱动的驱动能力,每隔一定距离插入多级驱动以推动时钟信号,以此保证时钟信号具有较小的传输延时。将时钟信号推至芯片中心点后,根据负载情况对芯片进行区域划分,同样根据多级驱动的驱动能力来决定一个多级驱动能驱动的时钟路径数目,将时钟信号分别传输至不同的区域。在时钟信号到达各个区域之后,对不同类型的负载进行分离处理。模块单元负载采用直接由处于各个区域点的多级驱动器直接驱动的方法;触发器负载则采用传统的二叉树型时钟树结构,以此降低时钟延时,平衡负载类型不同所造成的时钟偏差。

4 发散型时钟树结构的实现

本文以工程编号为MD-GRAPE的芯片级模块为例,实现发散型时钟树结构。该芯片采用TSMC40nm工艺,芯片尺寸为18000μm×18000μm,主时钟SCLK的工作频率为600MHz。

4.1 创建多级缓冲器

芯片级设计面积巨大,时钟缓冲器需具有很大的驱动能力,多个缓冲器并联组成的多级驱动器可以提供较大的驱动能力,以此推动时钟信号。

本设计选择了一种由驱动能力和面积相对较大的CKBD24BWP缓冲器所组成的多级驱动器。典型的多级驱动器为二级驱动器,由一个第一级CKBD24BWP缓冲器推动4个次级CKBD24BWP缓冲器组成。

CKBD24BWP单元的时序信息库中上拉转换组(rise_transition_group)如图3所示。

通过查阅TSMC提供的静态时序分析(STA)指导文档可知,TSMC40nm工艺对于时钟路径上的最大电平转换时间约束为150ps,但对于芯片级设计而言,时钟树级数相较于模块级设计而言通常会更多,各级单元的电平转换时间会在更长的时钟路径上叠加,使芯片级的时钟延时相比于模块级设计而言更大。通过反复试验比较,在芯片级设计中,当时钟路径最大电平转换时间控制在50ps以下时,时序能够达到可接受的范围。通过对比上拉转换组信息可知,第五行第五列,即输入电平转换时间约为55ps,输出电平转换时间约为43ps时,比较符合设计要求。此时每个CKBD24BWP缓冲器可驱动的负载电容为0.1265pF,即每个第二级缓冲器数目为4的多级驱动器可驱动电容约为0.506pF的负载。

4.2 传输时钟信号至中心点

主时钟SCLK由PLL_SCLK的PLL_SCLK/FOUTPOSTDIV输出端输出,距离芯片中心点约15000μm。为减小时钟延时、降低时钟偏差,首先需要将时钟信号传输至芯片的中心点。

由于多级驱动器需要驱动较强信号,为防止电迁移效应,多级驱动器选用线宽为1μm的互连线,同时信号绕线占用M2~M7层大量的绕线资源,容易造成串扰,因此,选用绕线资源更足的高层金属层M8、M9用于时钟走线,不同层间利用多通孔相连,以保证信号传递的可靠性[7]。

目前后端设计通常使用Synopsis公司的EDA工具PrimeTime进行时序分析。在TSMC40nm工艺的设计中,通常约定不同单元之间互连线长度需小于 4000μm,若互连线长度超过 4000μm,通过PrimeTime进行时序分析产生的误差将会超过可接受的范围。

在PrimeTime使用report_delay_caculation命令得知,每1000μm线宽为1μm的互连线负载电容值约为0.120pF,即每4000μm的互连线电容约为0.480pF,即单个典型的多级驱动器可驱动长度约为4000μm的线宽为1μm的互连线。因此每4000μm插入一个多级驱动器,使用4个典型多级驱动器将时钟信号传输至芯片中心点。

4.3 时钟信号发散

将时钟信号传输至芯片中心位置后,根据芯片的负载分布情况对时钟信号进行发散,即通过多个多级驱动器将时钟信号推至不同的区域。时钟发散的主要目的是将时钟信号由高层金属层更快的传输至距离负载更近的位置,降低时钟延时,减小互连线之间的串扰噪声。

多级驱动器所驱动的总电容量包括负载电容、互连线电容以及寄生电容的总和[8]。在深亚微米设计中,较长互连线的负载电容已经远远大于标准单元和宏单元的负载电容,成为负载总电容的主要组成部分[9]。通过查找时序信息库(lib)文件得知,芯片级设计中的模块单元时钟端输入电容约为0.02pF~0.04pF,标准单元时钟端输入电容约为0.003pF~0.005pF,远远小于互连线的电容。因此,在进行时钟发散时,各区域距离芯片中心点时钟源点的距离是主要需要考虑的因素。

根据前后级单元互连线长度不超过4000μm距离的设计规则,将时钟信号由芯片中心位置传输至各区域负载周围的时钟路径节点。为平衡时钟延时,降低时钟偏差,在对时钟信号发散结构设计时需遵循以下原则:1)每一条由时钟源点至各分支终点的路径上的多级驱动器数目必须一致;2)单个分支终点多级驱动器距其不同负载的距离的均方差尽量小;3)不同分支终点的多级驱动器距其负载最大距离之间的均方差尽量小。

时钟发散后的时钟结构如图4所示。时钟信号由芯片中心点M点通过Ⅰ、Ⅱ、Ⅲ三点的多级驱动器传输至A、B、C、D四个点的多级驱动器,再分别传输至各区域总计16个时钟分支终点。

完成时钟发散后,需要对各分支路径上的多级驱动器进行驱动能力调整,以平衡各路径的传输延时。芯片中心点的多级驱动器到Ⅰ、Ⅱ、Ⅲ三点多级驱动器的距离保持在4000μm以内,满足PT分析时序的要求,但它共驱动了三条总长度为约为10000μm的互连线,总电容值约为1.20pF,因此芯片中心点选择插入第二级缓冲器数目为8的多级驱动器。同样地,A、B点的多级驱动器分别驱动五个多级驱动器,互连线负载总长度约为15000μm,总电容值约为1.80pF,因此A、B选用第二级缓冲器数目为12的多级驱动器。C、D点的多级驱动器分别驱动三个多级驱动器,互连线负载总长度约为8000μm,总电容约为0.960pF,因此C、D点选用第二级缓冲器数目为8的多级驱动器。

4.4 分支终点时钟树生成

由于触发器负载与模块单元负载的输入电容相差较大,当其处于同一平衡型时钟树时,时钟到达不同类型负载的时钟延时差距较大,导致时钟偏差较大[10],因此,对于触发器负载,由于触发器数目较多,采用EDA工具可自动优化时钟偏差的平衡型二叉树时钟树结构;对于模块单元负载,由于其数目较少、负载电容较大,采用由多级驱动器直接驱动的时钟树结构。

由16个分支终点的多级驱动器分别分出两条时钟路径,一条与一个就近的多级驱动器相连,用于驱动模块单元;另一条与一个CKBD24BWP时钟缓冲器相连,用于驱动触发器单元。对于每个与触发器负载相连的CKBD24BWP缓冲器,首先使用ICC2命令create_generated_clock在其输出端创建一个周期与SCLK周期相同的时钟信号,然后使用synthesize_clock_trees-clock针对每个generated clock进行时钟树综合。对于每个与模块单元相连的最后一级的多级驱动器,使用命令route_group将模块单元时钟输入管脚与多级驱动器的输出端相连,发散型时钟树结构生长完成。完成后的发散型时钟树结构如图5所示。

4.5 时钟延迟平衡

在某些后端设计时,以不影响芯片功能为前提,可更改器件尺寸,或者添加缓冲器和反相器,因此也可以在那些已经很小的延迟路径中插入几个缓冲单元,这样的skew值更佳[11]。

由于模块单元使用多级驱动器进行驱动,时钟信号传输至模块单元的延时是小于时钟信号传至触发器负载的延时的。同时,不同模块内部的时钟延时也不同,这也会导致模块之间时钟偏差过大。为降低时钟偏差,需要对时钟树进行时钟延时平衡。根据PrimeTime的时序报告,在不同模块单元的时钟输入端插入不同的驱动较小的缓冲器,适当延迟时钟信号传输至模块时钟输入端的时间,以此平衡不同负载时钟路径的时钟延时,降低时钟偏差。同时调整各个分支终点多级驱动器包含的CKBD24BWP缓冲器数目,以此平衡不同模块内部时钟延时不同造成的影响。

5 仿真结果与分析

利用EDA工具PrimeTime分别对发散时钟树结构与传统二叉树型平衡时钟树结构进行静态时序仿真。为减少片上偏差导致的时序仿真误差,PT使用AOCV(Advance OCV)基于路径级数和物理距离设置不同下降因子的方法[12],精确报告出两种时钟树的时序质量。两种时钟树的性能比较如表1所示。

由表1可知,在大规模芯片级设计中,传统二叉树型时钟树时钟级数较多,延时很大,而且抗噪声能力很差,导致了建立时间违例数较大。发散型时钟树相比于传统二叉树型时钟延迟和时钟偏差较小,抗噪声能力更强,能更好地为时序收敛服务。

表1 两种时钟树的性能比较

6 结语

在大规模芯片级后端设计中,通过本文方法实现的发散型时钟树比传统二叉树型时钟树减少了26%的时钟延时和22%的时钟偏差以及59%的噪声,大大地减少了时序违例的数量,在数字后端芯片级设计中应用前景广泛。

[1]程锋.超大规模集成电路布局算法研究[D].上海:上海交通大学,2005.

[2]张玲,王澧.百万门系统级芯片的时钟树设计[J].电子与封装,2014,14(12):21-24.

[3]LIN H T,CHUANG Y L,YANG Z H,et al.Pulsed-latch utilization for clock-tree power optimization[J].IEEE Trans VLSI Syst,2014,22(4):721-733.

[4]阳若宁.一种低功耗集成电路的时钟分布策略[J].中南林业科技大学学报,2011,31(12):192-196.

[5]陈祺,林平分,张玥.超大规模集成电路中基于OCV的时序收敛方法[J].电子科技,2009,22(7):30-33.

[6]曾艳飞.鱼骨型时钟结构的研究与实现[D].长沙:国防科学技术大学,2012.

[7]Hou W,Liu D,Ho P H.Automatic register banking for low-power clock trees[C]//Quality of Electronic Design,2009.ISQED 2009.Quality Electronic Design.IEEE,2009:647-652.

[8]张岩,杨银堂.一种新型分布式互连线功耗优化模型[J].西安电子科技大学学报(自然科学版),2014,41(4):36-40.

[9]孙骥.超大规模集成电路时钟线网的布线及优化算法研究[D].上海:上海交通大学,2005.

[10]杨贺,严伟.点接鱼骨型时钟网路设计[J].微电子学与计算机,2016,33(7):11-14.

[11]童琼,张晓林,苏琳琳等.双频双系统导航芯片的时钟树分析和设计[J]. 微电子学,2011,41(2):246-250.

[12]严伟,范光宇,朱兆伟,郑永力.一种改进型FBT时钟树结构[J].微电子学,2017,47(1):92-95.

猜你喜欢
缓冲器驱动器时序
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
更正
气动网络多腔室弯曲软体驱动器结构优化
8编组A型车缓冲器选型对比分析
你不能把整个春天都搬到冬天来
藏起驱动器号确保数据安全
机车用MT-3型缓冲器压装方式改进
可重复使用着陆缓冲器性能及其特点分析