CN115017860A - 布局布线同步的增量布局优化方法、装置及计算机设备 - Google Patents
布局布线同步的增量布局优化方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN115017860A CN115017860A CN202210722993.8A CN202210722993A CN115017860A CN 115017860 A CN115017860 A CN 115017860A CN 202210722993 A CN202210722993 A CN 202210722993A CN 115017860 A CN115017860 A CN 115017860A
- Authority
- CN
- China
- Prior art keywords
- module
- wiring
- layout
- illegal
- modules
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000005457 optimization Methods 0.000 title claims abstract description 42
- 238000012795 verification Methods 0.000 claims abstract description 66
- 230000001360 synchronised effect Effects 0.000 claims abstract description 43
- 238000007670 refining Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000015572 biosynthetic process Effects 0.000 claims description 11
- 238000003786 synthesis reaction Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000003071 parasitic effect Effects 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 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
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/392—Floor-planning or layout, e.g. partitioning or placement
-
- 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
- G06F30/3947—Routing global
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种一种布局布线同步的增量布局优化方法、装置及计算机设备,该方法包括根据逻辑综合后获得的网表文件和核心约束文件,在初始粗网格上依次放置包含有多个单元的每一模块并同步进行该模块与已放置模块之间的布线。对模块间的布局布线进行迭代验证并根据验证结果调整非法模块位置或尺寸并同步调整其布线,直至满足核心约束文件。细化网格并将每一模块均划分为多个子模块,在每一模块所在细化网格内同步布局布线多个子模块;迭代验证并同步调整非法子模块的布局布线。重复细化网格、子模块细分、细分子模块的同步布局布线、迭代验证以及非法细分子模块的布局布线同步调整,直至迭代验证满足核心约束文件且时序收敛。
Description
技术领域
本发明涉及集成电路电子设计自动化领域,且特别涉及一种布局布线同步的增量布局优化方法、装置及计算机设备。
背景技术
集成电路芯片设计是一个流程很长的工程,从前端的电路设计到后端的版图设计,各个环节都是相互紧密联系,每个环节都会影响最终芯片的实现结果。在前端的逻辑设计综合完成后需要通过布局布线进行物理实现。现有的布局布线方法中布局和布线是两个单独的步骤,其主要的流程包括基于前端逻辑综合后的全局布局、布局以及布线。在布局阶段当单元被放置时,布线并没有完成,此时仅仅是为单元之间分配了预估的布线资源并形成一个非常粗略的用于指示布线资源被占用情况的拥塞图,基于拥塞图调整全局布局和单元位置放置。在布局满足要求后再进行布线,其具体的原理如图1所示。
现有的布局布线方法在纳米级电路设计中会产生了一个很大问题:布局阶段预估的可用布线资源往往与后面布线阶段所需的实际值相差太远;即布局和布线之间存在不相关的问题。这种不相关的问题会在布线前后产生很大的时序、功率、面积的跳跃,从而导致电路设计深度欠佳。
目前也出现了一种在布局阶段进行快速预布线的方法,其首先需要生成布线资源图。之后在布局的过程中根据布局温度计算移动或交换逻辑模块的成本值并根据布线资源图对所述移动或交换逻辑模块进行快速布局布线。之后再根据成本值变化判断逻辑模块的移动或交换是否接受;同时还要判断布局温度是否满足设定条件。在这种布局布线方式中,其首先也仍然需要对布线资源进行预估形成布线资源图,同样会存在预估布线资源和实际布线资源之间存在差异的不相关问题;其次,在布局过程中基于成本值、布局温度以及资源占用情况的实时计算都会给布局和布线的运算速度带来很大的困难,尤其是对于大规模的集成电路而言,这个速度会变得更加的突出。
发明内容
本发明为了克服现有技术的不足,提供一种布局布线同步的增量布局优化方法、装置及计算机设备。
为了实现上述目的,本发明提供一种布局布线同步的增量布局优化方法,其包括:
获取逻辑综合后生成的信息文件,信息文件包括表征各单元之间逻辑关系的网表文件和多种约束文件;
对所获的多种约束文件进行分类,形成包括核心约束文件种类在内的至少两种以上的约束文件类型;
根据网表文件和核心约束文件,在初始粗网格上依次放置每一模块并同步进行该模块与已放置模块之间的布线,每一模块均包含有多个单元;基于核心约束文件对模块间的布局布线进行迭代验证;根据验证结果调整不满足核心约束文件的非法模块位置或尺寸并同步调整该非法模块的布线,直至多个模块之间的布局布线满足核心约束文件;
细化网格并将每一模块均划分为多个子模块,在每一模块所在细化网格内同步布局布线其多个子模块;基于核心约束文件进行迭代验证并根据验证结果调整不满足核心约束文件的非法子模块位置或尺寸并同步调整该非法子模块的布线,直至多个子模块之间的布局布线满足核心约束文件;
重复细化网格、子模块细分、细分子模块的同步布局布线、迭代验证以及非法细分子模块的布局布线同步调整,直至迭代验证满足核心约束文件且时序收敛。
根据本发明的一实施例,调整不满足核心约束文件的非法对象的位置时,实时捕捉当前移动的非法对象的位置信息,在该非法对象和与其相连接的其它对象之间生成虚拟布线;基于核心约束文件,静态时序分析虚拟布线以产生该非法对象在当前网格内的最佳移动位置并将对应的虚拟布线转换为实际布线;非法对象包括非法模块、非法子模块以及非法细分模块。
根据本发明的一实施例,实时捕捉当前移动的非法对象的中心位置,并根据该非法对象的结构确定其多个信号端位置;在其信号端和与其相连接的其它对象的信号端之间生成虚拟布线。
根据本发明的一实施例,在调整非法对象位置时,基于迭代验证结果和核心约束文件在当前网格的水平方向或垂直方向等间距依次移动。
根据本发明的一实施例,对所获的多种约束文件进行分类时,对核心约束文件之外的约束文件进行再次分类,形成次要约束文件;在放置模块、子模块以及细分模块时,根据预设比例扩展受次要约束文件约束的模块、子模块以及细分模块之间的布线资源。
根据本发明的一实施例,在细化网格时,以预设的等比例方式逐渐缩小网格间距;或者,逐渐降低缩小比例的规则来细化网格。
根据本发明的一实施例,核心约束文件包括时序约束文件、物理约束文件以及部分工艺约束文件。
另一方面,本发明还提供一种布局布线同步的增量布局优化装置,其包括获取模块、分类模块、布局布线模块、验证模块以及网格细化模块。获取模块获取逻辑综合后生成的信息文件,信息文件包括表征各单元之间逻辑关系的网表文件和多种约束文件。分类模块对所获的多种约束文件进行分类,形成包括核心约束文件种类在内的至少两种以上的约束文件类型。布局布线模块根据网表文件和核心约束文件,在初始粗网格上依次放置每一模块并同步进行该模块与已放置模块之间的布线,每一模块均包含有多个单元。验证模块基于核心约束文件对模块间的布局布线进行迭代验证。布局布线模块根据验证结果调整不满足核心约束文件的非法模块位置或尺寸并同步调整该非法模块的布线,直至多个模块之间的布局布线满足核心约束文件。网格细化模块细化网格,布局布线模将每一模块均划分为多个子模块且在每一模块所在细化网格内同步布局布线其多个子模块。验证模块基于核心约束文件进行迭代验证且布局布线模块根据验证结果调整不满足核心约束文件的非法子模块位置或尺寸并同步调整该非法子模块的布线,直至多个子模块之间的布局布线满足核心约束文件。重复细化网格、子模块细分、细分子模块的同步布局布线、迭代验证以及非法细分子模块的布局布线同步调整,直至迭代验证满足核心约束文件且时序收敛。
根据本发明的一实施例,调整不满足核心约束文件的非法对象的位置时,布局布线模块实时捕捉当前移动的非法对象的位置信息,在该非法对象和与其相连接的其它对象之间生成虚拟布线;基于核心约束文件,静态时序分析虚拟布线以产生该非法对象在当前网格内的最佳移动位置并将对应的虚拟布线转换为实际布线;非法对象包括非法模块、非法子模块以及非法细分模块。
本发明另一方面还提供一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述布局布线同步的增量布局优化方法的步骤。
本发明另一方面还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述布局布线同步的增量布局优化方法的步骤。
综上所述,本发明提供的布局布线同步的增量布局优化方法是一种基于网格和模块逐步细化的递进式同步布局布线方法。该方法在每一次布局对象位置时均基于核心约束文件迭代而同步完成该对象的布线,即在布局迭代的同时立即消耗布线约束,实际确定对象之间的线长和导线上影响时序的寄生参数。因此,各对象之间的布局和布线资源完全相关,在布局布线完成后不存在布线跳转的问题;很好的解决了现有布局布线方法所存在的布局阶段和布线阶段布线资源不相关的问题。而在优化速度上,网格和模块的逐步细化将迭代验证的计算量进行逐步分解从而使得各单元能逐渐快速地收敛至目标位置;而基于核心约束文件的迭代验证也进一步提高了迭代验证的速度,从而使得本发明提供的布局布线同步的增量布局优化方法在实现同步布局布线保证布线质量的同时具有优异的布线速率。
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1所示为现有布局布线方法的原理示意框图。
图2所示为本发明一实施例提供的布局布线同步的增量布局优化方法的流程图。
图3所示为图2中步骤S50的流程图。
图4所示为图2所示的流程图的原理示意框图。
图5所示为本发明一实施例提供的布局布线同步的增量布局优化方法中网格逐渐细化和模块逐渐细分的示意图。
图6所示为本发明一实施例提供的布局布线同步的增量布局优化装置的结构示意图。
具体实施方式
如图1所示,现有的布局布线方法中,布局和布线是独立的两个步骤,在布局阶段将会根据拥塞图不断地调整单元的放置位置并为每个单位配置预估的布线资源。当拥塞图表示布局满足要求后再进行布线。这种布局布线方式中由于布局阶段预估的布线资源是一个估算值,其往往与布线阶段所需要的实际布线资源相差较大,从而产生布局布线不相关的问题,从而严重影响布线后的电路性能,严重时甚至需要重新进行布局规划和布局。
有鉴于此,本实施例提供一种具有完全相关性的布局布线同步的增量布局优化方法。该方法包括:
获取逻辑综合后生成的信息文件,信息文件包括表征各单元之间逻辑关系的网表文件和多种约束文件;
对所获的多种约束文件进行分类,形成包括核心约束文件种类在内的至少两种以上的约束文件类型;
根据网表文件和核心约束文件,在初始粗网格上依次放置每一模块并同步进行该模块与已放置模块之间的布线,每一模块均包含有多个单元;基于核心约束文件对模块间的布局布线进行迭代验证;根据验证结果调整不满足核心约束文件的非法模块位置或尺寸并同步调整该非法模块的布线,直至多个模块之间的布局布线满足核心约束文件;
细化网格并将每一模块均划分为多个子模块,在每一模块所在细化网格内同步布局布线其多个子模块;基于核心约束文件进行迭代验证并根据验证结果调整不满足核心约束文件的非法子模块位置或尺寸并同步调整该非法子模块的布线,直至多个子模块之间的布局布线满足核心约束文件;
重复细化网格、子模块细分、细分子模块的同步布局布线、迭代验证以及非法细分子模块的布局布线同步调整,直至迭代验证满足核心约束文件且时序收敛。
以下将结合图2至图5详细介绍本实施例提供的布局布线同步的增量布局优化方法的工作原理。
由于后端的版图设计是前端逻辑电路的物理实现,故首先执行步骤S10,获取前端电路逻辑综合后的信息文件以形成布局布线的输入。信息文件主要包括表征各单元之间逻辑关系的网表文件和多种约束文件。对于网表文件而言,其是前端逻辑综合后的结果,通常以硬件描述语言的方式进行体现,如Verilog格式。网表文件中描述了电路设计的结构和各单元之间的逻辑连接关系。而约束文件则包括了电路设计所需要满足的时序约束文件、管脚分配与管脚电平设置的物理约束文件、工艺约束文件以及用户设计约束文件等。
在现有的布局布线方法中,在布局规划和布局中会对所涉及到的所有约束条件进行综合考虑,从而估算单元的位置和布线所需要的资源。然而,在实际的版图设计过程中,并非所有电路设计的物理实现都要兼顾全部的约束文件。事实也证明,在布局布线完成后也并非所有的约束条件都能满足。因此,在本实施例提供的布局布线同步的增量布局优化方法在步骤S10获得约束文件后,执行步骤S20,对获得的多种约束文件进行分类,形成包括核心约束文件种类在内的至少两种以上的约束文件类型。
于本实施例中,所述核心约束文件包括时序约束文件、物理约束文件以及部分工艺约束文件。部分工艺约束文件具体指的是宏观的工艺约束文件,譬如表征工艺厂商制造能力的线宽等。然而,本发明对此不作任何限定。于其它实施例中,基于用户对于其它约束文件的选择,在给定的核心约束文件的基础上增加用户选定的约束文件,组合后形成核心约束文件。或者于其它实施例中,也可根据不同功能、不同规模的前端电路类型为用户提供通用的核心约束文件;或者,基于用户历史对于核心约束文件的选择,自动为用户推荐核心约束文件。步骤S20中核心约束文件的选定为后续布局布线的同步实现提供了基础。
之后,进行布局布线。由于本实施例提供的布局布线同步的增量布局优化方法中,在每一次网格细化后均需要进行同步布局布线、迭代验证以及布局布线调整。因此,为方便描述将模块、子模块以及细分模块称为对象。具体而言,在初始粗网格下所指的对象即为包含多个单元的模块;在细化网格下所指的对象则为模块划分后的子模块;而之后的重复细化网格下的对象则为细分子模块。
步骤S30:根据网表文件和核心约束文件,在初始粗网格上依次放置每一对象(模块)并同步进行该对象(模块)与已放置对象(模块)之间的布线。如图5所示,在初始粗网格内放置A,B,C,D四个模块且每一模块均包含有多个单元。本实施例仅仅以四个模块的布局布线为例进行说明。然而,本发明对此不作任何限定,在实际的集成电路中会根据电路的功能形成非常多的模块。
由于网表文件表达了逻辑电路内各单元和模块之间的信号传输关系,故在布局时可根据信号的输出方向依次在初始粗网格图5(a)内插入模块。在放置每一个模块时,基于核心约束文件、已放置的模块位置以及待放置模块和已放置的模块之间的逻辑连接关系,通过线长和延时的迭代计算确定待放置模块的具体位置和其实际所需要的布线资源。最后,将待放置模块移动至迭代计算所确定的位置并完成布线。在该步骤中,待放置模块具体位置的确定已经同步消耗了其布线所需要的约束文件,线长和延时的优化在该步骤内同步实现,因此布线后各个模块之间不存在布线拥堵或布线跳转的问题。
在初始粗网格内完成各模块的布局布线后执行步骤S40:基于核心约束文件对各对象(模块)间的布局布线进行迭代验证。所述迭代验证包括时序验证和物理验证。在验证完成后输出违反核心约束文件的路径和该路径所涉及的非法对象(模块)。
在步骤S40获得非法模块后,执行步骤S50,调用布局布线模块并根据验证结果调整不满足核心约束文件的非法对象(模块)的位置或尺寸并同步调整该非法对象(模块)的布线以满足核心约束文件。具体而言,步骤S50在调整不满足核心约束文件的非法对象的位置时包括:实时捕捉当前移动的非法对象的位置信息(步骤501);在该非法对象和与其相连接的对象之间生成虚拟布线(步骤502);基于核心约束文件,静态时序分析虚拟布线以产生该非法对象在当前网格内的最佳移动位置并将对应的虚拟布线转换为实际布线(步骤503)。
对于步骤S501而言,由于每一单元的长宽是预先在单元库内确定的,因此对于由多个单元所组成的模块,其结构和多个信号端在结构上的位置也随之确定。因此可通过实时捕捉当前移动的非法模块的中心位置,并根据该非法模块的长宽确定其多个信号端位置,在其信号端位置和与其相连接的模块的信号端之间生成虚拟布线。然而,本发明对此不作任何限定。于其它实施例中,也可将每一非法模块的其中一个信号端作为实时捕捉的对象,然后基于该模块的结构计算其它信号端的位置。
由于在步骤S30布局布线过程中,每一对象(模块)的位置放置已经基于核心约束文件快速收敛至当前网格下的目标位置附近了,故在步骤S501的移动过程中,非法对象(模块)无需再进行大范围的位置调整,也无需和其它模块进互换位置,其只需基于当前网格间距在当前位置附近进行调整。为便于非法对象(模块)移动位置的实时捕捉,于本实施中,设置非法对象(模块)在当前网格的水平方向或垂直方向等间距依次移动,移动的间距为当前网格间距的整数倍。
在步骤S50中,本实施例以非法对象(模块)的位置移动以满足约束文件为例进行说明。然而,本发明对此不作任何限定。于其它实施例中,也可通过改变对象(模块)的宽度以满足物理约束和时序约束对路径的要求;或者也可同时结合非法对象(模块)的位置和宽度的调整来满足核心约束文件。
基于初始粗网格的布局布线很显然是无法满足时序的收敛,因此在初始网格上的布局布线满足核心约束文件后,执行步骤S70:细化网格并将每一模块均划分为多个子模块。如图5(b)所示,细化后的网格间距为前一次网格间距的50%;即将2*2的网格细分为4*4的网格。于此同时,模块A被划分为A1,A2,A3以及A4四个子模块;模块B被划分为B1,B2,B3以及B4四个子模块;模块C被划分为C1,C2,C3以及C4四个子模块;模块D被划分为D1,D2,D3以及D4四个子模块。
之后,采用步骤S30中的方法在每一模块所在细化网格内同步布局布线其多个子模块;即将A1,A2,A3以及A4四个子模块布局在模块A在初始网格中所占据的区域内,在图5(b)中为右上角的四个网格内。在布局A1,A2,A3以及A4四个子模块位置的同时基于核心约束文件完成彼此之间的布线。基于同样的方式,完成B1~B4,C1~C4以及D1~D4这些子模块的布局。
之后执行步骤S40基于核心约束文件对各对象间的布局布线进行迭代验证并获得非法对象。此时,对象指的是子模块,非法对象指的是违反核心约束文件路径上的子模块。
之后执行步骤S50,基于步骤S501~步骤S503调整非法子模块的位置或宽度并同步调整其与其它子模块之间的布线,从而使得所有子模块都满足核心约束文件。
经过步骤S40的迭代验证以及步骤S50的非法子模块布局布线调整后,执行步骤S60:判断基于当前网格的布局布线在时序上相比上一次布局布线是否收敛。具体而言,图5(b)上的布局布线在时序上相比图5(a)是否收敛。若是,则表明各单元之间的布局布线均满足要求,布局布线完成。若未收敛,则继续执行步骤S70:进一步细化网格,如图5(c)所示,形成8*8的网格。对应的子模块也会再次细化为多个细分子模块;譬如子模块A1会划分为A11,A12,A13以及A14四个细分子模块;子模块A2划分为A21~A24四个细分子模块;子模块A3划分为A31~A34四个细分子模块;子模块A4划分为A41~A44四个细分子模块。之后重复步骤S30将A11~A14四个细分子模块布局在子模块A1在图5(b)中所占有区域(即图5(c)中右上角的四个网格中);于此同时,同步完成A11~A14四个细分子模块之间的布线。基于同样的方式实现其它细分子模块的同步布局布线。
在细分子模块布局布线完成后,进行步骤S40的验证和步骤S50的非法细分子模块布局布线调整。之后又再次执行步骤S60:判断图5(c)上的布局布线在时序上相比图5(b)而言是否收敛。若是,则表明子模块的细化到达各单元且各单元之间的布局布线均满足要求,布局布线完成。若未收敛,则继续执行步骤S70(进一步细化网格和子模块细分)→步骤S30→步骤S40→步骤S50→步骤S60,直至布局布线满足核心约束文件且时序收敛。
本实施例提供的布局布线同步的增量布局优化方法中,在布局对象的同时基于核心约束文件同步确定了多个对象之间实际的布线线长和导线上影响延时计算的寄生参数,从而实现了布局布线资源的完全相关。
而基于网格细化和模块细分的递进式布局布线方式,一方面使得每一次迭代验证均只需关心当前布局布线的各对象之间基于核心约束文件的迭代,从而极大地降低了迭代验证的计算量,实现快速的同步布局布线。另一方面该设置还使得每一对象均收敛在其父对象所占有的区域内,从而极大的限缩了非法对象的调整范围。譬如,子模块A1是收敛在模块A所占有的区域内,因此在对非法子模块A1进行位置调整时只限制于模块A所占有区域内的微调,不会发生子模块A1和子模块B1交换位置的现象,避免了大范围内的位置移动所带来的大量计算,极大提高了同步布局布线的速率,从而很好地解决了现有技术中布局布线同步所存在的迭代速率低的问题。本实施例提供的布局布线同步的增量布局优化方法可同时兼容布局布线的速度和质量,是一种能实现电路性能、功耗、面积更好且运行时间更短的布局布线优化方法。
如图5所示,本实施例中,在细化网格时以预设的等比例方式逐渐缩小网格间距,如细化后的网格间距为前一次网格间距的50%。其中图5中(a)为初始粗网格;(b)为经过一次细化后的网格;(c)为经过二次细化后的网格。然而,本发明对此不作任何限定。于其它实施例中,随着网格间距的逐渐缩小,也可降低细化的比例,如细化后的网格间距与上一次的网格间距之差为25%。
在布局布线过程中,逻辑电路上的部分区域会有其特殊的要求,如电源线、地线以及时钟线等特殊信号线所在的敏感区域。对于这些区域逻辑综合后可能会产生一些相关的约束条件。当这些敏感区域所涉及的约束文件并未纳入核心约束文件时,步骤S20对核心约束文件之外的约束文件进行再次分类,对于涉及敏感区域的约束文件形成次要约束文件。步骤S30在放置每一对象时,根据预设比例扩展受次要约束文件约束的对象之间的布线资源。譬如,在初始网格上放置模块时,对电源线和地线而言,在原有的布线资源基础上扩展5%~20%以满足抗干扰等性能的要求;在细化网格后,在放置子模块时对涉及时钟线的区域,在原有的布线资源上扩展预设的比例。同样的,对于次要约束文件的形成,系统可根据不同的逻辑电路结构为用户自动生成,也可基于用户的选择在基础次要约束文件上进行增加或减少。然而,本发明对此不作任何限定。
与上述布局布线同步的增量布局优化方法相对应的,本实施例还提供一种布局布线同步的增量布局优化装置,其包括获取模块10、分类模块20、布局布线模块30、验证模块40以及网格细化模块70。获取模块10获取逻辑综合后生成的信息文件,信息文件包括表征各单元之间逻辑关系的网表文件和多种约束文件。分类模块20对所获的多种约束文件进行分类,形成包括核心约束文件种类在内的至少两种以上的约束文件类型。布局布线模块30根据网表文件和核心约束文件,在初始粗网格上依次放置每一模块并同步进行该模块与已放置模块之间的布线,每一模块均包含有多个单元。验证模块40基于核心约束文件对模块间的布局布线进行迭代验证。布局布线模块30根据验证结果调整不满足核心约束文件的非法模块位置或尺寸并同步调整该非法模块的布线,直至多个模块之间的布局布线满足核心约束文件。网格细化模块70细化网格,布局布线模块30基于步骤S50将每一模块均划分为多个子模块且在每一模块所在细化网格内同步布局布线其多个子模块。验证模块40基于核心约束文件进行验证且布局布线模块30根据验证结果调整不满足核心约束文件的非法子模块位置或尺寸并同步调整该非法子模块的布线,直至多个子模块之间的布局布线满足核心约束文件。对于网格细化后的布局布线调整,判断模块60将判断当前网格下的布局布线相对前一次网格的布局布线在时序上是否收敛。若收敛,则完成布局布线。若未收敛,网格细化模块70进一步细化网格且布局布线模块30进一步细分子模块,验证模块40再次验证,布局布线模块30又再次基于验证结构调整非法对象的位置和布线;最后,判断模块60再次判断时序是否收敛。重复上述步骤直至迭代验证满足核心约束文件且时序收敛。
其中,核心约束文件包括时序约束文件、物理约束文件以及部分工艺约束文件。
于本实施例中,布局布线模块30在调整不满足核心约束文件的非法对象的位置时,实时捕捉当前移动的非法对象的位置信息,在该非法对象和与其相连接的其它对象之间生成虚拟布线;基于核心约束文件,静态时序分析虚拟布线以产生该非法对象在当前网格内的最佳移动位置并将对应的虚拟布线转换为实际布线;所述非法对象包括非法模块、非法子模块以及非法细分模块。
具体而言,由于每一单元的长宽是预先在单元库内确定的,故由多个单元所组成的模块、子模块以及细分子模块等对象的结构和多个信号端在结构上的位置也随之确定。因此可通过实时捕捉当前移动的非法对象的中心位置,并根据该非法对象的长宽确定其信号端位置,在其信号端位置和与其相连接的模块的信号端之间生成虚拟布线。然而,本发明对此不作任何限定。于其它实施例中,也可将每一非法对象的其中信号端作为实时捕捉的对象,然后基于该对象的结构计算其它信号端的位置。随着模块的逐渐细分,当模块细分到单元时,信号端对应的是每个单元的管脚。
于本实施例中,分类模块20对核心约束文件之外的约束文件进行再次分类,对于涉及敏感区域的约束文件形成次要约束文件。布局布线模块30在初始粗网格上依次放置每一对象时,根据预设比例扩展受次要约束文件约束的对象之间的布线资源。譬如,对电源线、地线以及时钟线而言,在原有的布线资源基础上扩展5%~20%以满足抗干扰等性能的要求。
上述装置中各个模块的功能和实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
另一方面,本实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本实施例上述布局布线同步的增量布局优化方法的步骤。
另一方面,本实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现本实施例上述布局布线同步的增量布局优化方法的步骤。
综上所述,本发明提供的布局布线同步的增量布局优化方法是一种基于网格和模块逐步细化的递进式同步布局布线方法。该方法在每一次布局对象位置时均基于核心约束文件迭代而同步完成该对象的布线,即在布局迭代的同时立即消耗布线约束,实际确定对象之间的线长和导线上影响时序的寄生参数。因此,各对象之间的布局和布线资源完全相关,在布局布线完成后不存在布线跳转的问题;很好的解决了现有布局布线方法所存在的布局阶段和布线阶段布线资源不相关的问题。而在优化速度上,网格和模块的逐步细化将迭代验证的计算量进行逐步分解从而使得各单元能逐渐快速地收敛至目标位置;而基于核心约束文件的迭代验证也进一步提高了迭代验证的速度,从而使得本发明提供的布局布线同步的增量布局优化方法在实现同步布局布线保证布线质量的同时具有优异的布线速率。
虽然本发明已由较佳实施例揭露如上,然而并非用以限定本发明,任何熟知此技艺者,在不脱离本发明的精神和范围内,可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所要求保护的范围为准。
Claims (11)
1.一种布局布线同步的增量布局优化方法,其特征在于,包括:
获取逻辑综合后生成的信息文件,所述信息文件包括表征各单元之间逻辑关系的网表文件和多种约束文件;
对所获的多种约束文件进行分类,形成包括核心约束文件种类在内的至少两种以上的约束文件类型;
根据网表文件和核心约束文件,在初始粗网格上依次放置每一模块并同步进行该模块与已放置模块之间的布线,每一模块均包含有多个单元;基于核心约束文件对模块间的布局布线进行迭代验证;根据验证结果调整不满足核心约束文件的非法模块位置或尺寸并同步调整该非法模块的布线,直至多个模块之间的布局布线满足核心约束文件;
细化网格并将每一模块均划分为多个子模块,在每一模块所在细化网格内同步布局布线其多个子模块;基于核心约束文件进行迭代验证并根据验证结果调整不满足核心约束文件的非法子模块位置或尺寸并同步调整该非法子模块的布线,直至多个子模块之间的布局布线满足核心约束文件;
重复细化网格、子模块细分、细分子模块的同步布局布线、迭代验证以及非法细分子模块的布局布线同步调整,直至迭代验证满足核心约束文件且时序收敛。
2.根据权利要求1所述的布局布线同步的增量布局优化方法,其特征在于,调整不满足核心约束文件的非法对象的位置时,实时捕捉当前移动的非法对象的位置信息,在该非法对象和与其相连接的其它对象之间生成虚拟布线;基于核心约束文件,静态时序分析虚拟布线以产生该非法对象在当前网格内的最佳移动位置并将对应的虚拟布线转换为实际布线;所述非法对象包括非法模块、非法子模块以及非法细分模块。
3.根据权利要求2所述的布局布线同步的增量布局优化方法,其特征在于,实时捕捉当前移动的非法对象的中心位置,并根据该非法对象的结构确定其多个信号端位置;在其信号端和与其相连接的其它对象的信号端之间生成虚拟布线。
4.根据权利要求2所述的布局布线同步的增量布局优化方法,其特征在于,在调整非法对象位置时,基于迭代验证结果和核心约束文件在当前网格的水平方向或垂直方向等间距依次移动。
5.根据权利要求1所述的布局布线同步的增量布局优化方法,其特征在于,对所获的多种约束文件进行分类时,对核心约束文件之外的约束文件进行再次分类,形成次要约束文件;在放置模块、子模块以及细分模块时,根据预设比例扩展受次要约束文件约束的模块、子模块以及细分模块之间的布线资源。
6.根据权利要求1所述的布局布线同步的增量布局优化方法,其特征在于,在细化网格时,以预设的等比例方式逐渐缩小网格间距;或者,逐渐降低缩小比例的规则来细化网格。
7.根据权利要求1所述的布局布线同步的增量布局优化方法,其特征在于,所述核心约束文件包括时序约束文件、物理约束文件以及部分工艺约束文件。
8.一种布局布线同步的增量布局优化装置,其特征在于,包括:
获取模块,获取逻辑综合后生成的信息文件,所述信息文件包括表征各单元之间逻辑关系的网表文件和多种约束文件;
分类模块,对所获的多种约束文件进行分类,形成包括核心约束文件种类在内的至少两种以上的约束文件类型;
布局布线模块,根据网表文件和核心约束文件,在初始粗网格上依次放置每一模块并同步进行该模块与已放置模块之间的布线,每一模块均包含有多个单元;
验证模块,基于核心约束文件对模块间的布局布线进行迭代验证;布局布线模块根据验证结果调整不满足核心约束文件的非法模块位置或尺寸并同步调整该非法模块的布线,直至多个模块之间的布局布线满足核心约束文件;
网格细化模块,细化网格,布局布线模将每一模块均划分为多个子模块且在每一模块所在细化网格内同步布局布线其多个子模块;验证模块基于核心约束文件进行验证且布局布线模块根据迭代验证结果调整不满足核心约束文件的非法子模块位置或尺寸并同步调整该非法子模块的布线,直至多个子模块之间的布局布线满足核心约束文件;
重复细化网格、子模块细分、细分子模块的同步布局布线、迭代验证以及非法细分子模块的布局布线同步调整,直至迭代验证满足核心约束文件且时序收敛。
9.根据权利要求8所述的布局布线同步的增量布局优化装置,其特征在于,调整不满足核心约束文件的非法对象的位置时,布局布线模块实时捕捉当前移动的非法对象的位置信息,在该非法对象和与其相连接的其它对象之间生成虚拟布线;基于核心约束文件,静态时序分析虚拟布线以产生该非法对象在当前网格内的最佳移动位置并将对应的虚拟布线转换为实际布线;所述非法对象包括非法模块、非法子模块以及非法细分模块。
10.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的布局布线同步的增量布局优化方法的步骤。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的布局布线同步的增量布局优化方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210722993.8A CN115017860B (zh) | 2022-06-21 | 2022-06-21 | 布局布线同步的增量布局优化方法、装置及计算机设备 |
US17/899,164 US20230409799A1 (en) | 2022-06-21 | 2022-08-30 | Simultaneous placement and routing based method and apparatus for incremental design optimization, and computer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210722993.8A CN115017860B (zh) | 2022-06-21 | 2022-06-21 | 布局布线同步的增量布局优化方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115017860A true CN115017860A (zh) | 2022-09-06 |
CN115017860B CN115017860B (zh) | 2022-12-13 |
Family
ID=83076079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210722993.8A Active CN115017860B (zh) | 2022-06-21 | 2022-06-21 | 布局布线同步的增量布局优化方法、装置及计算机设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230409799A1 (zh) |
CN (1) | CN115017860B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629189A (zh) * | 2023-07-19 | 2023-08-22 | 深圳市周励电子科技有限公司 | 一种集成电路的布局生成方法及装置 |
CN116842897A (zh) * | 2023-08-10 | 2023-10-03 | 正心元科技(杭州)有限公司 | 全流程布局布线增量优化方法、装置及计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461576A (en) * | 1993-09-01 | 1995-10-24 | Arcsys, Inc. | Electronic design automation tool for the design of a semiconductor integrated circuit chip |
WO1999039288A2 (en) * | 1998-01-30 | 1999-08-05 | Tera Systems, Inc. | Method and system for creating optimized physical implementations from high-level descriptions of electronic design |
US6002857A (en) * | 1996-11-14 | 1999-12-14 | Avant! Corporation | Symbolic constraint-based system for preroute reconstruction following floorplan incrementing |
CN106815650A (zh) * | 2015-11-27 | 2017-06-09 | 中国科学院微电子研究所 | 自动优化片上系统层次化模块布局的方法及系统 |
CN108399299A (zh) * | 2018-03-02 | 2018-08-14 | 京东方科技集团股份有限公司 | 一种集成电路物理版图生成方法及装置 |
CN111159967A (zh) * | 2019-12-27 | 2020-05-15 | 天津芯海创科技有限公司 | 一种基于网页排名算法的fpga电路布局与资源分配方法 |
CN111400992A (zh) * | 2020-02-26 | 2020-07-10 | 中科亿海微电子科技(苏州)有限公司 | 一种自动化验证装箱布局布线的测试方法及系统 |
-
2022
- 2022-06-21 CN CN202210722993.8A patent/CN115017860B/zh active Active
- 2022-08-30 US US17/899,164 patent/US20230409799A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461576A (en) * | 1993-09-01 | 1995-10-24 | Arcsys, Inc. | Electronic design automation tool for the design of a semiconductor integrated circuit chip |
US6002857A (en) * | 1996-11-14 | 1999-12-14 | Avant! Corporation | Symbolic constraint-based system for preroute reconstruction following floorplan incrementing |
WO1999039288A2 (en) * | 1998-01-30 | 1999-08-05 | Tera Systems, Inc. | Method and system for creating optimized physical implementations from high-level descriptions of electronic design |
CN106815650A (zh) * | 2015-11-27 | 2017-06-09 | 中国科学院微电子研究所 | 自动优化片上系统层次化模块布局的方法及系统 |
CN108399299A (zh) * | 2018-03-02 | 2018-08-14 | 京东方科技集团股份有限公司 | 一种集成电路物理版图生成方法及装置 |
CN111159967A (zh) * | 2019-12-27 | 2020-05-15 | 天津芯海创科技有限公司 | 一种基于网页排名算法的fpga电路布局与资源分配方法 |
CN111400992A (zh) * | 2020-02-26 | 2020-07-10 | 中科亿海微电子科技(苏州)有限公司 | 一种自动化验证装箱布局布线的测试方法及系统 |
Non-Patent Citations (4)
Title |
---|
TOMAS HERMANSSON等: "Automatic assembly path planning for wiring harnes installations", 《JOURNAL OF MANUFACTURING SYSTEMS》 * |
杜昶旭等: "基于线网分类的模拟电路自动布线器", 《计算机辅助设计与图形学学报》 * |
王宏伟等: "层次化的片上网络设计方法", 《北京大学学报(自然科学版)》 * |
韩晓霞等: "时序快速收敛的区域约束式版图设计", 《浙江大学学报(工学版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629189A (zh) * | 2023-07-19 | 2023-08-22 | 深圳市周励电子科技有限公司 | 一种集成电路的布局生成方法及装置 |
CN116629189B (zh) * | 2023-07-19 | 2024-01-26 | 深圳市周励电子科技有限公司 | 一种集成电路的布局生成方法及装置 |
CN116842897A (zh) * | 2023-08-10 | 2023-10-03 | 正心元科技(杭州)有限公司 | 全流程布局布线增量优化方法、装置及计算机设备 |
CN116842897B (zh) * | 2023-08-10 | 2024-03-26 | 正心元科技(杭州)有限公司 | 全流程布局布线增量优化方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230409799A1 (en) | 2023-12-21 |
CN115017860B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115017860B (zh) | 布局布线同步的增量布局优化方法、装置及计算机设备 | |
US7111268B1 (en) | Post-layout optimization in integrated circuit design | |
JP4719265B2 (ja) | 確率的相互接続構造設計のためのシステムおよび方法 | |
US6651235B2 (en) | Scalable, partitioning integrated circuit layout system | |
CN113408224B (zh) | 利用网表局部再综合实现布局合法化的fpga布局方法 | |
US7689964B2 (en) | System and method for routing connections | |
US20060184906A1 (en) | Method and device for designing semiconductor integrated circuit | |
US7134112B1 (en) | Incremental routing in integrated circuit design | |
US20170023961A1 (en) | Method for generating power distribution network (pdn) model, and power distribution network analysis method and device | |
Manoranjan et al. | Qualifying relative timing constraints for asynchronous circuits | |
US6941532B2 (en) | Clock skew verification methodology for grid-based design | |
CN117151003B (zh) | 一种基于时钟域划分的fpga布局方法及装置 | |
CN113919266A (zh) | 可编程器件的时钟规划方法、装置、电子设备及存储介质 | |
JP4783268B2 (ja) | 半導体レイアウト設計装置 | |
US8171444B2 (en) | Layout design method, apparatus and storage medium | |
US20050120318A1 (en) | Apparatus and method for designing semiconductor integrated circuit | |
CN113919277A (zh) | 电路设计方法、平台及终端设备 | |
US20030074175A1 (en) | Simulation by parts method for grid-based clock distribution design | |
US20030074643A1 (en) | Unified database system to store, combine, and manipulate clock related data for grid-based clock distribution design | |
CN112183006A (zh) | 时延评估方法及装置、可读存储介质 | |
CN116842897B (zh) | 全流程布局布线增量优化方法、装置及计算机设备 | |
CN113987618B (zh) | 模型线路图的线路绘制方法、装置及电子设备 | |
US11144700B1 (en) | Grouping nets to facilitate repeater insertion | |
US20170061063A1 (en) | Integrated circuit with reduced routing congestion | |
Kai et al. | Tofu: A two-step floorplan refinement framework for whitespace reduction |
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 |