CN117807950A - 一种考虑模块对称性的布图规划方法、系统及电子设备 - Google Patents
一种考虑模块对称性的布图规划方法、系统及电子设备 Download PDFInfo
- Publication number
- CN117807950A CN117807950A CN202410232063.3A CN202410232063A CN117807950A CN 117807950 A CN117807950 A CN 117807950A CN 202410232063 A CN202410232063 A CN 202410232063A CN 117807950 A CN117807950 A CN 117807950A
- Authority
- CN
- China
- Prior art keywords
- module
- symmetry
- modules
- symmetrical
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000002922 simulated annealing Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 33
- 238000000137 annealing Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response 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/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/06—Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开一种考虑模块对称性的布图规划方法、系统及电子设备,涉及集成电路领域。本发明根据输入的网表和模块信息对电路模块的对称性进行识别,得到对称组。选取组中每个对称对其中之一作为代表建立对称树,以表示对称组的内部结构。根据对称树以及非对称模块的结构建立CB‑tree布图表示,并使用模拟退火算法基于CB‑tree结构进行优化,从而实现考虑模块对称性的布图规划。本发明能够有效降低布图规划的复杂度,在提高布图规划质量的同时保证对称性约束。
Description
技术领域
本发明涉及集成电路领域,特别是涉及一种考虑模块对称性的布图规划方法、系统及电子设备。
背景技术
物理设计是大规模集成数字电路设计的一个关键阶段,它将逻辑设计转化为可以在硅片中实现的物理结构,这个过程涉及到电路布图、布局、布线、时序优化等问题。通过设计一系列物理约束和目标,确保芯片满足性能、功耗、面积等方面的需求。在进行物理设计时,布图规划是第一步也是极为关键的步骤。
布图规划的重要性主要体现在以下几个方面。其一,布图规划阶段是层次规划的一部分。在层次规划中,对整个芯片进行分层次的划分,将逻辑结构组织成层次结构,形成层次化的电路模块。布图规划则在这个基础上进行,决定各个模块的相对位置。其二,布图规划的合理与否直接关系到芯片的时序收敛、布线通畅、电源稳定以及良品率。在一些复杂的超大规模集成电路的设计中,在电路布图时就需要对供电网络、时钟树等网络进行规划,可见布图规划对芯片的完整规划与设计意义重大。其三,布图规划涉及到芯片的面积利用,通过合理地分配模块位置,满足整体的面积约束,对实现高集成度、小尺寸芯片至关重要。
随着芯片设计复杂度的急剧增加,层次规划、IP模块被广泛使用,布图规划中模块的位置排布至关重要。在数字电路布图规划中,对称布图的版图结果规整美观,利于后道物理工艺加工制造,降低制造成本。其次,对称性模块相互靠近可以有效降低模块间互连线长度,降低信号传播延迟,提高芯片的响应速度,降低功耗。对称性约束的复杂主要体现在对称种类的多样性以及数据结构表示的复杂性。对称性约束主要有三种对称类型,包括一维垂直对称、一维水平对称以及二维对称,且关于自身对称称之为自对称。对称模块通常由多个模块组成一个整体,具有不规则外形。同时,对称模块复杂的位置关系导致其难以用常规的数据结构表示出来。
传统的对称性处理包括识别、表示和处理。首先,对称性识别主要通过人工操作,在布图规划前设置的对称模块。对称模块的特征包括长宽相似,以及与其他模块间的连线相似。在这种情况下,将其对称放置一方面可以在几何上获得较好的排布,另一方面可以减少线长。传统方法通过人工找到需要对称放置的模块,并在输入文件中手动设置为对称模块。当模块数较多,且连线复杂时,难以高效准确的判断对称模块。在对称性表示上,未将对称模块层次化表示,导致在布图时,需要判断模块的对称性并搜索与其对称的模块,大大提升了算法复杂度。其次在对称性处理时,使用较为复杂的边界节点的方式表示对称模块的轮廓。传统的B-tree定义边界节点定义模块的边界,但是由于对称模块通常具有不规则的外形,导致需要多个边界节点约束外框,在算法上较为复杂。
发明内容
为解决现有技术存在的上述问题,本发明提供了一种考虑模块对称性的布图规划方法、系统及电子设备。
为实现上述目的,本发明提供了如下方案。
一种考虑模块对称性的布图规划方法,包括:根据输入信息对电路中模块的对称性进行识别,得到对称组;将电路中不属于对称组的模块作为非对称模块;所述输入信息包括模块的尺寸信息和模块的线网信息;所述对称组包括多个对称对;每一对称对包括一个模块或一对模块。
选取所述对称组中对称对的对称代表,并基于所述对称代表构建对称树;所述对称代表为所述对称对中的一半模块;所述一半模块为一个模块或半个模块。
基于所述对称树和所述非对称模块生成CB-tree。
对所述对称树和CB-tree进行模拟退火处理。
根据模拟退火处理后的对称树确定所述对称组中对称对的一半模块的坐标。
根据退火处理后的CB-tree进行布图规划,基于对称组中对称对选中的模块的坐标更新另一半对称组坐标。
可选地,根据输入信息对电路中模块的对称性进行识别,得到对称组,具体包括:对模块的线网信息进行建模,以获取每个模块所在线网的序号。
基于每个模块所在线网的序号确定当前簇的线网相似度,并根据线网相似度对模块进行分裂层次聚类,得到对称模块和非对称模块;其中,初始状态下,将电路中所有的模块作为一个簇。
可选地,基于每个模块所在线网的序号确定当前簇的线网相似度,并根据线网相似度对模块进行分裂层次聚类,得到对称模块和非对称模块,具体包括:基于每个模块所在线网的序号确定当前簇的线网相似度,并判断所述线网相似度是否大于阈值,得到判断结果。
当所述判断结果为线网相似度大于阈值时,则将当前簇中的元素确定为对称模块。
当所述判断结果为线网相似度小于等于阈值时,确定当前簇中两两元素间的Jaccard距离。
将Jaccard距离最远的两个元素作为中心,对当前簇中剩余的元素进行聚类。
确定每类中元素的形状相似度。
将形状相似度最小的两个模块组成对称对。
若簇中的模块为奇数,无法全部成对,或模块形状差距超过设定要求,无法构成对称对,则处理为自对称模块。
可选地,模拟退火处理的损失函数为:。
其中,表示面积,/>表示总线长,/>表示面积的权重,/>表示总线长的权重,/>表示损失函数值,/>表示模拟退火处理对象。
可选地,模拟退火处理的过程包括:每次退火运算进行多次扰动,每次扰动时,记录前一次的损失函数值,并计算当前的损失函数值。
当前一次的损失函数值大于当前的损失函数值时,接受当前扰动,并统计接受次数。
当前一次的损失函数值小于等于当前的损失函数值时,按照设定概率接受当前扰动。
当扰动结束后,基于接受次数确定接受率。
当前一次的损失函数值小于当前的损失函数值时,增大线网相似性阈值。
可选地,所述设定概率为:;式中,/>表示前一次的损失函数值,/>表示当前的损失函数值,/>表示模拟退火处理的当前温度,e表示自然对数函数的底数。
可选地,对退火处理后的CB-tree进行布图规划,具体包括:以DFS顺序遍历整个退火处理后的CB-tree得到节点,对每个节点进行布图。
可选地,以DFS顺序遍历整个退火处理后的CB-tree得到节点,对每个节点进行布图,具体包括:确定当前节点在退火处理后的CB-tree中的位置。
当当前节点为其父节点的左子节点时,确定当前节点的位置处于其父节点的右侧区域。
搜索当前节点的父节点的右侧长度为第一设定值的区域。
若右侧长度为第一设定值的区域中没有其他节点,则将当前节点的父节点的y轴坐标确定为当前节点的y轴坐标。
若右侧长度为第一设定值的区域中存在其他节点,则获取这些节点的位置信息,基于这些节点的位置信息确定当前节点的y轴坐标。
当当前节点为其父节点的右子节点时,则确定当前节点的位置处于其父节点的上方区域,并将其父节点的x轴坐标确定为当前节点的x轴坐标。
搜索当前节点的父节点的上方宽度为第一设定值、高度为第二设定值的区域。
当上方宽度为第一设定值、高度为第二设定值的区域中没有其他节点时,则基于当前节点的父节点的y轴坐标和当前节点的父节点的高度确定当前节点的y轴坐标。
当上方宽度为第一设定值、高度为第二设定值的区域中存在其他节点时,则获取这些节点的位置信息,并基于这些节点的位置信息确定当前节点的y轴坐标。
若当前节点是对称节点,则基于当前节点的位置信息确定与当前节点对称的节点的位置信息。
基于每一节点的位置信息确定各模块的面积和各模块间的连接线长。
直至递归遍历整个退火处理后的CB-tree,返回布图结果;所述布图结果包括各模块的面积、各模块间的连接线长以及各模块的位置信息。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明根据输入信息对电路中模块的对称性进行识别,得到对称组,并将选取对称组中对称对的一半模块作为模块代表对称树,以表示对称组的内部结构。对对称树以及基于对称树和非对称模块生成的CB-tree进行模拟退火处理,能够对模块的线网信息进行动态调整。根据退火处理后的CB-tree进行布图规划,基于对称组中对称对选中的模块的坐标更新另一半对称组坐标,能够大大降低布图规划的复杂度,在提高布图规划质量的同时,保证对称性约束。
进一步,本发明提供了一种考虑模块对称性的布图规划系统,所述系统用于实施上述提供的考虑模块对称性的布图规划方法;所述系统包括:对称组识别模块、对称树构建模块、CB-tree生成模块、模拟退火处理模块、坐标确定模块和布图规划模块。
对称组识别模块,用于根据输入信息对电路中模块的对称性进行识别,得到对称组;将电路中不属于对称组的模块作为非对称模块;所述输入信息包括模块的尺寸信息和模块的线网信息;所述对称组包括多个对称对;每一对称对包括一个模块或一对模块。
对称树构建模块,用于选取所述对称组中对称对的对称代表,并基于所述对称代表构建对称树;所述对称代表为所述对称对中的一半模块;所述一半模块为一个模块或半个模块。
CB-tree生成模块,用于基于所述对称树和所述非对称模块生成CB-tree。
模拟退火处理模块,用于对所述对称树和CB-tree进行模拟退火处理。
坐标确定模块,用于根据模拟退火处理后的对称树确定所述对称组中对称对的一半模块的坐标。
根据退火处理后的CB-tree进行布图规划,基于对称组中对称对选中的模块的坐标更新另一半对称组坐标。
再进一步,本发明还提供了一种电子设备,该电子设备包括:存储器和处理器。
存储器,用于存储计算机程序。
处理器,与所述存储器连接,用于调取并执行所述计算机程序,以实施上述提供的考虑模块对称性的布图规划方法。
因本发明提供的系统和电子设备实现的技术效果与本发明上述提供的考虑模块对称性的布图规划方法实现的技术效果相同,故在此不再进行赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的考虑模块对称性的布图规划方法的流程图。
图2为本发明提供的CB-tree的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种考虑模块对称性的布图规划方法、系统及电子设备,能够大大降低布图规划的复杂度,在提高布图规划质量的同时,保证对称性约束。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提供的一种考虑模块对称性的布图规划方法、系统及电子设备,主要分为以下几步:第一,根据输入的模块、线网等信息对模块建模并对对称模块自动识别。第二,适用模拟退火对对称树进行扰动操作,以求获得更好的布图结果。第三,根据对称树布图,并获取对称组的另一半坐标。第四,根据CB-tree进行布图规划。
基于此,如图1所示,本发明提供的考虑模块对称性的布图规划方法,包括:步骤100-步骤105。
步骤100:根据输入信息对电路中模块的对称性进行识别,得到对称组。将电路中不属于对称组的模块作为非对称模块。输入信息包括模块的尺寸信息和模块的线网信息。对称组包括多个对称对。每一对称对包括一个模块或一对模块。
在实际应用过程中,该步骤的实现过程可以为:(1)对模块的线网信息进行建模,以获取每个模块所在线网的序号。例如,对于模块,有以下集合,表示模块/>位于1、2、3号线网中。
。
(2)基于每个模块所在线网的序号确定当前簇的线网相似度,并根据线网相似度对模块进行分裂层次聚类,得到对称模块和非对称模块。其中,初始状态下,将电路中所有的模块作为一个簇。
Step1:计算当前簇所有模块的Jaccard距离,即两个或多个集合的交集与并集的比值,以用于衡量两个集合的相似度,其计算公式为:。
其中,为相似度,/>和/>均表示为当前簇的元素总个数。
Step2:判断相似度与阈值的关系。若相似度/>大于阈值,且簇中的元素大于1,则当前簇的元素为一个对称组。若不满足阈值,则计算两两元素之间的Jaccard距离。
Step3:将Jaccard距离最远的两个元素作为中心,对剩余的元素进行聚类。其中,与中心Jaccard距离较近的聚为一类。
Step4:重复Step1、Step2、Step3,直到将所有元素完成聚类。
Step5:计算对称组内部元素的形状相似度。两个元素的形状相似度为:。
其中,和/>分别表示模块的长和宽,/>和/>的下角标1和2表示对称组内部元素,/>和/>分别表示长和宽对应的权重,且二者和为1。将最小的两个模块组成对称对,若簇的元素为奇数,存在无法成对的模块或者模块间形状相似度较大,则设置为自对称模块。
步骤101:选取对称组中对称对的对称代表,并基于对称代表构建对称树。对称代表为对称对中的一半模块。一半模块为一个模块或半个模块。
例如,以对称组为例说明对称树的具体构建过程:其中,/>为自对称模块,/>表示一维水平对称模块。拆分自对称模块/>,即将/>等分为子部分/>,并选取子部分/>作为代表。/>则选取/>作为对称代表。使用对称代表/>构建对称树,将其初始化为一个只有左节点的二叉树。
步骤102:基于对称树和非对称模块生成CB-tree。基于上述描述,例如,将整个对称组作为一个节点,如,与其他非对称模块共同组成CB-tree,如图2所示。图2中/>和是对称代表组成的二叉树,此处是模拟退火后的结果,退火前/>应当是/>的左节点。/>是作为上述二叉树的代表,加入到左侧的CB-tree中。/>、/>、/>、/>均为非对称模块。
步骤103:对对称树和CB-tree进行模拟退火处理。
在实际应用过程中,该步骤的实现过程可以为:(1)模拟退火参数设置。为了保证对称组内部的对称性,并得到全局最优解,模拟退火处理包括对CB-tree和对称组内部进行扰动。模拟退火处理的损失函数为:。
其中,表示损失函数值,/>表示整体面积,/>表示总线长。/>和/>为各自的权重,/>。
设置初温度,步长/>,则每次退火运算后的温度为:/>。其中,为退火运算后的温度,/>为上一次退火运算后的温度。
每次退火运算进行次扰动。每次扰动时,记录前一次的损失函数值/>,并计算当前的损失函数值/>。
当时,接受当前扰动,并统计接受次数/>。
当时,则按照设定概率/>接受当前扰动。
当前温度的扰动结束后,计算接受率为:/>。
其中表示扰动次数,/>表示接受次数。
考虑到对称模块会影响面积等因素,因此使用模拟退火的损失函数进行线网相似性约束。其中,线网相似性约束主要通过线网相似性阈值实现。更新后的线网相似性阈值为:/>。
其中,为更新前的线网相似性阈值,/>为更新步长。
若当前损失函数值大于前一时刻损失函数值,说明对称模块较多,导致面积质量下降,此时增大线网相似性阈值,减少对称模块的数量。
步骤104:根据模拟退火处理后的对称树确定对称组中对称对的一半模块的坐标。
在实际应用过程中,对称组内坐标(绝对坐标、相对坐标、以及各个模块的坐标)的确定过程举例为:根据上述对称树和CB-tree的关系,对称组只选取其中的一半模块加入CB-tree中,在CB -tree退火后,需要加入另一半。例如,根据对称树布图,得到的坐标。根据对称,/>的坐标计算公式如下:/>。
其中,表示模块/>的新坐标,/>表示模块/>的原始坐标,/>表示对称部分的原始外框,/>表示模块/>,即与模块/>对称的模块的坐标,/>表示模块/>的宽。
据此可以获得水平对称的对称组相对坐标。垂直对称等类型同理。设置模块的属性为:/>。其中,/>表示模块/>的宽,/>表示模块/>的高,/>表示模块/>的外框,/>表示模块/>的y轴边框。
对CB-tree退火后,得到模块的坐标。以模块/>为例,更新对称组内部的坐标为:/>。式中,/>表示退火后模块/>的x轴坐标,/>表示退火后模块/>的y轴坐标。
步骤105:对退火处理后的CB-tree进行布图规划,基于对称组中对称对选中的模块的坐标更新另一半对称组坐标。
在实际应用过程中,以DFS顺序遍历整个CB-tree,对每个节点进行布图。具体算法如下所示。
Step1:判断当前节点在CB-tree中的位置。设当前节点为,其父节点为/>。
Step2:判断节点相对于/>的位置。若/>为/>的左子节点,根据CB-Tree布图表示,则/>应处于/>的右侧最上方未放置区域。当前节点/>的x轴坐标为:/>。其中,/>表示当前节点/>的x轴坐标,/>表示父节点/>的x轴坐标。
同时,搜索父节点的右侧长度为第一设定值/>的区域,若没有其他模块,则:。其中,/>表示当前节点/>的y轴坐标,/>表示父节点/>的y轴坐标。
若存在其他模块,则获取这些模块的位置信息,为:。
其中,表示右侧模块的y坐标集合,/>表示这些模块的y轴坐标,/>表示第/>个模块的y轴坐标,/>表示第/>个模块的高度。
Step3:若当前节点为父节点/>的右子节点,则当前节点/>应处于父节点/>的上方。此时,当前节点的x坐标为:/>。
同时,搜索父节点节点的上方宽度为第一设定值/>,高度为第二设定值/>的区域,若没有其他模块,则当前节点/>的y轴坐标为:/>。其中,/>表示父节点/>的高度。
若存在其他模块,则获取这些模块的位置信息,为:
。
Step4:若当前节点是对称节点,则先进行Step2和Step3。为了确保对称组的所有对称模块都能在区域搜索中找到,将所有模块的位置信息加入索引。
Step5:递归遍历整个CB-tree,重复Step1、Step2、Step3和Step4,直到全部节点放置完毕,返回整个布图结果。整个布图结果包括总面积、线长以及各个模块的位置信息。
基于上述描述,将对称性识别、模拟退火及CB-tree布图等步骤结合,整个布图规划的算法如下:输入:线网、模块信息。
输出:布图结果。
Step1:初始化温度,线网相似度阈值。识别对称性,并构建对称模块。
Step2:进行模拟退火操作。获取1-4之间的随机数,根据/>选择扰动。
若,则旋转一个非对称模块。若/>,则交换两个模块。若/>,则移动一个模块。若/>,则对对称组内部进行扰动。
获取1-2之间的随机数。若/>,移动对称组内部的一个模块。若/>,随机改变一个对称代表。计算对称组的相对坐标并更新其绝对坐标。
Step3:对CB-tree进行布图规划。对规划后的结果计算其损失,并更新线网相似度阈值,重新识别对称性并构建对称模块。
Step4:重复Step2和Step3,计算拒绝率、更新温度和线网相似性阈值。并判断若外框符合要求,且拒绝率满足要求或温度小于设定值,输出布图结果。
在多个测试电路上实施本发明上述提供的方法,结果均表明该方法可以高质量完成布图规划,且保证对称性约束。以ami33为基准(benchmark),使用三种方法(方法A是无对称性约束的B-tree,方法B是有对称性约束的HB/>-tree,方法C是本发明提出的方法)进行了测试,并获得了可靠的结果。每个方法都运行了五次。根据实验结果,方法A的线长和面积最小,效果最好,运行平均时间约为6s。方法B完成了对称性约束,但线长和面积较方法A增大约20%,布图质量较差。同时平均时间大幅提升,约30s,且方差较大,不稳定。方法C在完成了对称性的同时,面积和线长相较于方法A相差在5%之内,且平均运行时间约为15s。可见,本发明提出的布图规划方法可以保证与传统方法在面积、线长等常规约束相差不大的情况下,实现对称性约束,具有在实际对称性约束布局场景下的应用潜力。
综上,相比现有布图规划方式,本发明的创新点主要体现在:1、能够完成对称性的自动识别。本发明提出线网相似度,形状相似度的概念,用Jaccard距离量化线网相似度,结合分裂层次聚类进行对称性识别。同时将分裂层次聚类算法与模拟退火结合,动态地调整分裂层次聚类的阈值。
2、能够实现对称性的数据结构表示。本发明提出了一种新的对称模块表示方式。对于自对称模块,将其拆分为两个相互对称的模块。一维垂直对称、一维水平对称、二维对称则选取对称部分代表整个对称组,构建对称树,用于表示对称组内部的结构。同时使用一个节点表示整个对称组在CB-tree中的位置。
3、能够使用CB-tree进行高效布图规划。对称组的放置与普通模块相同。本发明将所有对称模块加入模块索引,可以保留对称模块的轮廓信息。在模拟退火时,不需要考虑因退火导致的轮廓节点的复杂处理。
进一步,本发明提供了一种考虑模块对称性的布图规划系统,这一系统主要用于实施上述提供的考虑模块对称性的布图规划方法。该系统包括:对称组识别模块、对称树构建模块、CB-tree生成模块、模拟退火处理模块、坐标确定模块和布图规划模块。
对称组识别模块,用于根据输入信息对电路中模块的对称性进行识别,得到对称组。将电路中不属于对称组的模块作为非对称模块。输入信息包括模块的尺寸信息和模块的线网信息。对称组包括多个对称对。每一对称对包括一个模块或一对模块。
对称树构建模块,用于选取对称组中对称对的对称代表,并基于对称代表构建对称树。对称代表为对称对中的一半模块。一半模块为一个模块或半个模块。
CB-tree生成模块,用于基于对称树和非对称模块生成CB-tree。
模拟退火处理模块,用于对对称树和CB-tree进行模拟退火处理。
坐标确定模块,用于根据模拟退火处理后的对称树确定对称组中对称对的一半模块的坐标。
根据退火处理后的CB-tree进行布图规划,基于对称组中对称对选中的模块的坐标更新另一半对称组坐标。
再进一步,本发明还提供了一种电子设备,该电子设备包括:存储器和处理器。
存储器用于存储计算机程序。
处理器与存储器连接,主要用于调取并执行计算机程序,以实施上述提供的考虑模块对称性的布图规划方法。
此外,上述的存储器中的计算机程序通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种考虑模块对称性的布图规划方法,其特征在于,包括:
根据输入信息对电路中模块的对称性进行识别,得到对称组;将电路中不属于对称组的模块作为非对称模块;所述输入信息包括模块的尺寸信息和模块的线网连接信息;所述对称组包括多个对称对;每一对称对包括一个模块或一对模块;
选取所述对称组中对称对的对称代表,并基于所述对称代表构建对称树;所述对称代表为所述对称对中的一半模块;所述一半模块为一个模块或半个模块;
基于所述对称树和所述非对称模块生成CB-tree;
对所述对称树和CB-tree进行模拟退火处理;
根据模拟退火处理后的对称树确定所述对称组中对称对的一半模块的坐标;
根据退火处理后的CB-tree进行布图规划,基于对称组中对称对选中的模块的坐标更新另一半对称组坐标。
2.根据权利要求1所述的考虑模块对称性的布图规划方法,其特征在于,根据输入信息对电路中模块的对称性进行识别,得到对称组,具体包括:
对模块的线网信息进行建模,以获取每个模块所在线网的序号;
基于每个模块所在线网的序号确定当前簇的线网相似度,并根据线网相似度对模块进行分裂层次聚类,得到对称模块和非对称模块;其中,初始状态下,将电路中所有的模块作为一个簇。
3.根据权利要求2所述的考虑模块对称性的布图规划方法,其特征在于,基于每个模块所在线网的序号确定当前簇的线网相似度,并根据线网相似度对模块进行分裂层次聚类,得到对称模块和非对称模块,具体包括:
基于每个模块所在线网的序号确定当前簇的线网相似度,并判断所述线网相似度是否大于阈值,得到判断结果;
当所述判断结果为线网相似度大于阈值时,则将当前簇中的元素确定为对称模块;
当所述判断结果为线网相似度小于等于阈值时,确定当前簇中两两元素间的Jaccard距离;
将Jaccard距离最远的两个元素作为中心,对当前簇中剩余的元素进行聚类;
确定每类中元素的形状相似度;
将形状相似度最小的两个模块组成对称对;
若簇中的模块为奇数,无法全部成对,或模块形状差距超过设定要求,无法构成对称对,则处理为自对称模块。
4.根据权利要求1所述的考虑模块对称性的布图规划方法,其特征在于,模拟退火处理的损失函数为:
;
其中,表示面积,/>表示总线长,/>表示面积的权重,/>表示总线长的权重,表示损失函数值,/>表示模拟退火处理对象。
5.根据权利要求4所述的考虑模块对称性的布图规划方法,其特征在于,模拟退火处理的过程包括:
每次退火运算进行多次扰动,每次扰动时,记录前一次的损失函数值,并计算当前的损失函数值;
当前一次的损失函数值小于当前的损失函数值时,接受当前扰动,并统计接受次数;
当前一次的损失函数值小于等于当前的损失函数值时,按照设定概率接受当前扰动;
当扰动结束后,基于接受次数确定接受率;
当前一次的损失函数值小于当前的损失函数值时,增大线网相似性阈值。
6.根据权利要求5所述的考虑模块对称性的布图规划方法,其特征在于,所述设定概率为:;式中,/>表示前一次的损失函数值,/>表示当前的损失函数值,/>表示模拟退火处理的当前温度,e表示自然对数函数的底数。
7.根据权利要求1所述的考虑模块对称性的布图规划方法,其特征在于,对退火处理后的CB-tree进行布图规划,具体包括:以DFS顺序遍历整个退火处理后的CB-tree得到节点,对每个节点进行布图。
8.根据权利要求7所述的考虑模块对称性的布图规划方法,其特征在于,以DFS顺序遍历整个退火处理后的CB-tree得到节点,对每个节点进行布图,具体包括:
确定当前节点在退火处理后的CB-tree中的位置;
当当前节点为其父节点的左子节点时,确定当前节点的位置处于其父节点的右侧区域;
搜索当前节点的父节点的右侧长度为第一设定值的区域;
若右侧长度为第一设定值的区域中没有其他节点,则将当前节点的父节点的y轴坐标确定为当前节点的y轴坐标;
若右侧长度为第一设定值的区域中存在其他节点,则获取这些节点的位置信息,基于这些节点的位置信息确定当前节点的y轴坐标;
当当前节点为其父节点的右子节点时,则确定当前节点的位置处于其父节点的上方区域,并将其父节点的x轴坐标确定为当前节点的x轴坐标;
搜索当前节点的父节点的上方宽度为第一设定值、高度为第二设定值的区域;
当上方宽度为第一设定值、高度为第二设定值的区域中没有其他节点时,则基于当前节点的父节点的y轴坐标和当前节点的父节点的高度确定当前节点的y轴坐标;
当上方宽度为第一设定值、高度为第二设定值的区域中存在其他节点时,则获取这些节点的位置信息,并基于这些节点的位置信息确定当前节点的y轴坐标;
若当前节点是对称节点,则基于当前节点的位置信息确定与当前节点对称的节点的位置信息;
基于每一节点的位置信息确定各模块的面积和各模块间的连接线长;
直至递归遍历整个退火处理后的CB-tree,返回布图结果;所述布图结果包括各模块的面积、各模块间的连接线长以及各模块的位置信息。
9.一种考虑模块对称性的布图规划系统,其特征在于,所述系统用于实施如权利要求1-8任意一项所述的考虑模块对称性的布图规划方法;所述系统包括:
对称组识别模块,用于根据输入信息对电路中模块的对称性进行识别,得到对称组;将电路中不属于对称组的模块作为非对称模块;所述输入信息包括模块的尺寸信息和模块的线网信息;所述对称组包括多个对称对;每一对称对包括一个模块或一对模块;
对称树构建模块,用于选取所述对称组中对称对的对称代表,并基于所述对称代表构建对称树;所述对称代表为所述对称对中的一半模块;所述一半模块为一个模块或半个模块;
CB-tree生成模块,用于基于所述对称树和所述非对称模块生成CB-tree;
模拟退火处理模块,用于对所述对称树和CB-tree进行模拟退火处理;
坐标确定模块,用于根据模拟退火处理后的对称树确定所述对称组中对称对的一半模块的坐标;
根据退火处理后的CB-tree进行布图规划,基于对称组中对称对选中的模块的坐标更新另一半对称组坐标。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,与所述存储器连接,用于调取并执行所述计算机程序,以实施如权利要求1-8任意一项所述的考虑模块对称性的布图规划方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410232063.3A CN117807950B (zh) | 2024-03-01 | 2024-03-01 | 一种考虑模块对称性的布图规划方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410232063.3A CN117807950B (zh) | 2024-03-01 | 2024-03-01 | 一种考虑模块对称性的布图规划方法、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117807950A true CN117807950A (zh) | 2024-04-02 |
CN117807950B CN117807950B (zh) | 2024-05-03 |
Family
ID=90421980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410232063.3A Active CN117807950B (zh) | 2024-03-01 | 2024-03-01 | 一种考虑模块对称性的布图规划方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117807950B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113367A1 (en) * | 2007-10-31 | 2009-04-30 | Springsoft, Inc. | Analog ic placement using symmetry-islands |
US20090235219A1 (en) * | 2007-10-31 | 2009-09-17 | Springsoft Usa, Inc. | Hierarchical analog ic placement subject to symmetry, matching and proximity constraints |
US20170206298A1 (en) * | 2016-01-20 | 2017-07-20 | Anaglobe Technology, Inc. | Method for analog circuit placement |
CN116167320A (zh) * | 2023-01-10 | 2023-05-26 | 清华大学 | 一种模拟集成电路对称约束的自动布局方法与装置 |
-
2024
- 2024-03-01 CN CN202410232063.3A patent/CN117807950B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113367A1 (en) * | 2007-10-31 | 2009-04-30 | Springsoft, Inc. | Analog ic placement using symmetry-islands |
US20090235219A1 (en) * | 2007-10-31 | 2009-09-17 | Springsoft Usa, Inc. | Hierarchical analog ic placement subject to symmetry, matching and proximity constraints |
US20170206298A1 (en) * | 2016-01-20 | 2017-07-20 | Anaglobe Technology, Inc. | Method for analog circuit placement |
CN116167320A (zh) * | 2023-01-10 | 2023-05-26 | 清华大学 | 一种模拟集成电路对称约束的自动布局方法与装置 |
Non-Patent Citations (2)
Title |
---|
HUI-FANG TSAO 等: "A Corner Stitching Compliant B*-tree Representation and Its Applications to Analog Placemen", 2011 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN (ICCAD), 15 November 2011 (2011-11-15) * |
PO-HUNG LIN 等: "Analog Placement Based on Symmetry-Island Formulation", IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, vol. 28, no. 06, 30 June 2009 (2009-06-30) * |
Also Published As
Publication number | Publication date |
---|---|
CN117807950B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11847397B1 (en) | Barycenter compact model to determine IR drop exact solution for circuit network | |
CN111291525B (zh) | 考虑总线和非总线线网的层分配方法 | |
CN112181867B (zh) | 基于多目标遗传算法的片上网络内存控制器布局方法 | |
CN109086437A (zh) | 一种融合Faster-RCNN和Wasserstein自编码器的图像检索方法 | |
CN111914500B (zh) | 一种快速单磁通量子rsfq电路布局方法和装置 | |
CN112528591A (zh) | 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法 | |
US7296252B2 (en) | Clustering techniques for faster and better placement of VLSI circuits | |
CN115983189B (zh) | 一种自适应网格的模拟集成电路版图布线方法及系统 | |
CN112395822B (zh) | 时延驱动的非曼哈顿结构Steiner最小树构建方法 | |
CN112183007B (zh) | 一种多个fpga的设计分割方法 | |
CN116151324A (zh) | 基于图神经网络的rc互连延时预测方法 | |
CN115544947A (zh) | 基于遗传算法的大规模集成电路布局优化方法 | |
CN117422041A (zh) | 模拟芯片自动化布线模型训练方法及自动化布线方法 | |
CN115526140A (zh) | 一种考虑先进制程约束和单元移动的全局布线方法 | |
CN112183001B (zh) | 一种基于超图的集成电路的多级聚类方法 | |
CN117807950B (zh) | 一种考虑模块对称性的布图规划方法、系统及电子设备 | |
CN112668276A (zh) | 一种基于层次化划分的布图规划方法 | |
US9830416B2 (en) | Method for analog circuit placement | |
TW202409879A (zh) | 具有人類專家質量的基於學習的宏安置 | |
CN116401992A (zh) | 一种节点路由路径优化方法及装置 | |
Laskar et al. | A survey on VLSI floorplanning: its representation and modern approaches of optimization | |
CN113822008B (zh) | 基于多引脚同时扩散搜索的超大规模集成电路布线方法 | |
US8832630B2 (en) | Apparatus and method for aiding in designing electronic circuits | |
CN115081381A (zh) | 基于图神经网络的芯片布图规划方法、装置及存储介质 | |
Bairamkulov et al. | Graph-Based Power Network Routing for Board-Level High Performance Systems |
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 |