CN112989749B - 一种集成电路版图布线中引脚访问方法及装置 - Google Patents
一种集成电路版图布线中引脚访问方法及装置 Download PDFInfo
- Publication number
- CN112989749B CN112989749B CN202110263571.4A CN202110263571A CN112989749B CN 112989749 B CN112989749 B CN 112989749B CN 202110263571 A CN202110263571 A CN 202110263571A CN 112989749 B CN112989749 B CN 112989749B
- Authority
- CN
- China
- Prior art keywords
- pin
- pins
- points
- connection
- tree
- 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 30
- 239000002184 metal Substances 0.000 claims abstract description 97
- 238000010276 construction Methods 0.000 claims description 13
- 238000013461 design Methods 0.000 abstract description 29
- 238000005457 optimization Methods 0.000 abstract description 4
- 239000010410 layer Substances 0.000 description 114
- 238000010586 diagram Methods 0.000 description 7
- 239000011229 interlayer Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000001459 lithography Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000000059 patterning Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种集成电路版图布线中引脚访问方法及装置,包括:获取电路网表的每个线网;构建每个线网的最小生成树;根据最小生成树和可用金属层数,确定线网的引脚连接关系,线网的引脚连接关系包括哪些引脚之间存在连接以及在哪个金属层实现该连接;根据所有线网的引脚连接关系,确定所有引脚的出线方向。本发明不以传统算法的芯片PPA优化为目标,而是服务于芯片后端物理设计的流程全自动化和可完成性这个目标,通过在具体布线前全局考虑、设计引脚访问方案,可以提高布线成功率和引脚访问的效率。
Description
技术领域
本发明涉及EDA设计技术领域,尤指一种集成电路版图布线中引脚访问方法及装置。
背景技术
集成电路(IC,又称芯片)设计包括芯片前端设计和后端设计。芯片前端设计产生电路的逻辑网表,后端设计将电路的逻辑网表通过EDA(电子设计自动化)设计工具进行布局、布线和物理验证并最终产生供制造用的GDSII数据。
布局用于在版图上给标准单元、宏模块等分配物理位置。布局之后是布线。布线用于决定连接这些标准单元、宏模块之间所需连线的确切设计。布线步骤在遵循制造工艺的规则和限制的同时,实施所有所需的连接。
随着超大规模集成电路向深亚微米、纳米推进,集成电路的规模越来越大,芯片后端的物理设计复杂度不断增大。由于引脚密度越来越高、布线路径数量有限,以及来自多图案化光刻技术(multiple patterning lithography)带来的复杂DFM规则/约束,而且每个引脚的访问点都受到限制并且彼此干扰,所以引脚访问问题是芯片后端物理设计面临的最具挑战性的问题之一。
现存的引脚访问方案有以下两大问题:(1)缺乏对整个后端布线的全局观考量,只考虑引脚访问的局部问题,所以很多时候会导致即使局部的引脚访问看似成功,但是流程后面的详细布线(Detail Route)也不能完成;(2)通常引脚访问是在网格上进行,对于不在网格上的引脚必须做特殊处理,计算的开销很大,甚至引脚根本出不来从而导致整个布线的失败。
发明内容
本发明的目的之一是为了克服现有技术中存在的至少一种不足,提供一种集成电路版图布线中引脚访问方法及装置。
本发明提供的技术方案如下:
一种集成电路版图布线中引脚访问方法,包括:获取电路网表的每个线网;构建每个线网的最小生成树;根据所述最小生成树和可用金属层数,确定所述线网的引脚连接关系,所述线网的引脚连接关系包括哪些引脚之间存在连接以及在哪个金属层实现所述连接;根据所有线网的引脚连接关系,确定所有引脚的出线方向。
进一步地,所述构建每个线网的最小生成树包括:找到所述线网中每个引脚的角点;根据引脚的角点计算出每两个引脚之间的最短距离,将所述最短距离作为所述两个引脚间的距离;根据所述线网中所有引脚间的距离,采用直线最小生成树RMST算法构建所述线网的最小生成树。
进一步地,所述的根据所述最小生成树和可用金属层数,确定所述线网的引脚连接关系,包括:根据所述最小生成树和可用金属层数,构建一个高度不高于所述可用金属层数的目标平衡多叉树;根据所述目标平衡多叉树确定所述线网的引脚连接关系。
进一步地,所述的构建一个高度不高于所述可用金属层数的目标平衡多叉树包括:构建一个高度不高于所述可用金属层数,且线长在各金属层基本均匀的目标平衡多叉树。
进一步地,所述的构建一个高度不高于所述可用金属层数,且线长在各金属层基本均匀的目标平衡多叉树,包括:获取高度不高于所述可用金属层数,且线长在各金属层基本均匀的若干平衡多叉树;从所述平衡多叉树中优选第一层实现的连接数多的平衡多叉树作为目标平衡多叉树。
进一步地,所述的根据所有线网的引脚连接关系,确定所有引脚的出线方向,包括:根据所有线网的引脚连接关系,构建冲突图,所述冲突图由一组带方向的点和和一组冲突边构成,所述冲突边由不允许同时出现的两个带方向的点之间的连线构成,所述带方向的点对应一个携带出线方向的引脚;获取所述冲突图的最大独立子集;根据所述最大独立子集确定所述最大独立子集中引脚的出线方向。
进一步地,所述的构建冲突图包括:若存在连接的两个引脚的连接点在一条线上,则每个引脚的连接点只有一个出线方向;根据所述引脚的连接点的出线方向得到对应的带方向的点,再将所述带方向的点添加到所述冲突图中。
进一步地,所述的构建冲突图还包括:若存在连接的两个引脚的连接点不在一条线上,则每个引脚的连接点存在两个可能的出线方向;根据所述引脚的连接点的两个可能的出线方向分别得到与所述引脚对应的两个带方向的点;根据所述两个引脚的四个带方向的点之间的关系,得到冲突边;将所述带方向的点和所述冲突边添加到所述冲突图中。
进一步地,在构建冲突图之后,获取所述冲突图的最大独立子集之前包括:针对每个引脚,判断所述引脚与其邻近引脚之间是否满足第二规则,所述邻近引脚为距离所述引脚在预设范围内的其他引脚;根据不满足第二规则的情况更新所述冲突图,所述更新包括增加带方向的点、增加新的冲突边和删除已有的冲突边。
进一步地,所述的根据所述最大独立子集确定大部分引脚的出线方向包括:对在所述最大独立子集中的引脚,将所述引脚在所述最大独立子集中的出线方向作为布线时所述引脚的出线方向。
本发明还提供一种集成电路版图布线中引脚访问方法,包括:获取模块,用于获取电路网表的每个线网;最小生成树构建模块,用于构建每个线网的最小生成树;引脚关系确定模块,用于根据所述最小生成树和可用金属层数,确定所述线网的引脚连接关系,所述线网的引脚连接关系包括哪些引脚之间存在连接以及在哪个金属层实现所述连接;出线方向确定模块,用于根据所有线网的引脚连接关系,确定所有引脚的出线方向。
通过本发明提供的一种集成电路版图布线中引脚访问方法及装置,至少能够带来以下有益效果:
本发明不以传统算法的芯片PPA(Power能耗、Performance性能、Area面积)优化为目标,而是服务于芯片后端物理设计的流程全自动化和可完成性这个目标,为此可以牺牲一些PPA,提出了一种全局可控的高效引脚访问方法及装置。
1、本发明通过在详细布线前根据线网的最小生成树来规划线网所有引脚的连接关系,缩短了布线长度,从而提高了布线的成功率。
2、本发明通过构建线长在各层基本均匀的平衡多叉树,根据平衡多叉树确定线网的引脚连接关系,使各层之间的布线分布相对均衡,避免因部分层的空间紧张而导致布线失败。
3、本发明充分考虑了详细布线需求,根据布线时的各种设计约束构建冲突图,从冲突图中提取最大独立子集,根据最大独立子集规划大部分引脚的出PIN方向,从而有效避免了只在局部考虑引脚访问问题导致的布线失败,有效提升了后端设计的最终布线成功率。
4、本发明提供了一种无网格化的引脚访问方法,有效规避了网格(grid)和轨道(track)的约束,从而极大提升了引脚访问的效率和布线成功率。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种集成电路版图布线中引脚访问方法及装置的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明的一种集成电路版图布线中引脚访问方法的一个实施例的流程图;
图2是步骤S400的一种实施方式的流程图;
图3是本发明的一种集成电路版图布线中引脚访问装置的一个实施例的结构示意图;
图4是生成树的一种示意图;
图5是芯片引脚的一种示意图;
图6是最小生成树和对应的平衡多叉树的一种示意图;
图7是两个引脚在一条线上的一种示意图;
图8是两个引脚不在一条线上的一种示意图;
图9是本发明应用于一种具体实施场景的主流程图;
图10是图9中生成树构建的一种流程图;
图11是图9中引脚连接规划的一种流程图;
图12是图9中冲突图构建的一种流程图;
图13是图9中基于MIS的引脚访问选择的一种流程图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘制了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
本发明的一个实施例,如图1所示,一种集成电路版图布线中引脚访问方法,包括:
步骤S100获取电路网表的每个线网。
具体地,电路网表(Netlist)是线网(Net)的集合,各线网包含一系列的引脚。布线器需要把每个Net的所有引脚通过金属线或通孔连接,使其连通。
步骤S200构建每个线网的最小生成树。
具体地,给定一个平面中的n个点,生成树是一个连通所有n个点的图,最小生成树是一个连通所有n个点且具有最小总长度的图。
如图4所示,由3个点构成的生成树,每个树的总长度等于树中所有边长之和。显然图中(2)、(3)、(4)的总长度小于(1),从(2)、(3)、(4)中选择最小总长度的图作为最小生成树。若(2)、(3)、(4)的总长度相等,则其中任意一个树都可以作为最小生成树。假设(2)作为最小生成树,则确定了A、B、C三点的连接关系为A与B之间存在连接、A与C之间存在连接,B与C之间不存在连接。通过(2)不仅实现了A、B、C三点的连通,还使连接线总长度最短。
线网的最小生成树是一个连通线网所有引脚且具有最短连接线总长度的图。假设线网有n个引脚,则该线网对应的最小生成树确定了n个引脚中任意两个引脚之间是否存在连接。若存在连接,则布线上需要用直接的金属线连接;否则不需要。如图4中的(2)所示,虽然B与C之间不存在连接,但通过A与B的连接、A与C的连接,使得B与C是连通的。此处仅确定了两个引脚之间是否存在连接,但在哪个金属层实现连接并没有确定。
最小生成树不仅实现了所有n个引脚的连通,还使连通n个引脚的金属线总长度最短。所以选择最小生成树可以缩短布线长度,提高空间利用率。
可以采用现有的kruskal(克鲁斯卡尔)算法、prim(普里姆)算法构造最小生成树。一种更有效的方法是采用周海教授在论文《Efficient minimum spanning treeconstruction without Delaunay triangulation》中提到的周氏直线最小生成树(Zhou'sRectilinear Minimal Spanning Tree Algorithm,RMST)算法构建每个Net的最小生成树。该算法在直线距离(rectilinear distance)场景中,可更快速地生成最小生成树。
需要说明的是,芯片布线场景就是一种直线距离场景,实际布线(routing)为正交布线结构,其在计算线网中两个引脚之间的直线距离时是采用曼哈顿距离S1,而不是传统意义上的欧拉距离。S1计算公式为:S1=|x2-x1|+|y2-y1|,其中,(x1,y1)为引脚1的坐标,(x2,y2)为引脚2的坐标。后续提到的两点或两个引脚间的距离都是指曼哈顿距离。
RMST算法是假设每个引脚为一个点。而在芯片设计中,每个引脚实际上是一个由至少一个矩形构成的多边形,如图5所示,A、B、C引脚,每个引脚可有不同形状。
针对多边形引脚,同一个引脚的不同连接可以有不同的连接点,比如图5中AB连接在A引脚的连接点可与AC连接在A引脚的连接点不同,这样两个引脚间的距离就可以取引脚间的最短距离,从而使两个引脚间的距离算得更准确,得到的最小生成树也更准确。比如AB的距离为d1,AC的距离为d2。
基于上述分析,基于RMST算法做了以下改进:
步骤S1,找到线网中每个引脚的角点(Corner Points)。如图5所示,以A引脚为例,A1-A4为引脚A的角点。角点包括端点和拐角点。
步骤S2,根据引脚的角点计算出每两个引脚之间的最短距离,将该最短距离作为两个引脚间的距离。
步骤S3,根据线网中所有引脚间的距离,采用直线最小生成树RMST算法构建线网的最小生成树。
其中,生成树使线网的所有引脚连通,每个生成树的总长度等于生成树中所有存在连接的两个引脚间的距离之和,最小生成树为总长度最小的生成树。
步骤S300根据最小生成树和可用金属层数,确定线网的引脚连接关系。线网的引脚连接关系包括哪些引脚之间存在连接以及在哪个金属层实现该连接。
通常有多个金属层用于布线,但是工艺节点的金属层数是有限的。如前所述,最小生成树仅确定了两个引脚之间是否存在连接,但在哪个金属层实现连接并没有确定。在此步骤需要考虑最小生成树中的每个连接在哪个金属层实现。
根据最小生成树和可用金属层数,确定线网的引脚连接关系,具体包括:
根据最小生成树和可用金属层数,构建一个高度不高于可用金属层数的目标平衡多叉树;根据该目标平衡多叉树确定线网的引脚连接关系。
根据目标平衡多叉树确定线网的引脚连接关系,具体指:该树的每一级节点与一金属层一一对应,不同级别的节点对应不同金属层;每个节点表明其左子树与右子树存在连接(即connection),该连接在该节点对应的金属层实现。最下层的叶子节点分别对应线网的各个引脚。
所有引脚都位于底层,需要根据目标平衡多叉树确定引脚之间的连接在哪个金属层实现。
示例,如图6,其中(1)为由5个引脚(A-E)构成的最小生成树,存在4条边(AB、BC、CD、BE),有3个金属层。(2)-(4)为对应的各种平衡多叉树。平衡多叉树中的(2)的高度为4,高于可用金属层数,所以该平衡多叉树不能作为目标平衡多叉树。(3)、(4)的高度不高于金属层数,(3)、(4)都可以作为目标平衡多叉树。
以(3)为例,节点1对应金属层的第一层(即最下层、或底层),节点2对应金属层的第二层,依次类推。引脚A与B的连接、引脚C与D的连接在第一层实现;节点1与引脚E在第二层连接,结合最小生成树可知,实现的是引脚B与E的连接,通过通孔(via)在第二层连接;节点2与节点1在第三层连接,实现的是引脚B与C的连接,通过通孔在第三层连接。
若按(3)来确定线网的引脚连接关系,可得出第一层为了实现相应的连接需要使用的金属线长=AB+CD,AB表示引脚A与B的距离,其他类似;第二层的线长=BE,第三层的线长=BC。
进一步可选的,目标平衡多叉树可以为一个高度不高于可用金属层数,且线长在各金属层基本均匀的树。每层的线长是指为了实现本层的连接所需要使用的金属线长度。
选择这种目标平衡多叉树,可使各层之间的布线相对均衡,避免因部分金属层的空间紧张(比如线太多)而导致布线失败。
比如,图6,(4)中各层线长分别为:层1长度=AB+BC;层2长度=CD;层3长度=BE。假设各个连接的距离关系为:AB<BC<CD<BE,则(4)比(3)的层间线长均衡性会更好一点。
可以分别计算各层所用的金属线长度,使用层与层之间金属线长度的最大偏差,用于衡量一个平衡多叉树的层间线长均衡性。该值越小,均衡性越好;在所有高度不高于可用金属层数的平衡多叉树中,选择层间线长均衡性最优的作为目标平衡多叉树。
在上述基础上还可以进一步优化:获取高度不高于可用金属层数,且线长在各金属层基本均匀的若干平衡多叉树,从这些平衡多叉树中优选第一层实现的连接数多的平衡多叉树作为目标平衡多叉树。这样可以减少通孔数,减少跨层实现连接。
步骤S400根据所有线网的引脚连接关系,确定所有引脚的出线方向。
线网的引脚连接关系已经明确哪些引脚之间存在连接以及在哪个金属层实现该连接。在此进一步确定在实现该连接的金属层中,为了实现该连接,两个引脚的出线方向。
可选地,如图2所示,步骤S400包括:
步骤S410根据所有线网的引脚连接关系,构建冲突图。
冲突图由一组带方向的点和和一组冲突边构成,冲突边由不允许同时出现的两个带方向的点之间的连线构成,带方向的点对应一个携带出线方向的引脚。
带方向的点是由引脚上的一个点和为实现某种连接而采用的出线方向(又称出pin方向,Escape Direction)构成。用“点标识符_方向”来唯一表示图中的一个点,例如A_east表示从A点出发往东出Pin。A_east、A_south、A_west和A_north表示四个不同的点,它们分别代表从A点往东、南、西、北四个不同的方向出Pin。
若两个带方向的点不允许同时出现,则这两个带方向的点之间存在连接,并将得到的连线作为冲突边。若两个带方向的点允许同时出现,则这两个带方向的点之间不存在连线。
可以按金属层遍历所有的引脚连接关系,根据不同情况添加带方向的点和冲突边到冲突图里。
判断每条连接的两个引脚的连接点是否在一条线上。其判断条件是两个连接点的x坐标或y坐标是否相等。如果x坐标或y坐标相等,则两个点在一条线上;如果都不相等则两个点不在一条线上。
若存在连接的两个引脚的连接点在一条线上,则每个引脚的连接点只有一个出线方向;根据引脚的出线方向得到对应的带方向的点,再将带方向的点添加到冲突图中。
例如图7,C、D点的y坐标相等,则C、D在一条线上。允许C_south和D_north两个带方向的点同时出现,所以只要把点C_south和D_north添加到冲突图里即可。
若存在连接的两个引脚的连接点不在一条线上,则每个引脚的连接点存在两个可能的出线方向;根据引脚连接点的两个可能的出线方向分别得到与该引脚对应的两个带方向的点;根据两个引脚的四个带方向的点之间的关系,得到冲突边;将得到的带方向的点和冲突边添加到冲突图中。
如图8所示,有两个引脚A和B,A、B不在一条线上,为了实现A、B连接,基于正交布线,存在两种不同的选择,分别是:1)A走X方向,B走Y方向;2)A走Y方向,B走X方向。对这两种选择,往冲突图里添加四个点,分别是A_east、A_south、B_north和B_west。我们注意到,当A的出Pin方向是east的时候B必须要走north方向,同样地,当A走south方向的时候B必须走west方向。所以,存在两条冲突边,这两条冲突边分别是:边1(A_east,B_west)和边2(A_south,B_north),分别表示A_east和B_west不能同时选择,A_south和B_north不能同时选择。
我们还注意到,若A的出Pin方向选择了east,则不可能再选择south;若B的出Pin方向选择了west,则不可能再选择north。所以还存在两条冲突边,分别是边3(A_east,A_south)和边4(B_west,B_north)。往冲突图里添加这4条冲突边。
可选地,若所有的引脚连接都处理完了,再针对每个引脚,进行引脚和其邻近引脚之间的冲突检查。冲突检查是指引脚和其邻近引脚之间是否满足第二规则。第二规则是指布线时需要满足的各种设计约束DRC(Design Rules Checking,设计规则检查),比如最小间距原则。邻近引脚为距离该引脚在预设范围内的其他引脚。
根据不满足第二规则的情况更新冲突图,更新操作包括增加带方向的点、增加新的冲突边和删除已有的冲突边。
比如图7,C、D在一条线上,但CD连线的走线与邻近引脚E的距离太近不满足设计约束规则,则C、D点不能直接连接,此时需通过其他途径解决。所以需要根据新的检查结果更新冲突图中的点和冲突边。
当所有的点和约束边都添加完毕,则冲突图构建完成。
步骤S420获取冲突图的最大独立子集。
独立子集是一个点集,其中任意两点之间都没有直接的边相连。冲突图的独立子集可能存在多个,从中选取元素最多的独立子集,作为最大独立子集MIS(Max IndependentSet)。
步骤S430根据最大独立子集确定最大独立子集中引脚的出线方向。
对在MIS集合中的Pin,按照他们的规划方向(东、南、西、北)出Pin,即将该引脚在最大独立子集中的出线方向作为布线时该引脚的出线方向。
对于不在MIS集合中的Pin,一般需要通过通孔走向其他层再进行连接。
在布局后,本实施例通过确定所有线网的引脚连接关系以及引脚的出线方向,大致确定了所有引脚的访问途径,之后再进行具体的布线,可提高布线效率。
本实施例通过选择线网的最小生成树缩短了布线长度,从而提高了布线的成功率;通过构建线长在各层基本均匀的平衡多叉树,根据平衡多叉树确定线网的引脚连接关系,使各层之间的布线分布相对均衡,避免因部分层的空间紧张而导致布线失败;通过充分考虑详细布线需求,根据布线时的各种设计约束构建冲突图,从冲突图中提取最大独立子集,根据最大独立子集规划大部分引脚的出PIN方向,从而有效避免了局部考虑引脚访问导致的布线失败,进一步提升了后端设计的布线成功率。
本实施例提供了一种无网格化的引脚访问,有效规避了网格和轨道的约束,从而极大提升了引脚访问的效率和布线成功率。
本发明的一个实施例,如图3所示,一种集成电路版图布线中引脚访问装置,包括:
获取模块100,用于获取电路网表的每个线网。
最小生成树构建模块200,用于构建每个线网的最小生成树。
具体地,给定一个平面中的n个点,生成树是一个连通所有n个点的图,最小生成树是一个连通所有n个点且具有最小总长度的图。
线网的最小生成树是一个连通线网所有引脚且具有最短连接线总长度的图。假设线网有n个引脚,则该线网对应的最小生成树确定了n个引脚中任意两个引脚之间是否存在连接。若存在连接,则布线上需要用直接的金属线连接;否则不需要。
最小生成树不仅实现了所有n个引脚的连通,还使连通n个引脚的金属线总长度最短。所以选择最小生成树可以缩短布线长度,提高空间利用率。
可以采用现有的kruskal(克鲁斯卡尔)算法或prim(普里姆)算法构造最小生成树。一种更有效的方法是采用直线最小生成树RMST算法构建每个Net的最小生成树。该算法在直线距离(rectilinear distance)场景中,可更快速地生成最小生成树。
需要说明的是,芯片布线场景就是一种直线距离场景,实际布线(routing)为正交布线结构,其在计算线网中两个引脚之间的直线距离时是采用曼哈顿距离S1,而不是传统意义上的欧拉距离。
RMST算法是假设每个引脚为一个点。而在芯片设计中,每个引脚实际上是一个由至少一个矩形构成的多边形。针对多边形引脚,同一个引脚的不同连接可以有不同的连接点,这样两个引脚间的距离就可以取引脚间的最短距离,从而使两个引脚间的距离算得更准确,得到的最小生成树也更准确。
基于上述分析,基于RMST算法做了改进。优选地,最小生成树构建模块200,还用于找到线网中每个引脚的角点;根据引脚的角点计算出每两个引脚之间的最短距离,将该最短距离作为两个引脚间的距离;根据线网中所有引脚间的距离,采用直线最小生成树RMST算法构建线网的最小生成树。
引脚关系确定模块300,用于根据最小生成树和可用金属层数,确定线网的引脚连接关系。线网的引脚连接关系包括哪些引脚之间存在连接以及在哪个金属层实现该连接。
通常有多个金属层用于布线,但是工艺节点的金属层数是有限的。如前所述,最小生成树仅确定了两个引脚之间是否存在连接,但在哪个金属层实现连接并没有确定。在此需要考虑最小生成树中的每个连接在哪个金属层实现。
根据最小生成树和可用金属层数,确定线网的引脚连接关系,具体包括:
根据最小生成树和可用金属层数,构建一个高度不高于可用金属层数的目标平衡多叉树;根据该目标平衡多叉树确定线网的引脚连接关系。
根据目标平衡多叉树确定线网的引脚连接关系,具体指:该树的每一级节点与一金属层一一对应,不同级别的节点对应不同金属层;每个节点表明其左子树与右子树存在连接(即connection),该连接在该节点对应的金属层实现。最下层的叶子节点分别对应线网的各个引脚。
进一步可选的,目标平衡多叉树可以为一个高度不高于可用金属层数,且线长在各金属层基本均匀的树。每层的线长是指为了实现本层的连接所需要使用的金属线长度。
选择这种目标平衡多叉树,可使各层之间的布线相对均衡,避免因部分金属层的空间紧张(比如线太多)而导致布线失败。
可以分别计算各层所用的金属线长度,使用层与层之间金属线长度的最大偏差,用于衡量一个平衡多叉树的层间线长均衡性。该值越小,均衡性越好;在所有高度不高于可用金属层数的平衡多叉树中,选择层间线长均衡性最优的作为目标平衡多叉树。
在上述基础上还可以进一步优化:获取高度不高于可用金属层数,且线长在各金属层基本均匀的若干平衡多叉树,从这些平衡多叉树中优选第一层实现的连接数多的平衡多叉树作为目标平衡多叉树。这样可以减少通孔数,减少跨层实现连接。
出线方向确定模块400,用于根据所有线网的引脚连接关系,确定所有引脚的出线方向。
线网的引脚连接关系已经明确哪些引脚之间存在连接以及在哪个金属层实现该连接。进一步确定在实现该连接的金属层中,为了实现该连接,两个引脚的出线方向。
可选地,出线方向确定模块400包括:
冲突图构建单元410,用于根据所有线网的引脚连接关系,构建冲突图。冲突图由一组带方向的点和和一组冲突边构成,冲突边由不允许同时出现的两个带方向的点之间的连线构成,带方向的点对应一个携带出线方向的引脚。
带方向的点是由引脚(Pin)上的一个点和为实现某种连接而采用的出线方向(又称出pin方向,Escape Direction)构成。若两个带方向的点不允许同时出现,则这两个带方向的点之间存在连接,并将得到的连线作为冲突边。若两个带方向的点允许同时出现,则这两个带方向的点之间不存在连线。
可以按金属层遍历所有的引脚连接关系,根据不同情况添加带方向的点和冲突边到冲突图里。
判断每条连接的两个引脚的连接点是否在一条线上。其判断条件是两个连接点的x坐标或y坐标是否相等。如果x坐标或y坐标相等,则两个点在一条线上;如果都不相等则两个点不在一条线上。
若存在连接的两个引脚的连接点在一条线上,则每个引脚的连接点只有一个出线方向;根据引脚的出线方向得到对应的带方向的点,再将带方向的点添加到冲突图中。
若存在连接的两个引脚的连接点不在一条线上,则每个引脚的连接点存在两个可能的出线方向;根据引脚连接点的两个可能的出线方向分别得到与该引脚对应的两个带方向的点;根据两个引脚的四个带方向的点之间的关系,得到冲突边;将得到的带方向的点和冲突边添加到冲突图中。
可选地,若所有的引脚连接都处理完了,再针对每个引脚,进行引脚和其邻近引脚之间的冲突检查。冲突检查是指引脚和其邻近引脚之间是否满足第二规则。第二规则是指布线时需要满足的各种设计约束DRC(Design Rules Checking,设计规则检查),比如最小间距原则。邻近引脚为距离该引脚在预设范围内的其他引脚。
根据不满足第二规则的情况更新冲突图,更新操作包括增加带方向的点、增加新的冲突边和删除已有的冲突边。
当所有的点和约束边都添加完毕,则冲突图构建完成。
最大独立子集获取单元420,用于获取冲突图的最大独立子集。
独立子集是一个点集,其中任意两点之间都没有直接的边相连。冲突图的独立子集可能存在多个,从中选取元素最多的独立子集,作为最大独立子集。
出线确定单元430,用于根据最大独立子集确定大部分引脚的出线方向。
对在MIS集合中的Pin,按照他们的规划方向(东、南、西、北)出Pin,即将该引脚在最大独立子集中的出线方向作为布线时该引脚的出线方向。
对于不在MIS集合中的Pin,需要通过通孔走向其他层再进行连接。
在布局后,本实施例通过确定所有线网的引脚连接关系以及引脚的出线方向,大致确定了所有引脚的访问途径,之后再进行具体的布线,可提高布线效率。
本实施例通过选择线网的最小生成树缩短了布线长度,从而提高了布线的成功率;通过构建线长在各层基本均匀的平衡多叉树,根据平衡多叉树确定线网的引脚连接关系,使各层之间的布线分布相对均衡,避免因部分层的空间紧张而导致布线失败;通过充分考虑详细布线需求,根据布线时的各种设计约束构建冲突图,从冲突图中提取最大独立子集,根据最大独立子集规划大部分引脚的出PIN方向,从而有效避免了局部考虑引脚访问导致的布线失败,进一步提升了后端设计的布线成功率。
本实施例提供了一种无网格化的引脚访问,有效规避了网格和轨道的约束,从而极大提升了引脚访问的效率和布线成功率。
需要说明的是,本发明提供的集成电路版图布线中引脚访问装置的实施例与前述提供的集成电路版图布线中引脚访问方法的实施例均基于同一发明构思,能够取得相同的技术效果。因而,集成电路版图布线中引脚访问装置的实施例的其它具体内容可以参照前述集成电路版图布线中引脚访问方法的实施例内容的记载。
本发明还提供了一个具体实施场景示例,将本申请提供的引脚访问方法及装置应用于实际布线系统中,主流程图如图9所示,包括两大部分:引脚连接规划(Pin ConnectionPlanning)和引脚访问选择(Pin Access Selection)。
第一部分:引脚连接规划
给定输入的网表(Netlist),对其中每一条Net构建最小生成树并做好引脚的连接规划,直到所有Net都处理完毕。
该部分包括:
1.生成树构建(Spanning Tree Construction)。
采用周氏直线最小生成树算法RMST得到每个Net的最小生成树。
每个引脚都是一个多边形,对它们进行预处理之后再采用周氏算法。如图10所示,具体步骤如下:
1)找到每个引脚的角点(Corner Points);
2)根据角点得到引脚间的最短距离;
3)运行RMST算法构建多边形引脚之间的最小生成树。
2.引脚连接规划,如图11所示。为了保证这些引脚连接能够在有限的金属层内完成,构建一棵平衡多叉树。具体步骤如下:
2.1.计算最小生成树中每条边的长度;
2.2.根据最小生成树、引脚数n和金属层数m构建构建一棵平衡多叉树(BalancedTree)。算法规划的要求是:第一优先是平衡树高度低于金属层数,第二优先是各层所用的金属线的线长均匀,第三优先是在第一层实现的连接多。
2.3.确定叶子节点的连接关系。平衡多叉树中最下层为叶子节点,叶子节点是引脚。根据平衡多叉树确定叶子节点间的连接关系。
第二部分:引脚访问选择
当所有Net的引脚连接规划都完成后,构建一个全局冲突图(Conflict Graph),然后对最大独立子集的引脚按它们的规划做出线方向,剩下的引脚将通过通孔连接到更上层。
该部分主要包含:
3.冲突图构建,如图12。遍历所有的连接关系,并根据不同情况添加点和边到冲突图里。具体步骤如下:
3.1.判断是否还有未访问到的连接(Connections)。
3.2.判断这条连接的两个引脚是否在一条线上,然后分情况处理之。其中,判断条件是两个点的x或y坐标是否相等:如果x或y坐标相等,则它们在一条线上,否则不在一条线上。
3.3.如果两点在一条线上,那可以将它们直接相连。例如图7,C、D在一条线上,则只要把点C_south和D_north添加到冲突图里即可。
3.4.如果两点不在一条线上,有两组不同的选择(Options)。例如图8,两个引脚A和B不在一条线上,存在两种不同的选择,分别是:1)A走X方向,B走Y方向;2)A走Y方向,B走X方向。对这两种选择,往冲突图里添加四个顶点,分别是A_east,A_south,B_north,B_west。当A的出Pin方向是east的时候B必须要走north方向,同样地,当A走south方向的时候B必须走west方向。所以,往冲突图中添加四个顶点和两条约束边,这两条约束边分别是:Edge1(A_east,B_west)和Edge2(A_south,B_north),表示A_east和B_west不能同时选择,A_south和B_north不能同时选择。
3.5.等所有引脚连接都处理完了,再添加引脚和邻近引脚之间的冲突边。这些冲突边用来满足各种设计约束DRC。
3.6.终止:所有点和约束边都添加完毕,冲突图构建完成。
冲突图中的每个点的数据结构由两个部分组成:1)Pin上的一个点;2)出Pin方向(Escape Direction)。
4.基于最大独立子集的出Pin方案选择(MIS-based Pin Access Selection),如图13。具体步骤如下:
4.1.从冲突图中提取最大独立子集MIS。
4.2.对在MIS集合中的Pin,按照他们的规划方向(东、南、西、北)出Pin。
4.3.对不在MIS集合中的Pin,通过通孔(via)走向更高层。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种集成电路版图布线中引脚访问方法,其特征在于,包括:
获取电路网表的每个线网;
构建每个线网的最小生成树;
根据所述最小生成树和可用金属层数,构建一个高度不高于所述可用金属层数的目标平衡多叉树;
根据所述目标平衡多叉树确定所述线网的引脚连接关系,所述线网的引脚连接关系包括哪些引脚之间存在连接以及在哪个金属层实现所述连接;
根据所有线网的引脚连接关系,构建冲突图,所述冲突图由一组带方向的点和和一组冲突边构成,所述冲突边由不允许同时出现的两个带方向的点之间的连线构成,所述带方向的点对应一个携带出线方向的引脚;
获取所述冲突图的最大独立子集;
根据所述最大独立子集确定所述最大独立子集中引脚的出线方向。
2.根据权利要求1所述的引脚访问方法,其特征在于,所述构建每个线网的最小生成树包括:
找到所述线网中每个引脚的角点;
根据引脚的角点计算出每两个引脚之间的最短距离,将所述最短距离作为所述两个引脚间的距离;
根据所述线网中所有引脚间的距离,采用直线最小生成树RMST算法构建所述线网的最小生成树。
3.根据权利要求1所述的引脚访问方法,其特征在于,所述的根据目标平衡多叉树确定线网的引脚连接关系,包括:
所述目标平衡多叉树的每一级节点与一金属层一一对应,不同级别的节点对应不同金属层;每个节点表明其左子树与右子树存在连接,该连接在该节点对应的金属层实现;最下层的叶子节点分别对应线网的各个引脚。
4.根据权利要求1所述的引脚访问方法,其特征在于,所述的构建一个高度不高于所述可用金属层数的目标平衡多叉树包括:
构建一个高度不高于所述可用金属层数,且线长在各金属层基本均匀的目标平衡多叉树。
5.根据权利要求4所述的引脚访问方法,其特征在于,所述的构建一个高度不高于所述可用金属层数,且线长在各金属层基本均匀的目标平衡多叉树,包括:
获取高度不高于所述可用金属层数,且线长在各金属层基本均匀的若干平衡多叉树;
从所述平衡多叉树中优选第一层实现的连接数多的平衡多叉树作为目标平衡多叉树。
6.根据权利要求1所述的引脚访问方法,其特征在于,所述的构建冲突图包括:
若存在连接的两个引脚的连接点的x坐标或y坐标相等,则所述两个连接点在一条线上;若所述两个连接点的x坐标和y坐标都不相等,则所述两个连接点不在一条线上。
7.根据权利要求1所述的引脚访问方法,其特征在于,所述的构建冲突图包括:
若存在连接的两个引脚的连接点在一条线上,则每个引脚的连接点只有一个出线方向;
根据所述引脚的连接点的出线方向得到对应的带方向的点,再将所述带方向的点添加到所述冲突图中。
8.根据权利要求1所述的引脚访问方法,其特征在于,所述的构建冲突图还包括:
若存在连接的两个引脚的连接点不在一条线上,则每个引脚的连接点存在两个可能的出线方向;
根据所述引脚的连接点的两个可能的出线方向分别得到与所述引脚对应的两个带方向的点;
根据所述两个引脚的四个带方向的点之间的关系,得到冲突边;
将所述带方向的点和所述冲突边添加到所述冲突图中。
9.根据权利要求1所述的引脚访问方法,其特征在于,在构建冲突图之后,获取所述冲突图的最大独立子集之前包括:
针对每个引脚,判断所述引脚与其邻近引脚之间是否满足第二规则,所述邻近引脚为距离所述引脚在预设范围内的其他引脚;
根据不满足第二规则的情况更新所述冲突图,所述更新包括增加带方向的点、增加新的冲突边和删除已有的冲突边。
10.一种集成电路版图布线中引脚访问装置,其特征在于,包括:
获取模块,用于获取电路网表的每个线网;
最小生成树构建模块,用于构建每个线网的最小生成树;
引脚关系确定模块,用于根据所述最小生成树和可用金属层数,构建一个高度不高于所述可用金属层数的目标平衡多叉树;根据所述目标平衡多叉树确定所述线网的引脚连接关系,所述线网的引脚连接关系包括哪些引脚之间存在连接以及在哪个金属层实现所述连接;
出线方向确定模块,用于根据所有线网的引脚连接关系,构建冲突图,所述冲突图由一组带方向的点和和一组冲突边构成,所述冲突边由不允许同时出现的两个带方向的点之间的连线构成,所述带方向的点对应一个携带出线方向的引脚;获取所述冲突图的最大独立子集;根据所述最大独立子集确定所述最大独立子集中引脚的出线方向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110263571.4A CN112989749B (zh) | 2021-03-11 | 2021-03-11 | 一种集成电路版图布线中引脚访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110263571.4A CN112989749B (zh) | 2021-03-11 | 2021-03-11 | 一种集成电路版图布线中引脚访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112989749A CN112989749A (zh) | 2021-06-18 |
CN112989749B true CN112989749B (zh) | 2023-12-29 |
Family
ID=76334907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110263571.4A Active CN112989749B (zh) | 2021-03-11 | 2021-03-11 | 一种集成电路版图布线中引脚访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989749B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113591426B (zh) * | 2021-08-04 | 2022-05-24 | 北京华大九天科技股份有限公司 | 一种集成电路版图设计中创建线网标识的方法 |
CN116976272B (zh) * | 2023-09-21 | 2023-12-22 | 华芯巨数(杭州)微电子有限公司 | 一种集成电路设计优化布线方法、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111553125A (zh) * | 2020-04-23 | 2020-08-18 | 福州立芯科技有限公司 | 一种考虑先进技术的超大规模集成电路详细布线方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8234615B2 (en) * | 2010-08-04 | 2012-07-31 | International Business Machines Corporation | Constraint programming based method for bus-aware macro-block pin placement in a hierarchical integrated circuit layout |
-
2021
- 2021-03-11 CN CN202110263571.4A patent/CN112989749B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111553125A (zh) * | 2020-04-23 | 2020-08-18 | 福州立芯科技有限公司 | 一种考虑先进技术的超大规模集成电路详细布线方法 |
Non-Patent Citations (1)
Title |
---|
一种含浮动端点的斯坦纳树的构造算法;黄林, 赵文庆, 唐璞山;计算机辅助设计与图形学学报(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112989749A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6002857A (en) | Symbolic constraint-based system for preroute reconstruction following floorplan incrementing | |
US5587923A (en) | Method for estimating routability and congestion in a cell placement for integrated circuit chip | |
EP0932874B1 (en) | A method and apparatus for routing of nets in an electronic device | |
CN112989749B (zh) | 一种集成电路版图布线中引脚访问方法及装置 | |
Ting et al. | Routing techniques for gate array | |
US4615011A (en) | Iterative method for establishing connections and resulting product | |
US6442745B1 (en) | Method and apparatus for layout-constrained global routing | |
US8037441B2 (en) | Gridded-router based wiring on a non-gridded library | |
CN111291525B (zh) | 考虑总线和非总线线网的层分配方法 | |
CN109684731B (zh) | 一种高效的详细布线驱动轨道分配方法 | |
TWI222580B (en) | System and method for H-tree signal layout | |
Ho et al. | Crosstalk-and performance-driven multilevel full-chip routing | |
CN112560389A (zh) | 一种基于轨道分配的实用详细布线方法 | |
CN104063558A (zh) | 基于线性规划的大规模集成电路通道布线方法 | |
US6327696B1 (en) | Method and apparatus for zero skew routing from a fixed H trunk | |
Patyal et al. | Pole-aware analog layout synthesis considering monotonic current flows and wire crossings | |
Kao et al. | Cross point assignment with global rerouting for general-architecture designs | |
JP5380969B2 (ja) | レイアウト設計方法、及び装置 | |
Joy et al. | Layer assignment for printed circuit boards and integrated circuits | |
CN114189450A (zh) | 用于生成和使用网络综合中的物理路线图的系统和方法 | |
Sattar et al. | Mobility based net ordering for simultaneous escape routing | |
CN117688895B (zh) | 电路图生成方法、计算机设备及存储介质 | |
CN114970442A (zh) | 考虑总线感知的多层全局布线方法 | |
JPH06209043A (ja) | ディジタルlsi設計における自動配置方法およびその装置 | |
CN117113920A (zh) | 一种集成电路版图的总体布线方法、装置及存储介质 |
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 |