CN116402010B - 基于斯坦纳树算法的多实例化分块顶层布线方法 - Google Patents
基于斯坦纳树算法的多实例化分块顶层布线方法 Download PDFInfo
- Publication number
- CN116402010B CN116402010B CN202310523803.4A CN202310523803A CN116402010B CN 116402010 B CN116402010 B CN 116402010B CN 202310523803 A CN202310523803 A CN 202310523803A CN 116402010 B CN116402010 B CN 116402010B
- Authority
- CN
- China
- Prior art keywords
- wiring
- blocks
- instantiation
- important
- template
- 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 35
- 238000013461 design Methods 0.000 claims abstract description 21
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 230000004888 barrier function Effects 0.000 claims description 9
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 6
- 238000005192 partition Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000004804 winding 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开基于斯坦纳树算法的多实例化分块顶层布线方法,属于计算、推算或计数的技术领域。该方法对线网进行网格划分,将线网映射到网格图上;使用FLUTE构造并分解得到所有的多引脚线网的直角斯坦纳最小树,将所有多端点的连线分解为二端点的连线,通过模式布线得到初始布线结果;对每组多端点线网,基于初始布线结果,将所有关联到的多实例化分块分为重要和不重要两类,将不重要分块内部的线路拆去,使用A‑Star算法进行绕障两端点布线;分析所有重要分块的功能后进行内部布线;对所有多端点线网重复以上过程,最终得到最终的布线结果。本发明实现了在多实例化分块内部进行布线,优化超大规模集成电路设计流程,并且降低布线时间与路径冗余。
Description
技术领域
本发明涉及集成电路布局布线的技术,具体公开基于斯坦纳树算法的多实例化分块顶层布线方法,属于计算、推算或计数的技术领域。
背景技术
在超大规模集成电路(Very Large Scale Integration Circuit,VLSI)的设计中,布线的目的是在芯片的规定布线区域中实现芯片内各个模块之间的物理连接。布线的好坏会直接影响整个芯片的性能,优秀的布线算法能够在较短的时间内实现高质量的布线结果,对缩短芯片设计周期和减少研发成本有极大的帮助。
随着集成电路产业的不断发展,芯片的功能复杂度和集成度也不断增加,这使得对庞大的单个芯片进行整体设计的成本也相应提高。目前广泛采用的解决方案是使用模块化设计的方案,将一个庞大的电路设计分割成许多个小尺寸的分块,分别设计实现各个小分块的功能。由于每个分块都可以实现相应的功能,可以将能实现特定功能的分块设计作为模板保存,并在需要的地方加以运用,多实例化分块的概念由此应运而生,并在如今的VLSI设计中被广泛应用。
在VLSI设计过程中,虽然每个分块都是单独进行设计的,但不同的分块之间仍会不可避免地存在一些连接,此时需要在顶层进行总体布线。布线的结果会连接需要连接的分块,并可能会穿过多个分块。此时,多实例化分块的存在会给布线算法带来极大的挑战。由于存在许多相同模板的分块,布线结果中穿过的多实例化分块会自动将路径同步到其它使用相同模板的分块中,造成大量路径冗余,并最终可能导致布线资源拥塞甚至短路。目前,绝大部分的算法为了避免产生上述问题,都将多实例化分块视作障碍,尽可能地避免在多实例分块内部布线,这种做法虽然可以最大程度地避免路径冗余的情况发生,但在分块数量繁多的VLSI中,布线空间十分狭隘,布线自由度受到很大程度制约,同时也对分块的布局提出了较高的要求。因此,亟需一种针对多实例化分块进行高效布线的算法以优化多实例分块顶层布线技术。
发明内容
本发明的发明目的是针对上述背景技术的不足,提供基于斯坦纳树算法的多实例化分块顶层布线方法,通过对分块进行选择性的功能化设计,在给出媲美行业先进水平的布线解的同时做到在分块内部布线,解决现有布线算法受到电路布局的较大制约以及在狭窄的布线空间中容易发生拥塞和短路的技术问题。
本发明为实现上述发明目的采用如下技术方案:
基于斯坦纳树算法的多实例化分块顶层布线方法,包括步骤S1至步骤S7。
S1,基于总体布线空间初始化布线网格并映射信息,对于给定的电路设计,首先基于总体布线空间构建布线网格,一般在总体布线空间的平面上,用等间距的水平与竖直的直线将布线空间划分为正方形的网格,将布线空间中所有需要进行布线的端点、多实例化分块的顶点与边界以及障碍映射到相应的布线网格中,同时在映射信息后的布线网格中重新定义多实例化分块,将每个分块所属的类别定义到该分块所属的网格区域,并加入同步规则至各分块所属的网格区域,同步规则用于在布线过程中时刻保持同一类别的分块内部线网的一致性。
S2,基于斯坦纳树算法和模式布线获取各多端点线网的初步布线解,在布线网格初始化完成后,利用FLUTE分别构建出所有多端点线网的直角斯坦纳最小树,并将每个多端点线网分解为多个二端点线网,对每个二端点的线网,使用L型模式布线来进行快速布线:对于当前多端点线网中任意的二端点线网,仅搜索上L型与下L型两种路径方案,并选择穿过多实例化分块较少的路径作为二端点网络的初步布线解,各二端点网络的初步布线解组成当前多端点线网的初步布线解。
S3,对当前多端点线网的初步布线解穿越的所有多实例化分块进行分类,在S2中构建的初步布线解的基础上,选择单独一组多端点线网,找出该多端点线网的初步布线解所代表的布线路径穿越的所有多实例化分块对应的模板,并统计每种模板各有多少分块被路径穿越,将穿越分块数量较少的模板标记为非重要模板,并认定其没有内部布线的必要;其余的模板则标记为重要模板,并认定其需要进行内部布线操作,穿越分块数量的具体阈值数量可以根据布线规模大小灵活调整。
S4,根据步骤S3对多实例化分块的分类结果对当前多端点线网中的各二端点线网重新布线,在将分块模板进行分类后,找出初步布线解代表的布线路径经过的所有属于非重要模板的分块内部的二端点线网,对找到的二端点线网已经布好的路径进行拆除,并对所有拆线后的二端点线网进行重新布线:选择一组拆除布线路径的二端点线网,将除了属于重要模板的分块之外的所有分块定义为障碍,使用A-Star算法对该二端点线网进行绕障布线,重复该布线步骤直至遍历完所有拆除布线路径的二端点线网。各二端点网络重新布线后的路径组成当前多端点网络的重新布线路径。
S5,对当前多端点网络的重新布线路径所穿越的重要模板进行功能化内部布线设计,经过拆线重布后,对所有被重新布线的路径穿越的属于重要模板的分块进行内部布线:选取其中属于同一种重要模板的分块,将使用同一模板的所有分块放在一起,分析此重要模板在该多端点线网布线中应该实现的功能,并根据实现的功能对属于此重要模板的分块进行内部布线,得到属于此重要模板的分块的功能化内部布线路径:对于内部包含需要连接的端点的分块,找出其需要连接的分块边界,在需要连接的分块边界的中点上放置连接点,并连接需要连接的分块边界上的所有连接点与内部端点;对于内部不含端点的分块,找出需要连接的分块边界,在需要连接的分块边界的中点上放置连接点,连接需要连接的分块边界上的所有连接点,重复该步骤直至遍历完所有重要模板。
S6,根据重要模板功能化内部布线路径修正步骤S4获取的当前多端点网络的重新布线路径,得到当前多端点网线的最终布线路径,对所有属于重要模板的分块进行功能化内部布线后,修改S4中给出的布线解:删去S4给出的布线路径中所有穿越属于重要模板分块的部分,将经过功能化内部布线的模板同步到所有对应的多实例化分块中,对分块外的路径进行简单地修改,使分块内外的路径相连,得到该多端点线网的最终布线解。
S7:重复步骤S3-S6,直至遍历完所有的多端点线网,得到最终的总体布线解。
本发明采用上述技术方案,具有以下有益效果:
(1)本发明提出的顶层布线技术是基于斯坦纳树算法实现的,继承了斯坦纳树算法高效、高质量解的优点,通过在斯坦纳树算法给出的布线解的基础上拆除非重要模板分块内部端点线网并对重要模板分块内部端点线网重新布线的方式,对布线解进行优化,做到在较少的运行时间内得到可媲美行业先进水平的高质量总体布线解。
(2)本发明提出的顶层布线技术填补了顶层布线算法无法进入多实例化分块内部布线的技术空白,采用本发明提出的多实例化分块顶层布线技术进行顶层布线时,通过在斯坦纳树算法给出的解的基础上对分块进行分类,并根据分块的功能设计其内部线路,可以使顶层的布线空间脱离多实例化分块的约束,显著提高布线自由度并最小化路径的冗余,特别适用于解决布线空间十分狭隘且多实例化分块数量繁多的顶层布线问题,相较于传统的顶层布线技术,在较短时间内找到高质量布线解的同时显著减少路径拥塞和短路问题,并降低对分块布局的要求。
附图说明
图1是本发明提供的一种基于斯坦纳树算法的多实例化分块顶层布线技术的流程图。
图2是网格划分示意图以及网格划分后单个格子的示意图。
图3是4-pin线网经过FLUTE构建的RSMT示意图。
图4(a)是重新布线前的路径示意图,图4(b)是重新布线后的路径示意图。
图5是直接布线的示意图。
图6(a)是将A_01分块恢复至初始朝向的示意图,图6(b)是将A_02分块恢复至初始朝向的示意图,图6(c)是将B_01分块恢复至初始朝向的示意图,图6(d)是将B_02分块恢复至初始朝向的示意图。
图7(a)是A模板内部设计的示意图,图7(b)是B模板内部设计的示意图,图7(c)是最终布线路径示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例做进一步的详细说明。
如图1所示,本发明提供的一种基于斯坦纳树算法的多实例化分块顶层布线方法,包括以下六大步骤。
步骤一:基于总体布线空间初始化布线网格并进行信息映射
对于给定的电路设计,在构建布线网格时,一般在总体布线空间的平面上,用等间距的水平与竖直的直线将布线空间划分为正方形的网格,划分后的网格如图2所示,划分后每个格子的尺寸会远大于最小的金属线宽,通常情况下一个格子的边长会比详细布线的网格大一个数量级,即一个格子的一条边可以容纳10条线网通过,单个格子的局部放大图如图2所示。经过网格划分后,将布线空间中所有需要进行布线的端点、多实例化分块的顶点与边界以及障碍的边界映射到相应的布线网格中,同时在映射信息后的布线网格中重新定义多实例化分块,将每个分块所属的类别定义到该分块所属的网格区域,并加入同步规则至各分块所属的网格区域,在布线过程中时刻保持同一类别的分块内部线网的一致性。
步骤二:基于斯坦纳树算法和模式布线获取各多端点线网的初步布线解
在布线网格初始化完成后,利用FLUTE构建出多引脚线网的直角斯坦纳最小树(Rectilinear Steiner Minimal Tree,RSMT),并将该多引脚线网分解为多个双引脚线网,该算法是一种基于快速查找表的直角斯坦纳最小树构造算法,可以对9-pin及以下的多端点线网快速构建最优的RSMT,对于9-pin以上的多端点线网,FLUTE可以将多线网分割成若干小线网从而递归求解,图3所示为4-pin线网经过FLUTE构建得到的RSMT,FLUTE算法在该线网初始的4个端点的基础上添加了两个斯坦纳点4、5,并以这两个点为桥梁构建起了RSMT,根据RSMT图可以将该线网分解为{0,5}、{1,5}、{5,4}、{4,3}、{4,2}这五个双引脚的线网,对每个双引脚的线网,使用L型模式布线来进行快速布线,该方法仅搜索上L型与下L型两种路径方案,并选择穿过多实例化分块较少的路径,最终得到该多引脚线网即多端点线网的初步布线结果。多引脚线网根据电路初始设计要求获取。
步骤三:对当前多端点线网的初步布线解穿越的所有多实例化分块进行分类
由于一个多端点线网的路径可能会牵涉到多个多实例化分块的模板,这些模板中的某些分块对该线网很重要,对它们进行内部布线能显著减少冗余并缩短路径;而其它模板则可能无足轻重,如果盲目地进行内部布线则有可能产生反作用,增加路径冗余,因此有必要将这两类模板区分开来。具体操作为:找出所有被布线路径穿越的多实例化分块对应的模板,并统计每种模板各有多少分块被路径穿越,将穿越分块数量较少的模板标记为非重要模板,并认定其没有内部布线的必要;其余的模板则标记为重要模板,并认定其需要进行内部布线操作。具体的阈值数量可以根据布线规模大小灵活规定。
举例来说,假设有一个多端点线网,已经通过FLUTE构建了RSMT,并通过L型模式布线产生了初步布线方案。该布线方案共穿越了50个多实例分块,这50个分块由3种不同的模板分别约束。其中模板1有5个,模板2有20个,模板3有25个。此时就可以将模板1标记为非重要模板,因为模板1仅有5个分块与该线网布线方案有关,而一旦在其内部布线,就会无论分块是否与该多端点线网有关而将路径同步到所有使用该模板的分块上,显然这是不划算的,相比之下模板2与模板3在该线网中就显得重要得多。
步骤四:根据步骤三对多实例化分块的分类结果对当前多端点线网中的各二端点线网重新布线
步骤三完成模板分类完成后,由于被标记为非重要模板的没有内部布线的必要,因此需要将所有非重要模板所约束的分块内部的布线拆除,定义为除了属于重要模板的分块之外的所有分块为障碍,对拆线后的二端点线网重新布线,并在布线过程中绕开新定义的障碍。
重新布线的过程是一个经典的两端点线网绕障布线问题,采用A-Star算法进行求解。此时不仅要将非重要模板对应的分块定义为障碍,为了避免影响其它与该布线问题无关的模板,还应该将这些无关模板对应的分块也定义为障碍,图4所示为一个重新布线的例子,其中图4(a)为未经重新布线的路径示意图,图中重要模板的分块标记为①,非重要模板的分块标记为②,其它无关模板对应的分块则标记为③,则重新布线过程中应该将标记为②、③的分块视作障碍。图4(b)给出了重新布线后的布线方案图。
步骤五:对当前多端点网络的重新布线路径所穿越的重要模板进行功能化内部布线设计
经过模板分类和重新布线后,可以得到该多端点线网经过修改后的布线方案,此时的布线路径穿过的所有分块应该都属于重要模板,接下来需要对这些重要模板进行内部的布线。由于每个多实例化分块都受到其所属模板的约束,因此如果只从每个分块的角度分析内部布线方案,将无法充分考虑到使用同一模板的其它分块。参考图5,图中有受到两种模块约束的共四个多实例化分块,每个分块所属的模板标记在左上角,在实际的电路设计中,出于总体布局考虑,许多分块会经过旋转、翻转的操作,其朝向相较原模板会发生变化,因此在左下角的标记表示了每个分块的朝向:R0表示原模板方向,R180表示相较原模板经过180°旋转的方向。
图5给出了在未考虑多实例化分块的情况下直接进行布线的路径:实线为初步布线的路径,虚线为经过多实例化分块同步的路径。如图5所示,模板B对应的两个分块出现了严重的路径冗余,原因在于左侧与右侧的B分块朝向不同,如果将右侧的B分块旋转回来,由于布线路径处在不对称的位置,从模板的角度考虑,模板B实际在两个不同的位置分别进行了两次穿越布线。为了解决此问题,采取的解决方法是:从模板的角度进行分析,将使用同一模板的所有分块放在一起,分析此模块在该多端点线网布线问题中应该实现的功能,并在模板上进行内部布线加以实现。
该方法的难点在于如何将模块需要实现的功能抽象出来。实际上,在多端点线网布线问题中,每个分块需要实现的功能大致可以分为两类:1)对于内部包含端点的分块,其功能可以描述为实现内部端点与分块外部的连接;2)对于内部不包含端点的分块,其一般都被一条或多条布线路径所穿越,因此这些分块的功能可以描述为实现跨越整个分块的连接作用。
参考图5的示例,通过初步布线的结果可以看出,模板A应该属于上述第一种模板,其功能为将内部端点与外部相连;模板B则属于第二种,其需要实现的功能为跨越整个分块的连接。如果分别对两种模板进行更具体的分析,我们需要将四个分块单独拿出来,将所有分块恢复到R0朝向的状态,分别对两种模板进行分析,如图6(a)至图6(d)所示。从模板A的两个分块图看,可以将模板A的功能具体描述为:实现其内部端点分别与左侧边界及右侧边界的连接;类似地,可以将模板B的功能具体描述为:实现左右两侧的跨越连接。
明确模板所需要实现的功能后,需要进行内部布线,具体方法为:首先在分块的边界上设置连接点,为了对称性考虑,边界的连接点被规定在边界的中心位置,再将所有需要连接的点连接在一起即可。在本例中,如图7(a)和图7(b)所示,模板A与模板B均在左侧边界与右侧边界上设置了连接点,对于模板A,需要连接两个连接点与一个内部端点,考虑到计算时间因素,先简单地将连接点相连,再从内部端点取一条到已经连好的路径最近的直线路径;模板B则只需简单地将连接点相连,最后的布线总图如图7(c)所示。
步骤六:根据重要模板功能化内部布线路径修正当前多端点网络的重新布线路径,得到当前多端点网线的最终布线路径,
对所有模板进行模块化设计并完成内部布线后,需要对前面的总体布线方案进行最后的修改,即删去原布线路径中所有穿越重要分块的部分,将经过内部布线的模板同步到所有对应的多实例化分块中,最后将分块外的路径进行简单地修改,使分块内外的路径相连,即可得到最后的布线方案。
步骤七,重复多实例化分块分类、重新布线、功能化内部布线设计、修正重新布线路径的步骤,直至遍历完所有的多端点线网,得到最终的总体布线解。
本算法测试了10个具有不同分块数量的多端点布线实例,同时分别和基于国际EDA三大巨头Synopsys公司商业化工具IC CompilerⅡ产生的理想值进行了对比分析,通过在这10个测试用例上运用本论文所述的布线方法,记录运算所用时间与布线路径长度,结果展示在表1和表2中。
分块总数量 | 多实例化分块数量 | 算法用时/s | |
Case1 | 13 | 13 | 0.26 |
Case2 | 17 | 13 | 0.30 |
Case3 | 21 | 4 | 0.11 |
Case4 | 23 | 12 | 0.25 |
Case5 | 24 | 24 | 0.50 |
Case6 | 50 | 30 | 1.21 |
Case7 | 50 | 40 | 2.09 |
Case8 | 70 | 32 | 1.89 |
Case9 | 82 | 20 | 2.10 |
Case10 | 92 | 68 | 2.56 |
表1
分块总数量 | 多实例化分块数量 | 路径长度 | 路径长度标准值 | |
Case1 | 13 | 13 | 1686 | 1685 |
Case2 | 17 | 13 | 2422 | 2410 |
Case3 | 21 | 4 | 1631 | 1631 |
Case4 | 23 | 12 | 4752 | 4701 |
Case5 | 24 | 24 | 5714 | 5700 |
Case6 | 50 | 30 | 8342 | 8200 |
Case7 | 50 | 40 | 8694 | 8520 |
Case8 | 70 | 32 | 10431 | 10122 |
Case9 | 82 | 20 | 11809 | 11624 |
Case10 | 92 | 68 | 13242 | 13068 |
表2
参照表1,本发明运算所用的时间与布线实例的复杂度有关。布线规模越大,多实例化分块数量越多,所用的时间也会越长。但即便是在规模较大的布线实例中,使用该技术的计算时间也仅有数秒,这表明该技术有能力在很短的时间内得出总体布线的结果。
参照表2,表中路径长度的标准值是由IC CompilerⅡ计算得出。虽然在其中9个实例中,本文算法所得出的路径长度相较标准值都会略长,但差距均在可接受的范围内。这说明本算法在进入多实例化分块内部布线的同时,并不会带来大量的路径冗余,能够给出质量较高的总体布线解。
综上,本发明提出的一种基于斯坦纳树算法的多实例化顶层布线技术能够首次实现在多实例化分块的内部进行布线,并通过实例证明了其能在较短的运算时间内完成计算的同时,给出接近行业先进水平的高质量总体布线解,证明了本发明算法与思路的有效性。
Claims (6)
1.基于斯坦纳树算法的多实例化分块顶层布线方法,其特征在于,包括如下步骤:
步骤一,基于总体布线空间初始化布线网格并映射信息;
步骤二,基于斯坦纳树算法和模式布线获取各多端点线网的初步布线解,具体方法为:利用FLUTE构建当前多端点线网的直角斯坦纳最小树,将直角斯坦纳最小树分解为至少一个二端点线网,搜索当前二端点线网上L型路径与下L型路径,选择穿过多实例化分块少的路径为当前二端点线网的初步布线解,各二端点线网的初步布线解组成当前多端点线网的初步布线解;
步骤三,对当前多端点线网的初步布线解穿越的所有多实例化分块进行分类;
步骤四,根据步骤三对多实例化分块的分类结果对当前多端点线网中的各二端点线网重新布线,具体方法为:对当前多端点线网的初步布线解穿越的非重要模板分块内部的二端点线网进行路径拆除,对拆除路径后的每一个二端点线网进行绕障布线以获取当前多端点线网重新布线路径,所述绕障布线的过程中将除了重要模板分块之外的所有分块定义为障碍;
步骤五:对当前多端点网络的重新布线路径所穿越的重要模板进行功能化内部布线设计,具体方法为:根据重要模板分块在多端点线网布线中的功能,对每一种重要模板分块进行如下功能化内部布线设计:
对于内部包含待连接端点的重要模板分块,搜索该重要模板分块连接的分块,在该重要模板分块连接的分块的边界中点上放置连接点,并连接该重要模板分块连接的分块边界上的所有连接点与该重要模板分块内部端点,
对于内部不含端点的重要模板分块,搜索该重要模板分块连接的分块,在该重要模板分块连接的分块的边界中点上放置连接点,连接该重要模板分块连接的分块边界上的所有连接点;
步骤六:根据重要模板功能化内部布线路径修正当前多端点网络的重新布线路径,获取当前多端点网络的最终布线路径;
步骤七,重复步骤三至步骤六,直至遍历所有的多端点线网,获取最终的总体布线解。
2.根据权利要求1所述基于斯坦纳树算法的多实例化分块顶层布线方法,其特征在于,所述步骤一基于总体布线空间初始化布线网格并映射信息的具体方法为:在总体布线空间划分水平线和竖直线等间距的布线网格,将总体布线空间中的所有待布线端点、多实例化分块的顶点与边界以及障碍的边界映射到的布线网格中,将当前多实例化分块的模板信息及同步规则定义到当前多实例化分块所属的网格区域。
3.根据权利要求1所述基于斯坦纳树算法的多实例化分块顶层布线方法,其特征在于,所述步骤三对当前多端点线网的初步布线解穿越的所有多实例化分块进行分类的具体方法为:统计当前多端点线网的初步布线解穿越的分块数量和模板信息,在穿越分块数量低于阈值数量时,对于穿越分块数量低于阈值数量的所有分块,标记各分块的模板为非重要模板;在穿越分块数量高于阈值数量时,对于穿越分块数量高于阈值数量的所有分块,标记各分块的模板为重要模板。
4.根据权利要求1所述基于斯坦纳树算法的多实例化分块顶层布线方法,其特征在于,采用A-Star算法对拆除路径后的每一个二端点线网进行绕障布线。
5.根据权利要求1所述基于斯坦纳树算法的多实例化分块顶层布线方法,其特征在于,所述步骤六根据重要模板功能化内部布线路径修正当前多端点网络的重新布线路径的具体方法为:删去当前多端点网络的重新布线路径穿越重要模板分块的部分路径,将重要模板功能化内部布线路径同步至对应的多实例化分块中,修改各分块外部路径,连通分块内部路径和外部路径,获取当前多端点网络的最终布线路径。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310523803.4A CN116402010B (zh) | 2023-05-10 | 2023-05-10 | 基于斯坦纳树算法的多实例化分块顶层布线方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310523803.4A CN116402010B (zh) | 2023-05-10 | 2023-05-10 | 基于斯坦纳树算法的多实例化分块顶层布线方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116402010A CN116402010A (zh) | 2023-07-07 |
CN116402010B true CN116402010B (zh) | 2023-11-21 |
Family
ID=87010669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310523803.4A Active CN116402010B (zh) | 2023-05-10 | 2023-05-10 | 基于斯坦纳树算法的多实例化分块顶层布线方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116402010B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5587923A (en) * | 1994-09-07 | 1996-12-24 | Lsi Logic Corporation | Method for estimating routability and congestion in a cell placement for integrated circuit chip |
CN103324796A (zh) * | 2013-06-21 | 2013-09-25 | 福州大学 | 一种大规模集成电路设计中的绕障直角斯坦纳树构造方法 |
US10783292B1 (en) * | 2015-05-21 | 2020-09-22 | Pulsic Limited | Automated analog layout |
CN112149378A (zh) * | 2020-11-04 | 2020-12-29 | 深圳华大九天科技有限公司 | 一种基于拥塞协商的拆线重布方法、设备及可读存储介质 |
CN112883682A (zh) * | 2021-03-15 | 2021-06-01 | 北京华大九天科技股份有限公司 | 集成电路的总体布线方法及设备和存储介质 |
CN113255284A (zh) * | 2021-05-30 | 2021-08-13 | 上海立芯软件科技有限公司 | 全局布线中快速局部拆线重布方法 |
WO2021227463A1 (zh) * | 2020-05-14 | 2021-11-18 | 福州大学 | 一种两步式X结构Steiner最小树构建方法 |
CN115496030A (zh) * | 2022-11-15 | 2022-12-20 | 北京大学 | 可处理电学和几何约束的模拟电路布线自动化方法及系统 |
CN115563927A (zh) * | 2022-10-20 | 2023-01-03 | 北京大学 | 一种gpu加速构建最小直角斯坦纳树的芯片布线方法 |
CN115719051A (zh) * | 2022-11-12 | 2023-02-28 | 福州大学 | 基于深度强化学习的轨道分配方法 |
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7127696B2 (en) * | 2003-12-17 | 2006-10-24 | International Business Machines Corporation | Method and apparatus for generating steiner trees using simultaneous blockage avoidance, delay optimization and design density management |
-
2023
- 2023-05-10 CN CN202310523803.4A patent/CN116402010B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5587923A (en) * | 1994-09-07 | 1996-12-24 | Lsi Logic Corporation | Method for estimating routability and congestion in a cell placement for integrated circuit chip |
CN103324796A (zh) * | 2013-06-21 | 2013-09-25 | 福州大学 | 一种大规模集成电路设计中的绕障直角斯坦纳树构造方法 |
US10783292B1 (en) * | 2015-05-21 | 2020-09-22 | Pulsic Limited | Automated analog layout |
WO2021227463A1 (zh) * | 2020-05-14 | 2021-11-18 | 福州大学 | 一种两步式X结构Steiner最小树构建方法 |
CN112149378A (zh) * | 2020-11-04 | 2020-12-29 | 深圳华大九天科技有限公司 | 一种基于拥塞协商的拆线重布方法、设备及可读存储介质 |
CN112883682A (zh) * | 2021-03-15 | 2021-06-01 | 北京华大九天科技股份有限公司 | 集成电路的总体布线方法及设备和存储介质 |
CN113255284A (zh) * | 2021-05-30 | 2021-08-13 | 上海立芯软件科技有限公司 | 全局布线中快速局部拆线重布方法 |
CN115563927A (zh) * | 2022-10-20 | 2023-01-03 | 北京大学 | 一种gpu加速构建最小直角斯坦纳树的芯片布线方法 |
CN115719051A (zh) * | 2022-11-12 | 2023-02-28 | 福州大学 | 基于深度强化学习的轨道分配方法 |
CN115496030A (zh) * | 2022-11-15 | 2022-12-20 | 北京大学 | 可处理电学和几何约束的模拟电路布线自动化方法及系统 |
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
Non-Patent Citations (2)
Title |
---|
Augmented line segment based algorithm for constructing rectilinear steiner minimum tree;V. Vani等;IEEE;全文 * |
基于最短路径快速算法的船舶管路自动敷设方法;董宗然;林焰;;计算机集成制造系统(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116402010A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291525B (zh) | 考虑总线和非总线线网的层分配方法 | |
US5359538A (en) | Method for regular placement of data path components in VLSI circuits | |
US5877091A (en) | Multilayer routing method and structure for semiconductor integrated circuit | |
JP2007188488A (ja) | パッキングベースのマクロ配置方法とそれを用いた半導体チップ | |
KR100439562B1 (ko) | 트랜지스터 배치 방법 | |
Tseng et al. | A gridless multilayer router for standard cell circuits using CTM cells | |
EP0495887A1 (en) | Improved routing system and method for integrated circuits | |
Suaris et al. | A quadrisection-based combined place and route scheme for standard cells | |
CN116070575B (zh) | 一种芯片布线优化方法及软件系统 | |
Chi et al. | Performance-preserved analog routing methodology via wire load reduction | |
CN115859899A (zh) | 一种多驱动能力的集成电路标准单元版图迁移的方法 | |
CN116402010B (zh) | 基于斯坦纳树算法的多实例化分块顶层布线方法 | |
US7376921B2 (en) | Methods for tiling integrated circuit designs | |
Igusa et al. | ORCA A sea-of-gates place and route system | |
Kao et al. | Cross point assignment with global rerouting for general-architecture designs | |
Liu et al. | Chip-level area routing | |
Chi et al. | Performance-driven routing methodology with incremental placement refinement for analog layout design | |
JP2002503850A (ja) | 電子デバイスおよび電子装置を製造および設計する方法 | |
KR101044295B1 (ko) | 자동화된 칩 면적 최적화를 위한 블록 패킹방법 및 표준 셀 패킹 방법 | |
JP3220037B2 (ja) | トランジスタ配置方法 | |
Dayan | Rubber-band based topological router | |
Yang et al. | Multi-instantiated Block Top-layer Routing Technique Based on Steiner Tree Algorithm | |
Lee et al. | Wire type assignment for FPGA routing | |
Yan et al. | Multilevel timing-constrained full-chip routing in hierarchical quad-grid model | |
Sherwani | Floorplanning and Pin Assignment |
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 |