分类号TN47学号GS********
UDC密级公开
工程硕士学位论文
时钟网格的设计与分析
硕士生姓名石柱
学科专业软件工程
研究方向VLSI设计
指导教师蒋江副研究员
国防科学技术大学研究生院
二〇一二年三月
时
钟
网
格
的
设
计
与
分
析
国
防
科
学
技
术
大
学
研
究
生
院
DesignandAnalysisoftheClockMesh
Candidate:ShiZhu
Advisor:iang
Athesis
Submittedinpartialfulfillmentoftherequirements
forthedegreeofMasterofEngineering
inSoftwareEngineering
GraduateSchoolofNationalUniversityofDefenTechnology
Changsha,Hunan,
March,2012
国防科学技术大学研究生院工程硕士学位论文
第I页
目录
摘要.................................................................................................................i
第一章绪论......................................................................................................1
1.1课题研究背景.................................................................................................1
1.1.1时钟网络设计的挑战..........................................................................2
1.1.2设计自动化..........................................................................................3
1.2本课题研究的主要内容.................................................................................4
1.3本文的组织结构.............................................................................................5
第二章时钟网络...............................................................................................7
2.1时钟信号.........................................................................................................7
2.1.1时钟延时..............................................................................................8
2.1.2时钟偏差..............................................................................................8
2.1.3片上误差............................................................................................10
2.2时钟网络的分类...........................................................................................11
2.2.1树状时钟网络....................................................................................11
2.2.2网状时钟网络....................................................................................13
2.2.3混合时钟网络....................................................................................13
2.2.4时钟网络对比....................................................................................14
2.3时钟网格.......................................................................................................15
2.3.1顶层链................................................................................................15
2.3.2全局网格............................................................................................16
2.3.3局部树................................................................................................16
2.4时钟网络选择...............................................................................................17
2.5本章小结.......................................................................................................19
第三章时钟网格设计.....................................................................................20
3.1时钟网格分类...............................................................................................20
3.1.1网格型结构........................................................................................20
3.1.2鱼骨型结构........................................................................................21
3.1.3多脊柱型结构....................................................................................22
3.2预驱动结构...................................................................................................23
3.2.1H树结构............................................................................................24
国防科学技术大学研究生院工程硕士学位论文
第II页
3.2.2并行驱动结构....................................................................................24
3.2.3平衡树结构........................................................................................25
3.3特殊的时钟电路结构...................................................................................26
3.3.1多级逻辑单元....................................................................................26
3.3.2自我收敛............................................................................................27
3.3.3时钟输出端口..................................................................................传承好家风 ..28
3.3.4时钟交叉............................................................................................28
3.4布线间距与布线宽度...................................................................................29
3.4.1布线间距............................................................................................29
3.4.2布线宽度............................................................................................32
3.5设计实现.......................................................................................................33
3.5.1制定规范文件....................................................................................33
3.5.2实现与优化........................................................................................38
3.6本章小结.......................................................................................................42
第四章时钟网格的分析..................................................................................43
4.1延时计算问题...............................................................................................43
4.1.1单元延时............................................................................................43
4.1.2互连线延时........................................................................................46
4.2SPICE仿真...................................................................................................47
4.2.1提取互连参数....................................................................................48
4.2.2模拟仿真与反标................................................................................48
4.2.3时钟网格与时钟树实验比较............................................................52
4.3STA中时钟网格计算..........................................开学第一课观后感600字 .........................................53
4.3.1设计流程............................................................................................54
4.3.2实验结果............................................................................................55
4.4本章小结.......................................................................................................56
第五章结束语................................................................................................57
5.1课题总结.......................................................................................................57
5.2未来工作展望...............................................................................................57
致谢..............................................................................................................59
参考文献...........................................................................................................60
作者在学期间取得的学术成果...........................................................................63
国防科学技术大学研究生院工程硕士学位论文
第III页
表目录
表2.1各种时钟网络优缺点........................................................................................15
表3.1全局网格命令选项............................................................................................37
表4.1时钟网格延时对比............................................................................................51
表4.2设计模块基本信息............................................................................................53
表4.3时钟网格与时钟树实验对比............................................................................53
国防科学技术大学研究生院工程硕士学位论文
第IV页
图目录
图1.1微处理器芯片中集成的晶体管数....................................................................1
图1.2各种效应对芯片性能影响................................................................................2
图1.32011年ITRS发布的电路工作频率发展趋势................................................3
图1.4集成电路设计方法历程....................................................................................4
图2.1全芯片时钟网络结构示意图............................................................................7
图2.2同步数字集成电路基本结构............................................................................8
图2.3正时钟偏差和负时钟偏差的情形..................................................................10
图2.4常见的时钟树结构..........................................................................................12
图2.5网状时钟网络..................................................................................................13
图2.6Alpha21264处理器的时钟结构....................................................................14
图2.7时钟网格示意图..............................................................................................16
图2.8时钟树与时钟网格对比..................................................................................17
图3.1网格型结构时钟网格......................................................................................21
图3.2鱼骨型结构示意图..........................................................................................22
图3.3多脊柱型结构的时钟网格..............................................................................23
图3.4H树结构的预驱动与全局网格线..................................................................24
图3.5并行驱动缓冲器驱动鱼骨型时钟网格..........................................................25
图3.6预驱动结构的区别..........................................................................................25
图3.7时钟路径上的逻辑单元级数对时钟网格综合的影响..................................27
图3.8自我收敛时钟结构及其解决方式..................................................................27
图3.9时钟网格中时钟输出端口的处理方式..........................................................28
图3.10时钟交叉结构及其解决方式........................................................................29
图3.11串扰引起延时增加........................................................................................30
图3.12互连线的耦合电容........................................................................................31
图3.13电容值随金属间距变化的趋势....................................................................31
图3.14侧向电容占总电容的比值............................................................................32
图3.15金属宽度与互连线延时的关系....................................................................33
图3.16基本的CTS指导文件...................................................................................33
图3.17时钟网格设计指导文件内容........................................................................34
图3.18时钟网格设计规范文件................................................................................35
图3.19三种全局网格类型的定义............................................................................37
图3.20时钟网格设计流程........................................................................................39
国防科学技术大学研究生院工程硕士学位论文
第V页
图3.21时钟网格实现效果........................................................................................40
图3.22时钟网格延时信息........................................................................................41
图4.1单元延时、上升跳变时间、下降跳变时间..................................................44
图4.2查表计算单元延时..........................................................................................44
图4.3双线性插值算法..............................................................................................45
图4.4并行驱动结构..................................................................................................45
图4.5延时模型以及RC链.......................................................................................46
图4.6全局网格线的RC网络...................................................................................47
图4.7互连参数提取..................................................................................................48
图4.8时钟网格的Hspice网表.................................................................................49
图4.9Hspice延时计算流程......................................................................................50
图4.10Hspice模拟仿真波形....................................................................................50
图4.11Hspice仿真延时信息....................................................................................51
图4.12EDI与Hspice时钟偏差对比.......................................................................51
图4.13最小插入延时对比........................................................................................52
图4.14最大插入延时对比........................................................................................52
图4.15静态时序分析流程........................................................................................54
图4.16反标回STA的延时文件格式.......................................................................54
图4.17STA中时钟网格路径延时............................................................................55
图4.18STA中时钟网格分析....................................................................................56
国防科学技术大学研究生院工程硕士学位论文
第i页
摘要
随着集成电路技术的发展,工艺特征尺寸不断缩小,芯片集成度与频率不断
提高,使得集成电路芯片设计对时钟网络的要求越来越严格。时钟网格是一种网
状时钟网络,它具有时钟偏差小、片上误差小、驱动能力强等特点,适合于对时
钟网络要求很高的芯片设计。但是,时钟网格结构特殊,它使用并行驱动缓冲器
驱动全局网格,再通过全局网格驱动所有负载叶节点。时钟网格的这种结构引入
了新的设计问题。
首先,时钟网格难以实现。EDA工具对时钟网格设计实现的支持不完善,不
能自动实现,通常只能通过手工实现,费时费力,对设计者的经验要求比较高。
其次,时钟网格的延时信息计算不准确。基于电压源的单元延时模型无法计
算并行驱动缓冲器的延时,估算的结果误差大。
本文针对以上问题深入研究了时钟网格,主要贡献与创新归纳如下:
详细分析了时钟网格。时钟网格通常由顶层链、全局网格和局部树组成,
其中全局网格是时钟网格设计的关键部分,深入了解时钟网格的结构对实
现时钟网格具有指导意义。
本文实现了一个时钟网格。通常时钟网格只能通过有经验的设计者手工设
计,当设计模块修改时,时钟网格往往需要重新设计。本文探索了由EDI
工具自动实现的方法,结合时钟网格的结构特点、布局的拓扑结构以及时
钟结构,确定时钟网格的实现类型,设计规范文件,引导工具完成了时钟
网格的设计,减小了迭代时间与设计难度。本文中采用时钟网格实现时,
局部时钟偏差只有26.4ps,而采用时钟树实现时,局部时钟偏差为43.5ps。
针对并行驱动缓冲器的延时无法计算的问题,通常只能估算,精度难以保
证。本文通过寄生参数提取工具获得时钟网格的互连参数,采用Hspice
工具进行模拟仿真,获得了时钟网格的延时信息,并将时钟延时信息反标
回EDA工具中,指导时序分析。通过该流程得到了并行驱动缓冲器的延
时,彻底解决了物理设计中分析时钟网格的难题。
本文研究了时钟网格设计中存在的两大难题,为工程实践中实现时钟网格设
计提供了有力支持。
关键词:时钟网格;时钟偏差;片上误差;并行驱动缓冲器;全局网格
国防科学技术大学研究生院工程硕士学位论文
第ii页
Abstract
Withthedevelopmentofintegratedcircuittechnology,theprocessfeaturesizes
continuetoshrink,theintegrationandfrequencyofchipinhanced,makingthe
eshisa
kindofnet-shapedclocknetwork,characterizedbylowclockskew,smallOCV,and
strongdrivingcapability,fitforchipdesignwhichhasstrictdemandonclocknetwork.
However,theclockmeshhasveryspecialstructureasitusmulti-drivertodrivethe
globalmesh,ucture
leadstotwoproblemsindesigningclockmesh.
Ononehand,portofEDAtools
isimperfect,cannotbeautomatically,usuallybyhandtoachieve,timeconsumingand
thedesigningneeddependingheavilyontheexperienceofdesigners.
Ontheotherhand,thestructureresultsintheinaccuratecalculationofdelayof
clockmesh,forthecelldelaymodelbadofvoltagesourcecannotcalculatethedelay
ofmulti-driver.
Inordertosolvetheproblemsabove,thispaperdeeplyexploresclockmesh,andit
includesthefollowingmaincontributionandinnovation.
Firstly,y,theclockmesh
consistsofTopChain,GlobalMesh,andLocalTree,amongwhichGlobalMeshisthe
ult,itisofguidingsignificancetohaveadeep
understandofthestructureofclockmesh.
Secondly,usuallyclockgridcanonlybemanuallydesignedbyexperienced
designers,whenthemodificationofthedesignmodule,theclockgridoftenneedsto
ticleexploresamethodofautomaticallybytheEDItool,combined
withthestructuralcharacteristicsoftheclockmesh,thetopologyofplacementand
clockstructure,,designspecification
documentstoguidethetooltocompletethedesignoftheclockgrid,reducesthe
tionofclockmesh,thedesignbrings
outlocalclockskewaslittleas26.4pswhilethenumberreach43.5pswiththesueof
clocktree.
Finally,asfortheproblemofincapabilitytocalculatethedelayofmulti-driver,
canonlybeestimated,perobtainsthe
us
Hspicetooltosimulateandobtainsthedelayinginformationofclockmesh,whichis
htheprocess,thedelay
informationofmulti-driverisobtainedandthetroubleofanalyzingclockmeshin
physicaldesigniscompletelygotridof.
国防科学技术大学研究生院工程硕士学位论文
第iii页
Thispaperstudiestwodifficultproblemxistinginthedesignofclockmesh,thus
providingpowerfulsupporttorealizetheclockmeshdesigninengineeringpractice.
Keywords:ClockMesh,ClockSkew,OCV,Multi-Driver,GlobalMesh
国防科学技术大学研究生院工程硕士学位论文
第1页
第一章绪论
在当今信息化社会大背景下,微电子技术作为前沿信息技术,它不仅是信息
产业发展的重要推力,而且其发展水平与产业规模更是衡量一个国家科技强弱、
经济实力的重要标志。集成电路作为微电子技术的核心技术,其发展受到各国的
高度重视,在未来的发展中具有广阔的前景。
1.1课题研究背景
从1958年TI公司的JackKilby研制出第一块由两个晶体管组成的集成电路开
始,到1972年的约2300个晶体管的4004微处理器[1],再到2011年Intel公司宣
布的最新一代拥有31亿晶体管的安腾处理器[2],集成电路规模一直按照“摩尔定
律”——每18个月翻一番的速度增长。图1.1显示了1971年到2011年间主要微
处理器芯片中集成的晶体管数量按照摩尔定律递增[3]。芯片集成度的提高得益于集
成电路特征尺寸的缩小,这使得集成电路设计发生了深刻的变化。在纳米级工艺
的集成电路设计中,集成度的提高与互连线占延时主导地位,却使得集成电路设
计中时钟网络的设计变得更加复杂。
图1.1微处理器芯片中集成的晶体管数
国防科学技术大学研究生院工程硕士学位论文
第2页
1.1.1时钟网络设计的挑战
在同步数字集成电路中时钟网络是数据信号传递的基准,它的设计好坏直接
决定了集成电路芯片的功能与性能[4][5]。时钟网络在芯片内具有布线长度最长、分
布范围最广、信号翻转频率最高等特点[4]。同时时钟网络扇出大、功耗高、对噪声
的敏感度高。因此时钟网络设计成了集成电路设计中最关键的一步。
1.1.1.1集成度
集成电路发展到如今的片上系统(SystemonChip,SoC),受益于集成电路
工艺的提升与特征尺寸缩小,同样大小的芯片面积内可以集成更多的晶体管。集
成度的提高直接导致芯片内互连线长度增加,互连线延时已经远远超过器件延时,
成为影响芯片性能的主要因素,图1.2显示了各种效应对芯片性能的影响[6]。
图1.2各种效应对芯片性能影响
在纳米工艺条件下,互连线的寄生效应明显,设计变得更加复杂,时钟网络
因其在芯片中特殊的作用与结构,受互连线寄生效应的影响也非常大。
首先,芯片内互连线延时占主导地位,时钟网络延时优化的重点不再是单
元延时,而是互连延时;
其次,时钟网络布线几乎遍及芯片的每个角落,时钟网络总电容大、信号
翻转频繁,时钟网络消耗大量的功耗;
最后,互连线之间的耦合电容除了导致互连线延时增加之外,互连线之间
的串扰问题也变得日益突出,时钟路径上的毛刺极易导致芯片内工作状态
发生改变,影响芯片正常稳定运行。
1.1.1.2时钟频率
芯片散开头的四字成语 内集成的晶体管数目不断增加的同时,芯片的工作频率也随工艺的提升
国防科学技术大学研究生院工程硕士学位论文
第3页
而不断提高,图1.3是2011年国际半导体技术蓝图(ITRS)发布的集成电路工作
频率的发展趋势[7]。时钟周期的缩短,即使在时钟偏差、片上误差等因素不变的前
提下,也进一步压缩了周期内可用时间,因此在频率越高的设计中,对时钟网络
的要求也越高。
图1.32011年ITRS发布的电路工作频率发展趋势
1.1.1.3时钟功耗
常规的时钟树在处理大扇出负载时,需要消耗大量的缓冲器,逐级将负载分
散,直到驱动缓冲器能够驱动为止。时钟叶节点分布范围广、时钟线布线距离长、
片上误差影响明显造成时钟线的互连延时难以精确控制,为平衡时钟偏差,芯片
设计过程中又需要插入大量缓冲器或者冗余单元(DummyCell),插入的大量缓
冲器,额外消耗了芯片内宝贵的布局面积,同时又增加了功耗。而时钟网格在处
理大负载扇出时,虽然不需要插入大量的缓冲器,但是通过规则的网格布线驱动
大扇出负载,导致互连电容消耗功耗增大。
综上所述,集成度与时钟频率的提高,使时钟网络在生成时需要消耗大量的
缓冲器,并且时钟网络自身负载电容大,造成时钟网络是芯片功耗消耗的大户[5][8]。
1.1.2设计自动化
集成电路芯片集成度的提高与工作频率的提升,使得集成电路设计方法也发
生了根本性的变化。集成电路复杂度提高,设计周期延长,芯片面市推迟,又迫
使人们依赖成熟的设计流程与更加高效的EDA工具。
图1.4为集成电路设计方法的发展历程。集成电路设计初期,电路规模小,多
国防科学技术大学研究生院工程硕士学位论文
第4页
采用手工绘制电路,而后芯片设计规模提升,则必须借助计算机与EDA工具来完
成芯片的设计工作,它们极大地提高了生产效率。假如没有EDA工具,设计者将
无法应对日益增加的芯片规模,特别是复杂的SOC设计,摩尔定律将很难持续[9]。
IPCore
Bad
RTL
Bad
Stand
Cell
Bad
Element
Bad
0Today
D
e
s
i
g
n
Me
t
h
o
d
图1.4集成电路设计方法历程
在SOC设计中,动辄数亿晶体管的设计规模,无论是对设计者,还是EDA
设计工具、硬件服务器等也都是一大挑战,同时芯片设计过程中还面临着设计迭
代周期太长、芯片面市压力等挑战。这就需要在集成电路芯片设计过程中,尽可
能的采用高效的EDA工具与成熟的设计流程,使得设计能够尽快收敛。
目前,EDA工具依然存在某些设计瓶颈,设计者因为得不到有效的工具支持,
不得不花费大量的精力处理复杂的问题。在时钟网格的设计过程中,EDA工具支
持是有限的,若依照传统的布局布线设计流程,时钟网格将难以实现与分析。
1.2本课题研究的主要内容
时钟网络是芯片中最重要的电路结构,设计者为了满足芯片的性能要求,不
断提出新的时钟网络结构。在集成电路设计提升到纳米级工艺条件下,时钟网络
的设计面临着比过去任何一个时期都要严峻的挑战,芯片的设计规模超过数亿晶
体管[1][10][11][12],设计频率达到5.2GHz[10],设计功耗超过了150W[13]。这些都促使
时钟网络的设计方法与结构不断改进,以达到预定时序、面积和功耗等约束的要
求。因此研究时钟网格的设计方法、流程,并分析、建立新的时钟网格设计流程,
对高性能芯片设计十分必要。
首先,本文分类总结了常见的时钟网络结构,归纳出它们的优缺点;同时明
国防科学技术大学研究生院工程硕士学位论文
第5页
确了时钟网络设计中常关注的几项指标;时钟网格是一种网状时钟网络,本文详
细对比了时钟网格与时钟树综合(CTS)工具实现的时钟树的优缺点,虽然时钟网
格具有明显优势,但这也是以牺牲一定的设计资源为代价的。设计者可以由此为
依据,选择更符合自己设计要求的时钟网络。
其次,在时钟网格的设计过程中,首先必须了解时钟网格的组成、适用于怎
样的设计,以及时钟自身的结构。本文对时钟网格进行深入研究,总结提出了三
种不同的时钟网格结构,在不同的设计芯片中,根据其自身布局规划特点和时钟
结构,可以采用不同的时钟网格结构实现。本文还对时钟网格无法处理的时钟结
构提出了解决方案。本文最后实现了一个时钟网格设计,详细介绍了实现过程。
最后,在时序分析过程中,由于并行驱动缓冲器的延时无法准确计算,导致
时序分析结果不可靠,如何更精确的计算出并行驱动缓冲器的延时,将有非常重
要的实际价值。本文将采用布局布线与SPICE电路模拟相结合的方法,解决并行
驱动缓冲器的延时计算问题。首先指导布局布线工具实现时钟网格,提取出时钟
网格的RC网络,编写SPICE网标,然后通过Hspice工具仿真模拟得到时钟网格
的延时,并反标回布局布线工具,从而使布局布线工具精确获取时钟网格的延时
信息与信号跳变时间。
同时,在设计签核阶段,需要通过静态时序分析工具检查芯片时序是否满足
时序要求,本文建立了静态时序分析工具与Hspice工具相结合的分析流程,使用
寄生参数提取工具从设计交换格式(DEF)文件中提取出互连寄生参数,结合Hspice
仿真,将延时信息反标回静态时序分析工具中,从而使静态时序分析工具也能精
确分析时钟网格,确保签核前的时序检查得以正常进行。
在时钟网格的设计中,设计者需要依据设计芯片的特征,选取适合的时钟网
格结构,结合已有的布局布线设计工具与电路模拟工具,建立新的设计流程,才
能彻底解决时钟网格的设计与分析难题。
1.3本文的组织结构
第一章,绪论。主要论述当前集成电路行业的现状,时钟网格设计的挑战,
简述本文研究课题的主要工作与重要意义。
第二章,时钟网络。主要论述数字集成电路芯片设计中时钟网络的主要结构,
以及他们各自的特征,详细对比了网状时钟网络、树状时钟网络和混合时钟网络
之间的优缺点,介绍了时钟网格的基本结构,总结对比了时钟网格与时钟树,方
便设计者选择时钟网络。
第三章,时钟网格设计。实现了一个时钟网格的设计,时钟网格依据不同设
计的特点与时钟结构,采取不同的实现结构。目前EDA工具对时钟网格的支持还
国防科学技术大学研究生院工程硕士学位论文
第6页
不够,需要设计者有丰富的经验,同时还需要手工微调。
第四章,时钟网格分析。主要是实现了时钟网格通过Hspice工具进行仿真分
析的设计过程。时钟网格通过特殊结构——并行驱动缓冲器与全局网格,能够驱
动大扇出负载,然而基于电压源模型的时序库是无法用于准确计算并行驱动缓冲
器延时的,全局网格也不能采用Elmore公式计算延时,这就导致了芯片设计中时
序分析的不准确。因而本文中采用Hspice工具对时钟网格进行仿真分析。
第五章,总结与展望。
国防科学技术大学研究生院工程硕士学位论文
第7页
第二章时钟网络
时钟网络在同步数字集成电路中,起到同步芯片内所有时序单元状态翻转的
作用,决定着芯片能否正常和稳定的运行。同时,时钟网络具有扇出信号最大、
布线距离最长和翻转频率最高的特点[4],特别是在进入纳米工艺阶段后,芯片规模
提高、设计面积增大以及互连线延时占延时的主要部分,这些都使得时钟网络设
计变得更加困难、更加重要。
2.1时钟信号
对时钟信号概念的深入了解,将会为设计高性能的时钟网络起指导性作用。
芯片内时钟信号通常由锁相环(Pha-LockedLoop,PLL)产生,通过全局时钟网
络传递到各个设计模块的时钟根节点。在图2.1所示的全芯片时钟网络结构中,PLL
产生的时钟信号传递到芯片中心,然后被分布到四个模块的时钟根节点,这样做
有利于平衡各个模块之间的时钟到达时间。通常全局时钟网络布线距离长,多采
用高层宽金属布线。
在各个模块内,时钟网络单独实现,在做芯片顶层设计时,才会同时考虑全
局时钟与模块内时钟。时钟信号通过模块内时钟网络传递到各个叶节点,如图2.1
中Block3所示的结构,模块内时钟网络布线通常采用多倍宽度、多倍间距的金属
布线。
Chip
PLL
Block3
Block1
Block2
Block4
Sinks
图2.1全芯片时钟网络结构示意图
国防科学技术大学研究生院工程硕士学位论文
第8页
2.1.1时钟延时
时钟信号在时钟网络中的延滞称为时钟延时,通常设计中的时钟延时大小由
时钟根节点到最远叶节点的距离决定,从图2.1可知,时钟延时由左下角的PLL
与右上角的叶节点距离决定。在层次化设计中,时钟延时由两部分组成[4]:
时钟源插入延时:时钟信号由时钟源PLL传递到模块时钟根节点的延时。
时钟网络插入延时:也是通常我们所说的插入延时,时钟信号由模块时钟
根节点传递到模块内各个时钟叶节点的延时。
在如图2.2所示的同步数字集成电路中,时钟网络插入延时又分为两部分,公
共路径(CommonPath)延时和非公共路径(Non-CommonPath)延时。公共路径
延时是触发器R1与R2的时钟插入延时的公共部分,优化公共路径,能同时缩短
R1、R2时钟插入延时而不会引起R1、R2之间的时序问题,但是消耗的时钟功耗、
设计资源不同。而非公共路径的优化,对建立时间是否满足、时钟偏差大小、片
上误差大小都有明显影响。因此,从上面的分析来看,时钟网络设计的一种通常
方式是尽量优化时钟网络的非公共路径,满足时序要求,同时尽量缩短时钟网络
的公共路径减少功耗与设计资源消耗。
SET
CLRQ
QSET
CLR
D
R2
Logic
Q
QSET
CLR
D
R1
Out
In
CLK
CommonPathNon-CommonPath
Non-CommonPath
图2.2同步数字集成电路基本结构
2.1.2时钟偏差
集成电路中时钟信号翻转的到达时间在空间上的差别通常称为时钟偏差[1],即
芯片内不同叶节点的时钟延时之差。时钟偏差分为全局时钟偏差(GlobalClock
Skew)与局部时钟偏差(LocalClockSkew),其中全局时钟偏差是指设计芯片内
所有叶节点之间的最大时钟偏差,而局部时钟偏差是指拥有数据路径的叶节点之
间的最大时钟偏差。
国防科学技术大学研究生院工程硕士学位论文
第9页
时钟偏差是衡量时钟网络好坏的一个重要指标,严重影响着芯片的性能与功
能。目前与时钟偏差相关的研究主要分为两部分:
缩小时钟偏差,实现零时钟偏差的时钟网络设计[14][15][16];
有用时钟偏差,将时序富余的时间借给时序不满足的逻辑级。
这两种方法的最终目标都是满足芯片设计的时序要求,通常情况下,基于零
时钟偏差的时钟网络设计,时钟偏差不能超过芯片时钟周期的10%,为了控制时
钟网络的时钟偏差,时钟网络设计中经常插入冗余单元(DummyBuffer)、去偏
斜电路(DeskewCirecuits)[17][18][19]等。虽然目前基于零时钟偏差的时钟网络设计
流程与EDA工具支持都非常成熟,但是在纳米工艺下,芯片规模与设计面积都很
大,互连线延时占延时主要部分,精确控制时钟偏差面临巨大挑战。
为此,本文后续章节实现的时钟网格设计,将致力于解决纳米工艺下零时钟
偏差的时钟网络设计,依照上一小节对公共路径与非公共路径的阐述,它的设计
原理可以理解为尽量多采用公共时钟路径设计,减少非公共时钟路径的影响,因
此时钟网格在结构上就非常适合基于零时钟偏差的时钟网络设计。
基于有用时钟偏差(UfulSkew)的时钟网络设计,是现在时钟网络设计的
另一个方向。芯片设计过程中,通过综合工具将RTL级代码综合成门级网表,由
于芯片架构、逻辑的复杂度以及物理设计中的布局规划等因素,使得门级网表中
各级逻辑之间的逻辑单元无法均匀分配,为了解决此种情况下的时序问题,设计
者可以通过调整时钟网络结构,将时序富裕的逻辑级的时间借给时序紧张的逻辑
级,最终达到设计时序收敛的目的。
这种设计方法虽然能大大减少建立时间违反,但是时钟路径延时的改变将导
致时钟网络设计过程中需要额外插入一些缓冲器,用于调整时钟路径延时,并且
保持时间也会因为时钟偏差变大而更容易违反。
考虑如图2.3所示的两种时钟偏差情形,假设已知下列时序信息[1]:
寄存器最大传播延时(T
c-p_max
)、最小传播延时(T
c-p_min
)
寄存器建立时间(T
tup
)、保持时间(T
hold
)
组合逻辑最大传播延时(T
logic_max
)、最小传播延时(T
logic_min
)
时钟偏差(T
skew
)、时钟周期(T
cycle
)
对于建立时间必须满足:
T
cycle
+T
skew
≥T
c-p_max
+T
logic_max
+T
tup
(2.1)
对于保持时间必须满足:
T
hold
+T
skew
≤T
c-p_min
+T
logic_min
(2.2)
图2.3(a)中的正时钟偏差意味着式(2.1)所表示的建立时间约束将很容易
满足,但是对式(2.2)所表示的保持时间却很容易造成违反,导致设计出现功能
国防科学技术大学研究生院工程硕士学位论文
第10页
错误,因此在基于有用时钟偏差的设计中,为了解决时序问题而人为制造的正时
钟偏差,不可以太大,否则容易出现保持时间违反[20]。这也限制了有用时钟偏差
的使用。图2.3(b)所示的负时钟偏差意味着保持时间基本不会出现违反,但是
会降低时钟周期内逻辑单元可用的时间,原本设计电路可以工作在更小的时钟周
期内,因为负时钟偏差的存在,不得不降低芯片的性能。
Q
QSET
CLR
D
R1
Q
QSET
CLR
D
R2
Q
QSET
CLR
D
R3
Logic
Logic
Delay
DelayDelay
Delay
In
Q
QSET
CLR
D
R1
Q
QSET
CLR
D
R2
Q
QSET
CLR
D
R3
Logic
Logic
In
Out
CLK
CLK
Out
(a)PositiveSkew
(b)NegativeSkew
图2.3正时钟偏差和负时钟偏差的情形
2.1.3片上误差
集成电路工艺的发展进步在给集成电路芯片性能带来巨大提升的同时,其自
身的误差也在逐渐成为影响着芯片设计的一个因素,特别是在纳米工艺条件下,
不同位置上晶体管的栅氧化层厚度、掺杂浓度、沟道长度、沟道宽度等等,都有
可能因为工艺的偏差而不同,从而影响标准单元的阈值电压、寄生电容、传播延
时等等。而且,互连线的宽度、厚度以及绝缘层的厚度等,受工艺影响也很大,
导致互连线的寄生参数随工艺波动,从而使互连线延时计算存在误差[1]。因此,在
芯片上不同位置的相同标准单元,即使在输入信号与输出负载相同的情况下,延
时也会不相同。芯片流片之后,这种由于工艺的偏差而引起的误差称为片上误差。
为此在纳米工艺下计算时钟偏差时,为了保证设计的芯片满足时序要求,设
计者需要根据路径延时,增加一定百分比的时序富余。如图2.2所示的数字集成电
路结构中,因为公共路径上工艺偏差对触发器R1、R2的影响是相同的,因此公共
路径上不增加任何时序富余。
而非公共路径需要分别考虑对R1、R2影响,当R1触发器的非公共路径延时
国防科学技术大学研究生院工程硕士学位论文
第11页
因为工艺偏差而增大,R2触发器的非公共路径延时因为工艺偏差而减小时,R1、
R2之间的负时钟偏差最大,建立时间容易出现违反,对设计芯片的性能影响最大。
而当R1触发器的非公共路径延时因为工艺偏差而减小,R2触发器的非公共路径
延时因为工艺偏差而增大时,R1、R2之间的正时钟偏差最大,保持时间容易出现
违反,对设计芯片的功能影响最大。
由以上分析可知,如果时钟网络结构的公共路径长而非公共路径短,则能最
大幅度的降低片上误差的影响,本文实现的时钟网格正好符合这个要求。
2.2时钟网络的分类
时钟网络设计是集成电路物理设计过程中公认的关键一步,为此,设计者对
时钟网络的研究从未停止过,本文根据目前常用的时钟网络结构、特征,将其归
纳为以下三大类[4][21][22]:
树状时钟网络
网状时钟网络
混合时钟网络
2.2.1树状时钟网络
树状时钟网络中时钟信号从时钟根节点出发,通过一系列时钟缓冲器,逐步
散开,最终到达叶节点,从时钟根节点到各个负载叶节点的时钟路径分布类似一
颗大树,因而被形象的称为时钟树。如图2.4中(a)到(d)为常见的树状时钟网
络。
2.2.1.1H树
H树结构的时钟网络是常见的一种树状时钟网络,如图2.4(a)。它的特征是
通过精心设计的对称结构,来使时钟信号从时钟根节点到叶节点的距离相等,从
而消除因为布线距离不同而造成的时钟偏差。H树是一种基于零时钟偏差的时钟
网络,理论上是可以达到零时钟偏差的,但是时钟布线过程中,时钟线很容易受
到布线阻挡层、IP核以及存储器模块的影响,从而很难做到完全对称,而且布线
易受片上误差影响,导致无法控制的时钟偏差。目前H树结构的时钟网络多用于
层次化设计的芯片中,将时钟信号从PLL中,经过H树后较好的将时钟信号分布
到相隔较远的几个设计模块内。
锥化H树如图2.4(b)与X树如图2.4(c),可以看作是H树的发展,其中
锥化H树可以有效的减小叶节点的反射电流,因此将分支前后的布线宽度设置为
不同的布线规则。X树的扇出比H树要大,但是应用比较少见,目前半定制设计
国防科学技术大学研究生院工程硕士学位论文
第12页
中,大部分的集成电路设计只支持曼哈顿式布线,在全定制设计中才会支持45
角布线,因此X树结构时钟网络的实现受限于集成电路工艺技术。
(b)TaperedH-Tree(a)H-Tree
(c)X-Tree
(d)BalanceTree
图2.4常见的时钟树结构
2.2.1.2平衡树
平衡树因为结构简单、实现方便、占用布线资源少、可灵活调整,因而得到
了各大EDA工具的支持,是目前应用最为广泛的时钟网络结构,如图2.4(d)所
示。平衡树实现时,工具从时钟根节点出发,沿时钟路径一路追踪,直到遇到叶
节点为止,追踪出所有的叶节点,然后根据叶节点所处的物理位置,把物理位置
较近的一组叶节点用缓冲器驱动,形成一颗小树,然后将一组小树由缓冲器驱动,
国防科学技术大学研究生院工程硕士学位论文
第13页
形成一颗大树,最后形成整个平衡树结构。工具在完成这一系列工作后,就开始
优化时钟偏差、插入延时,整个实现过程完全可以交给工具自动完成。
2.2.2网状时钟网络
时钟树虽然是现在最常见的时钟网络结构,但是最早的时钟网络结构却是时
钟网格,它是一种网状时钟网络如图2.5所示。时钟网格通过金属布线,将设计模
块划分为一个个小区域,在这个小区域内,叶节点就近连接到金属布属龙是哪一年 线之上,然
后采用大量缓冲器并行驱动整个布线网络。对于一个设计模块,其内部的负载叶
节点数量比较固定,因此设计时钟网格时,设计模块布局改变一般不会影响时钟
网络的性能,即使在布局改变较大的情况下,依然可以很好的预见时钟网格的性
能。而且时钟路径中公共路径长,非公共路径仅仅局限于布线网格之内,因此时
钟偏差要比时钟树要好。
但是时钟网格消耗了大量的金属布线,线电容大、功耗高,并且时钟网格的
设计实现、分析比较困难,目前的EDA工具支持不完善,设计者手工操作的工作
多,对设计者的经验要求高。因此本文将着重解决时钟网格的设计与分析。
(a)ClockGrid
(b)ClockMesh
图2.5网状时钟网络
2.2.3混合时钟网络
混合时钟网络体现了设计者在时钟网络性能与设计资源之间的权衡取舍。它
结合了树状时钟网络与网状时钟网络的优点,使其更适应现代高性能芯片的要求
[23][24][25]。图2.6为Alpha21246处理器中的混合时钟网络结构[26]。该混合时钟网络
国防科学技术大学研究生院工程硕士学位论文
第14页
设计中时钟信号首先通过树状时钟网络分布到芯片的全局时钟网格之上,全局时
钟网格由4个窗格组成,如图2.6(b)所示,而后时钟信号在不同的窗格内分别
通过本地树、主时钟网格分布到所有的叶节点,如图2.6(a)所示。混合时钟网
络虽然性能出众,但是其设计实现、分析等,还存在大量问题,因此仅仅应用于
高性能芯片中。
PLL
(b)
(a)
图2.6Alpha21264处理器的时钟结构
2.2.4时钟网络对比
目前,主流的设计方法依然是本文上面所提到的树状时钟网络、网状时钟网
国防科学技术大学研究生院工程硕士学位论文
第15页
络与混合时钟网络设计,针对以上三类时钟网络结构的优缺点以及适用设计的不
同,本文对这三类结构的时钟网络的优缺点进行了归纳总结,如表2.1所示。
表2.1各种时钟网络优缺点
优点缺点典型代表
树状时钟
网络
1.功耗低;
2.容易实现;
3.布线资源使用少;
工具支持好;
5.可利用有用时钟偏差。
1.性能一般;
2.时钟延时大;
3.时钟偏差难控制;
4.对工艺偏差敏感;
1.平衡树
2.H树
网状时钟
网络
1.性能优越;
2.时钟偏差小;
3.工艺偏差小;
4.时钟延时小;
5.驱动负载强。
1.功耗高;
2.时钟分析难;
3.布线资源消耗多。
时钟网格
混合时钟
网络
1.驱动负载强;
2.工艺偏差较小;
3.时钟偏差可控;
4.时钟网络性能好;
5.可利用有用时钟偏差。
1.功耗较大;
2.手工实现;
3.时钟分析难;
4.时序分析难;
5.布线资源消耗较多。
局部树与网格
的混合时钟网
络
时钟网络的设计从来都是集成电路物理设计者最重视的部分,而在如今纳米
工艺、高集成度、高时钟频率、大芯片面积的苛刻要求下,研究人员已经在实验
室中取得了多种新型的时钟网络结构[27][28],例如采用受环境变化和工艺影响小的
光互连来代替时钟布线中的电互连[1][29],但是采用光互连会导致对光电转换元件要
求非常高,因而这项很有潜力的技术还在研究中。
2.3时钟网格
时钟网格是一种基于零时钟偏差的网状时钟网络,由前一小节的表2.1可知它
是一种性能优越的时钟网络,但是由于设计实现困难,布局布线工具分析不够准
确,因此,本文将在后怎么样能丰胸 面两章节详细描述时钟网格的设计与分析。本小节将主要
介绍时钟网格的一些基本概念。
时钟网格通常由以下三部分组成:顶层链(TopLevelChain)、全局网格(Global
Mesh)和局部树(LocalTrees),如图2.7所示[30]。
2.3.1顶层链
顶层链是指从时钟输入端口ClkRoot,到全局网格驱动之间的缓冲器链。如图
2.7中TopLevelChain部分。它是设计中所有叶节点的公共路径,因此顶层链虽然
国防科学技术大学研究生院工程硕士学位论文
第16页
也受片上误差影响,但是不会影响整个芯片设计的功能与性能。另外时钟根节点
一般在设计模块的边界,通过顶层链将时钟信号从模块边界送至模块的中心,有
利于减少因为根节点位置偏僻而引起的时钟偏差。最后顶层链也非常适合做粗粒
度的门控时钟,在顶层链上插入门控时钟等单元,可以控制整个时钟网格的时钟
信号翻转。
图2.7时钟网格示意图
2.3.2全局网格
全局网格的作用是将时钟信号分布在设计的整个时钟区域,同时很好的控制
时钟延迟和时钟偏差。通常全局网格由并行驱动缓冲器和全局网格线两部分组成,
如图2.7中GlobalMesh部分。因为负载叶节点全部都挂载到全局网格线之上,因
此并行驱动缓冲器先由两级预驱动(Pre-Drive)缓冲器驱动七个最终驱动
(Final-Drive)缓冲器,然后再驱动全局网格线,将时钟信号分布到整个时钟区域。
该结构虽然解决了时钟网络大扇出、大负载的问题,但是在布局布线工具中,基
于电压源模型的时序库文件是无法用于准确计算并行驱动缓冲器的延时,导致时
钟网格的分析困难。这将是本文后面的研究重点之一。
2.3.3局部树
局部树用于将时钟信号从全局网格分布到每个叶节点的时钟端,如图2.7中的
LocalTree部分。局部树是时钟路径的非公共部分,容易受片上误差影响而增大时
国防科学技术大学研究生院工程硕士学位论文
第17页
钟偏差,但是局部树的互连范围小,引起的时钟偏差对芯片性能影响远小于时钟
树结构。同时,局部树是非常适合做细粒度的门控时钟的,每一个局部树的驱动
缓冲器均可以替换为门控时钟单元,控制该局部树内的叶节点。
2.4时钟网络选择
芯片设计时,选择哪一种时钟结构是至关重要的,其中以时钟树与美文200字 时钟网格
最常见,本小节将重点分析时钟网格与时钟树的不同之处,供设计者选择时钟网
络。
时钟网格是一种典型的基于零时钟偏差的时钟网络结构,并且时钟信号从顶
层链到全局网格都是公共路径,非公共路径很短,只有局部树一段,因而片上误
差影响很小。而时钟树在以零时钟偏差为目标的设计实现中,时钟树的非公共时
钟路径很长,受片上误差影响很大。因此对片上误差不敏感,将是时钟网格优于
时钟树的主要原因。
(b)ClockMesh
(a)BlalanceTree
R2
R1
R2
R1
60ps
100ps
图2.8时钟树与时钟网格对比
在如图2.8中,假设时钟树与时钟网格的插入延时100ps,因片上误差而需要
国防科学技术大学研究生院工程硕士学位论文
第18页
留7%的时序富裕,此时时钟网格受片上误差的影响要明显小于时钟树。对于图2.8
(a)所示的时钟树结构[31],因为R1、R2的非公共路径很长,由于片上误差而引
入的时钟偏差为14ps,而时钟网格由于片上误差一起的时钟偏差只有8.4ps。
从本文后面实际的设计实例中来看,时钟网格的非公共路径延时远远小于
60%的比例,因此因片上误差而引入的时钟偏差几乎可以忽略。
由本章前面几小节的分析,本文归纳出时钟网格与时钟树的主要区别:
时钟偏差方面,时钟网格能比时钟树实现更小的时钟偏差,但是在实现有
用时钟偏差时比较困难,对于少量叶节点通过手工调整时钟网格路径也是
个不错的选择。
时钟延时方面,时钟网格使用多个并行驱动缓冲器,与时钟树相比,可以
在减少时钟级数、降低时钟网络插入延时的同时,驱动相同的负载。
片上误差方面,结构上决定了时钟网格对片上误差的敏感度比时钟树更
低,如图2.8所示。
时钟功耗方面,通常情况下,时钟网格消耗更多的功耗,由于时钟网格的
最后一级消耗的功耗最多,采用局部树结构的时钟网格功耗控制要好些。
时钟结构方面,时钟网格的结构不如时钟树灵活,对于某些时钟网络结构
需要特殊处理,而时钟树没有任何限制。
布局规划方面,时钟网格依赖整齐排布的缓冲器和规则对称的实现模式控
制时钟偏差。在构建网格线时,主干与分支的位置应避免与已经存在的布
局布线阻挡层或电源线冲突,因此,时钟网格在矩形或者较少阻挡层的布
局中,效果会更好些。时钟树虽然对布局规划要求不高,但是在不规则的
布局规划或阻挡层较多的设计中,布线受到限制,导致时钟偏差难以控制,
时钟网络性能低。
时钟设计的自动化实现方面,时钟网格还不能做到全自动化实现,设计者
必须选择时钟网格的实现方式、多级并行驱动缓冲器的级数等。时钟树虽
然是全自动实现,但是为了获取较高的时钟网络性能,设计者往往需要反
复不断的迭代调整。
驱动器类型方面,时钟树倾向于采用工艺库提供的中等驱动强度的时钟缓
冲器单元,而时钟网格趋向于采用大驱动强度的时钟缓冲器,甚至定制超
大驱动强度的缓冲器。
根据以上时钟网格与时钟树的分析,在设计中如果考虑工艺偏差时,仍然能
够满足设计要求,此时采用时钟树结构,利用其易实现、工具支持全面等优点。
然而在另外一些设计中,工艺偏差与时钟偏差引起的性能损失超过10%以上,这
时候时钟网格的优势就很明显了。
国防科学技术大学研究生院工程硕士学位论文
第19页
2.5本章小结
本章首先是介绍时钟信号的一些基本概念,对于时钟信号本文主要是关注时
钟延时、时钟偏差以及片上误差等参数。然后本章还分类总结了现有的时钟网络
结构:H树、平衡树、时钟网格、局部树与网格混合时钟结构,这几种时钟网络
结构各有优缺点:
时钟树容易实现、EDA工具支持好、调整与分析灵活、可利用有用时钟
偏差,但是性能一般;
时钟网格性能高、时钟偏差小、片上误差小,但是功耗高;
混合时钟网络性能较好、时钟偏差小、可利用有用时钟偏差、设计与分析
都比较难。
最后简单介绍了时钟网格的基本组成,详细对比时钟网格与时钟树的差异,
时钟网格优于时钟树的主要原因在于对片上误差不敏感。
国防科学技术大学研究生院工程硕士学位论文
第20页
第三章时钟网格设计
近年来,随着EDA工具的发展,时钟网格设计也有很大的改进,但是目前的
EDA工具对时钟网格的设计并不完善,只支持半自动实现,因此对设计者自身要
求很高,设计过程中需要设计者根据具体的时钟网格特点、设计模块特征、时钟
结构等确定设计方案,并在实现中微调、迭代。本文将采用Cadence公司的EDI
工具实现时钟网格设计。
本章主要的研究内容有:
分析时钟网格的全局网格线结构;
分析时钟网格的预驱动结构;
分析时钟结构;
时钟布线间距与布线宽度;
设计实现。
3.1时钟网格分类
在EDI工具中实现时钟网格时,首先需要确定全局网格,工具提供的全局网
格线有三种结构形式[30]:
网格型(Mesh);
鱼骨型(Fishbone);
多脊柱型(Multi-Spine)。
它们各有不同,适合不同的设计拓扑结构,设计规范文件也略有不同。在时
钟网格实现时,首先要考虑采用哪一种结构形式的时钟网格,深入了解这些时钟
网格的结构,是非常重要的。设计模块与全局网格不适合的情况,将导致时钟网
格实现时消耗更多的设计资源,而时钟偏差却难以控制。
3.1.1网格型结构
网格型结构是时钟网格中最典型代表,它采用两层金属布线、相互交叉组成,
如图3.1所示。主干(Trunk)与分支(Branch)相互交叉,主干与驱动缓冲器相
连,通常主干数量较少,采用多倍宽度、多倍间距的金属布线,能够承受大量驱
动缓冲器并行注入的驱动电流,主干通过通孔(Via)与分支相连,将驱动电流分
布到整个设计模块内。分支数量较多,也采用多倍宽度、多倍间距金属布线,叶
节点可以通过互连线直接挂载到分支上,也可以挂载一个缓冲器驱动,然后由这
个缓冲器驱动一组叶节点。
国防科学技术大学研究生院工程硕士学位论文
第21页
网格型结构非常适合设计模块拓扑结构为正方形的设计,但是在设计区域内
不能有任何的布局布线阻挡层,否者容易导致主干、分支无法布线,或者驱动缓
冲器无法插入。如果在非正方形设计模块中,时钟网格的负载叶节点恰好处在正
方形区域内,并且没有任何布局布线阻挡层,也是非常适合的。驱动缓冲器可以
均匀放置,也可以根据负载多少来调整,而网格型结构也可以精确的控制实现,
达到对称的目的,因此全局网格线上的时钟偏差基本可以忽略。在网格型结构中,
时钟偏差是由于从分支到叶节点的路径不同而造成的,这样的时钟路径非常短,
所以时钟偏差可以控制在很小的范围。
Sinks
Trunk
Branch
DriverCell
Via
图3.1网格型结构时钟网格
3.1.2鱼骨型结构
鱼骨型结构的时钟网格通常用于长条形的设计模块中。图3.2为鱼骨型结构示
意图,使用两层金属布线,其中主干采用的多倍宽度、多倍间距的金属,横贯整
个长条形设计,驱动缓冲器可以均匀分布在主干上,也可以根据负载不同而自动
调整,主干将驱动电流分散到每一条分支上,再由分支来驱动与之相连的叶节点。
鱼骨型的主干数量可以选择一条或两条。主干与分支交叉相连,形似鱼的骨架一
样,在鱼骨型时钟网格实现后,可以裁减掉没有挂载负载的分支,减少全局网格
国防科学技术大学研究生院工程硕士学位论文
第22页
线电容。鱼骨型时钟网格由于呈长条状,然而驱动缓冲器是均匀分布在主干之上
的,所以依然能够很好的控制全局网格线的时钟偏差。因此,与网格型结构类似,
时钟偏差来源主要是由于从分支到叶节点的路径不同。
Trunk
Branch
DriverCell
Via
图3.2鱼骨型结构示意图
在芯片面积大、全局时钟网络布线距离远的芯片中,鱼骨型时钟网格也可以
用来做芯片的全局时钟布线,用于将时钟信号从时钟源点传递到芯片内各个模块
的时钟根节点。在这种情况下,顶层时钟信号的布线距离可能达到数万微米,用
普通的时钟树实现会导致时钟源插入延时非常大、非公共时钟路径很长,片上误
差影响很大,导致各个模块的时钟偏差很大,模块间数据路径建立时间很难满足。
而鱼骨型时钟网络却能将时钟偏差控制得非常好。
3.1.3多脊柱型结构
多脊柱型结构的时钟网格如图3.3所示,这种结构适合于不规则的设计模块,
比如L型设计模块。在许多设计中,由于设计模块中存在存储器、IP核、布局布
线阻挡层、布线预留层等,导致时钟网格在实现时,无法插入缓冲器或者无法布
线,这时多脊柱型结构是很好的替代方案。多脊柱型结构尽量保证各个叶节点连
接到分支上的距离相同,而不再拘泥于一定要网格处于对称、规则的要求。因此,
多脊柱型结构应用范围广。
与本章前面介绍的两种时钟网格结构一样,多脊柱型结构,采用两层金属布
线,拥有多条主干,但主干会因为阻挡层的存在而长短不同,驱动电流通过并行
缓冲器注入主干,而后分散到分支,最后到达叶节点。主干与分支都采用多倍宽
度、多倍间距的金属布线。对于长短不同的主干,因其挂载的负载不同,所以给
国防科学技术大学研究生院工程硕士学位论文
第23页
定的驱动缓冲器数量也要做适当的增减。
Trunk
Branch
DriverCell
Blockage
图3.3多脊柱型结构的时钟网格
3.2预驱动结构
预驱动结构是指预驱动缓冲器的布局与互连方式。全局网格线上挂载了所有
的负载单元,因此必须依靠一个大驱动强度的缓冲器驱动。通常情况下标准单元
库中提供的最大驱动强度的缓冲器,其驱动强度仍然不满足要求。一种方法是采
用全定制方法定制超大驱动强度的缓冲器,这种方法需要为定制缓冲器建立时序
库文件,费时费力。并且缓冲器驱动强度固定,在不同设计中,全局网格线的负
载电容也不同,导致定制缓冲器的方法缺乏灵活性,通用性不强。
另一种方法是采用标准单元库中多个缓冲器并行驱动全局时钟网格。这种方
法,利用现有资源同样能达到设计要求,而且可以根据负载大小,调整驱动缓冲
器数量与布局结构,灵活性与通用性都很强。由于全局网格线的负载很大,这一
组并行驱动缓冲器数量通常较多,且多固定在主干之上,对这组并行驱动缓冲器,
常采用预驱动的方式推动。常见的预驱动结构有:
H树结构;
并行驱动(Multi-Drive)结构;
平衡树(ClockTree)结构。
国防科学技术大学研究生院工程硕士学位论文
第24页
3.2.1H树结构
H树结构的预驱动具有很高的对称性,因而在非常大的时钟域,依然能够很
好的控制时钟偏差。如图3.4为H树结构的预驱动与全局网格线。因为其结构对
称,消耗布局布线资源更多,比另外两种结构要消耗更多功耗。H树结构的高度
对称性是建立在手工精确调整的基础上的,设计步骤如下:
首先全局网格的设计需要非常规则、对称;
其次并行驱动缓冲器均匀的分布在主干之上;
然后H树结构的预驱动以并行驱动缓冲器为叶节点,制定生成H树结构;
最后将设计规范输入布局布线工具实现。
图3.4H树结构的预驱动与全局网格线
3.2.2并行驱动结构
对于鱼骨型结构的时钟网格,非常适宜采用并行驱动结构的预驱动,如图3.5
所示。因为鱼骨型时钟网格呈长条状,并行驱动缓冲器都集中在一条或两条主干
之上,该结构同样是利用并行驱动方式驱动最终的并行驱动缓冲器,类似于多米
诺骨牌,一推二,二推多。采用这种级联的并行驱动缓冲器结构,保证了最后一
国防科学技术大学研究生院工程硕士学位论文
第25页
级缓冲器将并行驱动全局网格线,而自身延时不会太大。
并行驱动结构设计过程:
首先确定主干条数与每条主干上的缓冲器个数;
确定需要的预驱动缓冲器个数,用于推动最终并行驱动缓冲器;
如果预驱动缓冲器个数太多,则需要采用多级并行预驱动缓冲器结构;
制定设计规范,由布局布线工具执行,如果并行驱动缓冲器延时太大,则
需要调整并行驱动缓冲器数量。
图3.5并行驱动缓冲器驱动鱼骨型时钟网格
3.2.3平衡树结构
平衡树结构的预驱动可以看作是一种放松对称要求的H树反函数的定义 结构预驱动,它不
需要制定预驱动每一级的布线方向与缓冲器个数,而且可以采用现有的CTS工具
实现,具有很高的灵活性,同样它的最后一级缓冲器并行驱动全局网格线。如图
3.6为H树、平衡树结构的预驱动与并行驱动的预驱动之间的区别。平衡树结构的
预驱动比H树结构的预驱动功耗更低,实现更容易,而与并行驱动结构的预驱动
相比,平衡树结构的预驱动使用范围更广,不分设计模块的拓扑结构,因此平衡
树结构的预驱动应用更广泛。
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
(a)并行驱动结构的预驱动
(b)H树、平衡树结构预驱动
图3.6预驱动结构的区别
国防科学技术大学研究生院工程硕士学位论文
第26页
3.3特殊的时钟电路结构
时钟网格的实现,除了需要考虑设计模块的拓扑结构、布局规划、时钟网格
的结构以外,还必须考虑设计模块自身的时钟电路结构,在高性能芯片设计中,
时钟电路结构往往非常复杂,同时存在多个时钟域,很多时钟叶节点属于不同的
时钟域,时钟路径存在交叉,为了控制时钟功耗,时钟设计时采用多级门控结构,
这些在无形中导致时钟网格设计难度增加,EDA工具对时钟网格的支持有限,对
于某些特殊的时钟电路结构,时钟网格实现时会受到限制,导致时钟网格无法综
合。
因此本文分析时钟电路结构的目的,在于找出时钟网格综合时布局布线工具
无法综合的时钟电路结构,由设计者给出合理的解决方案,使时钟网络最终能够
被综合。常见难以实现的电路结构有以下四种情况:
当时钟结构中在一条时钟路径上存在多级逻辑单元;
当时钟结构中存在自我收敛的时钟路径;
当时钟结构中存在时钟输出端口作为叶节点;
当时钟结构中存在交叉线。
3.3.1多级逻辑单元
时钟路径中除了时钟缓冲器之外,有时候还会加入一些门控时钟、与非门、
或非门、选择器等逻辑单元,用于控制时钟信号。这些逻辑单元不会影响平衡树
的实现。
然而,在EDI工具中,当前只支持时钟路径中存在一个逻辑单元,当存在多
个逻辑单元时,设计者就必须特别处理了。如图3.7(a)所示的时钟结构中,每
条路径上只有一个逻辑单元,时钟网格实现时会将AND1、AND2当作局部树的根
节点,挂载在全局网格之上。而图3.7(b)所示的时钟结构中,EDI工具就无法实
现了,设计者必须在设计规范文件中将AND3的输入端设置为叶节点,当时钟网
格综合完成后,再采用CTS方法,以AND3的输出端为根节点,实现AND3之后
的时钟结构。
从以上的分析可以知道,如果时钟网络结构比较复杂,逻辑单元多,那么将
整个时钟网络用时钟网格实现将会非常费时费力,因此在这样的时钟网络中,寻
找时钟路径分支后没有逻辑单元,并且时钟路径扇出大的时钟分支实现时钟网格,
同样会大大改善时钟网络性能,如图3.7中AND1的扇出大,并且没有逻辑单元。
因此,以AND1的输出端为时钟根节点实现时钟网格,剩余的时钟网络,可以采
用CTS实现。
国防科学技术大学研究生院工程硕士学位论文
第27页
AND1
Clk
AND2
AND1
Clk
AND2
Q
QD
Q
QD
Q
QD
Q
QD
AND3
(a)
(b)
LeafPin
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD…
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD
Q
QD…
图3.7时钟路径上的逻辑单元级数对时钟网格综合的影响
3.3.2自我收敛
当时钟路径中存在自我收敛的结构时,设计者必须对其特殊处理,如图3.8所
示的自我收敛时钟结构,这种结构在时钟路径中很常见。采用平衡树实现时,工
具自动识别这样的时钟结构,然后先实现时钟结构的一侧,再实现另一侧,最后
平衡两边的时钟偏差,如图3.8中所示,先实现Clk到Clk_Mux的A端的时钟路
径,再实现Clk到Clk_Mux的B端的时钟路径,最后平衡两边时钟偏差。
ClkQ
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
A
B
C
Clk_Mux
图3.8自我收敛时钟结构及其解决方式
然而在采用时钟网格实现时,工具无法确定先从哪条时钟路径去平衡时钟偏
差。设计者需要在设计规范文件中,将A端和B端设置为叶节点,先实现时钟网
格,然后再另外实现C端之后的时钟路径。
国防科学技术大学研究生院工程硕士学位论文
第28页
如果设计中遇到该类时钟结构,也可以参考前一小节的方法,如果C端之后
的扇出比较大,并且没有逻辑单元与自我收敛的时钟结构,也可以先将C端之后
的时钟网络采用时钟网格实现,剩余部分采用CTS实现,或者在同一个设计中实
现多个时钟网格。
3.3.3时钟输出端口
在层次化设计中,一个模块的输入时钟信号可能是由另一个模块输出的,这
种情况下,模块内部将会出现时钟输出端口,EDI工具在处理这类特殊叶节点时,
需要设计者在输出端口处添加缓冲器,并将这个缓冲器在设计规范文件中设置为
叶节点。如图3.9所示的情形。
ClkQ
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
Clk_Out
ClkQ
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
Clk_Out
(b)
(a)
ECO_Clk_Out
图3.9时钟网格中时钟输出端口的处理方式
3.3.4时钟交叉
时钟交叉结构也是一种常遇到的时钟结构,目前的芯片设计非常复杂,有些
叶节点会工作在不同时钟域下,同时有些扫描测试时钟也会通过选择器汇集到同
一条时钟路径上,如图3.10所示的结构。平衡树在实现时,先实现C端之后的时
钟网络,再实现Clk时钟域,并与C端后的时钟网络平衡,最后再实现Clk_Scan
时钟域,并且平衡Clk_Scan与Clk时钟域。
但是如果采用时钟网格实现,则设计者必须在将A端或B端设置为叶节点。
国防科学技术大学研究生院工程硕士学位论文
第29页
实现时钟网格之后,再实现剩余部分时钟网络。
ClkQ
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
A
B
C
Clk_Scan
Clk_Mux
图3.10时钟交叉结构及其解决方式
3.4布线间距与布线宽度
在集成电路设计中,布线间距指的是互连金属线之间的最小间距,布线宽度
指的是互连金属的最小宽度。全局网格作为时钟网格中连接并行驱动缓冲器与负
载的关键结构,既需要布线范围广、能承受大驱动电流,驱动所有负载叶节点,
又需要自身占用资源少、耦合电容小。设计者初次实现时钟网格时,往往设置的
布线间距与布线宽度随意性强,容易影响时钟网格的实现效果,因此确定适合的
全局网格线的布线间距与布线宽度,是非常重要的。
本文将从串扰对时钟信号影响的重要性中,总结出采用适当的多倍线间距,
既能解决串扰影响,又尽量减少布线资源浪费。而线宽度变化对互连线延时也是
非常明显的,本文将平衡多倍线宽度消耗的布线资源与获取的互连线延时好处,
确定适当的金属线宽度。
3.4.1布线间距
在本文下一章节时钟网格的分析中,串扰是一个很难处理的问题,现有的EDA
工具难以分析,因此在时钟网格的设计实现阶段时就考虑减小串扰带来的影响,
将是非常必要的。信号串扰是一种由互连线之间的寄生耦合引起的噪声,而互连
线的布线间距直接影响着寄生耦合电容的大小,增大布线间距有利于减少噪声影
响,但是太宽的布线间距会消耗更多布线资源,因此必须在两者间权衡利弊。
芯片设计受益于工艺提升带来的好处的同时,芯片内部晶体管的工作电压低,
信号翻转快,工作频率高,导致信号间的串扰问题越来越严重,串扰对芯片设计
的影响主要表现在两个方面:
首先,串扰信号导致的毛刺,可能改变逻辑状态,使芯片不能正确工作。通
国防科学技术大学研究生院工程硕士学位论文
第30页
常毛刺出现在芯片设计中的不同路径上,对芯片的影响也各不相同。在数据路径
上出现毛刺,会导致路径上的逻辑单元产生错误的信号,并传递到时序逻辑单元,
如果此时时钟信号触发时序逻辑单元,将导致毛刺被采集到时序单元内,并传递
到下一栈逻辑中,使集成电路芯片运行错误;如果毛刺出现在时序逻辑的使能信
号上,特别是异步使能信号,毛刺不需要等待时钟促发信号,直接导致时序逻辑
状态复位,将会导致严重的错误;如果毛刺出现在时钟路径上,将会导致整个芯
片工作混乱,出现建立时间、保持时间不满足或者时序单元采集了错误的信号。
其次,互连线受串扰影响,导致延时发生变化。串扰使互连线的电平翻转提
前或者推后,从而导致互连延时减少或增加,路径的建立时间或保持时间出现不
满足,这主要取决于攻击线与受害线的电平状态。当攻击线与受害线电平状态相
同,同时信号电平翻转,受害线的信号电平翻转时间将提前,即延时减少;当攻
击线与受害线电平状态不同时,同时信号电平翻转,受害线的电平翻转时间将推
后,即延时增加。
C
C
C
C
Out
In
V1
A1
A2
图3.11串扰引起延时增加
如图3.11所示的结构中,受害线信号V1经过一个反相器后,信号电平由低
电平向高电平翻转,而攻击线信号A1、A2由高电平向低电平翻转,耦合电容C
两侧的电荷分布发生变化,从而导致信号V1在翻转的过程中增加延时[4]。
通常攻击线对受害线产生的影响,可以根据式(3.1)评估,其中:
V
1
为攻击线的电压变化;
V
2
为受害线受攻击线电压变化引起的电压变化;
C
g
为受害线对地耦合电容;
C
c
为攻击线与受害线的耦合电容。
V
2
=C
c
*V
1
/(C
g
+C
c
)(3.1)
因此为了减少攻击线对受害线的影响,可以采用以下方法:
国防科学技术大学研究生院工程硕士学位论文
第31页
减少攻击线的电压变化值;
增加受害线的对地耦合电容;
减少攻击线与受害线耦合电容。
对于第一种方法,需要降低芯片的工作电压,修改设计规范,牵连的设计变
动比较广,因而难以实现。第二种方法将导致对地耦合电容增加,延时反而可能
增加。因此采用第三种方法,是最适合的。
C
c
C
c
C
g
C
f
C
f
图3.12互连线的耦合电容
在如图3.12所示结构中,C
g
为面积电容,C
c
为侧向电容,C
f
为边缘电容,总
电容C
tot
等于面积电容、侧边电容以及边缘电容的总和。因此对于一条互连线,在
特定工艺条件下,互连线的侧向电容随着互连线间距的增大而减小,采用多倍间
距的布线规则,能有效减少串扰的影响,但是会消耗更多的布线资源,本文根据
工艺厂商提供的电容表文件(captablefile)分析了布线间距与侧边电容之间的关系。
在固定布线宽度的情况下,图3.13显示了侧向电容随布线间距增大而减小,从图
中可知5倍布线间距时,侧向电容与总电容减少都非常明显,而再增加金属间距,
侧向电容减少已经不明显了,并且边缘电容随布线间距增大而增大,权衡之下5
倍布线间距比较合适。
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
135791113
金属间距的倍数
电
容
值
(
F
f
/
u
m
)
总电容侧向电容边缘电容
图3.13电容值随金属间距变化的趋势
国防科学技术大学研究生院工程硕士学位论文
第32页
图3.14中显示,布线间距变化时侧向电容占总电容的比值,在5倍布线间距
时,侧向电容占总电容的比值为3%。
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
135791113
金属间距的倍数
比
值
比值
图3.14侧向电容占总电容的比值
3.4.2布线宽度
金属互连线宽度变化时,根据电阻公式(3.2)可知,互连线的电阻随互连线
宽度的增加而减小,随互连线长度的增加而增加。其中R为互连线电阻,R
sheet
为
方块电阻,L为互连线长度,W为互连线宽度。
R=R
sheet
*L/W(3.2)
根据平板电容公式(3.3)可知,面积电容随互连线宽度的增加而变大。其中
C
g
为互连线面积电容,
ox
为绝缘层的介电常数,L为互连线长度,W为互连线
宽度,H为绝缘层厚度。
C
g
=
ox
*L*W/H(3.3)
本文根据以上公式结论,实验分析了延时随布线宽度、布线长度变化的趋势。
在实验中,本文为了排除侧边电容、边缘电容对延时的影响,将布线间距设置为5
倍布线间距。实验设置了十种不同长度的互连线,线长从100um到1000um,6种
不同的布线宽度,试验中每次采用一种布线宽度,分别从一倍布线宽度到十一倍
布线宽度,实验结果如图3.15所示。
从图中可以知道,一倍布线宽度与三倍布线宽度时互连延时明显比其他情况
下要大,并且线长越长越明显,5倍布线宽度之后再增加布线宽度,延时下降不是
太明显。因此将互连线宽度设置为布线宽度的5倍,既能有效减少延时,又能尽
量少消耗布线资源。
国防科学技术大学研究生院工程硕士学位论文
第33页
0
10
20
30
40
50
60
70
100um200um300um400um500um600um700um800um900um1000um
金属线长
延
时(
p
s
)
最小金属宽度三倍最小金属宽度五倍最小金属宽度
七倍最小金属宽度九倍最小金属宽度十一倍最小金属宽度
图3.15金属宽度与互连线延时的关系
3.5设计实现
本章前面四小节已经详细阐述了实现时钟网格需要考虑的内容,首先需要对
时钟网格的特征有深入了解,并对设计的时钟结构进行分析,选择符合设计模块
的布局规划的时钟网格结构。因此,本小结将根据前面三小节的内容,着重指导
EDI工具实现时钟网格,并对设计实现进行微调。
3.5.1制定规范文件
CTS工具在生成时钟树时,只需要确定基本的设计约束,例如时钟根节点、
最大时钟偏差、最大时钟延时、最大扇出、最大跳变时间等,就完全可由工具自
动实现、优化、分析。图3.16为一个基本的CTS指导文件[30]。
AutoCTSRootPinSH1/I23/Z
MaxDelay5ns
MinDelay0ns
MaxSkew500ps
MaxFanout20
SinkMaxTran550ps
BufMaxTran550ps
NoGatingNO
BufferINV14CLKBUF12CLKBUF40CLKBUF20DEL4
End
图3.16基本的CTS指导文件
国防科学技术大学研究生院工程硕士学位论文
第34页
而对时钟网格的实现首先需要设计者对芯片或模块的拓扑结构、时钟结构进
行分析,以确定时钟网格的各项参数,然后手工编写时钟网格的设计规范文件,
由布局布线工具来执行。图3.17为时钟网格的设计规范文件需要定义的内容。
布线定义
网格区域
定义
时钟网格
定义
时序与功耗
约束定义
追踪与分析
范围定义
网格结构
定义
全局网格
定义
顶层链
定义
局部树
定义
图3.17时钟网格设计指导文件内容
根据本章前三节内容,制定的时钟网格设计规范文件,如图3.18所示为时钟
网格的规范文件。其中全局网格定义部分,网格型的全局网格采用的是H树的预
驱动,鱼骨型的全局网格采用的是多级并行驱动结构的预驱动,而多脊柱型的全
局网格采用的是时钟树结构的预驱动。
3.5.1.1布线定义
布线定义主要是定义一组全局网格线的布线规则,通常需要定义布线金属层、
布线宽度与布线间距、屏蔽层等信息。布线定义需要注意的地方有:
全局网格是由主干与分支正交连接的,因此金属布线层最少要定义两层金
属。布线金属选择时尽量避免使用高层或底层金属,采用高层金属布线容
易导致单元与高层金属间产生堆叠孔,而且通孔电阻也比较大。底层金属
多用于短距离布线,不适合时钟网格布线。
布线宽度与布线间距要合理,避免浪费布线资源,在本文拜火教 前一章节已经确
定为5倍布线宽度与5倍布线间距。
屏蔽层用于减少串扰的影响,通常不需要定义,只有在设计芯片的频率非
常高时,才考虑给时钟信号加屏蔽层,并且通过增加布线间距也可以达到
同样的设计目的。
国防科学技术大学研究生院工程硕士学位论文
第35页
###布线定义
RouteTypeDefRT1
…
End
###网格区域定义
Cutout
+…
###时钟网格定义
ClockMeshYourMeshName
End
###时序与功耗定义
Period1ns
MaxDelay500ps
MaxSkew50ps
MaxPower0mW
###追踪与分析范围定义
RootPinclk
AllowGatingtrue
DefaultTriggerrising
LeafPin
+INV/I
+…
###网格结构定义
UMeshModuletrue
MeshModulefishtopmodule
LoadCell
+CKBUF3
+…
MeshArea0um0um10um10um
###顶层链定义
TopChain
Enabledtrue
DriveCellCKBUF8
NumLevel2
NonDefaultRuleYouNDR
TargetLocs
+30um30um
+…
End
###全局网格定义
GlobalMesh
…
End
###局部树定义
LocalTree
Enabledtrue
RootPosonMesh
NonDefaultRuleYourNDR
DriveCells
+CKBUF8
+…
End
###网格型全局网格定义
MeshTypeHTreeMesh
MeshDrivePointRoot
TrunkOrientationHorizontal
HTreePatternH*
TrunkPlacementLoadWeighted
TrunkDriveDistLoadWeightedMatch
Stage
…
End
…
###多脊柱型全局网格定义
MeshTypeMultiSpine
MeshDrivePointRoot
TrunkOrientationHorizontal
TrunkPlacementLoadWeighted
TrunkDriveDistLoadWeightedMatch
PreDriveCTS
…
End
MainDrive
…
End
Mesh
…
End
###鱼骨型全局网格定义
MeshTypeFishbone
MeshDrivePointRoot
TrunkOrientationHorizontal
TrunkPlacementLoadWeighted
TrunkDriveDistLoadWeightedMatch
Stage(Pre-Driver)
…
End
…
Stage(Multi-Driver)
…
End
图3.18时钟网格设计规范文件
国防科学技术大学研究生院工程硕士学位论文
第36页
3.5.1.2网格区域定义
时钟网格布线层选定之后,经常会遇到布线区域存在布线阻挡层、驱动缓冲
器布局的位置已经放置了存储器、IP核等,工具将无法继续执行,这些阻挡层、
存储器、IP核将导致时钟网格综合失败。
当设计中遇到这些情况,通常需要通过网格区域定义中的Cutout选项命令来
告诉工具,绕过这些布线障碍物。Cutout选项命令还可以在不规则的设计区域中,
选择一块规则的区域用于实现时钟网格。
3.5.1.3时序与功耗定义
规范文件中时序与功耗定义类似一个简单的CTS规范文件,主要是用于定义
时钟周期、时钟根节点的跳变时间、最大插入延时、最大时钟偏差、最大时钟功
耗、时钟缓冲器的跳变时间、叶节点的跳变时间等基本信息,这一部分的定义只
用于时钟网格的综合实现过程,时钟网格分析时,这一部分定义将会被时序约束
文件代替。
3.5.1.4追踪与分析定义
规范文件中这一部分的定义相当重要,它主要定义的内容有:
时钟网格的时钟根节点。通常是指设计模块的时钟根节点,有时也将单元
的输出端口做时钟网格根节点,只实现设计的一部分的时钟电路;
定义叶节点。本文3.3节已经介绍了四种无法实现的时钟电路结构,通过
定义叶节点,这些时钟电路结构都可以在时钟网格中实现;
定义时钟信号的触发沿,通常设计中是上升沿触发;
时钟网络是功耗比较大,通过AllowGating选项允许时钟路径中存在门控
时钟,有利于控制功耗。但是设计实现时,时钟路径中只能有一个门控时
钟,当时钟网格实现后,可以通过ECO操作将局部树的缓冲器替换为门
控时钟。
定义SPICE模拟所需的库文件、VDD、VSS等。当设计需要导出时钟网
格的SPICE网表时,定义这些文件与参数后,导出的SPICE网表将包含
这些信息。
3.5.1.5网格结构定义
网格结构定义主要定义了时钟网格的面积与平衡时钟偏差是所选择的负载单
元。MeshArea定义设计模块的面积,时钟网格的实现不会超出这个范围;LoadCell
选项制定负载单元。
3.5.1.6全局网格定义
规范文件中通过MeshType命令选项,确定全局网格的实现方式,每一种全局
国防科学技术大学研究生院工程硕士学位论文
第37页
网格的实现定义都不相同,图3.19为三种全局网格类型的定义。
MainDrive
SpineTemplate
Stage
#定义主干的布线规则、驱动缓冲器类型
RouteTypeRT6
DriveCellBUF16
End
End
Spine
#定义一根主干的位置、驱动缓冲器数量
TargetLoc1600um
Stage
NumDriver16
End
End
…
Mesh
#定义分支的类型、数量
RouteTypeRT6
NumBranch6
End
End
Stage
#定义H树的第一级驱动单元类型、数量,
布线规则,屏蔽层等信息
NumDriver6
X6
DriveCellBUF16
RouteTypePairRT5RT6
End
…
Stage
#定义H树的主干、分支布线规则、数量、
位置、分支间距等信息
NumDriver36
X6
DriveCellBUF16
RouteTypePairRT5RT6
NumTrunk2
NumBranch4
TargetTrunkLocs
+600um
+1600um
End
Stage
#定义鱼骨的第一级驱动的驱动单元类型、
数量,布线规则等信息
NumDriver6
DriveCellBUF16
RouteTypePairRT5RT6
End
…
Stage
#定义鱼骨的主干、分支布线规则、数量、
位置、分支间距等信息
NumDriver36
DriveCellBUF16
RouteTypePairRT5RT6
NumTrunk1
NumBranch4
BranchPitch200um
TargetTrunkLocs
+600um
End
(a)Multi-Spine
(b)H-Tree+Mesh
(c)Fishbone
图3.19三种全局网格类型的定义
全局网格设计过程中其他的一些重要命令选项,如表3.1所示。
表3.1全局网格命令选项
MeshDrivePoint
并行驱动缓冲器的起始点
PatternTrunkClusterTargetSize
全局网格与叶节点间的互连方式
TrunkOrientation
主干布线的方向
TrunkPlacement
主干布线的方式
TrunkDriveDist
驱动单元连接主干的方式
3.5.1.7顶层链定义
规范文件的顶层链定义部分,指定工具生成一条缓冲器链连接时钟根节点与
第一级驱动单元。在规范文件中顶层链的缓冲器级数可以通过NumLevel设置,
TargetLocs指定每一级缓冲器的放置位置,互连线通常采用双倍线间距、双倍线宽
度的布线规则
3.5.1.8局部树定义
局部树定义中可以通过RootPos命令选项,控制局部树驱动缓冲器布局的位
置,可选则的布局位置有局部树中心、局部树范围之内尽量靠近网格的地方、放
置在全局网格线边,灵活选用可以减少局部树产生的时钟偏差。局部树通常采用
双倍线间距、双倍线宽度的布线规则。
国防科学技术大学研究生院工程硕士学位论文
第38页
3.5.1.9规范文件总结
在制定时钟网格设计规范文件需要注意以下方面:
时钟根节点给定的信号跳变时间要设置合理,给定太大或者太小的跳变时
间,会导致时钟输入端口处的延时计算不准确,影响时钟网络的插入延时
的大小,在层次化设计中,很可能导致芯片工作混乱。
时钟网格综合时,尽量选取驱动能力中等的时钟缓冲器,使时钟网络不会
因为缓冲器驱动能力太大或太小而增加插入延时,并且时钟缓冲器可以使
时钟信号的占空比保持在50%左右。而在并行驱动缓冲器结构中,应选取
一组较大驱动能力的时钟缓冲器,这样才能保证有足够的驱动电流驱动整
个全局网格。
在全局网格负载较大时,避免并行驱动缓冲器驱动不够,导致全局网格延
时与跳变时间增加。
在并行驱动缓冲器数量较多时,避免其输入信号跳变时间太大,导致并行
驱动缓冲器延时增加。
主干与分支的金属线宽、线间距为金属线宽、线间距的5倍即可,线宽太
宽会浪费布线资源、增加对地耦合电容,太窄会导致线电阻太大。线间距
太大也会浪费布线资源,线间太小容易造成侧边耦合电容太大。
由于并行驱动缓冲器通过时钟网格主干连接到时钟网格之上,因此尽量保
证主干跨越的区域最大,以使并行驱动缓冲器分布均匀。
插入时钟缓冲器位置、金属布线层不能与任何布局布线阻挡层、IP核相冲
突,否则工具无法插入时钟缓冲器以及布线。
时钟网格的局部树采用双倍宽度、双倍间距布线,减小因片上误差而引入
的时钟偏差。
3.5.2实现与优化
设计者制定设计规范文件后,就可以通过EDI工具实现时钟网格了,其执行
流程如图3.20示。EDI工具首先读入设计规范文件,分析设计规范文件是否有语
法错误,然后对全局网格、顶层链、局部树分别综合。全局网格综合过程中,工
具分析主干与分支是否能够布线,缓冲器单元有没有布局空间,如果有布局布线
空间就直接实现全局网格,否则就中断执行,检查、修正设计规范文件,重新综
合全局网格,直到满足设计者要求。对顶层链和局部树的布线,则要在时钟网格
综合通过后,才会布线[30][32][33][34][35][36]。
国防科学技术大学研究生院工程硕士学位论文
第39页
Over
OK?
Top
Chain
Synthesis
GlobalMesh
Synthesis
Local
Tree
Synthesis
Design
specification
Routing
Clock
Net
NO
YES
MeetDesign
YES
NO
图3.20时钟网格设计流程
时钟网格设计非常依赖设计者的经验,因此需要多次迭代,才可能综合产生
满足设计要求的时钟网格。在时钟网格设计中常用的调整方法有:
调整主干与分支的间距
调整分支的数量
调整驱动缓冲器的数量、驱动能力
调整局部树的驱动缓冲器驱动能力
插入负载单元
本文实验采用一个1900um宽、1580um长的设计模块,该模块拥有78232个
叶节点,9层金属布线,全局时钟网格布线选取5层、6层金属,其他时钟布线选
取2~6层布线,4根主干纵向分布,30根分支横向排列,600个并行驱动缓冲器,
国防科学技术大学研究生院工程硕士学位论文
第40页
每根主干上由150个缓冲器。时钟网格实现效果如图3.21所示。
1900um
1
5
8
0
u
m
Branch
Trunk
Multi-Driver
LocalTreeDriverCell
Sinks
Branch
Trunk
(a)GlobalMesh
(b)LocalTree
LocalTreeNets
图3.21时钟网格实现效果
图3.21(a)为时钟网格的全局网格线,为了减少时钟网格线的负载电容,分
支上没有挂载叶节点的部分被裁剪掉,因此分支看上去参差不齐。图3.21(b)为
时钟网格中一个局部树结构,该局部树的驱动缓冲器连接在分支上,驱动73个叶
节点。并行驱动缓冲器连接在主干上,分支与主干正交连接。
图3.22为时钟网格的延时信息,设计中叶节点是上升沿触发,由图可知该时
钟网格的最大插入延时为336ps,最小插入延时为313ps,全局时钟偏差为23ps。
国防科学技术大学研究生院工程硕士学位论文
第41页
Mesh:imeshmesh(rootclkgen_imesh_mem/internal_clk_ckg_en_cell/Q)
DelaySection
delay(r)delay(f)trans(r)trans(f)
levelminmaxskewminmaxskewminmaxminmax
---------------------------------------------
L818
L12222
L2673636
L31434383438
L41421475145
L577913191219
L61972181218
L7228253242252522628622862
L8284293161216
LCL3372318521751
Trigger31333623Units(ps)
图3.22时钟网格延时信息
然而基于电压源的单元延时模型是无法精确分析时钟网格的并行驱动缓冲器
结构的,因此图3.22只能是个参考值,精确的延时分析,需要通过SPICE工具仿
真模拟得到,本文将在下一章节中具体分析时钟网格的延时计算问题。
CTS工具完成时钟树综合后,全局时钟偏差与局部时钟偏差都是可以通过工
具得到,但是在时钟网格实现后,工具却只能给出全局时钟偏差。局部时钟偏差
因为更能衡量一个时钟网格的设计好坏,本小节将编写一个脚本文件,从工具的
报告文件中自动搜索出最大局部时钟偏差。
首先,通过EDI工具的reportClockMesh命令将所有叶节点的插入延时输出到
一个文件中。获取这个文件后,任何一个叶节点与其他叶节点的时钟偏差都可以
计算出来。然后,通过all_fanin与all_fanout命令,获取与叶节点有时序路径的其
他叶节点。第三步是计算,挑选出一个叶节点和与他有时序路径的叶节点,获取
这些叶节点的插入延时,并计算挑选出的叶节点的最大时钟偏差,保留这个局部
时钟偏差。最后,重复第三步,得到第二个局部时钟偏差,对比产生的两个局部
时钟偏差,保留大的一个。当遍历所有的叶节点之后,保留的局部时钟偏差,将
是设计的最大局部时钟偏差。
本上一章节时钟网格的实验中,通过脚本搜索得到的最大局部时钟偏差为
19.4ps。
国防科学技术大学研究生院工程硕士学位论文
第42页
3.6本章小结
本章详细介绍了实现时钟网格的过程、步骤、注意事项,并基于Cadence公
司的EDI工具实现了时钟网格。时钟网格因为其特殊的结构,需要花费设计者更
多的精力去设计。
首先,设计者必须对时钟网格十分了解,才能确定设计中采用哪一种形式
的时钟网格,使设计更容易满足。这不同于CTS工具实现的时钟树结构,
设计者不需要干预。
其次,设计者必须对时钟电路也非常清楚,设计者必须首先排除一些特殊
的电路结构对时钟网格的影响,才能指导工具去实现时钟网格。
在做好以上两点后,设计者需要将自己需要设计的时钟网格结构,制定设
计规范文件,在制定的过程中,对设计者的经验要求很高,初次实现的时
钟网格,往往性能不是太好,需要多次迭代,调整设计规范文件,最终达
到设计目标。
最后本文编写了一个脚本文件,实现了自动计算局部时钟偏差的作用,为
下一章时钟偏差分析做准备。
本章最后实现了一个时钟网格设计,设计模块宽1900um,高1580um,采用
Multi-Spine结构的时钟网格设计,最大时钟偏差只有23ps,最大局部时钟偏差
19.4ps,最大插入延时为336ps。
国防科学技术大学研究生院工程硕士学位论文
第43页
第四章时钟网格的分析
本文第三章已经详细阐述了各种不同设计情形下的时钟网格设计实现,本章
将重点分析时钟网格。
在时钟网格综合前,布局布线工具是根据理想时钟来进行时序分析,即时钟
偏差与片上误差都为零,而在时钟网格综合后,时序分析时需要考虑真实的时钟
偏差与插入延时对设计的影响,找出设计中的关键路径,进而优化设计。因此准
确的计算时钟网络延时信息,是后续时序分析工作能否进行的前提。
但是在时钟网格的设计过程中,基于电压源的单元延时模型,并行驱动缓冲
器的延时信息与全局网格线的延时信息是无法精确计算的,因此本章将采用Hspice
工具解决时钟网格设计过程中延时信息计算的问题,并将延时信息反标到布局布
线工具中,指导布局布线工具完成布线与时序分析工作,在签核阶段,计算布线
之后的时钟网格延时信息,为静态时序分析提供精确的时钟网格延时。
4.1延时计算问题
集成电路设计中延时计算包括单元延时计算与互连线延时计算两部分。其中
单元延时计算常通过时序库文件查表得到,而互连线延时是通过提取互连参数,
使用Elmore公式计算得到。
4.1.1单元延时
单元延时为信号通过一个标准单元所经历的时间,通常定义输入信号电压变
化的50%到输出信号电压变化的50%所需的时间为单元延时,如图4.1(a)所示。
单元延时与输入信号的跳变时间和输出负载相关,其中跳变时间为信号翻转速度
快慢的描述,通常定义信号电压值从10%到90%之间的时间为上升跳变时间,电
压值从90%到10%之间的时间为下降跳变时间。如图4.1(b)所示[1][4]。
在布局布线工具中,单元延时计算是根据不同输入信号的跳变时间与负载电
容值,从时序库文件中查表得到的。而时序库文件中延时信息的来源是通过SPICE
工具模拟得到的,标准单元设计者通过提取标准单元版图的寄生参数,结合晶体
管延时模型,在不同组合的跳变时间与电容值的工作环境下,多次模拟生成的一
张延时数据表。SPICE模拟具有很高的精度,但却受限于设计电路规模,而通过
这种查表方法,芯片设计者在分析延时信息时,无需再次模拟获得延时,大大减
少了时序分析时间,并且时序库文件可以给多个设计者使用。
国防科学技术大学研究生院工程硕士学位论文
第44页
t
pHL
t
pLH
t
r
t
f
V
in
V
out
t
t
50%.
90%
10%
(a)(b)
图4.1单元延时、上升跳变时间、下降跳变时间
布局布线工具只需要获取单元输入信号的跳变时间与输出负载的电容值,就
可以查表得到确切的延时信息。如图4.2为查表计算延时[6]。当输入信号的跳变时
间为0.587,输出负载的电容为0.06,从图中可以直接得到单元延时为0.329
图4.2查表计算单元延时
通常时序库文件中延时信息以7X7的表来记录,因此只有49组跳变时间与电
容值的组合,对于跳变时间与电容值组合不在时序库文件中情况,可以通过双线
性插值算法计算得到[37]。该方法如图4.3所示,假设Q
11
,Q
12
,Q
22
,Q
21
为时序库
中以存在的延时,求P点延时。首先是利用公式(4.1)、公式(4.2)计算R
1
,
国防科学技术大学研究生院工程硕士学位论文
第45页
R
2
的值,然后再利用公式(4.3)计算P值。
21
11121
22
11
(R)=()()
xxxx
ffQfQ
xxxx
(4.1)
21
21222
22
11
(R)=()()
xxxx
ffQfQ
xxxx
(4.2)
21
12
22
11
(P)=()()
yyyy
ffRfR
yyyy
(4.3)
图4.3双线性插值算法
该延时计算方法是基于电压源模型,即单元延时为单元输出电压的50%与输
入电压的50%之间的时间差,当设计中出现如图4.4所示的并行驱动结构时,由于
C点的电压值无法确定,将导致BUF1与INV1的延时信息通过查表是无法准确得
到的。因此在布局布线工具中,单元的任意一个输出端口可以有多个扇出负载,
但是任何一个输入端口都不允许有多个扇入单元。
BUF1
INV1
BUF2
C
In1
In2
Out
图4.4并行驱动结构
国防科学技术大学研究生院工程硕士学位论文
第46页
4.1.2互连线延时
在纳米工艺条件下,互连线延时所占总延时的百分比越来越大,设计者越来
越关注对互连线延时的精确计算,常用于互连线延时计算的模型有集总RC模型和
分布RC线模型。集总RC模型计算简单,很容易用于计算机辅助设计,并且在分
布RC网络的情况下,互连线延时计算结果与复杂的分布RC线模型计算的结果非
常接近,因此一般用集总RC模型精度就足够了[1][38]。考虑如图4.5(a)所示的结
构,根据基尔霍夫电流定律得到式(4.4)
inoutoutC
Rdt
vvdv
(4.4)
解此常微分方程得到:
(1)
t
RC
outDD
evv
(4.5)
设V
out
到达50%V
DD
点的时间为互连线延时,则互连线延时为:
0.5
*ln(2)*ln(2)RCt
(4.6)
对于时间常数可以根据Elmore公式(4.7)计算。
1
n
iij
j
i
CR
(4.7)
考虑如图4.5(b)所示结构,长度为L的互连线均匀分为n断,每段互连线
的电阻为r,电容为c,得到延时:
0.5
1
ln(2)**
2
n
RC
n
t
(4.8)
当n为无穷大时:
0.5
ln(2)
*
2
RCt
(4.9)
R
C
v
in
v
out
(a)
r
1
C
1
v
in
(b)
r
2
C
2
r
i-1
C
i-1
r
i
C
i
…
图4.5延时模型以及RC链
该RC树模型可以很方便的用于互连线延时分析,但是该模型带有三个限制条
件:
国防科学技术大学研究生院工程硕士学位论文
第47页
电路中不能包括任何回路;
电路中所有节点的电容都是跟地相连;
电路只能有一个输入节点。
而时钟网格的全局网格线,不满足以上条件的第一、三条。如图4.6为全局网
格线的RC网络,该RC网络有存在多个回路,并且因为多驱动缓冲器与全局网格
线相连,输入节点也有多个。
图4.6全局网格线的RC网络
4.2SPICE仿真
本章前一小节已经阐述了布局布线工具计算延时的方法,对于单元延时计算,
通过采用时序库文件查表和双线性插值算法计算得到,这种方式很好的解决了集
成电路规模越来越大带来的延时计算量太大的问题。但是时钟网格设计中的并行
驱动缓冲器结构,无法采用查表方式得到延时准确延时。对于互连线的计算,采
用Elmore延时公式可以很快的计算互连延时,并且在RC分布网络中,延时计算
已经有很高的精度了。但是全局网格线无法通过Elmore公式计算。这些都导致时
钟网络实现后,时钟插入延时信息将无法指导布线过程,时序分析也无法与时钟
插入延时信息相结合,找出真正的关键路径。
本小节将采用Synopsys公司的Hspice工具进行时钟网格的模拟仿真,Hspice
是基于Berkeley发布的SPICE软件发展而来的,在集成电路行业中它是最优秀的
电路级模拟软件之一[39][40][41]。Hspice仿真的基本原理是电路分析中的节点分析法。
基尔霍夫电流定律指出,集总参数电路中任何一个节点的流入电流,等于该节点
的流出电流,即只需要知道电路中的所有电阻、电容以及输入激励,就可以根据
该方法计算出电路中所有节点的电压。对于本章前一小节中图4.4、图4.6所示的
电路结构,均可以采用Hspice模拟仿真得到。本小节的主要工作有:
在布局布线工具内提取互连参数;
国防科学技术大学研究生院工程硕士学位论文
第48页
Hspice模拟仿真;
将Hspice仿真结果反标回布局布线;
4.2.1提取互连参数
时钟网格实现后,时钟网络已经布线,通过提取互连参数,为下一步模拟仿
真做准备。
目前基于有限差分、有限元、边界元技术的数值模拟方法能精确提取任意复
杂三维互连电容结构,但是计算量大、耗时长,并不是实用。常用的方式是基于
模式匹配的查找表法,通过数值模拟或实验测量方法获取一些基本三维互连结构
的寄生电容,并生成特征库文件。EDA工具先提取出版图中的互连结构,然后与
特征库中结构对比,如果匹配则可直接获得电容值,如果有差别则采用插值算法
计算[41][43]。
在EDI工具中内部集成有TQRC与IQRC两种互连参数提取引擎。TQRC引
擎运行速度较快,但是损失了一定的精度,而IQRC精度较高,用于需要精确延时
分析的阶段,本文采用IQRC提取时钟网格的互连参数,如图4.7所示为互连参数
提取流程。
QRCTech
File
RC
Parasitics
Design
Data
EDI
QRC
Extract
图4.7互连参数提取
4.2.2模拟仿真与反标
提取互连参数后,需要将时钟网格的电路结构编写成Hspice网表。Hspice网
表通常由表头、模型与子电路、控制语句、激励源、电路元件、测量语句以及结
国防科学技术大学研究生院工程硕士学位论文
第49页
束语组成[39][41]。如图4.8为时钟网格的Hspice描述。
模型与子电路:用于定义Hspice模拟的工艺文件、标准单元的电路网表。
仿真工艺文件注意与标准单元的端角(Corner)相匹配,以避免因为互连
线与单元的RC端角不同而产生误差。
***SPICETitleforClockMesh***
***ModelandSubckts
.LIB‘Techfile.l’
.include‘’
***Controls
.optionprobepost=2
.paramVDD=0.9
.globalVDDVSS
.tran10ps2200ps
***Sources
VIN20PWL(0ps0125psVDD925psVDD1050ps0)
***Components
R02511.25
C0502.096e-17
X038VDDVSSCKBUF12
…
***Measure
.meas…
…
***Endoffile
.end
图4.8时钟网格的Hspice网表
控制语句:设定工作电压、全局变量等参数。
激励源:设定的输入激励必须与时钟规范文件中定义的时钟根节点的跳变
时间一致,只有这样模拟仿真的结果才符合设计规范文件。
电路元件:电路元件由提取的互连参数与时钟缓冲器组成。EDI工具通过
SpiceClockMesh命令将互连参数以Hspice网表的形式导出,该网表文件
中互连RC值由寄生参数提取工具IQRC确定。
测量语句:Hspice通过自动测量模拟仿真结果,直接给出单元与互连线的
延时信息与跳变时间。默认情况下定义30%工作电压到70%工作电压为上
升跳变时间,70%工作电压到30%工作电压为下降跳变时间,输入信号
50%工作电压到输出信号50%工作电压的时间为单元延时。
另外SpiceClockMesh命令还会导出一个映射文件,该文件包含单元的输入输
出端口与Hspice网表中节点的对应关系,用于下一步反标延时。当Hspice仿真得
国防科学技术大学研究生院工程硕士学位论文
第50页
到的节点的延时信息后,通过映射文件将各个节点的延时信息反标到各个对应的
单元。
时钟网格的设计实现第三章已经讲述了,但是在EDI工具中对时钟网格的延
时分析不够精确,本文采用Hspice模拟仿真时钟网络的各个节点的延时。Hspice
网表中的测量语句自动测量各个节点的延时与跳变时间,并保存在文档中,该文
档通过spiceClockMesh命令反标回EDI工具中。图4.9为Hspice延时计算流程。
Hspice
EDI
ExtractRC
RC
Parasitics
MapFile
Hspice
Netlist
Simulation
Delay
Transition
Voltage
Timing
Debug
图4.9Hspice延时计算流程
V(2)
V(198529)
V(20625)
354ps
37.3ps
316.7ps
图4.10Hspice模拟仿真波形
如图4.10为Hspice模拟波形,图中V(2)为时钟根节点的时钟信号波形,V
(198529)为最小插入延时的时钟信号波形,V(20625)为最大插入延时的时钟
信号波形。通过测量时钟信号为50%电压时的值,得到该设计中最小插入延时为
316.7ps,最大插入延时为354ps,全局时钟偏差为37.3ps,通过本文实现的脚本,
国防科学技术大学研究生院工程硕士学位论文
第51页
得到的局部时钟偏差为26.4ps。表4.1为EDI与Hspice计算的延时信息对比。
将Hspice仿真得到的延时结果反标回EDI工具,通过EDI工具的
reportClockMesh命令得到时钟网格的详细延时报告,如图4.11所示。
表4.1时钟网格延时对比
LatencyGlobalSkewLocalSkew
EDI313ps~336ps23ps19.4ps
Hspice317ps~354ps37ps26.4ps
Mesh:imeshmesh(rootclkgen_imesh_mem/internal_clk_ckg_en_cell/Q)
DelaySection
delay(r)delay(f)trans(r)trans(f)
levelminmaxskewminmaxskewminmaxminmax
---------------------------------------------
L919
L12222
L2616216
L31121142113
L457327292730
L593815231522
L6231014201420
L7249273242472732632943192
L82853814261425
LCL3563919501950
Trigger31735437Units(ps)
图4.11Hspice仿真延时信息
0
5
10
15
20
25
30
35
40
L0L1L2L3L4L5L6L7L8LCL
Level
C
l
o
c
k
S
k
e
w
(
p
s
)
EDIHspice
图4.12EDI与Hspice时钟偏差对比
国防科学技术大学研究生院工程硕士学位论文
第52页
根据图3.22与图4.11所示的结果,对比时钟偏差得到图4.12所示的结果,其
中L7为并行驱动缓冲器的输入端,L8为局部树缓冲器的输入端,LCL为叶节点
的输入端,从图4.12中可以很明显的知道,在L7之前EDI与Hspice计算的时钟
偏差不大,但是L7到L8的时钟偏差比较明显,EDI计算的结果偏小。
0
50
100
150
200
250
300
350
L0L1L2L3L4L5L6L7L8LCL
D
e
l
a
y
(
p
s
)
Level
EDIHspice
图4.13最小插入延时对比
0
50
100
150
200
250
300
350
400
L0L1L2L3L4L5L6L7L8LCL
Level
D
e
l
a
y
(
p
s
)
EDIHspice
图4.14最大插入延时对比
通过观察图4.13与图4.14中L8处EDI与Hspice的插入延时,EDI计算的L7
到L8的最小插入延时偏大,即并行驱动缓冲器与全局网格的延时偏大,这验证了
时钟网格在EDI中计算不准确。
4.2.3时钟网格与时钟树实验比较
为了验证时钟网格的优势,本文一共实现了两个模块的时钟网格设计,各个
国防科学技术大学研究生院工程硕士学位论文
第53页
模块的物理信息如表4.2所示。
表4.2设计模块基本信息
SizeSinkNumber
Block11900X1580um278232
Block2900X3000um278232
表4.3列出了两个模块的时钟网格所使用的缓冲器数量、最大插入延时、最大
全局时钟偏差、最大局部时钟偏差等实验结果信息。
表4.3时钟网格与时钟树实验对比
CellNumberMaxLatencyGlobalSkewLocalSkew
CTSMeshCTSMeshCTSMeshCTSMesh
Block2.1ps35鸽子蛋营养 4ps50.9ps37ps43.5ps26.4ps
Block2.7ps359ps58.6ps34ps44.2ps23.4ps
假设片上误差导致是时钟路径需要增加7%的时序富余,在图4.11中,全局时
钟偏差37ps,LCL级与L7级的时钟插入延时之差为非公共路径延时,即81ps。
因此Block1设计中时钟网格因片上误差而引入的最大时钟偏差为5.67ps,全局时
钟偏差增加了15%。在表4.3中,CTS因片上误差而引入的最大时钟偏差为26.7ps,
全局时钟偏差增加了52%。
从上面的实验结果与分析来看时钟网格实现了更小的时钟偏差与插入延时,
考虑非公共路径上的片上误差导致的时钟偏差增加,时钟网格最大增加15%的时
钟偏差,而CTS的时钟偏差却增加了52%。从时钟缓冲器使用数量的角度来看,
两种时钟结构使用缓冲器数量很接近,甚至在Block2的设计中,时钟网格使用的
缓冲器更少,这与设计模块是长条形由一定的关系,时钟树需要通过大量的缓冲
器才能将时钟信号传递到设计的每个角落。
4.3STA中时钟网格计算
静态时序分析(STA)通过遍历设计中所有的时序路径,检查设计是否存在时
序违反,判断设计是否达到时序要求。该方法不同于电路模拟来分析时序,无需
输入激励,适合大规模集成电路设计。因此在静态时序分析已经成了集成电路设
计中必做的一项工作[4][5][44]。
静态时序分析工具首先计算设计中单元与互连线的延时信息,然后对路径上
的单元与互连线的延时累加,将累加得到的延时与时序约束对比,如果所有的路
径都满足时序约束,表示设计芯片的时序要求已经满足。因此单元延时与互连线
延时计算,将是静态时序分析的基础。
国防科学技术大学研究生院工程硕士学位论文
第54页
静态时序分析工具通过本章第一节中介绍的延时计算方法获得延时信息,因
此时钟网格的延时信息,在静态时序分析工具中是无法获得的。本小节将结合使
用静态时序分析工具与电路模拟工具Hspice,完成设计的静态时序分析。
4.3.1设计流程
静态时序分析的流程如图4.15(a)所示,在物理设计完成后导出设计的设计
交换格式文件与设计网表,设计交换格式文件中包含单元的物理位置、布线信息,
寄生参数提取工具从设计交换格式文件中提取互连参数,最后给静态时序分析工
具计算延时与分析时序。
DEFFileNetlist
ExtractRC
ClockMesh
Delay
STA
Delay
Calcultaion
DEFFileNetlist
ExtractRC
STA
(a)(b)
图4.15静态时序分析流程
时钟网格在静态时序分析工具中分析流程如图4.15(b)所示,寄生参数提取
工具同时将互连参数给静态时序分析工具与电路模拟工具,电路模拟工具仿真模
拟得到的时钟网格延时信息将反标回静态时序工具中,覆盖静态时序分析工具自
己计算的时钟网格延时信息。
t_annotated_transition0.01-ricell_pin
t_annotated_transition0.01-falcell_pin
t_annotated_delay0.01-fromcell_pin-tocell_pin-net-ri
t_annotated_delay0.01-fromcell_pin-tocell_pin-net-fal
t_annotated_delay0.01-fromcell_pin-tocell_pin-cell-ri
t_annotated_delay0.01-fromcell_pin-tocell_pin-cell-fal
图4.16反标回STA的延时文件格式
图4.16为Hspice仿真后,反标回静态时序分析工具的延时文件格式。
国防科学技术大学研究生院工程硕士学位论文
第55页
4.3.2实验结果
本文对上一节内容进行实验,实验结果如图4.17所示,时钟根节点为clk,叶
节点为触发器,其中图4.17(a)为静态时序分析工具中时钟网格路径的延时,图
4.17(b)为Hspice反标的时钟网格延时信息。
Startpoint:gen_way_op_1_wayop_dir_cr_reg_16
(risingedge-triggeredflip-flopclockedbyClk)
Endpoint:cache_fwd(outputportclockedbyClk)
PathGroup:Clk
PathType:max
PointIncrPath
-------------------------------------------------------------------------------------------------------------
clockClk(riedge)0.0000.000
clocksourcelatency0.0000.000
clk(in)0.0000.000r
dcumesh_L0C1_B000/Z(CKBD20BWP12TLVT)0.047*0.047r
dcumesh_L01_B000/Z(CKBD20BWP12TLVT)0.029*0.076r
dcumesh_L02_B001/Z(CKBD24BWP12TLVT)0.024*0.100r
dcumesh_L03_B000/Z(CKBD24BWP12TLVT)0.032*0.132r
dcumesh_LOCAL_B015/Z(CKBD6BWP12TLVT)0.049*0.181r
gen_way_op_1_wayop_dir_cr_reg_16/CP(SDFXD1BWP12TLVT)0.005*0.186r
gen_way_op_1_wayop_dir_cr_reg_16/Q(SDFXD1BWP12TLVT)0.136*0.322f
…
Startpoint:gen_way_op_1_wayop_dir_cr_reg_16
(risingedge-triggeredflip-flopclockedbyClk)
Endpoint:cache_fwd(outputportclockedbyClk)
PathGroup:Clk
PathType:max
PointIncrPath
-------------------------------------------------------------------------------------------------------------
clockClk(riedge)0.0000.000
clocksourcelatency0.0000.000
clk(in)0.0000.000r
dcumesh_L0C1_B000/Z(CKBD20BWP12TLVT)0.025*0.025r
dcumesh_L01_B001/Z(CKBD20BWP12TLVT)0.031*0.056r
dcumesh_L02_B006/Z(CKBD24BWP12TLVT)0.027*0.083r
dcumesh_L03_B006/Z(CKBD24BWP12TLVT)0.030*0.113r
dcumesh_LOCAL_B015/Z(CKBD6BWP12TLVT)0.036*0.149r
gen_way_op_1_wayop_dir_cr_reg_16/CP(SDFXD1BWP12TLVT)0.005*0.154r
gen_way_op_1_wayop_dir_cr_reg_16/Q(SDFXD1BWP12TLVT)0.136*0.290f
…
(a)
(b)
图4.17STA中时钟网格路径延时
国防科学技术大学研究生院工程硕士学位论文
第56页
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
L0C1L01L02L03L04LCLSink
Level
D
e
l
a
y
(
p
s
)
STAToolHspice
图4.18STA中时钟网格分析
图4.18中L01-L03为预驱动,L04为并行驱动缓冲器,LCL为局部树结构,
Sink为叶节点。从图4.18中可以看出L04处的延时存在较大差别,即并行驱动缓
冲器的延时在静态时序分析工具中存在误差。而L0C1处的延时误差来自输入信号
的跳变时间设置不同。这也印证了4.2.2章中对Hspice网表激励的要求。
4.4本章小结
本章首先介绍了布局布线工具中单元延时与互连线延时的计算方法,在时钟
网格的设计用,并行驱动缓冲器无法通过基于电压源模型的时序库文件查表得到
延时,全局网格线的计算无法通过Elmore公式计算。
然后本文给出了Hspice仿真计算时钟网格的详细设计过程,在时钟网格布线
后采用IQRC提取互连参,编写Hspice网表,模拟并反标到EDI工具中。
最后,将Hspice与静态时序分析结合,将Hspice的模拟结果反标到静态时序
分析工具中,使静态时序分析工具也能分析时钟网格。
国防科学技术大学研究生院工程硕士学位论文
第57页
第五章结束语
随着集成电路行业的发展,高性能芯片设计中对时钟网络的要求越来越高,
设计者已经不满足于传统的时钟树结构,而时钟网格结构因为具有时钟偏差小、
片上误差不敏感、驱动负载强等特点而广受关注。近年来的高性能芯片中多采用
网格型时钟网络或者混合网格的时钟网络结构。本文针对时钟网格设计与分析过
程中存在的一些问题,进行了深入研究,给出了完整的解决方案。
5.1课题总结
本文研究的主要内容有:
详细介绍了时钟信号的一些基本概念,如时钟延时、时钟偏差、片上误差
等。并对时钟网络结构进行的分类总结,时钟网络因其结构特点,分为树
状时钟网络、网状时钟网络以及混合时钟网络。
深入研究了时钟网格的组成。时钟网格主要由顶层链、全局网格、局部树
三部分组成,其中全局网格的设计是时钟网格设计的关键点。总结了时钟
网格设计的准备工作,包括时钟网格设计过程中采用哪种时钟网格结构、
三种全局网格各有什么特点、对特殊时钟结构的处理等。
详细阐述怎样编写时钟网格规范文件,并详细解释了每一个部分的意思。
时钟网格规范文件编写时,需要统筹考虑设计模块的拓扑结构、时钟网格
的自身特点、时钟结构等因素。最后在两个设计模块中实现了时钟网格。
采用Hspice仿真的方式,解决了时钟网格的并行驱动缓冲器与全局网格
线延时不能精确分析的问题,并将Hspice仿真的结构反标回布局布线工
具,以供布局布线工具布线与时序分析。
解决了签核阶段中,静态时序分析工具无法计算时钟网格延时的问题。本
文首先通过寄生参数提取工具从设计交换格式文件中提取设计的互连参
数,然后结合晶体管模型,采用Hspice模拟得到时钟网格延时,并反标
回静态时序分析工具。
5.2未来工作展望
集成电路的发展是日新月异的,对时钟网络的要求也将越来越高,与此同时,
越来越多的集成电路芯片中采用了时钟网格设计。由于工作量和时间的问题,本
课题所涉及的研究还有许多可以改进的地方,以后可以从以下几个方面继续研究:
时钟网格的实现还不够自动化。本文虽然已经实现了时钟网格的设计,但
国防科学技术大学研究生院工程硕士学位论文
第58页
是实现过程中还是有许多需要设计者干预的地方。因此,将设计者的判断
过程用脚本实现,用以增强时钟网格设计的自动化实现能力,是非常必要
的。
优化时钟网格并行驱动缓冲器结构。全局网格线因为负载电容大、被驱动
单元多,设计者往往使用了大量的驱动缓冲器来并行驱动,造成实际驱动
能力过剩,浪费功耗与布局布线资源,因此如何根据负载优化驱动缓冲器
的结构与数量,也是非常值得研究的。
增强时钟网格的通用性,使得时钟网格在各种时钟结构下都能实现。
国防科学技术大学研究生院工程硕士学位论文
第59页
致谢
时光荏苒,三年的硕士生涯即将结束。回首在国防科大学习的这三年时间,
无论是在专业知识的学习,还是个人能力方面都取得长足的进步与提高。这一切
不仅取决于科大给我们提供了良好的学习生活环境,更重要的在于有学识渊博的
老师和热情友善的同学的支持和鼓励。
在这里首先感谢我的导师蒋江副研究员。蒋老师睿智豁达、待人亲切。不但
在课题学习上给我帮助,而且还扩展我看待问题的思路。由衷感谢蒋老师,并祝
您合家幸福、身体健康。
感谢赵振宇副研究员。赵老师是难得的良师益友,在课题研究中赵老师给我
非常大的帮助,每当遇到问题,赵老师都会悉心指导、循序渐进的引导我寻找问
题答案,让我在解决问题本身的同时,还掌握了如何解决问题、如何更好的解决
问题的方法。赵老师治学严谨、精益求精的态度,在我硕士阶段的成长过程中起
了非常重要的作用,让我受益终身。
感谢李少青老师、马驰远老师、马卓老师、邓让钰老师、余金山老师、高军
老师,它们在工程项目进行中给予了我无私的帮助。在他们的帮助下,我在项目
中所遇到的问题得以迅速解决。
感谢丁军峰师兄、乐大珩师兄、陈延仓师兄、何小威师兄、栾晓坤师兄、吴
峰峰师兄、孙岩师兄、张少华师兄、章胜师兄、杨方杰师兄、王志鹏师兄、段志
奎师兄以及陈建梅师姐、赵雅丽师姐、李晓静师姐在我工作学习中给予的帮助、
建议,师兄师姐永远是我学习的榜样。
感谢项目组的同学,他们是杨朱黎、张国强、西西志华、曾艳飞、王思威、
刘占涛、袁秋香、王丹、赵宗浩。与你们在这两年的共事中,我深深的感受到了
集体的温暖,在与你们的交流讨论中,丰富了我的知识、扩展了我的思维。感谢
刘元龙、莫凡、夏婷婷、孙秀秀、欧阳海燕在论文方面的帮助。
感谢我的室友梅家祥、闵银皮、罗波,你们让我在紧张的工作环境下,拥有
一个轻松、和谐的生活环境。感谢你们在生活与工作中的支持与帮助。
感谢学员队唐又旺政委、贺毅队长、莫道迟老师、周永安老师为我们营造了
一个良好的生活环境,提供各方面的后勤保障,使我们能以更轻松地心态去面对
学习和工作中的挑战。
最后要感谢我的父母、弟弟,感谢你们多年来的一贯的支持与鼓舞,你们的
付出是我一生难以回报的,我将在以后的工作中更加努力,不辜负你们的期望。
国防科学技术大学研究生院工程硕士学位论文
第60页
参考文献
[1],AnanthaChandrakasan,andBorivojeNikoli著.周润德等译.数字
集成电路:电路,系统与设计[M](第二版).北京:电子工业出版社,2004,10.
[2]nger,RohitBhatia,LarryBiro,BillBowhill,EricFetzer,Paul
Gronowski,TomGrutkowski.A32nm3.1BillionTransistor12-Wide-Issue
ItaniumProcessorforMission-CriticalServers[C].ISSCC,2011.
[3]Moore’:///wiki/Moore%27s_law.
[4]陈春章,艾霞,王国雄.数字集成电路物理设计.北京:科学出版社,2008:93~126.
[5]alDesignofaFourth-GenerationPowerGHz
Microprocessor[C].,Feb.2001:232~233.
[6]贾有方.面向全定制宏模块的时序建模技术研究与实现[D].国防科学技术大学
硕士学位论文,2010.
[7]TheInternationalTechnologyRoadmapforSemiconductors:2011Edition
[EB/OL]./Links/2011ITRS/.
[8]sorDesign:System-on-ChipComputingforASICsand
FPGAs[M].Springer,2007.
[9]LouisScheffer,LucianoLavagno,GrantMartin著.陈力颖,邹玉峰译.集成电路实
现,电路设计与工艺[M].北京:科学出版社,2008.
[10].A5.2GHzMicroprocessorChipfortheIBMzEnterpriTM
System[C].,February2011:7~71.
[11]SolutionsfortheBulldozer32nmSOI2-CoreProcessor
Moduleinan8-CoreCPU[C].,February2011:78~79.
[12]-3B:A1GHz40W8-Core128GFLOPSProcessorin
65nmCMOS[C].,February2011:76~77.
[13]IntelXeonProcessor7041.
/products/27227/Intel-Xeon-Processor-7041-(4M-Cache-3_00-
GHz-800-MHz-FSB)
[14]HoumanZarrabi,HaydarSaaied,Al-KhaliliA.J.,ew
DifferentialClockDistributionNetwork[C].InProceedingsof2006IEEE
InternationalSymposiumonCircuitsandSystems,2006:77~80.
[15]JairathA.,SivaSubramanianB.,lacementforReduced
DelayUncertaintyinHighPerformanceClockDistributionNetworks[C].The48th
MidwestSymposiumonCircuitsandSystems,2005:1454~1457.
[16]Chia-MingChang,Shih-HsuHuang,-MatchingClockTree
forZeroSkewClockGating[C].45thACM/IEEEDesignAutomation
Conference,2008:714~719.
本文发布于:2023-03-21 07:45:45,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/4e325c53f0bbb3f745429375a3bad1b7.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:手工时钟.doc
本文 PDF 下载地址:手工时钟.pdf
留言与评论(共有 0 条评论) |