数字ic后端设计从入门到精通14(含fusion compiler, tcl教学)半定制后端设计
半定制物理实现工程师应该具备的能力
1)要深入了解相关布局布线工具的各方面特性及参数,这样才能正确地操作布局布线工具。
2)要把握好后端物理实现中标准单元和宏单元的性能指标及物理参数。这样才能在芯片布局布线初期对预布局有合理地规划,并且可以很好地把握芯片预估的性能,最终减少布局布线实现的迭代次数,提高执行效率。
3)要很好地掌握布局布线需要使用的各种数据信息,了解各种数据的来源。这样在布局布线过程中,当出现错误时就可以马上定位到问题的所在之处,否则数据上的错误如果不能及时地找出并解决,可能会导致整个工程进度的长时间停顿。
4)要能在布局布线过程中与前端设计工程师进行有效地配合。这样在物理实现过程中,许多实现策略及优化的设置都能通过与前端工程师的交流得到正确地指导。
不同阶段
1)在芯片设计初期,在前端设计流程中能够为前端工程师提供设计建议。这样可以对芯片进行更合理地体系结构设计及性能预估。考虑到后端实现的各种因素,所以可以在前端合理设置综合过程中的时序约束。
2)在芯片设计中期,在后端设计流程中根据布局布线工具的实现策略,能够给标准单元和宏单元设计者提供必要的设计建议和规范,这对高性能芯片的实现并对达到设计要求具有极其重要的价值。
3)在芯片设计过程中,能够对自行设计的标准单元和宏单元进行合理地评估,指导后端单元库设计者设计更合理的单元。
半定制物理实现流程
目前在物理设计流程中广泛采用两种物理实现方式,一种是展平化设计(Flatten),一种是层次化设计(Hierarchical)。在展平化设计中,需要将前端生成的逻辑网表展平,并将设计中的标准单元作为最底层的子节点,不同功能的模块所包含的标准单元都在同一个层次上。在展平化设计流程中,各个子模块是打散排列的,不需要考虑各个模块的功能与位置关系,可利用后端工具进行自动的布局布线。由于展平化设计流程不需考虑单元的层次,在标准单元的布局上,往往可以得到比较快的执行速度,但缺点是不能针对系统功能定义最合理的约束。对于大型复杂系统,各个模块没有进行有针对性的合理约束往往不能得到最优的时序性能。
层次化设计是在物理设计中保持逻辑设计的层次,并按逻辑关系进行模块划分、设置合理约束,并对布局布线等进行系统级优化。层次化设计具有许多优点,主要是它可以对模块施加灵活而严格的约束;允许多个物理设计人员并行工作,提高后端设计的并行性;能够减少一些重复的迭代工作;由于增加了许多对功能模块的操作,还可以节约系统资源。层次化设计也有其局限性,主要是设计过程复杂,对含有多个模块的设计需要进行优化工作,层次化设计对规模不大的设计优化性能并不明显。
1)数据导入
后端设计所需的数据主要是前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的SDC约束文件。同时,也需要流片厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef/tlef(分别侧重PITCH/layer/site/via和pin)、.lib(时序)和.v的形式给出。
2)布局规划(Floorplan)
主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求摆放,标准单元则是给出一定的区域由工具自动摆放。布局规划完成后,芯片的大小、Core的面积、Row的形式、电源及地线的Ring和Strip都确定下来。如果有必要,可以把布局规划以DEF的形式反馈给前端设计者,这样可以基于实际的物理布局规划进行更加精确的RTL代码综合。
3)单元放置(Placement)
布局规划后,宏单元、I/O Pad的位置和放置标准单元的区域都已确定,这些信息会通过DEF文件传递APR工具,APR工具根据网表和时序约束信息进行自动放置标准单元,同时进行时序检查和单元的放置优化。如果有必要,在自动放置标准单元和宏单元之后可以先做初步的IR Drop分析和EM分析。
4)时钟树综合(Clock Tree Synthesis)
芯片需要时钟网络来驱动电路中所有的时序单元,所以时钟源端门单元负载很多,其负载延时很大并且不平衡,需要插入缓冲器以减小负载和平衡延时。时钟网络及其缓冲器就构成了时钟树。一般要反复几次才可以做出比较理想的时钟树。
5)全局与细节布线(NanoRoute)
布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可靠绝缘的电性能的约束条件下,根据电路的连接关系将各单元和I/O Pad用互连线连接起来,这些是在时序驱动(Timing Driven)的条件下进行的,保证关键时序路径上的连线长度最小。
6)电压衰减分析(IR-drop&EM)
在布线完成和数据基本确定后,对整个设计的功耗及电压降分析就更加精确了,通过电压降分析评估电源网络是否达到设计要求。
7)时序验证与ECO
在插入时钟树后,每个单元的位置就确定了,同时布线完成后的连线寄生参数也基本确定了,此时对延时参数的提取就比较准确。APR工具通过DEF及寄生参数文件传递给时序分析工具做静态时序分析。针对静态时序分析和后仿真中出现的时序违反问题,通过ECO对电路和单元布局进行小范围改动以满足时序要求。
8)功能等价性检查
布局布线需要根据物理情况修改门级网表,所以通过等价性检查来确认最终的网表与前端提供的初始网表在功能上是否是一致的。该过程可以在布局布线过程中的任何阶段进行验证。一般采用formality。
9)物理验证
物理验证中DRC对芯片版图中的各层物理图形进行设计规则检查,它包括天线效应的检查以确保芯片正常流片。LVS主要将版图和电路网表进行比较,保证流片出来的版图电路和实际需要的电路一致。
10)流片(Tapeout)
在所有检查和验证都正确无误的情况下,把最后的版图GDS文件传递给流片厂进行掩膜制造。
半定制物理实现使用的EDA工具
1)自动布局布线工具(Soc_Encounter(EDI))
该软件是后续半定制实战章节中使用的物理实现工具,它是半定制后端设计最具代表性的半定制物理实现工具。ASIC设计从门级网表级到版图实现的大部分工作都可以通过使用该软件完成,它是业界最常用的布局布线工具之一。
2)版图编辑(Virtuoso Layout Editor)
该软件是后续半定制实战章节中用于版图实现后,在版图编辑时所需要使用的工具。该工具也是全定制设计的主要版图编辑工具,也是业界最常用的版图设计工具之一。
3)DRC,ERC(Hercules Explorer DRC)
该软件是后续半定制实战章节中用于版图物理设计检查的工具,该工具也是全定制设计中的主要版图物理验证工具,也是业界最常用的物理验证工具之一。
4)LVS(Hercules Hierarchical Design Verification)
该软件是后续半定制实战章节中用于版图与网表物理等价性检查的工具。该工具也是全定制设计中主要的版图物理验证工具,也是业界最常用的物理验证工具之一。
5)RC寄生参数提取(Star RCXT)
该软件是后续半定制实战章节中用于物理版图寄生参数提取的工具。该工具也是全定制设计中的主要版图寄生参数提取工具,也是业界最常用的物理版图寄生参数提取工具之一。
6)Sign-off时序分析(Encounter Timing System)
该软件是后续半定制实战章节中用于时序分析的工具,该工具也是业界最常用的时序分析工具之一。
7)电压降和功耗分析(Encounter Power System)
该软件是后续半定制实战章节中用于功耗分析的工具,该工具也是业界最常用功耗分析工具之一。
布局规划
基本要求
好的布局规划应该实现以下4个基本要求:
1)确定芯片面积。
出于成本考虑,芯片面积越小,每张硅片上产出的芯片数量越多,从而平均到每个芯片上的成本会降低。但是如果布局规划设计的芯片面积太小,则会造成阻塞程度高,难以布线,从而会导致长周期的设计迭代,一个合理的面积设定在保证布线的同时尽量节约产品成本,所以布局规划的最初目标是估计芯片面积的大小。
2)相对比较大的宏模块放置到合理的区域,并且可以连接到电源地网络。
我们必须采取措施确保芯片稳定地工作,芯片输入输出单元的静电保护和供电设计都是保证芯片输入输出稳定的重要条件。
3)芯片中各个模块之间的互连没有阻塞,并且互连线要尽量的短以达到最优的性能。
布局规划完成了芯片的器件摆放后,芯片功能的实现需要将所有器件按照连接要求连线,因此布局规划在保证布线
通畅的同时还需要尽量地缩短走线的长度,减少互连线的延时,从而有效地提高芯片的性能。这需要设计者对逻辑设计及其功能有一定的了解,比如各个模块之间的连接关系、数据通路结构等,一个好的布局规划和一个差的布局规划在时序上差别很大。
4)保证达到前端设计定义的时序约束要求。
在数字集成电路设计中,所有工作都是在时钟的控制下完成,所以从一个寄存器到达另一个寄存器的路径长短决定了芯片的性能。在芯片设计布局规划阶段,设计者要考虑到最终芯片是否满足设计的标准时序约束要求,实现时序的收敛,满足芯片所需要实现的性能,因此在布局规划阶段需要对芯片的延时进行预估。
基本指导
1.了解流片工艺与布局布线实现的相关规则
在布局规划之前需要详细了解对应流片工艺与布局布线实现的相关规则。通常标准单元是水平方向以行(Row)为单位进行放置,如图
布线方向通常以金属层1为水平方向,金属层2为垂直方向,每层金属的走线方向交叉设置,以此类推。由于金属层1主要用于标准单元内部走线和电源金属,所以金属层1所能使用的走线资源非常有限,那么对于一个只有4层金属的流片工艺,垂直走线的资源就会比水平走线的资源充足,那么可以通过调整标准单元的行间距来增加水平走线资源。
对于一个有5层金属的流片工作,垂直走线资源与水平走线资源之比基本持平。如果流片工艺各层金属的走线方向正好相反,1层金属的走线方向为垂直,那么对于4层金属的流片工艺,水平走线资源比垂直走线资源充足。通过考虑流片工艺有多少层金属层可以对整个走线资源做一个先期的评估。
2.合理设置与I/O PIN有连接关系模块的位置
对于多数模拟IP部件,需要特殊的走线要求来满足电阻电容对模拟部件的影响。IO PIN与模拟IP部件的连接越容易实现越好,这样可以减少走线对模拟IP部件带来的不确定影响,所以I/O PIN的位置及模拟IP部件的合理布局非常重要。一个不太合理的布局规划,如图
这个布局规划使得模拟IP与对应的I/O PIN的连接路径太长,增加了很多不确定的影响,比如占用了过多的走线资源、走线电容负载及走线电阻等。好的布局规划应该是调整模拟IP或者I/O PIN的位置,使它们的连接距离越短越好,减少过长走线带来的影响。可以通过调整模拟IP部件的位置实现合理布局,如图
也可以通过调整I/O PIN的位置实现合理布局,如图
模拟IP靠近IO的原因
减少信号干扰
模拟信号对噪声和干扰非常敏感。如果模拟IP离IO太远,传输线可能会拾取噪声或产生反射,影响信号质量。将模拟IP靠近IO可以最小化这些问题。
降低延迟
对于某些应用,特别是那些需要实时处理的应用,降低信号路径的长度可以减少延迟,提高系统的响应速度。
简化布线
模拟电路往往需要更复杂的布线以确保信号完整性,包括使用屏蔽线、保持特定的阻抗等。将模拟IP靠近IO可以简化这些要求,使得设计更加容易实现。
电源完整性
模拟电路对电源波动较为敏感。接近IO可以更好地控制电源分配网络(PDN),减少因长距离传输导致的电压降和电源噪声问题。
3.合理设置与I/O PIN有连接关系模块的方向
与I/O PIN有连接关系的IP模块部件,如果方向不合理会增加走线资源,同时带来潜在的负面影响,如图
合理的摆放方向可以通过IP模块上与I/O PIN相关的输入输出PIN来决定IP模块的摆放方向,IP模块部件与I/O PIN相连接的边面向I/O PIN,这样可以减少所占用的走线资源,如图
4.合理设置内部IP模块的摆放位置
与I/O PIN没有直接连接关系的内部IP模块部件,因为自身内部可能占用了大部分的走线资源,它的位置将会阻塞该区域的走线通道,所以合理设置内部IP模块的布局位置,能够有效地降低连接的难度,提高连通性。一般内部IP模块不要放置在中间区域,这样会阻挡四周标准单元相互连接及I/O PIN与内部的连接,如图
比较合理地放置内部IP模块的方法是尽量放置在芯片内核区域的四周,把走线难度减低到最低
5.合理设置内部IP模块的摆放方向
内部IP模块部件,如果方向不合理也会增加所需走线资源,同时带来潜在的负面影响,如图
由于内部IP模块部件都是与内核模块相连接,所以将内部IP模块有输入输出PIN脚的边面向内部为合理的摆放方向,如图
6.合理设置内部IP模块的堆叠
大部分内部IP模块都是以存储IP模块(RAM和ROM)居多,同时很多存储IP模块都在同样的RTL模块(Module)里,所以一般相同RTL模块里的存储IP模块都放置在一起,将把它们整齐地堆叠在一起以减少所占用的面积优化时序,如图
但是堆叠的层数太多会导致布通率下降,提高时序要求的难度。根据实际流片工艺下一个中等驱动能力的缓冲器(Buffer)可以驱动的合理距离作为参考,一般堆叠的层数是堆叠高度小于该距离的堆叠层数。如果堆叠的高度大于该距离,就需要在堆叠的IP模块之间增加走线通道即间隔来提高布通率,同时合适的间距可以通过放置缓冲器标准单元来优化时序,如图
7.合理设置RTL模块(Module)的位置
合理的RTL模块位置对整个布局布线结果也会产生很重要的影响,不同的RTL模块布局可能出现不同的性能结果。虽然现在的布局布线的工具都具备智能摆放RTL模块的能力,但是效果不如前期人为设置合理的RTL模块的结果。不合理的RTL模块的布局,如图
通过优化RTL模块的位置后的结果,如图
可以明显看出,如果在设计前期没有进行预布局优化,那么内部模块相邻位置及连接性是不合理的,而进行预布局优化后,工具根据模块间的连接关系及时序约束把对应的模块放置到更加合理的位置。有连接关系的模块放置在一起,这样不仅节约了布线资源而且提高了连接性,同时也可以减少芯片面积。
人为手动合理设置RTL模块可以通过Soft Guide、Guide、Region、Fence来设置约束,如图
Soft Guide:
指定某些模块集合放置在一起的软约束,但是并不确定最终的具体位置。
Guide:
指定某些模块集合应该放置的区域约束,但是该设置仅仅是一个指导,对工具来说并不是强制的,指定的模块放置到指定区域外也是可以的。
Region:
指定某些模块集合只能放置在该区域中,但是其他模块也可以放置到该区域中。
Fence:
指定某些模块集合只能放置在该区域中,其他模块也不能放置到该区域中。
8.合理设置IP模块的外围隔离环
在放置IP模块时,会在相互之间存在的间距空间里放置标准单元比如缓冲器单元,这样可能导致IP模块的四角区域出现走线阻塞的问题,如图
设置IP模块的外围隔离环主要是因为布线通道有限,如果有许多其他单元离得太近就需要占用紧张的布线通道,这将导致布线不通,所以在模块周围合理设置隔离环以保证模块本身需要的布线资源足够而不被其他单元使用。同时可能由于标准单元放置的位置距离IP模块太近导致DRC问题,所以需要合理设置IP模块与标准单元的间距。通过设置IP模块外围隔离环可以提高布通率和避免DRC违反,如图
电源规划
电源规划是给整个芯片的供电设计一个均匀的供电网络,它是芯片物理实现中非常关键的一部分。电源规划在芯片布局规划后或在布局规划过程中交叉完成,它贯穿于整个物理实现过程,需要在芯片设计的不同阶段对电源的供电网络进行分析并根据要求进行修改。
在电源网络设计中,主要问题是电迁移所造成的金属连线的击穿问题和工作电压衰减所造成的噪声容限下降的问题,虽然可以通过增加连线宽度的方法加以解决,但是增加连线宽度会消耗许多布线资源,使得成本增加。因此,在给定的条件限制下,需要合理设计电源分布网络。
随着深亚微米技术的发展以及SOC设计方法的应用,使得设计面临着更高的设计复杂度、更快的工作频率、较细的布线线宽和较低的工作电压,这些设计要求都加大了电源分布网络的设计难度。为了抵消电压降的影响,势必要加大电源网络密度。因此,在深亚微米条件下,设计一个符合要求的电源网络也是一项十分复杂的工作,设计时既要满足电路可靠性的要求,还要考虑成本的因素。
大规模集成电路设计中往往包含多个IP模块和规模十分庞大的标准单元组成的模块,如何计算电源环和电源条带的宽度和数量是设计者需要考虑的问题。可以对布局后的物理结构进行功耗分析以改进电源分配的形式,但电源的修改往往需要多次迭代,耗时严重。在布局规划阶段进行预先地设计和计算,这样对减少因调整电源带分布而引起的迭代次数是十分有用的。
电压降与电迁移
设计中最关心的是系统能够达到的工作频率,许多设计的前期都是根据时序要求进行的。时序驱动的布局并不关心功耗分配的情况,因此使用功耗分析结果来调整布局中存在功率消耗过于密集的单元放置区域,对于减少因电压降带来的延迟增加以及避免局部由于过热而引起的工作不稳定问题是十分必要的。
电源布线网络的设计和优化主要实现以下目标
1)尽量减小因互联电阻引起的电压衰减,以减小对系统运行速度的影响。
2)电流密度均匀分配,避免发生电迁移效应,增强系统的可靠性。
电压降
电压降(IR Drop)是指集成电路中出现在电源和地网络上电压下降或升高的一种现象。随着半导体工艺的发展,金属互连线的宽度越来越窄,使得它的电阻值上升,所以在整个芯片范围内存在一定的电压降。电压降的大小取决于从电源PAD到所计算的逻辑门单元之间的等效电阻的大小。SOC设计中每一个逻辑门单元的电流都会对设计中其他逻辑门单元造成不同程度的电压降。如果连接到金属连线上的逻辑门单元同时有翻转动作,那么因此而导致的电压降将会很大。然而,设计中某些模块的同时翻转又是不可避免而且是非常重要的,例如时钟网络和它所驱动的寄存器,在同步设计中它们必须同时翻转,因此一定程度的电压降是不可避免的。
电压降可能是局部或全局性的,当相邻位置一定数量的逻辑门单元同时有逻辑翻转动作时,就会引起局部电压降现象,而电源网络某一特定部分的电阻值特别高也会导致局部电压降;当芯片某一区域内的逻辑动作导致其他区域出现电压降时,称之为全局现象。电压降问题的一般表现形式通常为类似一些时序违反甚至可能是信号的完整性问题,因此电压降比较普遍的影响就是降低了芯片的速度。如果芯片的全局电压降过高,则逻辑门就有功能故障,使芯片彻底失效,即使逻辑仿真显示设计是正确的。局部电压降比较敏感,它只在一些特定的条件下才可能发生,例如所有的总线数据同步进行翻转,因此芯片会间歇性地表现出一些功能故障。
芯片电源网络上的电压降按照形成原因可以分成静态电压降和动态电压降两种:
静态电压降
静态电压降现象产生的主要原因是电源网络的金属连线的分压,即金属连线的自身电阻分压造成的。电流经过内部电源连线的时候,根据欧姆定律产生电源压降。所以静态电压降主要与电源网络的结构和金属连线的细节有关,比如金属连线的宽度及电源连线所用金属层。同时考虑到电源线上流过的电流大小,尤其需要注意的是不同金属层电源线之间用于连接的通孔个数和打孔的位置。
动态电压降
动态电压降是电源在逻辑电路开关切换时电流波动引起的电压降。这种现象发生在时钟的触发沿,时钟沿跳变不仅会带来时序单元中的大量晶体管开关翻转,同时也会带来组合逻辑电路的跳变,短时间内在整个芯片内部产生很大的导通电流,这个瞬间的大电流引起了动态电压降现象。
开关翻转的晶体管数量越多,越容易触发动态电压降现象,比如高扇出的一些电路结构,在同一时间内可能产生大的泄放电流;在扫描测试电路中,由于扫描链的规模非常大,也容易引起动态电压降现象,因此后端设计在需要提供足够强壮稳定电压的电源网络。
控制电压降问题的基本方法
电压降这种现象是每个芯片都会有的,因此面对电压降只能尽可能地减小这种影响,尽可能地让电压降所产生的影响不至于对信号完整性和时序产生过度的不良影响甚至功能失效。
1.合理设置电源I/O PAD的数量及位置
芯片的电源都是通过电源I/O PAD输入到内部的,因此如果提供足够的电源输入端口,同时均匀地合理分布I/O PAD位置以覆盖整个芯片供电区域,将大大提高芯片的供电能力。但是根据芯片的封装形式,电源I/O PAD的数量会受到某些因素的限制。
Wire Bond封装形式的芯片,可能使其面积受限于I/O PAD的数量,增加过多的I/O PAD数量将会大大增加芯片的面积,从而提高成本。目前最新的倒装芯片(Flip Chip)工艺能够很好地提供更多数量的电源I/O PAD。
2.为电源网络增加合理的电容
电源主干网络承接着整个芯片的电源供给,由于芯片各模块在动态工作时,其工作状态对稳定电源的干扰各不相同。当某个模块在某个工作状态下消耗的功耗过多,可能电源主干网络不能及时地提供足够的电源电压而导致电压降,所以在对芯片电源稳定需求比较严格的区域,为该区域的主干电源网络添加合理的电容,电容作为电源供给缓冲器能有效缓解随机出现的短暂电压降问题。
3.合理设置电源网络结构
高层金属线所能提供的电流密度相对较大,而且高层金属电阻也相对较小,同时也不会过多地占用低层用于信号线连接的金属层资源,所以电源网络一般通过高层金属组成电源的主干网络。
高层金属组成的电源主干网络根据设计的具体需要可以使用一层或多层,一般使用两层高层金属以网格的形式实现并达到均匀分布的目的。电源网络中高层金属之间可以通过通孔阵列相互连接,达到均匀电流密度的目的。
4.合理加强功耗需求较高的模块或区域的电源供给
由于芯片各部件的功能不同,其动态消耗的功耗也各不相同。因此各部件之间可能会共用某电源主网络,如图
共用电源主网络的各部件可能都会影响公共电源网络的电压的变化,但是各部件本身可以接受的电压变化值并不相同,对于关键的部件影响会比较大。对于重要部件所在区域需要提供额外的电源稳定保障,对重要模块或者区域可以单独提供供电主干网络,这样可以保证不受其他模块的影响,如图
电迁移
金属电迁移(ElectroMigration,EM)用来分析由于金属互连线断裂、熔化等导致芯片失效的原因。
当电子流过金属线时,将会跟金属线的原子发生碰撞,碰撞导致金属的电阻增大,并且发热。在一定时间内,如果有大量的电子同金属原子发生碰撞,金属原子就会沿着电子的方向流动。
这将会导致两个问题:
第一,移动后的原子将在金属上留下一个空位,如果大量的原子被移动,则连线断开;
第二,被移动的原子必须停在某一个地方,如果这些原子停在某个地方则将导致邻接的金属连线短路,则芯片的逻辑功能就会被改变,从而发生错误。
电迁移是一个长时间的损耗现象,常常表现为经过一段时间后芯片有时序或功能性错误。如果芯片中某一根连线是唯一的,那么当发生电迁移问题后,会导致整个芯片的功能失效。如果一些连线本来就有冗余设计,例如电源网络,当发生电迁移问题后,其中的一部分连线会断开,而其他部分的连线就会承受较大的电压降问题。如果因为电迁移而导致线路间的短路,那整个芯片就会失效。
电源网络的电迁移是由流经金属线与通孔的平均电流引起的一种直流现象,这是深亚微米电源网络设计中出现的一种重要问题。大电流密度与窄线宽会引起EM,而由EM造成的故障可能是灾难性的。
这些故障一般都发生在用户那,此时芯片早已安装在大系统中的基板上了,如果出现问题,就可能使得设计被召回。虽然EM可能会造成电源网络中的电路开路或短路,但最常见的影响还是电源网络路径中电阻值的增加,由此引起电压降或地线反弹,从而影响到芯片的时序性能。这也是芯片为什么最初工作正常且符合规范,但后来却发生不明故障的原因所在。
EM设计的指导性依据是平均电流水平,其实最终还是取决于信号线中的电容,因此精确的EM预测需要正确的电容信息。
此外,由于设计中的金属线会有高度变化,且具有不同级别的材料属性,因此每个金属层都会有不同的故障标准,所以确定芯片中有潜在EM问题区域的唯一方法是进行全网络分析。
常用电迁移的中值失效时间(MTF)描述了电迁移引起的失效影响。中值失效时间指同样的直流电流试验条件下,50%的互连引线失效所用的时间,失效判据为引线电阻增加100%。Black给出了直流模型下描述电迁移失效中值时间的经典式
式中,A为与导电材料相关的常数;j为电流密度;n为电流密度指数;Ea为扩散激活能;k为玻耳兹曼常数;T为绝对温度。MTF越大,表示发生电迁移失效所需时间越长。MTF与电流密度和温度密切相关,式中常数n取决于电流密度j。
业界常用Black定律预测金属线的平均无故障时间,主要参数是金属线旁边的平均电流密度J。平均数据越精确,MTF的估测效果就越好。
为了得到最精确的数据信息,往往需要在设计中使用大量的向量。同时必须测得每根金属线的平均电流,然后除以线的宽度和厚度。
这对构造芯片来说显然是不可能做到的,也无法用电路仿真实现。替代昂贵的晶体管级仿真的另外一种方法是利用门级或更高层工具从活动信息中获取以触发数据形式出现的平均电流。触发数据其实只是一个门在上千个时钟的仿真周期内完成高低电平切换的次数。将这些触发数据除以时钟周期数就可以得到活动信息。
例如,一个存储器电路的内核的活动性可能是0.02%,而一个数据路径可能接近5%。对与电源网络相连的晶体管来说,这些因素可以转换成平均电流信息。
控制电迁移问题的基本方法
无论从晶体管级还是门级来分析电迁移效应,最终目的是在设计过程中通过一些有效的方式来降低电迁移的影响。
1.控制电源地线长度
在铝连线中,MTF随着长度的增长而下降,直至某一临界值,MTF不再取决于长度的变化。其原因在于随着铝引线长度的增加,出现严重缺陷的几率也增加。当缺陷几率为最大时,MTF达到极小值;超过临界长度值,缺陷几率就不会再增加。
因此,对较长铝引线进行测试时,必须考虑临界长度的问题。美国的ASTM标准规定,电迁移试验中铝引线的长度为800mm。因此设计中需要考虑临界长度的问题,通过调整局部电源线的有效长度来控制电迁移效应。
2.合理设置电源地线宽度
有实验表明电迁移容易发生在较宽的铝线上,因为窄线的晶粒尺寸较大,此时铝线内部缺陷较少,空位流增量(ΔJ)不大,因此电迁移失效不容易发生在较窄的铝线上。但是互连引线的电迁移寿命与几何尺寸和微观结构密切相连,宽度的影响最为复杂。
在相同的线宽下,晶粒尺寸越大,电迁移寿命越长。线宽与晶粒直径之比W/d对电迁移MTF的影响很大,由于引线的微观结构为多晶粒结构,随着W/d的增加,当w/d>3时,晶粒尺寸逐渐均匀,所以MTF缓慢增加,有所改善。因此电源地线设计中需要考虑电源线宽度的影响,同时也要考虑电源网络中电源环和电源条带的供电能力,保证可以提供足够强壮稳定电压的电源网络。
3.合理设置通孔的数量及密集程度
一般情况下,通常通孔的电流密度是普通铝线的几千甚至上万倍,因此通孔处的电流密度很大,它是容易发生电迁移问题的地方。因此合理地控制电源金属层之间的通孔数量以及密集程度可以有效地降低电迁移问题的发生概率
4.合理控制温度
当温度升高时,原子的扩散速度加快,导致电迁移现象按指数变化规律向着失效方向发展。如果铝线上存在温度梯度,温度梯度使得互连引线上存在扩散系数D的差异。
温度高的区域,原子扩散快;温度低的区域,原子扩散慢。因此需要考虑到温度梯度的存在也会产生原子迁移,温度升高使得原子的扩散速度加快,这样加速了电迁移失效进程。
电源规划前的功耗预估方法
1)计算芯片面积和中等驱动力的二输入与非门(NAND2X2)的面积之比。
芯片面积根据设计实际情况设置的面积,影响芯片面积设置的因素很多,比如芯片利用率、形状要求、成本考虑、I/O PIN限制、流片曝光窗口限制等。中等驱动力与非门(NAND2)的面积可以在流片工艺厂提供的LEF数据中查找到,某工艺厂提供的LEF数据中NAND2X2的面积定义,如图
2)中等驱动力的二输入与非门(NAND2X2)的功耗数值基本保持在大部分标准单元功耗值的中间区间,所以提取中等驱动力的二输入与非门(NAND2X2)的功耗数据作为功耗预估参数。
二输入与非门(NAND2X2)可以从流片厂家提供的Lib数据中查找到,某工艺厂提供的Lib数据中NAND2X2的功耗定义,如图
3)基于以上数据(芯片面积、二输入与非门的面积数值和功耗数值)可以通过式简单地计算出芯片的大概功耗值并作为电源规划的参考。
Area Utilization一般在50%~75%之间,该参数可以根据具体设计的性能参数而定。
电源条带的基本设置方法
使用预估功耗值可以对电源网络进行预规划,一般电源条带(Power Srtipe)的规划主要设置如下参数进行,如图
Wstripe-V:该参数为垂直走线方向上电源条带的宽度。
Wstripe-H:该参数为水平走线方向上电源条带的宽度。
S1:该参数为同类型电源条带(Vdd或者Vss)在水平方向的最小间距。
S2:该参数为同类型电源条带(Vdd或者Vss)在垂直方向的最小间距。
X和Y为芯片的长宽值。
参数Wstripe-V和Wstripe-H基本预估方法
Wstripe-V在走线方向上是垂直的,因此其金属线宽度值应该是垂直走线格点的整数倍,同时应该小于该层金属在LEF文件中的最大定义宽度。一般的设计可以预设Wstripe-V的值是一个中等驱动力的二输入与非门(NAND2X2)宽度的4倍同时也是垂直走线格点的整数倍,这样可以有效地利用走线通道。
Wstripe-H由于走线方向是水平的,因此其宽度值应该是标准单元高度的整数倍,同时也应该小于该层金属在LEF文件中的最大定义宽度。一般预设Wstripe-H的值是标准单元高度的1~2倍,该参数根据具体设计要求来定,比如预估宽度大小合理度、走线资源充裕度、芯片形状及电源线电阻值均匀分布等因素。如一个中等驱动力的二输入与非门(NAND2X2)的高度定义,该值为5.04μm。
同样由于高层金属线所能提供的电流密度相对较大,同时不过多地占用低层用于信号线连接的金属层资源。同样在某金属层6工艺线下,使用默认走线方向为水平方向的金属层5作为水平方向的电源带,一般考虑到与垂直电源带宽度保持类似宽度和电阻值,这里取两倍宽度,那么电源带的宽度为:2×5.04=10.08μm,同时该宽度还应小于第金属层5在LEF文件中的最大定义宽度14μm。
参数S1和S2基本预估方法
这里基于封装形式为Wire Bond的设计来预估参数S1和S2,因为在Flip Chip封装形式中由于电源I/O PAD可以均匀分布于芯片内部区域,因此对电源条带的供电源可以做到均匀分布。这大大改善了芯片整体的电压降性能,所以相对弱化了其参数S1和S2预估的重要性,而Wire Bond封装形式的设计,由于电源I/O PAD只能放置在芯片的四周,电源条带的供电源只能来自芯片四周,因此电压降问题主要出现在芯片中间区域,而为了降低电压降的影响只能通过合理地设计参数S1和S2来解决。
通过前面章节所述的预估方法计算出最初始的芯片功耗、垂直水平两个方向的电源带宽度等参数后,预估参数S1和S2的过程由以下5步组成:
1)预估出流过芯片中间A点的电流大小,如图
其计算公式见式
Pavg为预估的芯片功耗,X和Y分别为芯片的长和宽。
2)计算出位于芯片中间A点在电压降可以接受范围内的垂直与水平两个方向上的有效电阻值。电压降容限一般设置为5%,但根据具体设计可以进行合理的调整。通过式预估出导致电压降值为5%的垂直与水平两个方向上的有效电阻值Reffective,见式
3)通过基于流片厂家提供的金属层方块电阻值信息与电源条带参数图,如图
计算出水平和垂直方向上每条电源条带的电阻值
4)需要把该金属层电源条带的总电阻降低到小于出现电压降为5%的有效电阻值Reffective。由于电源网络中同层金属的电源条带都是并联关系
5)预估出参数S1和S2
电源环的基本设置方法
这里基于封装形式为Wire Bond的设计来说明电源环(Power Ring)的设置,因为Flip Chip封装形式可以均匀地分布于芯片内部区域,其对电源条带的供电源可以做到均匀分布,所以也相对弱化了电源环设置的重要性。
电源环是指为了均匀供电,包围在标准单元周围的环形供电金属环,它也是连接供电I/O和标准单元的桥梁,供电I/O单元通过金属连接到电源环,标准单元的Power Rail和Power Stripe也都连接到电源环上,如图
与电源条带的设置一样,由顶层金属组成电源地环。电源环的主要设置是电源环的宽度,电源环的宽度根据整个具体设计的供电峰值电流及流片厂家所提供的设计规则中电源金属层所允许的电流密度决定
式中,Ip为芯片的峰值电流;Cd为厂家工艺库所提供的对应金属层的电流密度上限;n为电源环的数量。与电源条带一样,单条电源环的宽度不能设置过大,应该小于该层金属在LEF文件中的最大定义宽度,所以需要较宽的电源环要求的设计可以通过多组宽度适中的电源环进行并联实现;k:调整因子,由芯片的供电I/O单元分布决定,一般取值范围为1~10。
电源网络分析的基本方法
集成电路电源网络的用途是提供芯片中电路执行逻辑功能所需的电压与电流。在深亚微米以下的工艺技术下,IC设计师不能再认为电源(Vdd)和地(Vss)网络设计是正确的,必须进行详尽地分析才能确认所设计的电源分配方法是否真的具有鲁棒性。
Vdd网络上的电压降和Vss网络上的地线反弹会影响整个设计的时序性能,如果忽视它们的存在,很可能导致芯片设计的失败。
电源网络中的大电流也会引起电迁移效应,在芯片的正常寿命时间内会引起电源网络的金属线性能劣化。这些不良效应最终将造成现场故障和严重的产品可靠性问题。
引起Vdd网络上电压降的原因是:晶体管或门的工作电流从Vdd型的I/O引脚流出后要经过电源网络的RC网络,因此到达器件的Vdd电压会有所下降。地线反弹现象与此类似,电流流回Vss引脚时也要经过RC网络,从而导致到达器件的Vss电压有所上升。
更加精细的设计工艺和下一代设计技术的更新使新的设计在电压降或地线反弹方面要承受更大的风险。电源网络上的电压降首先会影响时序性能,它会降低门的驱动能力,增加整个路径的时延。一般情况下,供电电压下降5%会使时延增加15%以上。时钟缓冲器的时延会由于电压降而增加。当时钟偏斜范围在100ps内时,这样的时延增幅将是非常危险的。可以想象一下集中配置的关键路径上发生这种未预期的延时会出现什么样的情景,显然,设计的性能或功能将变得不可预测。理想情况下,要提高设计精度,其时序计算必须考虑最坏情况下的电压降。
电源网络分析方法主要有静态和动态两种方法。
1.静态电源网络分析
静态电源网络分析法无需额外的电路仿真就能提供全面的覆盖,大多数静态分析法都基于以下一些基本手段:
1)提取电源网络的寄生电阻;
2)建立电源网络的电阻矩阵;
3)计算与电源网络相连的每个电阻或门的平均电流;
4)根据晶体管或门的物理位置,将平均电流分配到电阻矩阵中;
5)在每个Vdd型的I/O引脚上将Vdd源应用到矩阵;
6)利用静态矩阵解决方案计算流经电阻矩阵的电流和电压降。
由于静态分析法假设Vdd和Vss/GND之间的去耦电容足够滤除电压降或地线反弹的动态峰值,因此其结果非常接近电源网络上动态转换的结果。
静态分析法的主要价值体现在简单和全面覆盖。由于只需要电源网络的寄生电阻,因此提取的工作量非常小。而且每个晶体管或门都提供对电源网络的平均负载,因此该方法能够全面覆盖电源网络,但它的主要挑战在于精度。
静态分析法没有考虑本地动态效应和封装电感效应(Ldi/dt),如果电源网络上没有足够的去耦电容,那么这两者都会导致进一步的电压降和地线反弹。
2.动态电源网络分析
动态电源网络分析法不仅要求提取电源网络的寄生电阻,还要求提取寄生电容,并要完成电阻RC矩阵的动态电路仿真。动态电源网络分析法的典型步骤是:
1)提取电源网络的寄生电阻和电容;
2)提取信号网络的寄生电阻和电容;
3)提取设计网表;
4)根据提取的寄生电阻、电容值和网表生成电路网表;
5)依据仿真向量集执行电路仿真,主要仿真晶体管或门的动态转换以及该转换对电源网络的影响。
动态分析法的主要价值体现在它的精度。由于分析的依据是电路仿真,电压降和地线反弹结果将是非常精确的,并考虑了本地动态效应和封装传导效应。
但动态分析法面临的挑战也是十分艰巨的,主要体现在以下几个方面:
1)寄生参数的提取要求非常高,因为需要提取电源网络的电阻、电容以及信号网络的电容。
2)电路仿真的对象非常多,会使电路仿真引擎满负荷工作。
3)用作激励信号的向量集决定着输出质量。如果没有采用完整的测试向量集,那么结果将是令人怀疑的,因为电源网络的某些部分可能没被仿真到。
4)由于单个电源网络就有如此多的需要考虑因素,基于全面动态仿真的电源网络分析法将难以适应设计规模的进一步加大。
5)许多追求动态效应的电源网络分析法必须求助于RC压缩技术才能管理大量的仿真数据,然而这样做与动态分析法的主要价值——高精度是互相矛盾的。电源网络的RC压缩化会导致分析结果的精度下降,甚至会掩盖真正的EM问题。
时钟树的实现
在大部分超大规模集成电路设计中,各功能元件之间的数据传输由一个同步信号控制,这个执行统一指挥的信号就是时钟信号,它的设计质量是在设计高性能集成电路中必须高度重视的问题,时钟网络如图
时钟信号通常在整个芯片中有最大扇出、通过最长距离、以最高速度运行的信号。时钟信号必须保证在最差的条件下,关键的时序要求能得到满足,因此对时钟信号任何不当的控制都可能导致芯片功能紊乱,可能会将错误数据锁存到触发器导致功能性的错误。对一个微处理器来讲,时钟频率直接决定了它的性能和每秒钟所执行的指令数(MIPS);对于I/O和数据总线,时钟的频率也同样决定着数据的传输速率。
常见时钟网络的实现方法
在大多数数字集成电路中,各时序元件之间的数据传输由一个同步信号控制的。这个执行统一指挥的信号就是同步时钟信号,同步时钟的设计对集成电路的性能和可靠性是非常关键的。
理论上,时钟分布网络中的时钟信号到达每一个寄存器的时间应当相等。这就需要对所有时钟信号进行合理地网络分配。时钟信号从外部输入开始,经过组合逻辑和互连线构成的时钟网络,最终到达时序逻辑时钟端。
时钟偏斜(Clock Skew)已成为决定电路性能的关键因素,时钟布线设计的主要目标就是使时钟偏斜、相位延迟最小化,并尽可能地减小时钟网络的功耗,避免噪声和减小连线间耦合。
目前已经提出了许多种时钟树结构,例如树干结构、平衡缓冲器树结构、H树形结构、鱼骨形结构、网格结构等,如图。
鱼骨形时钟树的拓扑结构一般具有一个水平或垂直的主干,所有和主干在同一级的枝干均处在和主干相垂直的方向上,然后再以每一个枝干为主干,不断向下延伸,从而形成完整的鱼骨形拓扑结构。
鱼骨时钟结构,如图
平衡缓冲器树结构和H树形结构是最常规的时钟树结构,该时钟树结构的复杂度和技术实现难度不大,同时也是主流布局布线EDA工具支持最好的时钟树结构,因此大部分设计都采用该时钟树结构。
但是平衡缓冲器树结构和H树形结构时钟树应用于大型的复杂设计时其性能也不高。鱼骨形结构和网格结构的时钟树的性能比较好,但是鱼骨形结构和网格结构时钟树的复杂度和技术实现难度比较大,这也是主流布局布线EDA工具不能很好地支持该类型时钟树技术自动实现的原因。
时钟树的综合策略
时钟树综合是建立时钟网络的技术,也就是通常所说的时钟树生成。在SOC芯片设计中,由于它的时钟数目多,时钟结构复杂,有很多叶节点同属于多个时钟域,因此在时钟树综合时需要采取一些相关的策略。
1)自我交叉策略
自我交叉策略是很常见的一种情况,从锁相环出来的时钟,首先经过不同的处理,然后通过一个选择器汇集到一起,经过处理自我收敛的状态,平衡时钟树的部分偏斜,再均衡关键路径的偏斜,从而平衡整个时钟树的偏斜。
2)相互交叉时钟策略
当有不同主级时钟通过选择器交叉输出次级时钟时,先平衡交叉输出的次级时钟偏斜,同时平衡不同主级时钟到达选择器的输入延迟,最后对不同的主级时钟进行平衡优化。
3)有用偏斜策略
在传统的或早期的时钟树综合时,期望获得零偏斜的时钟树。但是后来研究发现,即使能够获得零偏斜的时钟树,它的性能也不见得就是最好,随后有用偏斜的概念被提出并应用。
从一些时钟树的拓扑结构中发现,有些组合逻辑延时较大,而处于同一时钟树中的触发器的时钟延时相对较小。这时如果迁就延时长的组合逻辑电路,增加触发器的时钟延时并不影响时钟树的功能。所以,针对组合逻辑的延时违反,可以在时钟树综合之前加快到达第一个触发器的源时钟信号,完成时钟树综合后再去添加填塞单元以减慢到达第二个触发器的时钟信号。
4)与布局相结合的手动时钟树设计策略
在布局布线常用的流程中,工具自动放置标准单元,并在要插入时钟树的时序单元附近预留一定的空间,设计者指定时钟的根节点和频率等参数后,工具会根据设计要求自动生成时钟树。
当非常了解具体的设计时,可以采用与布局相结合的手动时钟树设计。先搜索所有的时钟树叶节点,根据模块之间的关系,按照一定的相对规则指导工具将其放置在芯片适当的位置。
在时钟树综合阶段,先在小范围内综合各个模块的时钟,即手动设置插入缓冲器的级数以及每级所驱动的具体叶节点,然后在顶层平衡全局时钟。
5)对时钟插入多驱动能力的时钟缓冲器策略
对负载很大的时钟树即叶节点数目较大的时钟树,在根节点处采用多个缓冲器驱动,从而提高驱动负载的能力。
时钟树缓冲器插入的理由如下
·如果不插入缓冲器,那么多寄存器只靠时钟源来驱动是不现实的,而且在物理设计中由于触发器所处的位置差别,要想保证时钟尽量同步到达触发器时钟端,必须要调整插入缓冲器的级数和尺寸。三级缓冲器时钟树结构,如图所示。
缓冲器的插入可以通过将互连长线分割为较短的片断,由于缓冲器能恢复电平,这样就阻止了时钟线上电容的累加效应,从而显著地减少互连延时。但是大量缓冲器会额外引入缓冲器的电容,导致芯片功耗、面积增加,因此也需要优化缓冲器的数量。
带有偏斜和建立、保持时间限制的时钟树缓冲器插入法,可以在线性时间内解决上述问题,并在面积和时钟最大延迟上取得较好的折中。时钟树综合的作用使得时钟偏斜最小化,保证时钟的相位延迟在允许的范围内,从而满足时序要求。
时钟树的基本性能参数
在超大规模集成电路中,存在大量需要时钟信号进行同步的时序单元,这就需要构建一个时钟信号的分布传输网络来提供高质量的同步时序。
高性能时钟网络性能可以通过以下几个基本参数进行性能综合评估。
1.时钟传播时间(Clock Latency)
时钟传播延时定义为时钟信号从时钟源到达时钟树叶节点的时序单元所需要的时间。时钟传播时间主要由源时钟输入时间(Source Insertion Delay)和网络时钟输入时间(Network Insertion Delay)组成,如图
时钟源一般指的是时钟信号产生器锁相环(PLL)的输出端,但是根据具体设计需要,可以由设计者通过时序约束文件SDC定义到PLL以外的任何节点来评估时钟树的传播时间。比如在层次化设计中,源时钟输入时间即外部时钟源到设计时钟输入端口的延时,而外部时钟源可能从PLL的输出后还穿过外部多个设计模块。
OCV(片上工艺偏差)和PVT等因素会不同幅度地影响时钟输入延时,同时导致整个设计的时序不确定性。所以时钟传播延时越短时钟树性能越好,这样可以减少其他外在因素对时钟树性能的影响。
2.时钟偏斜(Clock Skew)
时钟偏斜分时钟树本身的时钟偏斜和时钟树叶节点之间的时钟偏斜。
1)时钟树本身的时钟偏斜。
芯片工作过程中通常都是根据系统时钟脉冲信号同步工作的。最理想的情况是输入信号在下一个时钟的有效电平或者信号边缘带来之前,切换并在其正确的逻辑电平上保持稳定,从而使整个电路系统的行为合乎预设。
但是在时钟树的电路实现中,不同实现单元的性能在不同时刻可能有着大小不一的差距,信号可能并不能准确地在理想信号边缘到来之前的瞬间保持在其正确的信号值上,它保持稳定所需的时间相对理想情况有一定的偏移,这种偏移就是在同一个时序单元的时钟输入端口上时钟信号本身的时钟偏斜。该时钟偏斜主要表现为时钟抖动,如图
由于时钟树本身的时钟偏移不能完全由后端布局布线阶段决定,所以该时钟偏斜带来的影响一般在约束文件SDC设置时序裕度值来消除。
2.时钟树叶节点之间的时钟偏斜。
非理想情况下,由于时钟线长度及时序单元负载不同等因素,导致时钟信号到达相邻两个叶节点时序单元的时间并不相同,这种偏移就是时钟树叶节点之间的时钟偏斜,如图
该时钟偏斜是后端布局布线阶段我们主要关注的问题,因为该时钟偏斜导致时钟树不平衡,不利于整个设计的时序收敛,所以时钟偏斜值越小其时钟树性能越好。
但是在特定情况下,通过合理设计可以对特定逻辑的时序进行优化,该技术在静态时序设计中称为有用偏斜(Useful Skew)。比如在两个串行的时序路径中,时钟会同时到达各自时序路径中的时序单元,但是前级时序路径有较小的时序违法,后级时序路径时序不仅不时序违反而且还有多余的延时余度,那么可以把后级时序路径的延时余度通过时钟树的调整释放给前级存在时序违反的时序路径使用,这样可以对较小时序违反的时序路径进行优化。有用偏斜的基本方法就是通过在后级时序宽裕的时序单元的时钟中引入延时单元,使前级时序路径的时钟周期由于时钟偏移而加长,后级时钟周期由于时钟偏移而缩短,但存在延时余度,这样前后级的组合逻辑都满足了时序要求,如图。
3.时钟转换时间(Clock Transition Time)
理想情况下时钟信号在不同电平下切换是不需要时间的,但是实际时钟信号在不同电平之间切换时,由于供电电压、工艺变化、扇出负载大小、互连负载大小等因素,是需要转换时间的。因此,时钟转换时间一般定义为为时钟信号的电压从原始电源电压的10%变化到电源电压90%的时间间隔,如图
时钟转换时间分为上升和下降两种情况,应该使上升和下降转换的时间保持对称性。为保证时钟信号输出上升和下降转换的时间保持对称性,时钟树实现所使用的也是一类具有特定上升和下降转换时间的高对称性的缓冲器单元。因此时钟转换时间越短,不同切换形式下越对称,时钟树性能越好。
4.时钟树级数(Number of Buffer Levels)
时钟树是由时钟缓冲器一级一级地串行驱动级联组成,从时钟源到时钟树叶节点的时序单元路径下所需要的缓冲器数量即时钟树级数,如图
时钟树级数由时钟树实现结构、缓冲器单元类型、负载输出大小及数量等因素决定。时钟树级数越少,时钟输入延时越短,同样受OCV和PVT等因素的影响越小,所以时钟树性能越好。
5.时钟树缓冲器类型及数量
实现时钟树所用的缓冲器对时钟树性能也起到重要作用。在类型上,缓冲器一般是上升和下降转换时间具有高对称性的单元,同时缓冲器驱动能力的选择一般处于同类型单元里中上等附近,驱动能力太大和太小都会大大增加时钟信号与数据信号相互间串扰而导致信号完整性的问题。在数量上,基于功耗和时钟树级数优化的考虑,数量越少越好。
6.时钟树互连线电迁移及串扰
时钟网络是芯片内翻转率最高的互连线网络,时钟信号线容易受到EM影响导致金属互连线断裂、熔化等问题。所以时钟网络互连线所使用的合理宽度和金属层也是需要考虑的问题。由于时钟网络使用驱能力较大的缓冲单元,同时考虑到时钟信号对普通逻辑信号的影响,应该对时钟信号线进行合理的信号屏蔽优化设计,减少串扰问题的同时还应该尽量避免消耗过多的互连线资源。
7.时钟网络的动态功耗
芯片工作时,很大一部分功耗是由时钟网络的翻转消耗的。如果时钟网络较大,这部分引起的功耗损失会很大,所以减少时钟网络的功耗也是需要重点考虑的问题。时钟网络动态功耗主要由工作相关动态功耗和结构相关动态功耗组成。
1)工作相关的动态功耗。时钟网络的作用是为芯片内部所有时序单元提供时钟信号,因此时钟频率的快慢决定了时序单元和与之相连的逻辑单元的动态功耗。该功耗是时钟网络工作时消耗的固有动态
功耗,可以通过门控时钟等技术,通过关断部分无关时钟网络来减少和消除电路的动态功耗。
2)结构相关的动态功耗。时钟网络是芯片内规模最大的互连线网络,其负载巨大,其负载也来自于优化互连线电容和平衡时钟树偏斜而插入的大量缓冲单元,因此通过优化时钟树结构来减少组成时钟树的缓冲单元数量能够有效地减少与结构相关的动态功耗。
以上所讲的时钟树性能的基本参数是相互制约的但并不能单独优化,比如时钟输入时间越小则需要时钟树上的缓冲单元所驱动的负载越大,这样时钟转换时间会变大。时钟转换时间越小,那么缓冲单元所驱动的负载减少,这样增加了缓冲单元的数量,动态功耗增大,时钟树级数也会加大。
所以设计高性能时钟树需要综合评估以上所有的性能参数,做出一个最优的折中结果。
时钟树的综合流程
时钟分布网络的设计一直是高性能芯片设计中的一个重大挑战。在集成数千万甚至上亿个晶体管后,要将时钟信号接近零偏差地传输到芯片每一个局部区域是非常困难的。时钟树综合在芯片设计的数字后端设计过程中,对保证数字集成电路的时序性能是非常重要的。
一般布局布线工具中时钟树综合流程分为创建时钟树特性定义(Create Clock Tree Spec)、定义时钟树(Specify Clock Tree)、时钟树综合(Synthesis Clock Tree)及分析时钟树(Clock Tree Analysis),如图
1)创建时钟树特性定义。
在该过程定义时钟树的时序信息要求,比如时钟延迟规定、时钟域的分布、时钟偏移规定等。同时还定义布局布线工具在实现时钟网络时使用的单元类型及连接关系等规定。
2)定义时钟树。
布局布线工具读入时钟树综合参数配置,生成指导布局布线工具进行时钟树生成的设置参数。
3)时钟树综合。
在时钟树综合中,布局布线工具追踪时钟的起点到终点,并实现时钟树网络。起点和终点的选择包括以下几种类型的端口:时钟端口、时序单元的数据输入端口、没有时序弧的单元、用户定义的时钟叶节点和非叶节点端口。这是布局布线工具进行时钟网络物理生成的具体过程,实现结果的好坏与时钟树约束定义、布局情况、时序延时结果等因素相联系。
4)分析时钟树。时钟树综合后可以通过可视化界面查看时钟网络的具体物理位置及连接关系,同时对时钟树生成结果进行分析,包括各分支时钟树的信息、上升下降延时信息、时钟触发边沿之间的偏斜、上升下降沿的转换延时、各缓冲器与时钟端口的转换延时信息、插入缓冲器的延时信息、时钟网络的布线信息等。
时钟树生成设置
创建时钟树特性定义为半定制后端设计的主要工作,该工作直接决定了时钟树生成结果优劣。创建时钟树特性定义过程就是产生一个时钟树综合参数配置文件供布局布线工具在时钟树综合环节的参考依据。
时钟树综合参数配置文件主要包括以下信息:
1)时序约束文件。
通过该时序约束文件声明时钟树源点,这样布局布线就可以基于定义的时钟树源点进行时钟树的生成工作。
2)时钟树综合的性能指标。
定义时钟树生成应该满足的预计的性能指标,比如时钟树最大级数、最大时钟偏斜,最大时钟输入延时、最大时钟转换时间、最大时钟负载及可以使用的缓冲器类型等。
3)时钟树分组信息数据。
定义多时钟域同时满足时钟分布平衡,通过该信息说明多时钟域中的时钟平衡关系。
4)时钟树结构特殊设置。
定义时钟结构中需要特殊处理的时钟叶节点或者时钟子模块。该设置与具体设计紧密相关。
5)宏模块模型数据。
定义宏模块模型端口与PIN脚的延时及负载数值,这是定制模块内部时钟与全局时钟树的接口信息。
6)用于时钟布线的属性信息。
定义时钟树连线使用的布线规则,比如金属层与金属宽度、时钟线网络的线间距、是否使用屏蔽时钟线等信息。
时钟树结构特殊设置
时钟树结构的特殊设置与具体设计紧密相关,所以需要设计者手动定义,指导布局布线工具生成符合设计需要的时钟树。
1)时钟树叶节点(LeafPin and LeafPort)。
一般布局布线工具会自动识别时钟树的叶节点单元,并把对应的时钟输入端定义为时钟树终点。但是根据具体设计的需要,有些特殊单元由于不具备常规时钟树叶节点单元的特性而不能被布局布线工具自动识别出来,这样就需要设计者为布局布线工具定义这些特殊单元为时钟树的叶节点单元,如图
由于时钟树叶节点一般是由时序单元构成,所以对应组合逻辑构成时钟树叶节点的情况,可以通过定义LeafPin和LeafPort来完成手动添加时钟树叶节点单元的工作。
2)非时钟树叶节点(ExcludedPin and ExcludedPort)。
一般布局布线工具会自动识别时钟树的叶节点单元,并把对应的时钟输入端定义为时钟树终点。但是根据具体设计的需要,部分布局布线工具自动识别的时钟树叶节点单元并不是实际设计中的时钟树叶节点单元,如图
由于一些单元并不是时钟树网络的单元,可以通过定义ExcludedPin和ExcludedPort来完成手动定义非时钟树叶节点单元的工作。
3)维持现状的叶节点(PreservePin)。
一般布局布线工具自动识别时钟树的叶节点单元后会进行统一的时钟树平衡优化,但是根据具体设计的需要,部分时钟树叶节点需要维持原有的物理连接关系,如图
由于维持原样的时钟树结构都是从特定的输入点开始的,所以通过定义PreservePin来避免自动布局布线工具改变从该特定输入点开始的原始时钟树结构的连接关系。
4)穿透的时钟树节点(ThroughPin)。
一般布局布线工具会自动识别时钟树的叶节点单元,但是部分时钟树叶节点并不是最终的时钟树叶节点,而是穿过该时钟树节点后的时序单元,如图
由于需要穿透的时序单元也是与时钟树相关的输入端,所以通过定义ThroughPin来指导布局布线工具通过穿透该时钟树节点并从下级的连接关系中识别出正确的时钟树叶节点。
门控时钟
前面章节所讲,芯片工作时,很大一部分动态功耗是由时钟网络的时钟信号翻转消耗的。为了减少时钟网络的功耗消耗,引入门控时钟的方法对时钟网络翻转功耗的抑制作用最强。
时序单元由于在时钟信号翻转时会在时钟的有效沿读取数据输入端的数据,而读取的数据如果是不变的并且会维持一段时间时,那么在这段时间里,由于时序单元重复读取相同数据就会消耗额外的功耗。此时为保证的时序单元不受时钟翻转的影响,可以使能时序单元的时钟输入端。
门控时钟是指一个时钟信号与另外一个非时钟信号通过逻辑转换后再输出的时钟。通过一个逻辑信号来控制时钟信号的起作用时间,这样可以关闭芯片上暂时用不到的功能模块的时钟,从而实现节省功耗消耗的目的。
门控单元可以采用非锁存器结构,直接由与门或门组成。但是由于这种电路会引发毛刺,所以一般采用基于锁存器(latch)的门控单元,如图
门控时钟缺点
1)增加了设计复杂度,需要增加额外的逻辑对门控时钟进行控制。
2)增加了时序收敛难度,门控时钟的使能信号端也需要满足时序约束。
门控时钟的单元克隆
门控时钟控制逻辑是在前端代码设计时创建的,因此门控时钟单元所控制的时序单元并没有考虑到物理实现中出现的位置与距离的问题。这样在物理实现过程中,可能出现并不合理的门控时钟的设计问题,这时就需要在数字后端设计的时钟树综合阶段通过门控时钟单元克隆技术进行优化。
门控时钟单元克隆技术主要分2种:
1)门控时钟单元合并(De-Clone)。
当受相同门控时钟单元控制的时序单元过少或者分布区域不大时,就会导致门控时钟单元数量设计过多且负载过剩,这时可以通过门控时钟单元合并(De-Clone)进行优化,如图
合并前,门控时钟单元g2和g1所控制的时序单元分布不均匀且负载并不太重,通过门控单元合并技术优化后,只出现了新的门控时钟单元g4,使时序单元控制分配关系更加精简。
门控时钟单元合并技术可以进一步减少动态功耗的消耗,但是会增加门控时钟单元时序收敛的难度。
2)门控时钟单元克隆(Clone)。
当受相同门控时钟单元控制的时序单元过多或者分布区域太大且不均匀时,就会导致门控时钟单元连线过长负载过大,这时可以通过门控时钟单元克隆进行优化。
通过门控单元克隆技术优化后,出现了新的门控时钟单元g5、g6和g7,但是克隆后,物理实现上的时序单元控制分配关系更加均衡。
门控时钟单元克隆技术可以降低门控时钟单元时序收敛的难度,但是也增加了动态功耗的消耗。
时钟树优化基本指导
1.使用最合适的时钟树实现结构
对于不同的设计应用需求,选择合理的时钟树实现结构尤为重要。时钟树结构包括平衡缓冲器树结构、H树结构、鱼骨形结构、网格结构等,不同的时钟树各自具有不同的应用特点和复杂度。
平衡缓冲器树结构和H树结构时钟树由于设计难度小,因此能够很好地得到主流布局布线工具地设计支持。但是随着设计复杂度和规模的增大,平衡缓冲器树结构和H树结构时钟树性能随之下降。
鱼骨形结构和网格结构的时钟树设计难度大但是性能优越,因此鱼骨形结构和网格结构的时钟树主要应用于性能要求比较高的设计中。鱼骨形时钟树结构适用于设计规模较小的情况,而网格结构的时钟树可以用于规模大的设计中并提供很好的时钟树性能。
2.使用合理的芯片物理形状
评估时钟树性能的两个重要指标是时钟树叶节点单元之间的时钟偏斜大小和时钟传播延时大小,其时钟偏斜和时钟传播延时越小说明时钟性能越好。合理的芯片物理形状可以降低时钟树实现难度并提高时钟树的性能。
出由于规整芯片的物理形状,其时钟树叶节点单元可以均匀地分布在芯片的区域中,这样时钟树在规整芯片物理形状里容易得到更小的时钟偏斜和时钟传播延时,但是对于一个不规整的芯片物理形状,时钟树叶节点单元可能会分布在拐角区域。
3.使用合理的布局规划
不合理的布局规划可能会增加时钟树的实现难度并降低时钟树的性能,如图。
由于硬宏IP放置在芯片区域中间,时钟叶节点的分布可能不合理,比如时钟叶节点位于芯片边角位置。由于硬宏IP本身阻挡了大部分走线通道并占用了大量的中间区域,这样时钟树与边角位置的叶节点连接效率降低,间接增加了时钟偏斜和时钟传播延时,降低了时钟树性能。如果能对布局规划进行优化,如图
4.均匀的时钟树负载分配
由于时钟树传播延时取决于最长的时钟树分支延时,时钟树负载分配不合理会降低时钟树性能,如图
不合理的时钟树负载分配会导致时钟树分支延时不均匀,甚至负载过大的时钟树分支延时无法得到肯定,这样会直接大大降低时钟树的性能。通过合理分配时钟树负载可以得到较好的时钟传播延时,如图
时钟树缓冲单元负载均衡可以得到类似的延时结果,这样不仅能得到一个较小的时钟偏斜结果,还可以减少最长路径的时钟树分支延时。
5.优化时钟树中控制逻辑网表
通常实际时钟树的设计不全是时钟缓冲单元的构成,其中还包括时钟控制逻辑。时钟控制逻辑中存在两种类型的时钟树逻辑结构:收敛时钟(Recovergence clock)和交叉时钟(Crossover clock)
收敛时钟是指同一个时钟信号通过不同路径到达一个选择器(MUX)节点并且又汇聚成一个时钟信号;交叉时钟是指不同的时钟信号通过不同的路径到达一个选择器(MUX)节点且汇聚成一个时钟信号。
在时钟控制逻辑中收敛时钟和交叉时钟直接影响时钟树的传播延时,因此优化减少时钟控制逻辑中的收敛时钟和交叉时钟逻辑可以提高时钟树的传播延时。
6.优化时钟控制逻辑物理布局
除了优化时钟控制逻辑本身,在物理布局上也需要把时钟控制逻辑布置在合理的位置。时钟控制逻辑如果距离时钟源太远就会占用更多的布线资源同时影响时钟树的传播延时,如图
一般不能使时钟控制逻辑距离时钟源太远,这样可以占用更少的布线资源同时减少时钟源到时钟控制逻辑的传播延时,如图
因此合理地放置时钟控制逻辑也可以提高时钟树的性能。
1)使用合理的时钟树组成单元。
组成时钟树的缓冲单元和逻辑单元也是决定时钟树性能的一个因素。拥有上升和下降时间均衡的单元才能成为组成时钟树的单元,因此一定要使用专用的时钟树单元,一般流片厂家会提供各种不同驱动力的时钟树专用缓冲单元和逻辑单元。
除了使用专用时钟树的缓冲单元和逻辑单元,还需要根据时钟树结构选择合理驱动能力的时钟专用单元。如果使用的时钟专用单元驱动力太小会增加时钟传播延时,同时单元驱动力太大会引入信号噪声。因此选择合理的时钟专用单元也能提高时钟树性能。
2)优化门控时钟单元对时钟树的影响。
由于时钟网络是芯片消耗功耗的主要部分,因此通常在设计中会通过添加门控时钟逻辑来减少时钟网络的功耗消耗。但是门控时钟逻辑单元的增加会增加时钟控制逻辑的规模和复杂度,不合理的门控时钟逻辑设计会严重影响时钟树的性能,因此可以通过合理地插入和移除门控时钟单元来减少对时钟树性能的不良影响。
3)对时钟树上最长路径进行针对性优化。
对关键时钟树网络路径的优化可以同时通过结合以上多种优化方法手动进行针对性的优化。
4)降低时钟树对周围逻辑单元的影响。
由于提高时钟树的性能是整个芯片性能提高的一个关键因素,但是毕竟时钟树性能只是关键因素的其中之一,因此在注重提高时钟树性能的同时还需要考虑不会对芯片整体性能造成不良影响。由于时钟树需要驱动大量的时序单元,因此存在驱动力比较大的时钟专用缓冲单元。但是驱动力大的时钟专用缓冲单元会消耗过大的瞬态电流,这样会导致周围短距离范围内的其他普通单元出现电压降的问题,同时也会将信号噪声引入周围功能逻辑单元。
电压降和信号噪声也是降低芯片性能的关键因素之一,因此在提高时钟树性能的同时也需要考虑和解决时钟网络带来的电压降和信号噪声问题。
其解决方法是为驱动力大的时钟专用缓冲单元设置单元隔离环(Cell Padding),通过强制设置时钟专用缓冲单元与周围普通单元的间距减少普通单元的电压降问题;同时通过设置时钟网络布线规则为多倍宽度多倍间距、使用高层金属和电源线来屏蔽时钟线等方法来避免普通信号线与时钟线之间的串扰噪声问题。
布线
在早期的集成电路设计中,只需考虑门本身的延迟,可以忽略互连引起的延迟。但是进入深亚微米设计以后就不能沿用早期的设计流程了,因为随着器件尺寸的不断减少和电路规模的扩大,门延时越来越小,限制电路性能提高的主要因素变成了互连延迟。在超大规模集成电路中,互连线所引起的时延已占整个芯片时延的70%以上,线越长,其寄生电阻和电容越大,其RC延时也越大,所以好的互连在芯片设计中具有重要的地位。
布线是继布局和时钟树综合之后的重要物理实现过程,其内容是将分布在芯片核内的模块、标准单元和输入输出接口单元按逻辑关系进行互连。其要求是必须完成它们之间的所有逻辑信号的互连,并在满足各种约束条件下进行优化。能否按照设计的需求将信号线布通是决定芯片是否能够成功流片的首要前提。消除布线阻塞、优化时序、减少耦合效应、消除串扰、降低功耗、保证信号完整性和提高成品率是衡量布线优化工作的重要指标。
天线效应
在深亚微米集成电路加工工艺中,通常使用了一种基于等离子技术的离子刻蚀工艺(Plasma Etching)。
此种技术能够满足随着尺寸不断缩小,掩模刻蚀分辨率不断提高的要求。但在蚀刻过程中,会产生游离电荷。
当刻蚀导体(金属或多晶硅)的时候,裸露的导体表面就会收集游离电荷,所积累电荷的多少与其暴露在等离子束下的导体面积成正比。离子刻蚀示意图如图
如果积累了电荷的导体直接连接到器件的栅极上,就会在多晶硅栅下的薄氧化层形成隧穿电流进而泄放电荷。当积累的电荷超过一定数量时,这种电流会损伤栅氧化层,从而使器件甚至整个芯片的可靠性和寿命严重的降低。
在芯片的生产过程中,暴露的金属线或者多晶硅(PolySilicon)等导体,就像一根根天线,会收集电荷(如等离子刻蚀产生的带电粒子)导致电位升高。天线越长,收集的电荷也就越多,电压就越高。高电压就可能把薄栅氧化层击穿,使电路失效,这种现象我们称之为天线效应。
天线效应比率
天线效应比率(Antenna Ratio)是指同一层金属受离子影响的面积与该面积下连接所有栅管的面积之比,见式
天线效应比率计算方法
天线效应比率计算主要有两种方式:局部天线效应比率(Partial Antenna Ratio,简称PAR)和累积天线效应比率(Cumulated Antenna Ratio,简称CAR)。
局部天线比率只单独考虑每一层金属与相连接栅管面积的比值。累积天线效率比率需考虑相关联的所有金属对相连接的栅管面积比值之和,所以需要求出各层金属的PAR。
1.局部天线效应比率(PAR)计算方法
其中,PAR(Ni,j,Gk)表示金属层i的第j段金属线与连接到第k个栅管的天线效应比率。第j段金属线是指同层金属中所有有相同栅管连接的金属段集合;Area(Ni,j)表示金属i层的第j段金属线的面积;C(Ni,j)表示与金属层i的第j段金属线相连接的所有栅管的集合;Area(Gk)表示第k个栅管的面积。
2.累积天线效应比率(CAR)计算方法
累计天线效应比率(CAR)即为所有层的PAR之和。
天线效应修复方法
减少栅管所连接的金属线总面积或加入辅助的电荷泄放回路等。
1.跳层法
跳层法又分为“向上跳层”和“向下跳层”两种方式,向上跳层如图
跳层可以断开存在天线效应的金属层,通过通孔连接到其他层(向上跳线法是连接到上层金属,向下跳层法是连接到接到下一层金属),最后再回到当前层。这种方法通过改变金属布线的层次来解决天线效应,但是同时也增加了通孔数量。
由于通孔的电阻很大,会直接影响到芯片的时序和串扰问题,所以在使用此方法时要严格控制布线层次变化和通孔的数量。
一般向上跳线法用的概率较大,因为如果当前金属层出现天线效应时,下层金属已经可能被使用的概率比较大,但上一层金属被使用的概率要小。
2.添加二极管
通过直接给连接到栅管并存在天线效应的金属层接上二极管,形成一个电荷泄放通路,累积电荷对栅氧无法构成威胁,从而消除了天线效应,如图
当累计的电压增加到一定程度后将通过二极管放电,防止击穿栅管。
3.插入缓冲器
通过插入缓冲器(Buffer),可以增加栅管的数量,同时也可以达到跳层的目的,如图
串扰噪声
当集成电路进入超深亚微米设计时,串扰噪声成为影响芯片功能和性能的重要原因之一,因此合理地解决串扰噪声带来的不利影响是当前集成电路设计所必须面对的越来越重要的问题。
“超深亚微米”是什么意思?
- 微米(μm)与亚微米(Sub-micron)
微米级:指晶体管特征尺寸在 1 微米(1000 纳米)以上,如 1.0μm、0.8μm 工艺(1980s–1990s)
亚微米级:指特征尺寸小于 1 微米(即 <1000nm),如 0.35μm、0.25μm、0.18μm(1990s–2000s) - 深亚微米(Deep Sub-Micron, DSM)
指特征尺寸进入 0.13μm(130nm)及以下 的工艺
典型节点:130nm、90nm、65nm
此时,互连延迟超过晶体管延迟,设计复杂度显著上升 - 超深亚微米(Ultra Deep Sub-Micron, UDSM)
指 65nm 以下 的更先进工艺
包括:45nm、28nm、20nm、16/14nm、10nm、7nm、5nm、3nm、2nm …
此时,量子效应、漏电、制造变异(process variation)、功耗密度等问题成为主要挑战
🔍 所以,“超深亚微米” ≈ 先进工艺节点(Advanced Node),通常指 28nm 及以下 的工艺。
串扰噪声恶化的原因
随着超深亚微米新工艺技术的不断进步,由于串扰噪声带来的不良影响越来越严重,其主要原因有如下几方面:
1)布线密度加大。
由于新工艺的特征尺寸、线宽和线间距都将进一步缩小,新工艺在保持面积不变的情况下,把更多器件整合在片上系统中,这无疑将大大增加布线的复杂度,使得线路更加拥挤,相互之间存在交叉耦合电容的概率越来越大,因此带来的相互影响也越来越明显。
2)金属线厚度增加导致侧面积增加。
由于金属阻抗与其宽度成反比,为追求更小的阻抗,新工艺下金属线的厚度不断地增加,甚至大于宽度,且金属线的长度比以往更长。这种趋势导致金属之间的交叉耦合电容增加,因此带来的相互影响也越来越明显。
3)布线层增多。
新工艺下由于芯片上叠加了更多的金属层,高金属层与基底层之间的距离加大,从而减小了对地的电容量。从而使金属线之间交叉耦合电容的比重不断地上升,因此串扰效应给设计带来的影响也越来越大。
4)工作频率增高。
随着设计需求的不断增高,其芯片的工作频率也越来越高。高频工作下的器件充放电时所产生的噪声源也越来越多,加上耦合电容越来越大,因此由于串扰叠加带来的影响也越来越严重。
5)工作电压降低。
新工艺下由于电源电压越来越低,其噪声容限也越来越低,导致串扰效应给设计带来的影响也越来越大。
串扰噪声的体现形式
串扰噪声的分析主要通过定义受扰线与干扰线之间的关系,如图
根据以下几点因素来分析干扰线与受扰线之间的相互影响
1)干扰线与受扰线之间的耦合电容。
干扰线与受扰线之间的耦合电容越大,其相互影响越大。
2)干扰线的驱动信号切换强度大小和切换速度。
干扰信号的驱动信号强度越大其高低电平切换时的速度也越快,切换速度越快越容易通过耦合电容注入更多的噪声影响受扰线。
3)受扰线的对地电容。
受扰线的对地电容越小,抗干扰能力越弱。
4)受扰线的驱动信号强度大小。
受扰线的驱动信号强度越小越容易受到干扰。
根据串扰噪声对电路危害的体现形式不同可将其分为两类。
1.功能噪声
串扰噪声(Functional noise)是指受扰线原本处于静止状态,由于干扰线电压的变化而在其上引起毛刺(Glitch),如图
当毛刺超过噪声容限且改变了原有的信号值时(这取决于受扰线原始状态值和干扰线电压变化方向),如果恰好被存储部件捕捉,电路状态就会发生改变,导致功能性错误。
当毛刺超过噪声容限且改变了原有的信号值时(这取决于受扰线原始状态值和干扰线电压变化方向),如果恰好被存储部件捕捉,电路状态就会发生改变,导致功能性错误。
2.延迟噪声(Delay noise)
这种串扰噪声是指受扰线本身处于电压变化的过程中,此时干扰线的电压变化有可能加快或减缓其变化(这取决于受扰线与干扰线电压变化同向或反向),引起时序的不确定,如图
如果受扰线电压变化减慢且处于关键路径,可能导致建立时间(Setup time)无法满足设计需要,影响电路的工作频率;如果受扰线电压变化增快,又容易引起保持时间违反(Hold time violation),同样也会使电路工作失常。
串扰噪声的相互作用形式
随着半导体工艺集成度的提高,电压不断降低,串扰问题成为越来越无法忽视的因素。
尤其当流片工艺进入0.13μm以下,互连线代替逻辑门成为集成电路的主要时延,这使得以前处于次要地位的串绕问题显得更加突出,成为集成电路性能进一步提高的主要障碍。
串扰噪声根据互连线之间的关系可以分为干扰线与受扰线两种,干扰线与受扰线输入信号的相互关系分为下面四种情况。
1.在受扰线上的电压变化时,干扰线电压保持不变
为了方便分析,近似认为干扰线上各个点的电压均保持不变,那么受扰线可以近似地认为引入了一个等效的接地电容,这一效应使得受扰线上延迟增大,如图
2.受扰线上的电压没有变化,干扰线上的电压有变化
由于存在耦合电容,受扰线上会出现一个小的干扰脉冲信号。对局部互连线来说,由于耦合比较弱,该干扰脉冲的峰值比较小,不会引起电路的逻辑错误。
对于少数的全局互连线,可能与多条互连线都有很强的耦合。某些情况下干扰脉冲会导致电路出现逻辑错误,如图
3.干扰线和受扰线上的电压同时反方向变化
在反向变化情况下,串扰会影响受扰线上的延迟转换时间,如图
根据密勒效应,耦合电容等效为一个大小可变的接地电容,这加大了干扰线的不确定负载。耦合电容的大小受到电容开关因子和耦合电容两端电压的影响,最大可以发生两倍大小的变化。但是只有在电容两端的电压波形完全对称时,耦合电容大小才增大两倍。
4.干扰线和受扰线电压在同方向同时变化
只有在耦合电容两端的信号相同时,是可以忽略耦合电容的影响,因此减少了总电容大小。但是在实际情况中,是不可能做到信号完全相同的,如果受扰线的转换时间比干扰线的转换时间要长,那么受扰线在转换过程中也会受到串扰影响而加速转换时间,如图
以上四种情况是对串扰的简单直观的理想分析,实际电路中影响串扰的因素除了信号间的相互关系外,还有信号的转换速度、信号之间相位偏移等因素。
防止和修复串扰噪声方法
随着流片工艺尺寸变得越来越小,很难根本解决串绕问题。本节所要探讨的是尽量将串扰噪声问题限制在可控范围内,并努力减少后期修复的迭代次数。防止和修复的目的方法是当发现串绕问题时,采取适当地手段减小串扰噪声危害。
1)增大受扰信号线与干扰信号线之间的间距
由于耦合电容与线间距的平方成反比,因此增大连线间距是减少噪声最直观最有效的方式。但是受到芯片面积的限制,这种方法无法大面积使用,只有在部分线网如时钟信号上才会采用。
2)在受扰信号线上加入屏蔽线
在同一层中,除了通过增大线间距,还可以在连线间插入屏蔽线(GND或Vdd)以减小耦合电容噪声。而在信号线层间插入GND或Vdd金属层,也能有效地把线间的耦合电容转换为对地电容,从而消除干扰。
3)在受扰信号线上插入缓冲器
在干扰线向受扰线注入耦合脉冲时,因为耦合电容正比于并行连线长度,所以如果在并行长度超过一定程度以后,产生的串扰噪声很容易超过噪声容限,引起功能紊乱。
在受扰线上插入缓冲器,将耦合电容分担在两端的连线上,这样在缓冲器输入端就获得较小的噪声。
可见,插入缓冲器的确可以减小功能噪声出现的几率,但因为多了一级门可能会对路径的延迟有一定影响。
4)调整受扰信号的或者干扰信号的驱动单元强度
增强受扰线驱动端的驱动强度和减小干扰线驱动端的驱动强度都可以缓解串扰噪声的影响。但问题在于如何区分干扰线和受扰线。
因为在许多设计中,一条连线可能既是干扰线同时又是受扰线,通过增强驱动强度来减小其上的串扰噪声可能会导致增加其带入其他连线的噪声。
5)通过改变走线形式减少并行线距离
在干扰线向受扰线注入耦合脉冲时,因为耦合电容正比于并行连线的长度,所以如果并行长度超过一定程度以后,产生的串扰噪声很容易超过噪声容限,引起功能紊乱。可以通过改变同层金属的走线形式来减少由于并行连线过长导致的大耦合电容的形成。
也可以通过把同层并行太长的互连线跳层改变成不同层的走线形式来减少耦合电容。
6)尽量减少受扰连线的走线长度
除了减少并行线长度也可以减少耦合电容减低噪声影响,但是直接减少受扰连线的走线长度也能够减少被噪声影响的概率。通过优先完成受扰线的逻辑连接,可以用最短的走线路径完成连接。
数模混合信号线走线的基本方法
较复杂的设计一般是数字模块与模拟模块的混合体,那么数字模块与模拟模块一定存在着连接关系。由于模拟模块比数字模块更容易受到外界环境的影响,因此模拟模块相关的信号线与数字信号线在布线上,需要考虑更多的设计要求。
1.信号线匹配方法
模拟设计中存在一个常见的设计问题就是阻抗匹配,因此有些模拟模块的输入输出端口存在阻抗匹配的要求,那么在数模混合信号的布线过程中需要考虑阻抗匹配的问题。
在纯数字布线情况下,只需要在满足抗噪声和时序的基础上进行有效连接就可以了。但是对有阻抗匹配要求的数模混合信号线,还需要保证模拟部件的端口之间的布线电阻基本相等,这样模拟部件才能正常工作。保证布线电阻基本相等的解决方法就是保持每个端口的布线长度基本相等。
通过对较短距离的信号线进行蛇形布线来满足有阻抗匹配要求的数模混合信号线的走线要求。
2.差分信号线对称方法
模拟设计中存在一种常见的电路设计就是差分电路,因此与差分电路相关的输入输出数模混合信号线对差分信号有布线要求。差分信号的布线不仅要考虑阻抗匹配,还需要做到物理上的对称。
通过保证差分信号线宽度相等、走线长度相等、走线形状相似和差分线间距相等这些物理对称方法来满足差分线的布线要求。
3.数模混合信号线的屏蔽方法
由于模拟部件的信号对外界的影响比较敏感,因此需要对数模混合信号进行隔离保护。通过在数模混合信号外围增加屏蔽线的方法来阻止外界环境对模拟信号的干扰。
ECO
ECO是Engineering Change Order的简称,泛指项目开发过程中的改动。布局布线设计流程中的ECO指的是设计后期在保持原设计布局布线结果基本不变的基础上作的小规模改动和优化的过程。
布局布线的ECO过程分为流片前和流片后两个阶段。
1.流片前ECO
实际的工程项目中可能会出现在布局布线后期需要少量修改设计逻辑功能的问题,因此流片前的ECO阶段可以修改网表逻辑功能。同时也可以通过改变所有物理单元的大小和物理位置的手段来修复剩余的少量违反时序并保证物理上满足流片的设计规则(DRC&LVS)。
2.流片后ECO
实际工程中在芯片流片之后,需要进行严格的功能测试来保证芯片运行的正确性,如果流片出来的芯片通过测试检查出致命问题,那么需要对设计进行少量修改来修复芯片的缺陷,这样会出现需要改变芯片当前的内部物理信息。
由于流片制版费用昂贵,尤其是与晶体管制造相关的制版费用最贵,不可能重新进行一次全新的流片。
因此在流片前布局布线过程中,事先插入了少量的冗余单元,流片后ECO就是为了在不改变晶体管制版信息的前提下通过利用冗余单元并且只改变金属层的方法来实现网表逻辑功能的少量改动和时序收敛的目的。
流片前ECO和流片后ECO的区别就是流片前ECO阶段在物理上能够改变所有版图层,而在流片后的ECO阶段由于成本问题,在物理上只能改变金属层。因此根据ECO的实现手段进行分类,可以把能够改变所有版图层的ECO过程称为功能ECO(Function ECO),而把只能够改变金属层的ECO称为金属ECO(Metal Function ECO)。
那么在流片前ECO阶段可以同时应用功能ECO和金属ECO两种实现形式,而流片后ECO阶段只能应用金属ECO实现形式。
ECO的基本优化方法
布局布线的ECO阶段除了在物理版图上完成对应设计网表的改动外,解决时序收敛的问题也是ECO阶段的主要工作。ECO阶段可以通过自动和手动两种方式完成物理上和时序上的优化工作,其优化时序的类型主要分为建立时间、保持时间和时序设计规则三种。
1.优化建立时间和时序设计规则的基本方法
1)改变单元位置
不合理的单元物理位置会使信号线过长而导致线负载和线延时变大,从而影响时序收敛。
2)改变单元大小
通常标准单元库提供的多种驱动能力的单元,由于在相同激励和负载的情况下,其延时与驱动能力近似为线性关系,延时随驱动能力增大而递减,因此通过把由于负载过大导致延时恶化的单元调整为驱动能力更大的同类型单元可以改善时序性能。
同样,驱动能力小的同类型单元对前级驱动单元所体现的负载电容也较小,如果将驱动力大的负载单元换成驱动力小的负载单元,可以减小前级驱动单元的输出负载从而改善前级驱动单元的时序性能。
3)插入缓冲单元
随着工艺尺寸的不断缩小,其线延时的增加与线长近似成正比指数性关系,而增加缓冲单元个数与延时近似成正比线性关系。
那么在单元位置比较合理的同时单元驱动力达到最大的情况下,如果单元驱动信号线负载仍然过大而导致延时过大,可以通过在长距离信号线的中间增加合适的缓冲单元来提高延时性能。
4)删除缓冲单元
如果设计中存在插入缓冲器单元不合理的情况,可以通过删除导致降低时序性能的缓冲单元来达到优化时序性能的目的。比如在修复建立时间时由于插入延时过大的延时单元而导致保持时间违反,而这种延时单元也属于一类特殊的缓冲单元,那么可以删除这种导致降低时序性能的缓冲单元。
5)重分配负载
设计中存在扇出(fanout)负载不合理的情况,出现这种情况,可以通过插入缓冲单元重新分配扇出负载来达到优化时序的目的。
6)时钟有用偏斜
它可以用于优化时序性能,其工作原理就是在两个串行的时序路径中,通过借用其中一条时序路径延时余度的方法来修复另一条时序路径上时序违反的问题。
2.优化保持时间的基本方法
优化保持时间的方法相对简单,主要是插入延时单元(Delay Cell)的方法。由于延时单元具有相对较长的单元本征延时的特点,通过插入延时单元来显著地增加时序路径整体延时来达到满足建立时间要求的目的。