专利名称:一种集成电路设计中优化连线约束的方法和系统的制作方法
技术领域:
本发明一般涉及集成电路芯片设计,更具体地,本发明涉及一种集成电路设计中优化连线约束的方法和系统。
背景技术:
目前的大规模集成电路经常包含超过百万个逻辑门。图1示出了现有集成电路芯片的空间结构,由图1可见,芯片的底部是由晶体管组成的基本层(Base Layer),上层是由金属连线组成的金属层。集成电路的设计过程首先进行RTL编码(RTL coding),然后通过使用集成电路设计工具(例如synopsys design compiler),将RTL编码编译成门级的网表,网表中包含芯片的器件及连接关系,这个过程称为综合,然后再进行芯片器件的摆放(Plcement),再进行连线(也称绕线、布线或走线)。在连线前,集成电路设计工具会基于连线,给出连线约束,包括连线的长度、连线位于的层数以及连线的宽度,这样设计工具就可以根据要求的连线约束,对整个设计进行自动连线。如果在芯片的特定区域,金属层提供的连线资源少于需要的连线资源,就称为 “拥塞”。通常,使用拥塞矩阵、不同区域的拥塞数值或者拥塞图来描述拥塞的严重程度以及拥塞在芯片上的位置。在一般的集成电路芯片后端设计中,两个最重要的任务是时序收敛和物理收敛。 时序收敛指的是,电路中的所有逻辑单元能够满足预先设定的全部时序要求,这些要求通常包括数字逻辑单元设计库中制定的建立时间(setup time)和保持时间(hold time),还包括芯片前端开发人员根据芯片的实际使用需求制定的特殊时序要求,这些要求如果得不到满足,那么生产出来的芯片就不能在规定的温度和电压下实现正确的逻辑功能。而物理收敛则是指所有布局布线必须满足设计规则检查(DRC,Design Rule Check),这些设计规则需要检查所有逻辑连接是否在物理级也被连接好,并且满足连线约束的要求,这些要求一旦得不到满足,芯片在生产中就可能出现短路或者断路的现象,致使芯片不能正常工作。现有的集成电路设计中,为了满足时序收敛中的时序要求,芯片在后端设计中通常需要做大量工作来优化电路以达到这些要求。这些优化工作包括,改变数字逻辑单元的栅面积,来增大或缩小逻辑单元的驱动能力以及延时;重新组合缓冲门(buffer)或者缓冲树(buffer tree)的结构;插入更多更合理的缓冲树,来主要用于时钟树(clock tree)的建立和优化;插入更多的缓冲门单元来满足物理线的传输时间和负载约束要求;插入更多的缓冲门单元来满足保持时间甚至建立时间的约束要求。这些行为中的百分之八十都是在向已有的逻辑设计中添加更多的逻辑单元。事实上,在一块集成电路芯片的后端设计中,原有的逻辑面积平均会被增大百分之十到二十。那么这些逻辑单元的增加会带来两个直接的影响第一,逻辑单元自身所占用的金属层(通常是较低的金属层,也是布线密度最大的金属层)会急剧地增加;第二,增加的逻辑单元所带来的新增的逻辑连线会消耗更多的布线资源,这其中又有两个原因,一是因为原来的金属线会由于其上插入的缓冲门单元而增加长度(布线走向发生变化),二是因为增加的逻辑单元管脚连接需要更多的金属通孔。综上所述,时序收敛会带来空余布线资源的减少,新增加的金属线和金属通孔在设计规则检查中又会遇到新的问题,从而进一步加剧了布线资源的减少。除此之外,时序收敛过程中增加的物理连线还要消耗EDA工具更多的时间来优化布线资源。另一方面,为了满足物理收敛中的设计规则检查,芯片在后端设计中常常需要改变更多的金属层和金属通孔来满足物理规则的要求,而有时候,这些金属层和金属通孔的改变会直接使得原有的金属线长度增加或者缩短,从而带来金属线上的电阻和电容参数的变化,使得金属连线上的信号传输时间和延时发生变化,这些变化(可能变快也可能变慢) 都会给时序收敛带来影响。特别是,在布线资源比较紧张的区域,金属层和金属通孔的改变十分困难,由于这个区域原来的布线资源就很紧张,所以牵一发则动全身的情况时常出现, 很多时候为了得到更多的布线资源,一些金属连线不得不绕开一些布线资源紧张的区域, 这将使得原来的金属线长度急剧增加,并且也很有可能带来更多的金属通孔。这些增加将直接导致金属线上的电阻和电容参数的变化,随之也将带来金属连线上的信号传输时间和延时的变化。综上所述,物理收敛,特别是布线资源紧张区域的物理收敛,将会带来金属连线上的信号传输时间和延时的变化,从而对时序收敛带来影响。
发明内容
现有集成电路设计过程中连线约束设置在连线上,而在连线级别,时序和拥塞是混合在一起的,现有设计工具很难平衡这两个条件,造成设置的连线约束具有这样或者那样的缺点,本发明提出了一种新的集成电路设计中优化连线约束的方法和系统,该方法能够在设置连线约束时根据时序和拥塞来优化设计连线约束,使得设计的集成电路在满足时序收敛的条件下,拥塞区域更少。根据本发明的一个方面,提供了一种集成电路设计中优化连线约束的方法,包括对于连线中的至少一个子连线,确定该子连线的目标时序路径;计算该子连线的确定的目标时序路径上的TP参数和RP参数,其中,TP参数为该子连线所在的目标时序路径上时序收敛的可能性,RP参数为该子连线所在的目标时序路径上经过的物理绕线轨迹的解决拥塞问题的可能性;获得现有集成电路设计工具为该子连线设置的当前连线约束;以及根据在TP参数和RP参数组成的二维空间中,该子连线的目标时序路径上的TP参数和RP参数在该二维空间中的空间位置的不同而设置的不同的连线约束调整策略,调整该子连线的当前连线约束。根据本发明的另一个方面,提供了一种集成电路设计中优化连线约束的系统,包括目标时序路径确定装置,用于对于连线中的至少一个子连线,确定该子连线的目标时序路径;TP参数和RP参数确定装置,用于计算该子连线的确定的目标时序路径上的TP参数和RP参数,其中,TP参数为该子连线所在的目标时序路径上时序收敛的可能性,RP参数为该子连线所在的目标时序路径上经过的物理绕线轨迹的解决拥塞问题的可能性;
当前连线约束获得装置,用于获得现有集成电路设计工具为该子连线设置的当前连线约束;以及连线约束调整装置,用于根据在TP参数和RP参数组成的二维空间中,该子连线的目标时序路径上的TP参数和RP参数在该二维空间中的空间位置的不同而设置的不同的连线约束调整策略,调整该子连线的当前连线约束。
通过对附图中本发明示例实施例方式的更详细描述,本发明的上述、以及其它目的、特征和优势将变得更加明显,其中,相同的参考标号通常代表本发明示例实施例方式中的相同部件。图1示出了现有集成电路芯片的空间结构;图2示出了现有的集成电路设计工具对于一部分电路设置的连线约束示意图;图3示出了下一级输出的路径中存在拥塞区域造成连线过长的示例;图4示出了一种集成电路设计中优化连线约束的方法的流程;图5示出了设计的部分集成电路的器件连接关系;图6示出了一个拥塞区域;图7示出了二维RP-TP参数空间的双曲划分图;图8示出了另一种空间划分的实施方式;图9示出了增加RP-TP空间划分的区域的数量的一种空间划分的实施方式;以及图10示出了一种集成电路设计中优化连线约束的系统的结构框图。
具体实施例方式将参照附图更加详细地描述本发明的优选实施方式,在附图中显示了本发明的优选实施例。然而,本发明可以以各种形式实现而不应该理解为被这里阐述的实施例所限制。 相反,提供这些实施例是为了使本发明更加透彻和完整,并且,完全将本发明的范围传达给本领域的技术人员。对于一个集成电路,只有同时达到时序收敛和物理收敛,才是一个成功的设计。在设计过程的任何一个步骤中,都可以进行时序分析,判断设计的集成电路时序受否收敛,时序分析在设计的初期比较初略,越到设计的后期,时序分析越精确,越接近于真实的集成电路的时序。而设计过程中每加入一个步骤,可能对上一个步骤分析出的时序又有了新的影响,使得集成电路的设计变成一个迭代的过程。本发明中,主要考虑连线过程对时序的影响,S卩如何在设计连线约束时考虑时序的需求,使得连线的过程对时序的影响很小,更容易同时达到时序收敛和物理收敛。图2示出了现有的集成电路设计工具对于一部分电路设置的连线约束示意图。这里的连线包括从上一级的输出(源器件)到下一级的三个输入(分别为负载器件0、负载器件1和负载器件2)的三条子连线。现有的集成电路设计工具设置的连线约束是基于连线的,也就是说,对于三条子连线的连线约束是相同的,即,这三条子连线具有相同的较宽的线宽,并且在第5或第6金属层。而通常,这三条子连线并不一定都是时序关键的,可能只有一条子连线是时序关键的,而其它两条子连线是存在足够的时序空间的,例如,如果只有到第一个下一级输出(负载器件0)为时序关键路径,而其它两条路径为非时序关键路径, 那么设置同样的连线约束对于其它两条子连线就过于严格了,使得这两条子连线就占据了更多的连线资源。如果当到第三个下一级输出(负载器件2)的路径中存在拥塞区域时,采用现有的集成电路设计工具设置的基于连线的连线约束会使得到第三个下一级输出的路径需要绕过上述拥塞区域,造成连线过长,图3示出了下一级输出的路径中存在拥塞区域造成连线过长的示例,本来该路径不是时序关键的,其时序是满足设计要求的,但是该弯曲的连线使得连线过长,电阻电容参数加大,加大了信号传输时间,使得本来非时序关键的路径变成了时序关键路径,就可能使得根据现有的集成电路设计工具设置的连线约束的最后连线不满足时序要求。因此,现有的集成电路设计工具设置的基于连线的连线约束不能够很好地解决平衡时序和减少拥塞区域。对于图2中的过于严格的连线约束,本发明注意到可以通过保持到第一个下一级输出(负载器件0)路径的线宽以及连线所在的层数,而将非时序关键路径在更低的金属层连线,并且采用较细的线宽来释放一些连线资源,也就使连线约束降低。也就是说,对于图3中的过于严格的连线约束,可以通过减小连线的宽度,并且选择不同的层来减少连线约束。针对上述类似的连线约束和平衡时序的矛盾,本发明提出了一种集成电路设计中优化连线约束的方法,在该方法中,首先时序约束不再对应整个连线,而是每一个子连线都有一个对应的连线约束,例如对于图2中所述的连线包括三个子连线的情况,就会对应有3 个子连线的连线约束,这样,连线约束的力度变小,对于每一个子连线,可以根据其子连线的时序要求,设置不同的约束。现有的集成电路设计工具已经对连线有一套系统的设置连线约束的方法,可以通过现有技术得到每一个子连线的当前子连线约束,然后对这个当前子连线约束进行修正。本发明对于任意一个子连线(或者称为子线,本文全文中子线和子连线混用,表示的含义相同),把子连线分为四种类型,即第一类型为时序关键并且很难绕线的子线;第二类型为时序关键并且很容易绕线的子线;第三类型为时序不关键并且很难绕线的子线; 第四类型为时序不关键并且很容易绕线的子线;针对上述四种不同类型的子线,修正的策略分别为对第一类型子线,不处理,也就是保持原来的连线约束不变;对第二类型子线,对绕线的宽度加宽,将绕线放置到更高层的金属层;对第三类型子线,对绕线的宽度减少,将绕线放置到更低层的金属层;对第四类型子线,不处理,也就是保持原来的连线约束不变。上述修正策略的主要原因是对于第一类型的子线,是通过对第二类型和第三类型的子线的连线约束进行修正后,会影响到第一类型的子线,从而将第一类型的子线改变为第二类型或者第三类型的子线;而对于第四类型的子线,因为该子线已经同时满足时序收敛核物理收敛,所以无需处理。第二类型的子线通过对绕线的宽度加宽,将绕线放置到更高层的金属层可以促进时序收敛;对第三类型的子线,通过对绕线的宽度减少,将绕线放置到更低层的金属层可以减少对绕线资源的要求。如何判别一条子线属于上述四种类型的那一类型呢?本发明定义了两个新的参数,TP参数和RP参数,确定一条子连线的TP参数和RP参数之前,需要确定该子连线的目标时序路径。TP参数为该子连线所在的目标时序路径上时序收敛的可能性,RP参数为该子连线所在的目标时序路径上经过的物理绕线轨迹的解决拥塞问题的可能性。TP参数和RP 参数组成了一个二维TP-RP参数空间,对于任意一个子连线,其TP参数和RP参数可以计算出具体的值,那么就可以确定该子连线的参数在二维TP-RP参数空间中的位置。二维TP-RP 空间中,子连线位于不同的位置,对应着子连线属于不同的类型,从而将采用不同的连线约束调整策略。因此,本发明的一种集成电路设计中优化连线约束的方法,其流程如图4所示,包括在步骤S401,对于连线中的至少一个子连线,确定该子连线的目标时序路径;在步骤S402,计算该子连线的确定的目标时序路径上的TP参数和RP参数,其中, TP参数为该子连线所在的目标时序路径上时序收敛的可能性,RP参数为该子连线所在的目标时序路径上经过的物理绕线轨迹的解决拥塞问题的可能性;在步骤S403,获得现有集成电路设计工具为该子连线设置的当前连线约束;在步骤S404,根据在TP参数和RP参数组成的二维空间中,该子连线的目标时序路径上的TP参数和RP参数在该二维空间中的空间位置的不同而设置的不同的连线约束调整策略,调整该子连线的当前连线约束。其中,步骤S403只要在步骤S404之前执行即可,与步骤S401和步骤S402之间没有一定的前后关系,而步骤S402需要依赖于步骤S401,步骤 S404需要前三个步骤都执行完毕。目标时序路径的确定是唯一的,取决于网表的结构和设计的约束,一旦这两者确定下来,那么子连线和目标时序路径的对应关系就确定下来了,下面以图5所示的设计的部分集成电路的器件连接关系,给出一种子连线的目标时序路径的确认方法图5上标的数值为当前连接点的收敛程度,即定义为当前点的要求到达时间(requiredAT)和到达时间(AT)的差值,此值总是小于等于其所在时序路径的收敛程度。如果当前连接点的收敛程度大于0,则表示当前连接点时序已经收敛,如果当前连接点的收敛程度小于0,则当前连接点的收敛程度小于0的程度越大,当前连接点时序越不收敛。例如对于子线A,首先获得该子线的所有时序路径,图5中子线A所在的时序路径有两条,分别为Reg_a — Inv_a — Inv_b — And_a — And_b — Reg_ ;禾口Reg_b — And_a — And_b — Reg_d对每一条时序路径计算出路径时序收敛程度,然后将获得的子线的每个时序路径上的所有当前连接点的收敛程度代数相加得到的每个时序路径收敛程度值,选取时序路径收敛程度值最小的那条时序路径作为这条子线的目标时序路径。上述两条时序路径中,第一条时序路径收敛程度值为-10,第二条时序路径收敛程度值为-3,因此,选取第一条时序路径作为目标时序路径。另外也可以用数据发射点和数据接收点的收敛程度值来确定子线的目标时序路径,时序检查点都为数据存储器件,如上图中的reg,对于上图中的子线A,先找出所有数据经过子线A到达的数据接收点,选取时序收敛程度最小的,如上图中只有一个Reg_d,再找出所有数据经过子线A出发的数据发射点,如上图中有Reg_a和Reg_b,选取时序收敛程度最小的,从而得到这条子线的时序路径,在上图中为Reg_a — Inv_a — Inv_b — And_ a — And_b — Reg_d,或者 Reg_b — And_a — And_b — Reg_d,取决于 Reg_a 还是 Reg_b 的时序收敛程度小。TP参数和RP参数都是在子连线的目标时序路径上计算的。如何计算TP参数有多种方法,下面以图5所示的设计的部分集成电路的器件连接关系,给出多种计算TP参数的方法,找出每一条子连线所在的目标时序路径后,根据不同时序检查的时序收敛程度值获得TP参数值,具体来说,根据不同时序检查的时序收敛程度值获得TP参数值有以下不同计算方法(1)使用确定的该子连线的目标时序路径上的建立时间(setup)检查时序收敛程度值作为这条子连线的TP参数值,即setup slack = clock arrival time+clock adjust-data arrival time-guard timeTP = setup slack,其中,setup slack为该子连线所在的目标时序路径上的建立时间检查时序收敛程度值;clock adjust为根据频率得出的时钟周期;data arrival time为该子连线所在的目标时序路径上的数据到达时间;guard time为器件模型库中定义的为了保证器件正常工作而必须要留出的时间裕量。其中前三个参数由时序分析工具算出,这是数字集成电路设计中时序分析的常规方法。(2)使用确定的该子连线的目标时序路径上的建立时间(setup)检查时序收敛程度值和保持时间(hold)检查时序收敛程度值的加权平均值作为TP参数值,即hold slack = data arrival time-guard time-clock arrival time-clock adjustTP = setup slack * C+hold slack * (I-C)其中,hold slack为该子连线所在的目标时序路径上的保持时间检查的时序收敛程度值,由时序分析工具算出,上述其它参数的含义与第一种方法相同,并且C为某常数, 可以由设计人员根据经验设定。(3)使用确定的该子连线的目标时序路径上的建立时间检查时序收敛程度值与目标时序路径上的逻辑级数的倒数的和作为TP参数值;即TP = setup slack+C * IeveF1其中,level为该子连线所在的目标时序路径上的逻辑级数,由时序分析工具算出,其它参数的含义与第一种方法相同,C为某常数,可以由设计人员根据经验设定。(4)使用确定的该子连线的目标时序路径上迟时间(late)和早时间(early)的差异(variation)作为TP参数值;即TP = AT (late) -AT (early)其中,AT(Iate)为该子连线所在的目标时序路径上的迟时间,AT (early)为该子连线所在的目标时序路径上的早时间,由时序分析工具算出。还有很多其它方法,这里就不再一一用赘述。这样,使用上述任何一种方法都可以得到该子连线所在的目标时序路径上TP参数。找出每一条子连线所在的目标时序路径后,就可以计算RP参数。如何计算RP参数也有多种方法,下面以图6所示的拥塞区域,给出多种计算RP参数的方法。在计算RP参数之前,将该子连线所经过的拥塞区域划分成一定大小的网格(如图6为12个小格),每个
1网格根据所经过的绕线的数量标记一个拥塞程度。网格的拥塞程度在现有的拥塞分析工具中可以提供该数值,一般来说,这些拥塞分析工具是根据小格的物理边长TW,以及实际经过小格区域的走线已经占用的尺寸(包括连线宽度NW和连线物理最小间距Pitch,可以确定该小格的拥塞程度
Conl =----
TW具体来说,如果小格的宽度为llum,连线的最小宽度为lum,连线之间的最小允许间距为lum,则可以确定该区域最多允许6条最小宽度连线存在;如果该区域的实际存在4 条最小宽度连线,并且其间距为最小允许间距,那么该网格的拥塞程度为7/11 = 63. 63%。计算每一条子连线所在的目标时序路径的RP参数需要利用各小格的拥塞程度数值,具体来说,可以有以下不同计算方法(1)使用公式朋= ^—0^,…—计算出该子连线经过的超过阈值A的拥
i
塞网格的拥塞度差值平方。其中,ConiS每个子线经过的拥塞区域的拥塞数值,是一个相对值,可以将图5所示的拥塞数值全部线性化成0-100的整数,以下方法中都采用线性化成 0-100的整数作为拥塞数值,例如,如果设定A = 80,则子线1的RP参数为254,子线2的 RP参数为1164。(2)使用该子连线经过的最拥塞网格的拥塞值作为该子连线的RP参数值,则子线 1的RP参数为95,子线2的RP参数为105。(3)使用该子连线经过的一个输出端和一个输入端为顶点所构成的矩形包含的网格的拥塞值之和作为该子连线的RP参数值,则子线1的RP参数为177,子线2的RP参数为 367。还有很多其它方法计算RP参数,这里就不再一一用赘述。步骤S404根据在TP参数和RP参数组成的二维空间中,子连线的目标时序路径上的TP参数和RP参数在该二维空间中的空间位置的不同而设置的不同的连线约束调整策略,调整该至少一个子连线的当前连线约束中,TP参数和RP参数组成的二维空间可以采用不同的空间划分方法。在一种空间划分实施方式中,使用双曲线Ci = (RP-RPO)*(TP-TPO)将二维RP-TP 参数空间划分,图7示出了二维RP-TP参数空间的双曲划分图。CO和Cl是Ci的两个阈值,通过这两个阈值,就可以得到两组双曲线,将RP-TP参数空间分隔成五部分,分别为区间AO、区间Al、区间B0、区间Bl和区间0。各区间所占的二维RP-TP参数空间如表1所示。表1各区间所占的二维TP-RP参数空间
权利要求
1.一种集成电路设计中优化连线约束的方法,包括对于连线中的至少一个子连线,确定该子连线的目标时序路径;计算确定的该子连线的目标时序路径上的TP参数和RP参数,其中,TP参数为该子连线所在的目标时序路径上时序收敛的可能性,RP参数为该子连线所在的目标时序路径上经过的物理绕线轨迹的解决拥塞问题的可能性;获得集成电路设计工具为该子连线设置的当前连线约束;以及根据在TP参数和RP参数组成的二维空间中,该子连线的目标时序路径上的TP参数和 RP参数在该二维空间中的空间位置的不同而设置的不同的连线约束调整策略,调整该子连线的当前连线约束。
2.根据权利要求1所述的方法,其中所述确定该子连线的目标时序路径的步骤包括获得该子连线的所有时序路径;将获得的子连线的每个时序路径上的所有当前连接点的收敛程度代数相加得到每个时序路径收敛程度值;以及选取时序路径收敛程度值最小的那条时序路径作为这条子连线的目标时序路径。
3.根据权利要求1或2所述的方法,其中所述TP参数值采用以下之一(1)使用确定的该子连线的目标时序路径上的建立时间(setup)检查时序收敛程度值作为这条子连线的TP参数值;(2)使用确定的该子连线的目标时序路径上的建立时间(setup)检查时序收敛程度值和保持时间(hold)检查时序收敛程度值的加权平均值作为TP参数值;(3)使用确定的该子连线的目标时序路径上的建立时间检查时序收敛程度值与目标时序路径上的逻辑级数的倒数的和作为TP参数值;(4)使用确定的该子连线的目标时序路径上迟时间(late)和早时间(early)的差异 (variation)作为TP参数值。
4.根据权利要求1或2所述的方法,其中还包括在计算RP参数之前,将该子连线所经过的拥塞区域划分成一定大小的网格,每个网格根据所经过的绕线的数量标记一个拥塞程度。
5.根据权利要求4所述的方法,其中所述RP参数值采用以下之一(1)使用该子连线经过的超过规定阈值的拥塞网格的拥塞度差值平方作为该子连线的 RP参数值;(2)使用该子连线经过的最拥塞网格的拥塞值作为该子连线的RP参数值;(3)使用该子连线经过的一个输出端和一个输入端为顶点所构成的矩形包含的网格的拥塞值之和作为该子连线的RP参数值。
6.根据权利要求1-5之一所述的方法,其中TP参数和RP参数组成的二维空间使用双曲线划分成不同的部分。
7.根据权利要求1-5之一所述的方法,其中二维TP-RP参数空间组成的二维空间,按照 RP和TP参数值的不同,分成若干的矩形区间。
8 根据权利要求6或7所述的方法,其中还根据不同工艺允许调整线宽的级别数量不同,进一步增加二维TP-RP参数空间划分的区域的数量。
9 根据权利要求6-8之一所述的方法,其中连线约束调整策略为越接近二维TP-RP参数空间右上角的区域,把连线变得越细,以及和/或降低该连线所在的金属层层数;越接近二维TP-RP参数空间左下角的区域,把连线变得越粗,以及和/或提高该连线所在的金属层层数。
10.一种集成电路设计中优化连线约束的系统,包括目标时序路径确定装置,用于对于连线中的至少一个子连线,确定该子连线的目标时序路径;TP参数和RP参数确定装置,用于计算确定的该子连线的目标时序路径上的TP参数和 RP参数,其中,TP参数为该子连线所在的目标时序路径上时序收敛的可能性,RP参数为该子连线所在的目标时序路径上经过的物理绕线轨迹的解决拥塞问题的可能性;当前连线约束获得装置,用于获得集成电路设计工具为该子连线设置的当前连线约束;以及连线约束调整装置,用于根据在TP参数和RP参数组成的二维空间中,该子连线的目标时序路径上的TP参数和RP参数在该二维空间中的空间位置的不同而设置的不同的连线约束调整策略,调整该子连线的当前连线约束。
11.根据权利要求10所述的系统,其中所述目标时序路径确定装置包括 用于获得该子连线的所有时序路径的装置;用于将获得的子连线的每个时序路径上的所有当前连接点的收敛程度代数相加得到每个时序路径收敛程度值的装置;以及用于选取时序路径收敛程度值最小的那条时序路径作为这条子连线的目标时序路径的装置。
12.根据权利要求10或11所述的系统,其中所述TP参数和RP参数确定装置中,TP参数值采用以下之一(1)使用确定的该子连线的目标时序路径上的建立时间(setup)检查时序收敛程度值作为这条子连线的TP参数值;(2)使用确定的该子连线的目标时序路径上的建立时间(setup)检查时序收敛程度值和保持时间(hold)检查时序收敛程度值的加权平均值作为TP参数值;(3)使用确定的该子连线的目标时序路径上的建立时间检查时序收敛程度值与目标时序路径上的逻辑级数的倒数的和作为TP参数值;(4)使用确定的该子连线的目标时序路径上迟时间(late)和早时间(early)的差异 (variation)作为TP参数值。
13.根据权利要求10或11所述的系统,其中还包括拥塞区域划分装置,用于在计算RP参数之前,将该子连线所经过的拥塞区域划分成一定大小的网格,每个网格根据所经过的绕线的数量标记一个拥塞程度。
14.根据权利要求13所述的系统,其中所述TP参数和RP参数确定装置中,RP参数值采用以下之一(1)使用该子连线经过的超过规定阈值的拥塞网格的拥塞度差值平方作为该子连线的 RP参数值;(2)使用该子连线经过的最拥塞网格的拥塞值作为该子连线的RP参数值;(3)使用该子连线经过的一个输出端和一个输入端为顶点所构成的矩形包含的网格的拥塞值之和作为该子连线的RP参数值。
15.根据权利要求10-14之一所述的系统,其中TP参数和RP参数组成的二维空间使用双曲线划分成不同的部分。
16.根据权利要求10-14之一所述的系统,其中二维TP-RP参数空间组成的二维空间, 按照RP和TP参数值的不同,分成若干的矩形区间。
17.根据权利要求15或16所述的系统,其中还根据不同工艺允许调整线宽的级别数量不同,进一步增加二维TP-RP参数空间划分的区域的数量。
18.根据权利要求15-17之一所述的系统,其中连线约束调整装置中的连线约束调整策略为越接近二维TP-RP参数空间右上角的区域,把连线变得越细,以及和/或降低该连线所在的金属层层数;越接近二维TP-RP参数空间左下角的区域,把连线变得越粗,以及和 /或提高该连线所在的金属层层数。
全文摘要
本发明公开了一种集成电路设计中优化连线约束的方法和系统,其中方法包括对于连线中的至少一个子连线,确定该子连线的目标时序路径;计算确定的该子连线的目标时序路径上的TP参数和RP参数,其中,TP参数为该子连线所在的目标时序路径上时序收敛的可能性,RP参数为该子连线所在的目标时序路径上经过的物理绕线轨迹的解决拥塞问题的可能性;获得集成电路设计工具为该子连线设置的当前连线约束;以及根据在TP参数和RP参数组成的二维空间中,子连线的目标时序路径上的TP参数和RP参数在该二维空间中的空间位置的不同而设置的不同的连线约束调整策略,调整该子连线的当前连线约束。本发明能够使得连线的过程对时序的影响变小。
文档编号G06F17/50GK102467582SQ20101053208
公开日2012年5月23日 申请日期2010年10月29日 优先权日2010年10月29日
发明者唐佳廉, 徐晨, 李侠, 汤晓峰, 葛亮 申请人:国际商业机器公司