专利名称::考虑耦合效应进行时延优化的标准单元总体布线方法
技术领域:
:集成电路计算机辅助设计(ICCAD)领域,尤其涉及标准单元(SC)总体布线领域。集成电路的制造工艺目前正从超深亚微米(VDSM)进入到纳米(nanometer)阶段;集成电路的设计规模也正由超大规模(VLSI)、甚大规模(ULSI)向G大规模(GSI)方向发展。在这种条件下,一方面,集成电路设计中互连线延迟已经大大超过了门延迟,成为影响芯片性能的主要因素。因此,这时仅仅优化布线拥挤是不够的,要进行时延优化。另一方面,此时互连线之间由耦合电容引起的耦合效应已非常强烈。因此,若在时延优化时仍按照以往的方法而忽略耦合效应的影响,将会使所得到的优化结果具有很大的局限。因此,在新的技术发展与工艺要求下,要研究考虑耦合效应优化时延(同时包含优化布线拥挤)的总体布线方法。在已报导和所能查阅到的国内外相关研究中,我们列举、分析、总结如下下面这些代表性的时延优化方法,它们都进行了时延的优化,但由于当时的技术条件限制而都没有考虑耦合效应对时延的影响。较早期的一些方法(1)简单地将最小化线网互连线延迟的概念转化为最短线网长度的布线;(2)采用优先级分配的方法,通过静态时延分析产生出关键线网,然后,给这些关键线网分配较高的优先级,尽量使它们的长度最小。而事实上,只有在两端点线网的情况下,或连线电阻与输出驱动电阻相比可以忽略不计的情况下,最短线网连接才能保证最短的互连线延迟。而对于多端点线网,在VDSM工艺下,连线电阻与输出驱动电阻相比不能忽略不计。此时,线网的漏点(即该线网的信号输出引脚点)延迟不仅与线网总连线长度有关,而且与线网布线树的结构有关。因此,这些方法就不再适用了。以后发现电路的最长关键路径时延决定着芯片的电性能。于是,在标准单元布线的时延优化上出现了以下四类方法(1)基于线网的时延优化总体布线。它是将关键路径上的互连线延迟约束分配到各个相关的线网中,作为对线网延迟的约束。它的控制策略简单,易于实现。(2)基于关键路径的时延优化总体布线。它并不单一考虑每条线网的延迟约束,而是将线网的延迟约束检查放到与其相关的关键路径的延迟约束检查中,只要关键路径上总的延迟约束满足,线网的新布线结果就可行。它力求避免不合理的延迟分配,放宽线网的布线约束,得到更好的布线质量。方法(1)在时延约束的分配上存在一定的盲目性。由于对每条线网的延迟都有严格的限制,因此,如果时延分配结果与实际布线的需求不相符时,就会使得拥挤线网为满足自身所分配的时延约束而无法使拥挤得到改善。在方法(2)中,确定需重布改进时延的线网存在盲目性,只能靠贪婪试探的方法,不能实现主动控制,这使得总体布线算法的求解速度比较低。(3)文献中提出了一种考虑时延约束的总体布线方法。该方法进行了电路时延的优化,但没有考虑耦合效应的影响。同时,该方法是面向积木块(BBL)设计模式的而不是标准单元(SC)设计模式。该文中采用了很小规模的测试例子,并需要较长的算法执行时间。因此,该方法不能应用于SC的布线中。(4)基于关键网络技术的时延优化总体布线。该方法提出了基于构造关键网络进行时延优化的优化思想。与方法(1)-(3)相比,该方法取得了好的效果。但由于没有考虑耦合效应对于时延的影响,使得该方法在新的工艺条件下,其应用受到限制。已进行过“新颖性检索”,检索报告见附件1。本发明的特征在于它依次包含如下步骤(1)初始化设置GRC(总体布线单元)的行数Nnr,列数Nnc,GRG(总体布线图)中所有顶点即GRC中心点的坐标vnr,nc(x,y),其中,nr,nc分别代表行和列,x,y是芯片平面的坐标;GRG中每条边ek的容量Ck,电路中线网的总数Nsum,每条线网的网表NetlistIndex,每条线网的源点s,漏点t,电路的所有电学性能参数,用户给定的时延约束指标参数;(2)生成GRG读入在多层布线芯片上划分GRC所必需的Nnr,Nnc,读入在多层布线芯片上生成GRG所必需的各顶点的坐标值,给顶点以及连接每两个相邻顶点的边ek编号;(3)读入电路详细连接关系即网表读入电路中线网的总数目Nsum,读入每条线网网表,按读入顺序,为每条线网编号;(4)读入电路的所有电学性能参数与约束指标,赋到相应的变量和数组中;(5)构造初始布线树即Steiner树,即在每条线网不受任何约束条件下构造时延优化的Steiner树;(6)统计总的可用布线资源,标记拥挤区域根据步骤(5)执行后得到的初始解,统计每条GRG边的被使用量dk,比较Ck与dk,若Ck<dk,表示出现布线拥挤,得出拥挤区域,对布线拥挤的GRG边进行标记,有标记的线网即为拥挤线网;(7)用SSTT.cpp程序优化布线拥挤,消除拥挤边;(8)用Coll_Timing_Info.cpp程序统计电路时延信息,再根据步骤(7)执行后的布线结果进行时延计算,得到每条电信号传输路径从输入PI到输出PO的时延值,它依次采用如下步骤(8.1)统计电路时延信息(8.1.1)在估算互连线电学参数时使用WLE(Wire-Load-Estimation)互连线负载模型,它是通过在不同布线层对于金属线进行实验模拟,得到了离散的寄生参数并再进行曲线拟合而得到的,其输入参数为金属线的线宽(W0)、实际线间距(S0)、线长(L)和所在的布线层序号(v);输出参数为金属线的单位总电阻(Rt0)、单位总电容(Ct0)、单位耦合电容(Cc0);(8.1.2)用全等变换技术计算互连线延迟见(K.J.Kerns,I.L.Wemple,A.T.Yang.‘StableandEfficientReductionofSubstrateModelNetworksUsingCongruenceTransforms.’InProceedingsofACM/IEEEICCAD,1995,207~214,采用全等变换方法来稳定而有效地降低衬底模型网络);它的输入参数为线网每一段走线的总电容(Ct)、总电阻(Rt),线网的连接关系;输出参数为线网每个漏点的延迟值(Ti)及传输时间(tr);(8.1.3)用查表和插值的方法计算门延迟所用的表是用户在实施例中提供的每个库单元的延迟信息表及其对应的索引,输入参数为门的输入Pin的传输时间(tr),门的输出负载总电容(即为输出的线网总电容Ct);输出参数为门延迟值(Tg),门的输出Pin的传输时间(ti);(8.1.4)计算路径的总延迟路径的总延迟=门延迟Tg+连线延迟Ti;(9)优化电路时延设.非关键路径的边的权值w~i=α1wcongi+α2wcoupi,α1+α2=1,]]>其中,wcongi该边拥挤引起的费用;wcoupi该边耦合电容引起的费用;α1、α2调整系数;则,关键路径的边的权值w~i=α1wcongi+μα2wcoupi,μ>1,]]>即通过减少关键路径上线网附近的布线密度,以减少其耦合电容,保证其时延的减小。(10)判断各条从PI到PO的电信号传输路径上的时延是否满足给定的所有时延约束指标,若延迟优化结果>时延约束指标,则继续执行步骤(9),当全部满足时,输出结果。实验证明本发明可以减小关键路径的耦合电容,使关键路径总延迟减小,整个电路时延优化。图2本发明的流程框图。图3在多层布线的芯片平面上生成的GRG。图4考虑耦合效应的线网时延计算。图5采用插值查表法求门延迟。图6实施例中的关键路径局部。图7对图6所示的局部关键路径进行时延优化后的结果图。本布线方法的流程框图如图2所示。现在采用工业界的一个电路实例biu作为本发明的一个实施例,结合图2的程序流程用本发明的总体布线方法进行布线。它依次有如下步骤(1)初始化设行数Nnr=66,列数Nnc=26,如图3所示。此时,GRG图中共有1716个顶点,每个顶点都有一个对应的位置坐标(x,y),例如在图3中,v1,1顶点的位置坐标是(-3900,-3900),v1,2顶点的位置坐标是(-1700,-3900),即可用vnr,nc(x,y)表示,nr表示GRG上第几行,nc表示GRG上第几列,坐标(x,y)是相对芯片平面的坐标原点而言的;共有3340条边,每条边都有一个用户给定的容量,从14~19,例如连接v1,1与v1,2的边的容量为14,连接v1,2与v1,3的边的容量为14。设线网的总数Nsum为943条,用户给出的时延约束指标,如其中一个时延值为10.000000ns。(2)生成GRG,见图3读入Nnr=66,Nnc=26;按照先行后列的顺序,给1716个顶点全部编号,分别为1~1716号;再按照先行后列的顺序,从1号顶点开始,把3340条GRG边全部编号,分别为1~3340号。(3)读入电路详细连接关系即网表读入电路中线网总数Nsum=943。按照网表读入的顺序,给943条线网全部编号,分别为net1~net943。于是得到每条线网包含源点、漏点信息在内的网表,其具体形式描述如下8号线网的网表表示是(net8(vertexList71020.000.0073620.000.0076220.000.0078820.000.0068620.000.0066020.000.0063420.000.0060810.000.00)),943号线网的网表表示是(net943(vertexList31020.000.0030920.000.0030810.000.00))。以net943为例它表示的是第310号顶点是漏点,第309号顶点是漏点,第308号顶点是源点。它们的通式可表示为(net号(VertexList顶点号源点/漏点……)),其中数字1表示源点,数字2表示漏点。(4)读入电路的所有电学性能参数与约束指标,赋到相应的变量和数组之中读入用户给出的时延约束指标参数赋到数组中,其中一个时延约束指标(从PI到PO)=2.900000ns。(5)构造初始时延优化的布线树采用ITDT_Tree.cpp程序完成。其中,首先采用ITDT算法,利用总线长以及源点的作用,为单个线网构造时延最优布线树,然后,通过迭代优化整个路径上的线网,构造全局最优的初始布线解。用该算法求出的初始布线树其形式如下<prelisting-type="program-listing"> #Init_Steiner_Tree8 ( (connect710711) (connect711712) (connect736762) (connect762788) (connect710736) ) …………………… #Init_Steiner_Tree943 ( (connect308309)<!--SIPO<DPn="5">--><dpn="d5"/> (connect309310) )</pre>其通用表达式为#Init_Steiner_TreeXXX((connect顶点号顶点号)…………(connect顶点号顶点号))(6)统计总的可用布线资源,标记拥挤区域采用Update_Resources.cpp程序完成。统计每条GRG边的被使用量(即有多少线网通过了该边)dk,再把它与允许容量Ck比较,若Ck<dk,则表明出现布线拥挤,把它在结构EdgeIndex中标记为1;把所有经过标记为1的GRG边的线网确定为拥挤线网。本实施例中,共标记出124条布线拥挤的GRG边,228个拥挤线网。(7)优化布线拥挤,消除拥挤边采用SSTT.cpp程序完成。其中采用了“基于搜索空间遍历技术(SSTT)的布线拥挤优化算法”,它已公开发表于2001年的国际学术会议“TongJing,Xian-LongHong,Hai-YunBao,etal.‘AnEfficientCongestionOptimizationAlgorithmforGlobalRoutingBasedonSearchSpaceTraversingTechnology’.InProceedingsofIEEEASICON,2001,114~117”。在本实施例中,进行布线拥挤的优化后,消除了全部拥挤边。(8)用Coll_Timing_Info.cpp程序统计电路时延信息,再根据步骤(7)执行后的布线结果进行时延计算,得到每条电信号传输路径从输入PI到输出PO的时延值。路径的总延迟=门延迟Tg+连线延迟Ti。WLE(Wire-Load-Estimation)互连线电学参数估算模型WLE是一种适合在布图设计的较早阶段作为时延和串扰分析的互连线负载计算模型。该模型通过在不同布线层对于金属线的实测,得到了准确的电容、电阻等的寄生参数表,并对电容、电阻等寄生参数进行曲线拟合。根据输入的工艺参数(如所在的布线层号)和几何参数(如线长),就可以从寄生参数表中查出对应的寄生参数(如单位总电容值)。该模型由于采用了实测技术,使得其对于各布线层的参数计算都比较准确,并且能适应集成电路新的工艺要求。它对于金属线寄生参数的计算的最大误差在5%之内。该模型的输入参数为金属线的线宽(W0)、实际线间距(S0)、线长(L)、所在的布线层号(v);输出结果为该金属线的单位总电阻(Rt0)、单位总电容(Ct0)、单位耦合电容(Cc0)。在本示例中,寄生参数表的局部列出如下(采用了科学记数法)[beginm2_m1_m3]designruleWminSmin0.3150.315capacitanceCc0Cg0S0W01.7174e-162.2930e-160.3150.315[endm2_m1_m3]其中,m2_m1_m3表示所在的布线层是第2层金属层;Wmin,Smin分别表示最小线宽和最小线间距;Cc0,Cg0分别表示单位长度走线的耦合电容和对地电容;S0表示走线的实际线间距。如图6所示,在第二层金属层,线网号net25的线长L是3000um,线宽W0是0.315um,实际线间距S0是0.315um,通过WLE模型查得单位长度走线的耦合电容Cc0=1.7174e-16,单位长度走线的对地电容Cg0=2.2930e-16,则,单位总电容Ct0=Cc0+Cg0=(1.7174e-16+2.2930e-16)=4.01e-16f(法拉)总电容Ct=Ct0*L=4.01e-16*3000*1e+12=1.203pf(皮法)如果一个线网由多段连线组成,则该线网总电容为各段连线总电容Ct之和,即为Σi=1nCti.]]>全等变换技术可以稳定降低较大的RC网表的阶次。它使用了自适应方法来控制阶次的降低,从而有效地实现计算精确性与执行速度之间的平衡。它与公知的SPICE模拟工具的模拟结果的误差仅为1%,但执行速度要比SPICE模拟工具快得多。该模型的输入参数为线网每一段走线的总电容(Ct)、总电阻(Rt),线网的连接关系;输出结果为线网每个漏点的延迟值(Ti)及传输时间(tr)。在图6中,net25的总电容Ct=1.21pf(皮法),总电阻Rt=100ohm(欧姆),连接关系是源点和漏点直接相连,则线网漏点的延迟值Ti=0.559ns。查表和插值门延迟计算方法在超深亚微米工艺下,器件的延迟模型已很难用简单的线性函数来表示。当负载为纯容性负载时,门延迟以及输出信号的特性是输入信号斜率和负载电容的函数。同时,由于大量的数据是在离散输入状态下的实际的测试数据,这使得查表法被应用到时延特性的描述中来。在查表法附带的表文件(由用户在实施例中给出)中,定义了每个库单元(即门)的延迟信息表及其对应的索引,包括上升延迟表和下降延迟表及其对应的索引,上升传输时间表和下降传输时间表及其对应的索引。每一个延迟信息表都有一个或两个索引。在延迟信息表中存储的是定义点对应的延迟值以及传输时间(transition)。根据用户在实施例中给出的时延信息表,用查表法技术求出定义点所对应的延迟值并采用插值法计算得到定义点之间的各个非定义点所对应的延迟值。该计算方法的输入参数为门的输入Pin的传输时间(tr),门的输出负载总电容(即为输出的线网总电容Ct);输出结果为门延迟值(Tg),门的输出Pin的传输时间(ti)。以输入的传输时间tr和输出的总电容值Ct作为上升门延迟表的索引。输入的传输时间是tr=0.34,在X坐标中标示。输出的总电容值是Ct=110.1,在Y坐标中标示。它们在XY平面上的交叉点所对应的Z坐标的值即为欲求的上升门延迟的值Tg。上升门延迟表中已经根据预定义的坐标确定了一些点。这些点的X坐标有0.20,0.34,0.56,0.72,1.23。Y坐标有10.2,30.8,58.7,99.5,151.6。根据这些坐标所确定的20个点,在图5中用横纵坐标交叉处的黑点来表示,它们所对应的Z值存储在上升门延迟表中。而我们所给的输入(0.34,110.1)正好落在某4个点中间。根据这4个点对应的Z来做插值计算,得到一个曲面。输入点在曲面上对应的Z值便是对应于输入的上升门延迟值Tg。上述插值的过程如图5所示。路径的总延迟=门延迟Tg+连线延迟Ti。然后,把用户时延约束指标与上述计算出的每条电信号传输路径的延迟值进行比较,分析得到此时时延不满足用户要求的关键路径。在计算连线延迟时,要根据当时已布线网的情况,计算出当时走线的线间距值(即实际线间距S0),采用公式实际线间距S0=(总的可用走线道数*最小走线道宽度)/已占用的走线道数(9)优化电路时延用CC_Timing.cpp程序完成。在本实施例中,局部关键路径如图6所示。在图6中,从PI到PO的实际延迟计算结果为3.016000ns,而时延约束指标为2.900000ns,超出了0.116000ns。要实现实际延迟计算结果≤时延约束指标这一目标,我们找出影响时延最严重的关键路径进行优化。其中,由于我们的算法的目标是保证关键路径的时延不会劣化。因此,关键路径上的线网的权值设定要与非关键路径上的线网有所区分。非关键路径上的边的权值由下式定义。w~i=α1wcongi+α2wcoupi,α1+α2=1,]]>其中,wcongi是该边拥挤引起的费用,wcoupi是该边耦合电容引起的费用。费用越高的边,重布的线网越不会选择其经过。关键路径上的边的权值由下式定义。w~i=α1wcongi+μα2wcoupi,μ>1,]]>由于μα2>α2,关键路径上的边权值被“放大”了。这样,当线网有几种可选的重布路径时,会自然选择非关键路径上的边,而放弃关键路径上的边。通过采用这种方法进行控制,关键路径上线网附近的布线密度得到了减小,相应导致其耦合电容的减小,从而保证了时延减小。在今实施例中,由步骤(8)得到的局部关键路径如图6所示。在图6中,从输入PI到输出PO共有3条路径,分别为net483-->net96-->net452net483-->net96-->net863net483-->net25-->net648其中,从PI到路径中每个门的输出Pin的当前路径总延迟已在该门(图6中的方框)中标出,即图6中方框所标出的延迟值都是以PI为起始点的延迟值。由IDC的计算可得net452,net863和net648的延迟分别为0.521ns,0.481ns和0.336ns。因此,从上述3条路径传至PO的总延迟值分别为1.041+0.521=1.562ns2.535+0.481=3.016ns1.244+0.336=1.580ns于是,从输入PI到输出PO的实际延迟计算结果应取三者中最长的路径延迟值,即3.016000ns。而时延约束指标为2.900000ns,超出了0.116000ns。采用上述考虑了耦合效应的优化电路时延方法,可得到如图7所示的时延优化结果。其中,net96由于在关键路径上,保持布线基本不变,而别的线网在重布时,让出布线资源给net96,使net96在连接门I65__fhsre_1_0/bf_se与门I3__Inst_4_52_的一段走线的走线密度下降,耦合电容减小,延迟也相应减小。由IDC的计算可得net452,net863和net648的延迟分别为0.571ns,0.379ns和0.370ns。因此,上述3条路径传至PO的总延迟值分别变为1.092+0.571=1.603ns2.401+0.379=2.780ns1.354+0.370=1.724ns这时,从PI到PO的实际延迟计算结果取三者中最长的路径延迟值,即2.780000ns,小于时延约束指标2.900000ns。电路的时延优化完成。(10)判断各条从PI到PO的电信号传输路径上的时延是否满足给定的所有时延约束指标,若延迟优化结果>时延约束指标,则继续执行时延优化程序,当全部满足时,输出电路中943条线网的布线结果。本发明使用的硬件是一台Sun公司的Enterprise450型工作站;使用Unix操作系统。由此可见,本发明所述考虑耦合效应进行时延优化技术有以下优点(1)在总体布线过程中可以准确反映新工艺下耦合电容对线网乃至电路时延值的影响,从而能够准确地计算电路的实际延迟时间,正确地指导优化的进行;(2)利用耦合效应对时延的影响,可以有目标地调整布线解的分布,减小关键路径的耦合电容,导致关键路径的总延迟的减小和整个电路时延的优化。权利要求1.考虑耦合效应进行时延优化的标准单元总体布线方法,含有用计算机在每条线网构造时延优化的Steiner树,优化布线拥挤,消除拥挤边,判断时延是否满足约束指标的步骤,其特征在于在根据优化布线拥挤,消除拥挤边的布线结果进行时延计算以及后继的优化电路时延时,它依次采用如下步骤(1)统计电路时延信息(1.1)在估算互连线电学参数时使用WLE(Wire-Load-Estimation)互连线负载模型,它是通过在不同布线层对于金属线进行实验模拟,得到了离散的寄生参数并再进行曲线拟合而得到的,其输入参数为金属线的线宽(W0)、实际线间距(S0)、线长(L)和所在的布线层序号(v);输出参数为金属线的单位总电阻(Rt0)、单位总电容(Ct0)、单位耦合电容(Cc0);(1.2)用全等变换技术计算互连线延迟见(K.J.Kerns,I.L.Wemple,A.T.Yang.‘StableandEfficientReductionofSubstrateModelNetworksUsingCongruenceTransforms.’InProceedingsofACM/IEEEICCAD,1995,207~214,采用全等变换方法来稳定而有效地降低衬底模型网络);它的输入参数为线网每一段走线的总电容(Ct)、总电阻(Rt),线网的连接关系;输出参数为线网每个漏点的延迟值(Ti)及传输时间(tr);(1.3)用查表和插值的方法计算门延迟所用的表是用户在实施例中提供的每个库单元的延迟信息表及其对应的索引,输入参数为门的输入Pin的传输时间(tr),门的输出负载总电容(即为输出的线网总电容Ct);输出参数为门延迟值(Tg),门的输出Pin的传输时间(ti);(1.4)计算路径的总延迟路径的总延迟=门延迟Tg+连线延迟Ti;(2)优化电路时延设.非关键路径的边的权值w~i=α1wcongi+α2wcoupi,α1+α2=1,]]>其中,wcongi该边拥挤引起的费用;wcoupi该边耦合电容引起的费用;α1、α2调整系数;则,关键路径的边的权值w~i=α1wcongi+μα2wcoupi,μ>1,]]>即通过减少关键路径上线网附近的布线密度,以减少其耦合电容,保证其时延的减小。2.根据权利要求1所述的考虑耦合效应进行时延优化的标准单元总体布线方法,其特征在于所述的步骤(1)采用Coll_Timing_Info.cpp程序。全文摘要考虑耦合效应进行时延优化的标准单元总体布线方法属于集成电路标准单元总体布线领域,其特征在于它是在每条线网不受任何约束的条件下构造时延优化布线树,再优化布线拥挤,消除拥挤边后,用先后衔接的基于实验模拟的连线负载模型来估算连线电学参数,全等变换技术来计算连线延迟,通过用户给定的延迟信息表用查表+插值的方法来计算门延迟等三个步骤计算路径总延迟值,然后,用增强考虑了耦合效应的关键路径上线网的权值以减小线网附近的布线密度,从而也减小了耦合电容和路径总延迟的方法来优化电路时延。它能准确地计算电路的实际延迟时间;利用耦合效应对时延的影响,减少关键路径的耦合电容,导致关键路径总延迟下降和整个电路时延优化。文档编号G06F17/50GK1416082SQ0215662公开日2003年5月7日申请日期2002年12月17日优先权日2002年12月17日发明者洪先龙,经彤,许静宇,张凌,胡昱申请人:清华大学