CN113011124B - 一种用于版图布线的串扰优化方法及装置、可读存储介质 - Google Patents
一种用于版图布线的串扰优化方法及装置、可读存储介质 Download PDFInfo
- Publication number
- CN113011124B CN113011124B CN202110386489.0A CN202110386489A CN113011124B CN 113011124 B CN113011124 B CN 113011124B CN 202110386489 A CN202110386489 A CN 202110386489A CN 113011124 B CN113011124 B CN 113011124B
- Authority
- CN
- China
- Prior art keywords
- rectangle
- crosstalk
- key
- line
- key line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000005457 optimization Methods 0.000 title claims abstract description 43
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 230000008901 benefit Effects 0.000 claims description 41
- 238000012300 Sequence Analysis Methods 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 24
- 230000008707 rearrangement Effects 0.000 claims description 18
- 230000003068 static effect Effects 0.000 claims description 18
- 230000003071 parasitic effect Effects 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 230000008030 elimination Effects 0.000 claims description 6
- 238000003379 elimination reaction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 239000003990 capacitor Substances 0.000 claims description 4
- 238000005304 joining Methods 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 13
- 239000002184 metal Substances 0.000 description 13
- 238000005491 wire drawing Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 230000001808 coupling effect Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种用于版图布线的串扰优化方法及装置、可读存储介质,包括:获取布线版图中的关键线段,所述关键线段为存在串扰故障的线段;获取每条关键线段的可移动范围,所述可移动范围为可用于放置所述关键线段,且不增加所述关键线段所在线网的总长度的可用线轨的集合;根据所述关键线段的可移动范围对所述关键线段进行线轨重布置,从而消除所述关键线段的串扰故障。本发明可提高串扰优化效率以及成功率。
Description
技术领域
本发明涉及EDA设计技术领域,尤指一种用于版图布线的串扰优化方法及装置、可读存储介质。
背景技术
随着集成电路的设计技术和制造工艺不断向前发展,电路的集成度越来越高,时钟的工作频率越来越快,设计密度越来越大。超深亚微米工艺下,相邻信号线之间的间距只有零点几微米,这使相邻信号线之间极易由于耦合效应产生串扰(Crosstalk)。
串扰是在相邻线路之间产生的,相邻线路之一的信号改变干扰了另一条相邻线路上的信号的现象。串扰对电路有两种影响:(l)产生尖峰噪声;(2)产生额外时延。这两种影响都有可能引起电路出现逻辑功能错误。我们将引起电路逻辑功能错误的串扰影响称为串扰故障。
如何在布线阶段或之后优化相邻线路之间的串扰故障,是业界急需解决的问题。
现有布线中或布线后串扰优化方案存在以下问题:
(1)几乎所有现存的方案都只是一些小的局部调整,每次只能考虑一条线网,缺乏对多个线网的全局观量。这种调整对串扰优化效果有限。
(2)现有方案基本都是采取拔线重绕(Rip-Up and Re-Route)方式。拔线重绕方式是把存在串扰故障的线段或这种线段所在的线网整个去掉,然后重新对它们进行布线。这种方式耗时多,效率低,重布线后也不能保证成功,需要多次重复迭代,属于试错式优化方式。
发明内容
本发明的目的之一是为了克服现有技术中存在的至少一种不足,提供一种用于版图布线的串扰优化方法及装置、可读存储介质。
本发明提供的技术方案如下:
一种用于版图布线的串扰优化方法,包括:获取布线版图中的关键线段,所述关键线段为存在串扰故障的线段;获取每条关键线段的可移动范围,所述可移动范围为所述关键线段的候选线轨的集合;根据所述关键线段的可移动范围对所述关键线段进行线轨重布置,从而消除所述关键线段的串扰故障。
进一步地,所述的获取布线版图中的关键线段包括:提取布线版图中的电阻电容RC寄生参数;根据所述RC寄生参数对所述布线版图进行带串扰的静态时序分析,得到第一时序分析结果;对所述布线版图进行不带串扰的静态时序分析,得到第二时序分析结果;比较所述第一时序分析结果和所述第二时序分析结果,得到所述布线版图中的关键线段。
进一步地,采用周氏串扰时序分析方法对所述布线版图进行带串扰的静态时序分析。
进一步地,采用计算几何方法获取每条关键线段的可移动范围。
进一步地,根据所述关键线段的可移动范围对所述关键线段进行线轨重布置包括:构建所述关键线段对应的第一矩形,所述第一矩形为根据所述关键线段的可移动范围得到的最大矩形;获取所述第一矩形之间的重叠关系;根据所述重叠关系,从所述第一矩形中获取孤立的矩形;将所述孤立的矩形对应的关键线段重新布置于所述关键线段对应的串扰消除收益最大的候选线轨。
进一步地,获取所述第一矩形之间的重叠关系,包括:初始化扫描线和活跃区间;获取存在一条边与所述扫描线重叠的第一矩形,分别判断其中每个第一矩形是新加入矩形还是离开矩形;计算所有新加入矩形之间、以及新加入矩形和活跃区间之间的重叠关系,并记录所述重叠关系;将新加入矩形加入活跃区间,将离开矩形从活跃区间中剔除;按预设方向移动所述扫描线,重复上述过程,直至扫描完所有第一矩形。
进一步地,还包括:从存在重叠关系的矩形集合中提取串扰消除收益最大的第一子集,所述第一子集由彼此无重叠的第一矩形构成;对所述串扰消除收益最大的第一子集中的每个第一矩形对应的关键线段,按照所述关键线段的可移动范围进行线轨重布置。
进一步地,从存在重叠关系的矩形集合中提取串扰消除收益最大的第一子集包括:分别计算所述矩形集合中每个第一矩形的串扰消除收益,所述第一矩形的串扰消除收益为所述第一矩形对应的关键线段布置于每条候选线轨带来的串扰消除收益的最大值;从存在重叠关系的矩形集合中提取第一子集,并根据所述第一子集中所有第一矩形的串扰消除收益,得到所述第一子集的串扰消除收益;根据所有第一子集的串扰消除收益,获取收益最大的第一子集。
本发明还提供一种用于版图布线的串扰优化装置,包括:关键线段获取模块,用于获取布线版图中的关键线段,所述关键线段为存在串扰故障的线段;移动范围确定模块,用于获取每条关键线段的可移动范围,所述可移动范围为所述关键线段的候选线轨的集合;重布置模块,用于根据所述关键线段的可移动范围对所述关键线段进行线轨重布置,从而消除所述关键线段的串扰故障。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的用于版图布线的串扰优化方法。
通过本发明提供的一种用于版图布线的串扰优化方法及装置、可读存储介质,至少能够带来以下有益效果:
1、本发明根据关键线段的可移动范围对关键线段进行线轨重布置,相对传统的拔线重绕方式可更高效地消除串扰故障,提高了优化的效率以及成功率。
2、本发明对存在重叠关系的可移动范围优选组合收益最大的第一子集,进行串扰故障消除,可获得更好的优化效果。
3、本发明采用扫描方式,以及计算几何法确定关键线段的可移动范围以及多个可移动范围之间的重叠关系,可降低计算复杂度,提高计算效率。
4、本发明不是按线网来逐个优化串扰,而是统一考虑布线版图中所有的关键线段,可提高优化效果。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种用于版图布线的串扰优化方法及装置、可读存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明的一种用于版图布线的串扰优化方法的一个实施例的流程图;
图2是步骤S300的一种实施方式的流程图;
图3是步骤S320的一种实施方式的流程图;
图4是本发明的一种用于版图布线的串扰优化装置的一个实施例的结构示意图;
图5是本发明的串扰优化方法应用于一种具体实施场景的主流程图;
图6是布线版图的一种示意图;
图7是多个第一矩形之间存在重叠关系的一种示意图。
附图标号说明:
100.关键线段获取模块,200.移动范围确定模块,300.重布置模块,110.寄生参数提取单元,120.时序分析单元,130.比较单元,310.第一矩形构建单元,320.重叠关系判断单元,330.第一重布置单元,340.第二重布置单元。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘制了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
本发明的一个实施例,如图1、图2、图3所示,一种用于版图布线的串扰优化方法,包括:
步骤S100获取布线版图中的关键线段。
具体地,对输入网表完成布局、布线后,得到布线版图。
提取布线版图中的电阻电容(RC)寄生参数。根据RC寄生参数对布线版图进行带串扰的静态时序分析,得到第一时序分析结果;对布线版图进行不带串扰的静态时序分析,得到第二时序分析结果;比较第一时序分析结果和第二时序分析结果,得到布线版图中的关键线段。关键线段是指存在串扰故障的线段。串扰故障是指引起电路逻辑功能错误的串扰影响。
可采用常规技术进行不带串扰的静态时序分析和带串扰的静态时序分析。
优选地,采用周海教授在IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OFINTEGRATED CIRCUITS AND SYSTEMS上发表的论文《Timing Analysis With Crosstalk isa Fixpoint on a Complete Lattice》中提到的周氏串扰时序分析方法对布线版图进行带串扰的静态时序分析。
两个线网的串扰程度跟它们的时序相关,而时序又受串扰影响,两者之间相互关联。这个相互关联可以用一个集合上的不动点来刻画。根据这个理论,周氏串扰时序分析法从最小点出发,通过反复迭代完成串扰时序分析,且可以得到最优的分析。
步骤S200获取每条关键线段的可移动范围。
通常有多个金属层用于布线,每一金属层上有多条平行的用于布线的线轨。每一金属层上只有一个方向的线轨,要么横向线轨,要么纵向线轨。为了实现一条线网的布线,需要选择若干线轨,并在选择的线轨上放置金属,横向线轨上的金属与纵向线轨上的金属需要经通孔相互连接。线段就是指放在线轨上的一条线网使用的一段金属。
关键线段是指存在串扰故障的线段。根据关键线段所属线网的已有布线结构,确定关键线段的可移动范围。可移动范围为关键线段的候选线轨的集合;候选线轨为可用于放置关键线段,且不增加关键线段所在线网的总长度的可用线轨。也就是说,若关键线段从当前线轨转移到候选线轨上,不会影响线网的总长度。
比如,在图6示例中,有两个金属层,金属层1采用横向线轨,金属层2采用纵向线轨。n1、n2为两个线网,线网n1包含w1、w2、w3、w4四条线段,w1-4通过通孔1相互连接;线网n2包含w5、w6、w7、w8四条线段,w5-8通过通孔1相互连接。假设w1和w6,w3和w7相邻并且并行较长,产生耦合电容,引入了串扰时延,且串扰时延严重导致了串扰故障。
b1-b4为其他线网,不存在有串扰时延的线段,所以不是本实施例的研究对象。n1、n2上存在有串扰时延的线段,导致了串扰故障,是本实施例的研究对象。
情况1,如果n1是攻击方,n2是受害方,n2的延时受到影响,对整条路径的时序造成违例。那么,w6、w7为关键线段,n2为关键线段所在的线网(关键线段所在的线网又称为关键线网)。
情况2,如果n1是受害方,n2是攻击方,则w1、w3为关键线段,n1为对应的关键线网。
情况3更复杂,上述两种情况都存在,n1、n2双方之间的串扰都对时序产生了影响,则w1、w3、w6、w7都为关键线段,n1、n2为对应的关键线网。
以情况3为例来做说明,分析w6、w1两条关键线段。
w6目前放在横向线轨4上,其可移动到横向线轨0、1、2、3、8上,这些线轨当前未布线,为可用线轨。若w6放到这些线轨上不会使线网n2的总长度发生改变。所以横向线轨0-3、8属于w6的可移动范围。
w6也可移动到未布线的横向线轨9上,但是若w6移到横向线轨9上,线网n2的总长度,相对当前总长度,将变长,所以横向线轨9不属于w6的可移动范围。
w6不能移动到线轨5-7上,由于横向线轨5-7上已布线,即存在阻挡,所以横向线轨5-7不是w6的可移动范围。
所以w6的可移动范围为横向线轨{0,1,2,3,8}。
同理可得到w1的可移动范围为横向线轨{0,1,2,3,9}。可以看出,不同关键线段的可移动范围可能存在交叠。
优选地,使用计算几何方法得到关键线段的可移动范围。
计算几何研究的对象是几何图形的数学描述和计算机表述。常用的计算几何方法涉及到向量、点线关系以及点与多边形关系求解等数学知识。在串扰优化中采用计算几何方法可提高计算效率,从而提高串扰优化效率。
获取关键线段的可移动范围的一种实施方式为:按第一预设方向遍历关键线段所在线轨的周围线轨,判断每条周围线轨是否为可用线轨,直至关键线段平移至该周围线轨后会引起关键线段所在线网的总长度增加或不存在未遍历到的周围线轨。将按第一预设方向遍历过程中获得的可用线轨记为第一可用线轨。重复上述过程,按第一预设方向的相反方向遍历关键线段所在线轨的周围线轨,获得第二可用线轨。第一可用线轨和第二可用线轨构成关键线段的可移动范围。
其中,可采用下述方式判断一条周围线轨是否为可用线轨:将关键线段平移至该周围线轨上所得到的线段与当前的关键线段构成一个矩形,采用计算几何方法判断该矩形中是否包含其他线网的线段,若不包含,则该线轨为可用线轨。否则,为不可用线轨。
比如,以图6的w6线段为例,w6在横向线轨4上,可向上或向下遍历周围线轨。假设先向上遍历,判断横向线轨5是否为可用线轨,若为可用线轨,则记为第一可用线轨,否则,放弃;继续判断w6平移至横向线轨5是否引起对应的关键线网的总长度增加;若不会引起,则继续判断横向线轨6是否为可用线轨,判断w6平移至横向线轨6是否引起对应的关键线网的总长度增加,直至遍历至横向线轨9,w6平移至横向线轨9会引起对应的关键线网的总长度增加。综合向上遍历结果,得到第一可用线轨为8。
然后向下遍历周围线轨,判断横向线轨3、2、1、0,直至没有更多的横向线轨。综合向下遍历结果,得到第二可用线轨为3、2、1、0。
根据第一可用线轨和第二可用线轨,得到w6的可移动范围为横向线轨{0,1,2,3,8}。
步骤S300根据关键线段的可移动范围对关键线段进行线轨重布置。
关键线段的可移动范围是可放置关键线段的候选线轨的集合。通过线轨重布置,调整关键线段的当前放置位置,加大其与攻击方之间的距离,从而消除关键线段作为受害方所受到的串扰故障。
若关键线段的可移动范围只有1个元素,则说明该关键线段只有一种重布置方式;若有多个元素,则对应有多种可选的重布置方式。在对关键线段进行线轨重布置时,一种实施方式为:按关键线段的可移动范围的元素个数,从小到大对关键线段的重布置顺序进行排序,再按得到的重布置顺序进行线轨重布置。
另一种实施方式为:
步骤S300包括:
步骤S310构建关键线段对应的第一矩形。
每个关键线段都有对应的唯一的第一矩形,第一矩形为根据关键线段的可移动范围得到的最大矩形。可由关键线段和关键线段的可移动范围中的每条候选线轨,或每两条候选线轨,得到若干矩形。选择一个包围所有这些矩形的最大矩形,作为关键线段的第一矩形。关键线段的第一矩形包含了关键线段的所有候选线轨。
如图6所示,关键线段w6的可移动范围为横向线轨{0,1,2,3,8},其中w6可与w6平移至一条候选线轨得到的线段构成一个矩形,即w6可与候选线轨0,1,2,3,8,分别得到5个矩形。任意两条候选线轨又可以得到10个矩形。总共15个矩形,其中w6平移至横向线轨0与横向线轨8所得到的线段构成的矩形2最大,将该矩形2作为w6的第一矩形。
w1的可移动范围为横向线轨{0,1,2,3,9},同理可得到w1的第一矩形3(由w1平移至横向线轨0与9得到的线段构成的矩形)。
步骤S320获取第一矩形之间的重叠关系。
两个第一矩形之间可能是无重叠的,也可能是存在重叠的。将与所有其他矩形无重叠的第一矩形称为孤立的矩形。在所有的第一矩形中有可能存在若干孤立的矩形和若干矩形集合,矩形集合之间不存在重叠关系。矩形集合中的每个第一矩形至少与集合中另一个第一矩形有重叠关系。
通过本步骤可将所有第一矩形分为若干孤立的矩形和若干矩形集合。
可以根据计算几何方法判断两个矩形之间是否有重叠。比如,根据两个矩形的顶点之间的关系判断两个矩形是否有重叠。若一个矩形的至少一个顶点位于另一个矩形内部,则这两个矩形存在重叠。
步骤S330从所有第一矩形中挑选出孤立的矩形,将孤立的矩形对应的关键线段重新布置于串扰消除收益最大的候选线轨。
对于孤立的矩形,可从该矩形所包含的候选线轨中选择一条候选线轨,将该矩形对应的关键线段重新布置于该候选线轨。重新布置的关键线段消除了串扰故障,变成了非关键线段(即不存在串扰故障的线段)。据此更新关键线段。
优选地,先计算孤立的矩形对应的关键线段布置于每条候选线轨带来的串扰消除收益;将关键线段重新布置于串扰消除收益最大的候选线轨。
串扰消除收益可以是串扰故障发生的概率,比如,从100%发生降到0%;针对串扰引发的时延,也可以是串扰时延的严重程度,比如,从引起电路逻辑功能错误的串扰时延降到不会引起电路逻辑功能错误的时延,或串扰时延消除。
步骤S340从存在重叠关系的矩形集合中提取串扰消除收益最大的第一子集,第一子集由彼此无重叠的第一矩形构成;
步骤S350对串扰消除收益最大的第一子集中的每个第一矩形对应的关键线段,按照该关键线段的可移动范围进行线轨重布置。
对于存在重叠关系的矩形集合,从中选取第一子集,第一子集由彼此无重叠的第一矩形构成。可采用计算几何方法构建第一子集。
如图6所示,关键线段w6的第一矩形与w1的第一矩形存在重叠关系,其中第一子集为{w6的第一矩形}、{w1的第一矩形},可以从中选择一个第一子集用于指导关键线段的重新布置。假设选择{w6的第一矩形},将关键线段w6根据对应的第一矩形中的候选线轨进行重新布置。根据已重新布置的关键线段更新相关关键线段。重新布置的关键线段变成了非关键线段。假设w6重新布置于横向线轨8上,则w7也必然重新布置于纵向线轨1上,所以w6和w7都变成了非关键线段,w6和w7的第一矩形也随之消除。
优选地,对于存在重叠关系的矩形集合中提取串扰消除收益最大的第一子集;对串扰消除收益最大的第一子集中的每个第一矩形对应的关键线段进行线轨重布置;然后再对矩形集合中剩下的第一矩形对应的关键线段进行线轨重布置。
可按如下方式提取串扰消除收益最大的第一子集:对存在重叠关系的矩形集合,分别计算矩形集合中每个第一矩形的串扰消除收益,第一矩形的串扰消除收益为第一矩形对应的关键线段布置于第一矩形中每条候选线轨带来的串扰消除收益的最大值;从存在重叠关系的矩形集合中提取第一子集,并根据第一子集中所有第一矩形的串扰消除收益,得到第一子集的串扰消除收益;根据所有第一子集的串扰消除收益,获取收益最大的第一子集。
步骤S320按照传统的方法需要对任意两个第一矩形之间的重叠关系进行判断,判断工作量大。假设有n个矩形,则需要次判断,n越大,计算复杂度越高。为了降低计算量,对步骤S320进一步优化,具体包括:
步骤S321初始化扫描线和活跃区间。
可对各个金属层逐层进行扫描,也可对多个金属层按同一扫描线和同一扫描方向进行扫描。可采用从上至下,或从下至上,或从左至右,或从右至左进行扫描。比如,初始扫描线可设置在金属层的最左边,也可以将初始扫描线设置在所有第一矩形的最左边,扫描方向为从左至右。
初始化活跃区间为空集。
步骤S322获取存在一条边与扫描线重叠的第一矩形,分别判断其中每个第一矩形是新加入矩形还是离开矩形。
如图7所示,s为扫描线,其中,第一矩形a1、a2、a4、a5都存在一条边与扫描线重叠,将这种矩形记为第二矩形,即第二矩形为存在一条边与扫描线重叠的第一矩形。第一矩形a3不存在一条边与扫描线重叠,所以a3不是第二矩形。
在有些位置的扫描线可能不会遇到第二矩形,如果出现这种情况,则直接跳转到步骤S325。若遇到第二矩形,则可根据扫描方向、以及每个第二矩形和扫描线之间的相对位置关系,判断第二矩形是新加入矩形还是离开矩形。
如图7所示,扫描方向为从下向上,第二矩形a1、a4、a5在扫描线的上方,所以第二矩形a1、a4、a5是新加入矩形;第二矩形a2在扫描线的下方,所以a2是离开矩形。
步骤S323计算所有新加入矩形之间、以及新加入矩形和活跃区间之间的重叠关系,并记录该重叠关系。
如图7所示,新加入矩形a4与a5之间存在重叠,新加入矩形a4与活跃区间中的第一矩形a3之间存在重叠。
步骤S324将新加入矩形加入活跃区间,将离开矩形从活跃区间中剔除。
如图7所示,将新加入矩形a1、a4、a5加入活跃区间,将离开矩形a2从活跃区间中剔除。
步骤S325按预设方向移动扫描线,跳转到步骤S322,重复上述过程,直至扫描到所有第一矩形。
通过一次完整的扫描,就可以获取第一矩形之间的重叠关系。由于在扫描过程中,每次只需对新加入矩形与活跃区间中的第一矩形之间,以及新加入矩形之间的重叠关系进行判断,所以避免了任意两两矩形之间的重叠关系判断,减少了判断次数,从而降低了第一矩形之间重叠关系的计算量。
本实施例,根据关键线段的可移动范围对关键线段进行线轨重布置,相对传统的拔线重绕方式可更高效地消除串扰故障,提高了优化的效率以及成功率;对存在重叠关系的可移动范围优选组合收益最大的第一子集,进行串扰故障消除,可获得更好的优化效果;采用扫描方式,以及计算几何法确定关键线段的可移动范围以及多个可移动范围之间的重叠关系,可降低计算复杂度,提高计算效率;不是按线网来逐个优化串扰,而是统一考虑布线版图中所有的关键线段,可提高优化效果。
本发明的一个实施例,如图4所示,一种用于版图布线的串扰优化装置,包括:
关键线段获取模块100,用于获取布线版图中的关键线段,关键线段为存在串扰故障的线段。串扰故障是指引起电路逻辑功能错误的串扰影响。
关键线段获取模块100包括:
寄生参数提取单元110,用于提取布线版图中的电阻电容RC寄生参数;
时序分析单元120,用于根据RC寄生参数对布线版图进行带串扰的静态时序分析,得到第一时序分析结果;对布线版图进行不带串扰的静态时序分析,得到第二时序分析结果;
比较单元130,用于比较第一时序分析结果和第二时序分析结果,得到布线版图中的关键线段。
可采用常规技术进行不带串扰的静态时序分析和带串扰的静态时序分析。优选地,采用周氏串扰时序分析方法对布线版图进行带串扰的静态时序分析。
移动范围确定模块200,用于获取每条关键线段的可移动范围。
根据关键线段所属线网的已有布线结构,确定关键线段的可移动范围。可移动范围为关键线段的候选线轨的集合;候选线轨为可用于放置关键线段,且不增加关键线段所在线网的总长度的可用线轨。也就是说,若关键线段从当前线轨转移到候选线轨上,不会影响线网的总长度。
优选地,使用计算几何方法得到关键线段的可移动范围。在串扰优化中采用计算几何方法可提高计算效率,从而提高串扰优化效率。
移动范围确定模块200,还用于按第一预设方向遍历关键线段所在线轨的周围线轨,判断每条周围线轨是否为可用线轨,直至关键线段平移至该周围线轨后会引起关键线段所在线网的总长度增加或不存在未遍历到的周围线轨。将按第一预设方向遍历过程中获得的可用线轨记为第一可用线轨。重复上述过程,按第一预设方向的相反方向遍历关键线段所在线轨的周围线轨,获得第二可用线轨。第一可用线轨和第二可用线轨构成关键线段的可移动范围。
其中,可采用下述方式判断一条周围线轨是否为可用线轨:将关键线段平移至该周围线轨上所得到的线段与当前的关键线段构成一个矩形,采用计算几何方法判断该矩形中是否包含其他线网的线段,若不包含,则该线轨为可用线轨。否则,为不可用线轨。
重布置模块300,用于根据关键线段的可移动范围对关键线段进行线轨重布置,从而消除关键线段的串扰故障。
关键线段的可移动范围是可放置关键线段的候选线轨的集合。通过线轨重布置,调整关键线段的当前放置位置,加大其与攻击方之间的距离,从而消除关键线段作为受害方所受到的串扰故障。
可选地,重布置模块300包括:
第一矩形构建单元310,用于构建关键线段对应的第一矩形。
每个关键线段都有对应的唯一的第一矩形,第一矩形为根据关键线段的可移动范围得到的最大矩形。可由关键线段和关键线段的可移动范围中的每条候选线轨,或每两条候选线轨,得到若干矩形。选择一个包围所有这些矩形的最大矩形,作为关键线段的第一矩形。关键线段的第一矩形包含了关键线段的所有候选线轨。
重叠关系判断单元320,用于获取第一矩形之间的重叠关系。
将与所有其他矩形无重叠的第一矩形称为孤立的矩形。在所有的第一矩形中有可能存在若干孤立的矩形和若干矩形集合,矩形集合之间不存在重叠关系。矩形集合中的每个第一矩形至少与集合中另一个第一矩形有重叠关系。
通过本单元可将所有第一矩形分为若干孤立的矩形和若干矩形集合。
第一重布置单元330,用于从所有第一矩形中挑选出孤立的矩形,从孤立的矩形中选取串扰消除收益最大的候选线轨,将孤立的矩形对应的关键线段重新布置于串扰消除收益最大的候选线轨。
第二重布置单元340,用于从存在重叠关系的矩形集合中提取串扰消除收益最大的第一子集,第一子集由彼此无重叠的第一矩形构成;对串扰消除收益最大的第一子集中的每个第一矩形对应的关键线段,按照该关键线段的可移动范围进行线轨重布置。
对于存在重叠关系的矩形集合,从中选取第一子集,第一子集由彼此无重叠的第一矩形构成。可采用计算几何方法构建第一子集。
优选地,对于存在重叠关系的矩形集合中提取串扰消除收益最大的第一子集;对串扰消除收益最大的第一子集中的每个第一矩形对应的关键线段进行线轨重布置;然后再对矩形集合中剩下的第一矩形对应的关键线段进行线轨重布置。
可按如下方式提取串扰消除收益最大的第一子集:对存在重叠关系的矩形集合,分别计算矩形集合中每个第一矩形的串扰消除收益,第一矩形的串扰消除收益为第一矩形对应的关键线段布置于第一矩形中每条候选线轨带来的串扰消除收益的最大值;从存在重叠关系的矩形集合中提取第一子集,并根据第一子集中所有第一矩形的串扰消除收益,得到第一子集的串扰消除收益;根据所有第一子集的串扰消除收益,获取收益最大的第一子集。
在重叠关系判断单元320中,若按照传统的方法对任意两个第一矩形之间的重叠关系进行判断,则判断工作量大。为了降低计算量,对第一矩形之间的重叠关系的获取进一步优化,具体包括:
重叠关系判断单元320,还用于初始化扫描线和活跃区间;获取存在一条边与扫描线重叠的第一矩形,分别判断其中每个第一矩形是新加入矩形还是离开矩形;计算所有新加入矩形之间、以及新加入矩形和活跃区间之间的重叠关系,并记录该重叠关系;将新加入矩形加入活跃区间,将离开矩形从活跃区间中剔除;按预设方向移动扫描线,重复上述过程,直至扫描到所有第一矩形。
本实施例,根据关键线段的可移动范围对关键线段进行线轨重布置,相对传统的拔线重绕方式可更高效地消除串扰故障,提高了优化的效率以及成功率;对存在重叠关系的可移动范围优选组合收益最大的第一子集,进行串扰故障消除,可获得更好的优化效果;采用扫描方式,以及计算几何法确定关键线段的可移动范围以及多个可移动范围之间的重叠关系,可降低计算复杂度,提高计算效率;不是按线网来逐个优化串扰,而是统一考虑布线版图中所有的关键线段,可提高优化效果。
需要说明的是,本发明提供的串扰优化装置的实施例与前述提供的串扰优化方法的实施例均基于同一发明构思,能够取得相同的技术效果。因而,串扰优化装置的实施例的其它具体内容可以参照前述串扰优化方法的实施例内容的记载。
本发明还提供了一个具体实施场景示例,将本申请提供的用于版图布线的串扰优化方法及装置应用于实际布线优化中,主要流程如下(参见图5):
步骤S1 RC寄生参数提取。
对一个具体的设计网表(Netlist)完成布局和布线,得到详细的布线版图(Layout)。之后,对布线完成的版图进行电阻电容(RC)寄生参数的提取。
步骤S2静态时序分析。
对布线版图分别进行带串扰和不带串扰的静态时序分析,其中,根据RC寄生参数进行带串扰的时序分析。
应用周氏串扰时序分析方法对布线版图进行带串扰的时序分析。根据带串扰的时序分析结果和不带串扰的时序分析结果,得到串扰对时序的影响结果。
步骤S3判断是否存在时序违例。
若存在时序违例,说明存在串扰导致后级电路功能错误,则需要提取违例路径(又称关键路径,引起时序违例的路径)。若不存在时序违例,则结束。
步骤S4关键线网提取。
提取关键线段及其所属线网,进一步把关键线段的上下连接关系提取出来。
步骤S5关键线网线段几何关系计算。
对关键线网进行几何计算,分析线段的连接关系以及线段的可移动范围,所得结果用于动态规划线轨重置。
步骤S6动态规划线轨重置。
首先对关键线网计算可移动范围重叠关系,然后判断是否有更多的线轨,如果没有更多的线轨,程序结束;如果有更多的线轨,对线轨进行动态规划计算来决定线轨的重置。
本发明针对布线中的串扰优化问题,提出了一种高效的线道重新安置(Track Re-Assignment)的方法,该方法通过考虑线网的时序关键性以及串扰对时序的影响,使用高效的计算几何方法计算线网上线段间的可能串扰,以及可行的线段移动,然后通过线段间的动态规划,将关键时序和串扰线网的线段重新安置到不同的线道甚至不同的金属层上,从而优化互连线的时序和串扰。
在本发明的一个实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现如前述实施例记载的串扰优化方法。也即是,当前述本发明实施例对现有技术做出贡献的技术方案的部分或全部通过计算机软件产品的方式得以体现时,前述计算机软件产品存储在一个计算机可读存储介质中。该计算机可读存储介质可以为任意可携带计算机程序代码实体装置或设备。譬如,U盘、移动磁盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器等。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种用于版图布线的串扰优化方法,其特征在于,包括:
提取布线版图中的电阻电容RC寄生参数;
根据所述RC寄生参数对所述布线版图进行带串扰的静态时序分析,得到第一时序分析结果;
对所述布线版图进行不带串扰的静态时序分析,得到第二时序分析结果;
比较所述第一时序分析结果和所述第二时序分析结果,得到所述布线版图中的关键线段;所述关键线段为存在串扰故障的线段;
根据每条关键线段所属线网的已有布线结构,确定所述关键线段的可移动范围,所述可移动范围为所述关键线段的候选线轨的集合,所述候选线轨为可用于放置所述关键线段,且不增加所述关键线段所在线网的总长度的可用线轨;
根据所述关键线段的可移动范围对所述关键线段进行线轨重布置,从而消除所述关键线段的串扰故障;
其中,根据所述关键线段的可移动范围对所述关键线段进行线轨重布置包括:
构建所述关键线段对应的第一矩形,所述第一矩形为根据所述关键线段的可移动范围得到的最大矩形;
根据所述第一矩形之间的重叠关系,将所有第一矩形分为若干孤立的矩形和若干矩形集合,所述矩形集合之间不存在重叠关系,所述矩形集合中的每个第一矩形至少与集合中另一个第一矩形有重叠关系;
将所述孤立的矩形对应的关键线段重新布置于所述孤立的矩形所包含的候选线轨中的一条候选线轨;
从所述矩形集合中提取第一子集,所述第一子集由彼此无重叠的第一矩形构成;先对所述第一子集中的每个第一矩形对应的关键线段,按照所述关键线段的可移动范围进行线轨重布置;然后再对所述矩形集合中剩下的第一矩形对应的关键线段进行线轨重布置。
2.根据权利要求1所述的串扰优化方法,其特征在于:
采用周氏串扰时序分析方法对所述布线版图进行带串扰的静态时序分析。
3.根据权利要求1所述的串扰优化方法,其特征在于,所述根据每条关键线段所属线网的已有布线结构,确定所述关键线段的可移动范围包括:
按第一预设方向遍历所述关键线段所在线轨的周围线轨,判断每条周围线轨是否为可用线轨,直至所述关键线段平移至所述周围线轨后引起所述关键线段所在线网的总长度增加或不存在未遍历到的周围线轨;
将按第一预设方向遍历过程中获得的可用线轨记为第一可用线轨;
重复上述过程,按第一预设方向的相反方向遍历所述关键线段所在线轨的周围线轨,获得第二可用线轨;
所述第一可用线轨和所述第二可用线轨构成所述关键线段的可移动范围。
4.根据权利要求3所述的串扰优化方法,其特征在于,判断一条周围线轨是否为可用线轨包括:
将所述关键线段平移至所述周围线轨上所得到的线段与当前的关键线段构成一个矩形,采用计算几何方法判断所述矩形中是否包含其他线网的线段,若不包含其他线网的线段,则所述线轨为可用线轨;否则,所述线轨为不可用线轨。
5.根据权利要求1所述的串扰优化方法,其特征在于,将所述孤立的矩形对应的关键线段重新布置于所述孤立的矩形所包含的候选线轨中的一条候选线轨包括:
将所述孤立的矩形对应的关键线段重新布置于所述关键线段对应的串扰消除收益最大的候选线轨。
6.根据权利要求1所述的串扰优化方法,其特征在于,获取所述第一矩形之间的重叠关系,包括:
初始化扫描线和活跃区间;
获取存在一条边与所述扫描线重叠的第一矩形,分别判断其中每个第一矩形是新加入矩形还是离开矩形;
计算所有新加入矩形之间、以及新加入矩形和所述活跃区间之间的重叠关系,并记录所述重叠关系;
将新加入矩形加入所述活跃区间,将离开矩形从所述活跃区间中剔除;
按预设方向移动所述扫描线,重复上述过程,直至扫描完所有第一矩形。
7.根据权利要求1所述的串扰优化方法,其特征在于,
从所述矩形集合中提取串扰消除收益最大的第一子集;
对所述串扰消除收益最大的第一子集中的每个第一矩形对应的关键线段,按照所述关键线段的可移动范围进行线轨重布置。
8.根据权利要求7所述的串扰优化方法,其特征在于,所述的从所述矩形集合中提取串扰消除收益最大的第一子集包括:
分别计算所述矩形集合中每个第一矩形的串扰消除收益,所述第一矩形的串扰消除收益为所述第一矩形对应的关键线段布置于每条候选线轨带来的串扰消除收益的最大值;
从所述矩形集合中提取第一子集,并根据所述第一子集中所有第一矩形的串扰消除收益,得到所述第一子集的串扰消除收益;
根据所有第一子集的串扰消除收益,获取收益最大的第一子集。
9.一种用于版图布线的串扰优化装置,其特征在于,包括:
关键线段获取模块,用于提取布线版图中的电阻电容RC寄生参数;根据所述RC寄生参数对所述布线版图进行带串扰的静态时序分析,得到第一时序分析结果;对所述布线版图进行不带串扰的静态时序分析,得到第二时序分析结果;比较所述第一时序分析结果和所述第二时序分析结果,得到所述布线版图中的关键线段,所述关键线段为存在串扰故障的线段;
移动范围确定模块,用于根据每条关键线段所属线网的已有布线结构,确定每条关键线段的可移动范围,所述可移动范围为所述关键线段的候选线轨的集合所述候选线轨为可用于放置所述关键线段,且不增加所述关键线段所在线网的总长度的可用线轨;
重布置模块,用于根据所述关键线段的可移动范围对所述关键线段进行线轨重布置,从而消除所述关键线段的串扰故障;其中,根据所述关键线段的可移动范围对所述关键线段进行线轨重布置包括:
构建所述关键线段对应的第一矩形,所述第一矩形为根据所述关键线段的可移动范围得到的最大矩形;
根据所述第一矩形之间的重叠关系,将所有第一矩形分为若干孤立的矩形和若干矩形集合,所述矩形集合之间不存在重叠关系,所述矩形集合中的每个第一矩形至少与集合中另一个第一矩形有重叠关系;
将所述孤立的矩形对应的关键线段重新布置于所述孤立的矩形所包含的候选线轨中的一条候选线轨;
从所述矩形集合中提取第一子集,所述第一子集由彼此无重叠的第一矩形构成;先对所述第一子集中的每个第一矩形对应的关键线段,按照所述关键线段的可移动范围进行线轨重布置;然后再对所述矩形集合中剩下的第一矩形对应的关键线段进行线轨重布置。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的串扰优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110386489.0A CN113011124B (zh) | 2021-04-12 | 2021-04-12 | 一种用于版图布线的串扰优化方法及装置、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110386489.0A CN113011124B (zh) | 2021-04-12 | 2021-04-12 | 一种用于版图布线的串扰优化方法及装置、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113011124A CN113011124A (zh) | 2021-06-22 |
CN113011124B true CN113011124B (zh) | 2024-01-26 |
Family
ID=76388205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110386489.0A Active CN113011124B (zh) | 2021-04-12 | 2021-04-12 | 一种用于版图布线的串扰优化方法及装置、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113011124B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472680A (zh) * | 2003-05-01 | 2004-02-04 | 清华大学 | 标准单元总体布线过程中用的减少串扰的方法 |
CN1687934A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 多端线网插入缓冲器优化时延的标准单元总体布线方法 |
CN104715097A (zh) * | 2013-12-17 | 2015-06-17 | 北京华大九天软件有限公司 | 一种预布线改善时延的方法 |
CN105512435A (zh) * | 2016-01-13 | 2016-04-20 | 西安电子科技大学 | 基于边表示短路关键面积网络的集成电路版图优化方法 |
CN110717310A (zh) * | 2019-10-10 | 2020-01-21 | 中国科学院微电子研究所 | 一种电路布图的调整方法及装置 |
-
2021
- 2021-04-12 CN CN202110386489.0A patent/CN113011124B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472680A (zh) * | 2003-05-01 | 2004-02-04 | 清华大学 | 标准单元总体布线过程中用的减少串扰的方法 |
CN1687934A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 多端线网插入缓冲器优化时延的标准单元总体布线方法 |
CN104715097A (zh) * | 2013-12-17 | 2015-06-17 | 北京华大九天软件有限公司 | 一种预布线改善时延的方法 |
CN105512435A (zh) * | 2016-01-13 | 2016-04-20 | 西安电子科技大学 | 基于边表示短路关键面积网络的集成电路版图优化方法 |
CN110717310A (zh) * | 2019-10-10 | 2020-01-21 | 中国科学院微电子研究所 | 一种电路布图的调整方法及装置 |
Non-Patent Citations (1)
Title |
---|
"考虑串扰效应与时延的多级布线器研究";黄世杰;《中国优秀硕士学位论文全文数据库 信息科技辑》;第I135-85页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113011124A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7234370B2 (ja) | ニューラルネットワークを使用した集積回路フロアプランの生成 | |
US6557145B2 (en) | Method for design optimization using logical and physical information | |
US6480991B1 (en) | Timing-driven global placement based on geometry-aware timing budgets | |
US8423940B2 (en) | Early noise detection and noise aware routing in circuit design | |
Yu et al. | Pin accessibility prediction and optimization with deep learning-based pin pattern recognition | |
US7065729B1 (en) | Approach for routing an integrated circuit | |
US20040216072A1 (en) | Porosity aware buffered steiner tree construction | |
TWI472938B (zh) | 在積體電路的電力網路中自動降低堆疊通孔的方法 | |
CN112149378A (zh) | 一种基于拥塞协商的拆线重布方法、设备及可读存储介质 | |
Maarouff et al. | A deep-learning framework for predicting congestion during FPGA placement | |
Wu et al. | Coupling aware timing optimization and antenna avoidance in layer assignment | |
CN116738925B (zh) | 一种fpga详细布局方法及系统 | |
CN116644708B (zh) | 布局布线优化方法、装置、计算机设备和存储介质 | |
CN113011124B (zh) | 一种用于版图布线的串扰优化方法及装置、可读存储介质 | |
US20230351087A1 (en) | Using machine trained network during routing to modify locations of vias in an ic design | |
US20160203254A1 (en) | Methods for reducing congestion region in layout area of ic | |
US20230274066A1 (en) | Concurrently routing multiple partitions of an integrated circuit design | |
US20180189440A1 (en) | Design support apparatus, design support method, and design support program | |
Al-Hyari et al. | Novel congestion-estimation and routability-prediction methods based on machine learning for modern fpgas | |
JP5510280B2 (ja) | 設計支援装置、設計支援方法および設計支援プログラム | |
Chi et al. | Performance-driven routing methodology with incremental placement refinement for analog layout design | |
JP2010073073A (ja) | レイアウト設計方法、装置及びプログラム | |
JP5900540B2 (ja) | レイアウト設計方法及びレイアウト設計支援プログラム | |
Huang et al. | Routability-driven Power/Ground Network Optimization Based on Machine Learning | |
US10762271B2 (en) | Model-based refinement of the placement process in integrated circuit generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |