CN116306465A - 宏单元布局方法、设备及计算机可读存储介质 - Google Patents
宏单元布局方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116306465A CN116306465A CN202310375105.4A CN202310375105A CN116306465A CN 116306465 A CN116306465 A CN 116306465A CN 202310375105 A CN202310375105 A CN 202310375105A CN 116306465 A CN116306465 A CN 116306465A
- Authority
- CN
- China
- Prior art keywords
- macro
- layout
- cell
- unit
- current
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000007781 pre-processing Methods 0.000 claims abstract description 15
- 238000012549 training Methods 0.000 claims description 134
- 230000000875 corresponding effect Effects 0.000 claims description 89
- 239000011159 matrix material Substances 0.000 claims description 51
- 230000006870 function Effects 0.000 claims description 33
- 238000013528 artificial neural network Methods 0.000 claims description 29
- 239000002131 composite material Substances 0.000 claims description 28
- 238000013527 convolutional neural network Methods 0.000 claims description 24
- 238000005192 partition Methods 0.000 claims description 10
- 230000007774 longterm Effects 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 12
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012795 verification Methods 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/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/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Abstract
本申请公开了一种宏单元布局方法、设备及计算机可读存储介质,涉及集成电路技术领域。该宏单元布局方法包括以下步骤:获取待布局电路网表信息和已训练布局模型;对所述待布局电路网表信息进行预处理,获得当前布局状态;将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;根据所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态,并将新的当前布局状态再次输入已训练布局模型;在获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置后,生成对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。本申请解决了目前宏单元布局方法存在布局效果较差的技术问题。
Description
技术领域
本申请涉及集成电路技术领域,尤其涉及一种宏单元布局方法、设备及计算机可读存储介质。
背景技术
目前的芯片设计流程中,超大规模集成电路(VLSI,Very Large ScaleIntegration Circuit)物理设计大致可分为布图规划(floorplan)、布局(placement)、时钟树综合(clock tree synthesis)、布线(routing)、签核(sign off)五个阶段。布图规划主要步骤包括IO(Input/Output)布局,宏单元布局,电源规划,物理单元放置。
在现有方法中,对于宏单元布局的传统方法以启发式算法结合表示法和解析法这两种方法为主。但是启发式算法结合表示法得到的宏单元位置往往较为紧凑,易造成拥塞;而解析法将宏单元和标准单元一起混合摆放,易导致宏单元之间出现非常多的重叠,并且宏单元与标准单元之间的差异也使得后续合法化困难。因此,现有宏单元布局方法的布局效果较差。
发明内容
本申请的主要目的在于提供一种宏单元布局方法,旨在解决目前宏单元布局方法存在布局效果较差的技术问题。
为实现上述目的,本申请提供一种宏单元布局方法,所述宏单元布局方法包括以下步骤:
获取待布局电路网表信息和已训练布局模型;
对所述待布局电路网表信息进行预处理,获得当前布局状态;
将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;
根据所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态,并执行步骤:将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;
在获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置后,生成对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。
可选地,所述对所述待布局电路网表信息进行预处理,获得当前布局状态的步骤,包括:
从所述待布局电路网表信息中获取宏单元特征信息和宏单元连接信息;
对预设布局区域进行划分,获得各分割网格;
根据所述宏单元特征信息,确定各所述分割网格的宏单元密度,并根据所述宏单元密度,生成所述预设布局区域的宏单元密度图;
根据所述宏单元连接信息,生成所述预设布局区域的宏单元线网超图;
对所述宏单元特征信息进行特征提取,获得各宏单元节点特征;
对所述待布局电路网表信息的元数据进行特征提取,获得元数据特征;
根据所述宏单元特征信息和预设约束条件,确定所述预设布局区域的实时合法掩膜矩阵;
将所述宏单元密度图、所述宏单元线网超图、各所述宏单元节点特征、所述元数据特征和所述实时合法掩膜矩阵作为当前布局状态。
可选地,所述根据所述宏单元特征信息和预设约束条件,确定所述预设布局区域的实时合法掩膜矩阵的步骤,包括:
获取所述宏单元特征信息中待摆放宏单元的待摆放特征信息和已摆放宏单元的已摆放特征信息;
根据所述待摆放特征信息和所述已摆放特征信息,基于预设约束条件遍历所述待摆放宏单元摆放在各所述分割网格中对应的摆放结果,其中所述摆放结果包括所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域和所述待摆放宏单元允许摆放;
将所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域对应的分割网格标记为非法位置;
将所述待摆放宏单元允许摆放对应的分割网格标记为合法位置;
基于所述非法位置和所述合法位置,构建对应的实时合法掩膜矩阵。
可选地,所述已训练布局模型包括已训练图神经网络、已训练卷积神经网络和已训练策略网络,所述将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置的步骤,包括:
将所述宏单元密度图输入所述已训练卷积神经网络,获得对应的宏单元密度特征;
将各所述宏单元节点特征和所述宏单元线网超图输入所述已训练图神经网络,获得对应的宏单元全局节点特征,并确定所述宏单元全局节点特征中的待摆放节点特征;
对宏单元全局节点特征取平均值,获得对应的全局平均特征;
根据所述宏单元全局节点特征和待摆放节点特征,基于预设多头注意力机制,生成注意节点特征;
将所述宏单元密度特征、所述全局平均特征、所述注意节点特征和元数据特征拼接为宏单元复合特征;
将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,获得所述当前布局状态中待摆放宏单元的第一待摆放位置。
可选地,所述将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,获得所述当前布局状态中待摆放宏单元的第一待摆放位置的步骤,包括:
将所述宏单元复合特征输入已训练策略网络,获得对应的动作概率分布;
根据所述实时合法掩膜矩阵,对所述动作概率分布进行合法化处理,获得合法概率分布;
根据所述合法概率分布,确定所述当前布局状态中待摆放宏单元的第一待摆放位置。
可选地,在所述获取待布局电路网表信息和已训练布局模型的步骤之前,包括:
获取电路网表训练集和未训练布局模型;
对所述电路网表训练集进行预处理,获得训练布局状态;
将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;
根据所述第二摆放位置对所述训练布局状态进行更新,获得新的训练布局状态,并执行步骤:将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;
在获得所述电路网表训练集中所有训练宏单元的第二摆放位置后,生成对应的训练布局结果;
调用预设布局工具,基于所述训练布局结果进行标准单元布局和全局布线,获得布局布线结果;
根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值;
基于所述当前奖励值对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。
可选地,所述根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值的步骤,包括:
将所述布局布线结果输入预训练测算模型,测算得到所述布局布线结果的总线长、拥塞度和时序;
根据所述总线长、所述拥塞度和所述时序,基于预设奖励函数计算得到所述布局布线结果对应的当前奖励值。
可选地,所述未训练布局模型包括未训练图神经网络、未训练卷积神经网络、未训练策略网络和未训练估值网络,所述基于所述当前奖励值对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型的步骤,包括:
获取历史奖励值和所述估值网络的拟合估值;
根据所述历史奖励值、所述当前奖励值和预设折扣因子,计算得到长期折扣奖励;
根据所述长期折扣奖励、所述拟合估值,计算得到所述未训练策略网络和所述未训练估值网络对应的损失函数值;
根据所述损失函数值,对所述未训练策略网络、所述未训练估值网络、所述未训练图神经网络和所述未训练卷积神经网络进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。
此外,为实现上述目的,本申请还提供一种宏单元布局设备,所述宏单元布局设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的宏单元布局方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有宏单元布局程序,所述宏单元布局程序被处理器执行时实现如上任一项所述的宏单元布局方法的步骤。
本申请提出的一种宏单元布局方法、设备及计算机可读存储介质,通过获取待布局电路网表信息和已训练布局模型,进而对所述待布局电路网表信息进行预处理,获得当前布局状态。然后将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;根据所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态,并执行步骤:将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置。由此可以按照预设次序通过已训练布局模型对所述待布局电路网表信息中所有待摆放宏单元进行摆放,直至获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置。进而根据所有待摆放宏单元的第一摆放位置生成对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。本申请中通过表征当前宏单元布局状态的当前布局状态以及采用已训练布局模型输出的第一待摆放位置之间的交互,使得按照预设次序的待摆放宏单元放置在最优的位置,即避免了宏单元位置较为紧凑造成的拥塞。并且本申请通过针对宏单元进行布局,也避免了宏单元与标准单元进行混合摆放造成的电路单元重叠和合法化困难,有效提高了宏单元的布局效果,进而也提升了最终得到的布局布线效果。
附图说明
图1为本申请宏单元布局方法的第一实施例的流程示意图;
图2为本实施例涉及的宏单元结构示意图;
图3为本申请实施例方案涉及的生成宏单元密度图的场景示意图;
图4为本申请实施例方案中宏单元的摆放示意图;
图5为本申请实施例方案中实时合法掩膜矩阵的构建场景示意图;
图6为本申请宏单元布局方法的第二实施例的流程示意图;
图7为本申请实施例方案涉及的未训练布局模型的训练场景图;
图8为本申请实施例方案涉及的宏单元布局设备的示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了更好地描述本申请的技术方案,下面结合部分现有技术对本申请的宏单元布局方法进行说明:
目前的芯片设计流程中,超大规模集成电路(VLSI,Very Large ScaleIntegration Circuit)物理设计大致可分为布图规划(floorplan)、布局(placement)、时钟树综合(clock tree synthesis)、布线(routing)、签核(sign off)五个阶段。布图规划主要步骤包括IO(Input/Output)布局,宏单元布局,电源规划,物理单元放置。其中宏单元布局是比较关键的一步,对于后续芯片设计时序能否达到收敛,物理验证能否满足影响巨大。宏单元布局一直是芯片自动化设计工具中比较薄弱的环节。以往大多数芯片设计中,宏单元数目比较少,甚至没有,即使宏单元的面积远大于标准单元,但总的面积占比很低。后端工程师将宏单元摆放在芯片的四周,再根据一些规则微调,往往能够得到较好的宏单元布局结果。近年来,随着大数据处理的需求变多,芯片内部加入了储存模块,这导致宏单元的数目变多,而且宏单元的面积甚至达到芯片面积的一半以上。因此,高质量的自动化宏单元布局对于芯片物理设计至关重要。
在现有方法中,传统方法以启发式算法结合表示法为主。表示法用二叉树,链表等其他数据结构来表示宏单元布局的解,压缩解空间。启发式算法对解进行扰动优化,即可得到宏单元布局的结果。但是表示法表示的都是比较紧凑的宏单元布局,为的是减少芯片面积。而在实际物理设计中,芯片大小是固定的,宏单元位置不必过于紧凑,反而为了防止拥塞,宏单元位置之间应该保持一定距离。另一种主要方法是解析法,该方法将宏单元和标准单元一起混合摆放。这样会导致出现宏单元之间出现非常多的重叠,宏单元与标准单元的巨大差异也使得合法化困难。因此,现有宏单元布局方法的布局效果较差。
因此,本申请实施例通过获取待布局电路网表信息和已训练布局模型,进而对所述待布局电路网表信息进行预处理,获得当前布局状态。然后将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;根据所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态,并执行步骤:将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置。由此可以按照预设次序通过已训练布局模型对所述待布局电路网表信息中所有待摆放宏单元进行摆放,直至获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置。进而根据所有待摆放宏单元的第一摆放位置生成对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。本实施例中通过表征当前宏单元布局状态的当前布局状态以及采用已训练布局模型输出的第一待摆放位置之间的交互,使得按照预设次序的待摆放宏单元放置在最优的位置,即避免了宏单元位置较为紧凑造成的拥塞。并且本申请通过针对宏单元进行布局,也避免了宏单元与标准单元进行混合摆放造成的电路单元重叠和合法化困难,有效提高了宏单元的布局效果,进而也提升了最终得到的布局布线效果。
参照图1,图1为本申请宏单元布局方法的第一实施例的流程示意图。
如图1所示,本申请第一实施例提供了一种宏单元布局方法,所述宏单元布局方法包括以下步骤:
步骤S100,获取待布局电路网表信息和已训练布局模型;
本实施例中,需要说明的是,所述待布局电路网表信息为实现期望功能设计的网表,其中所述网表至少包含宏单元特征信息和宏单元连接信息,还可以包括标准单元特征信息。示例性地,待布局电路网表信息包括电路单元(即宏单元和标准单元)列表,以及线网列表/>,其中/>表示宏单元,数量为/>;/>表示标准单元,数量为/>;/>表示线网,数量为/>。可以理解的是,一条线网上可以连接至少两个电路单元。其中,待布局电路网表信息还可包含预设布局区域,所述预设布局区域一般是矩形,宽高为/>。此外,待布局电路网表信息也会包含跟待布局电路网表的工艺信息。
本实施例中,还需要说明的是,所述已训练布局模型包括已训练图神经网络、已训练卷积神经网络和已训练策略网络,所述已训练图神经网络和所述已训练卷积神经网络用于对待布局电路网表信息对应的当前布局状态进行特征提取,获得相应的宏单元复合特征。已训练策略网络用于根据所述宏单元复合特征和所述当前布局状态中的实时合法掩膜矩阵,输出所述当前布局状态中待摆放宏单元的第一待摆放位置。可以理解的是,所述已训练布局模型可以是提前训练得到的模型,也可以是实时训练得到的模型。
步骤S200,对所述待布局电路网表信息进行预处理,获得当前布局状态;
本实施例中,需要说明的是,为了便于后续已训练布局模型基于所述待布局电路网表信息作出相应的决策动作(即确定待摆放宏单元的第一摆放位置),需要对所述待布局电路网表信息进行预处理,以获得表征预设布局区域内当前宏单元布局状态的当前布局状态。示例性地,所述当前布局状态可以包括宏单元密度图、宏单元线网超图、各宏单元节点特征、元数据特征、实时合法掩膜矩阵以及待摆放宏单元的标识信息。所述预处理的方式包括分割预设布局区域、构建密度图、构建线网超图、特征提取、生成实时合法掩膜矩阵等。
作为一种示例,可以从所述待布局电路网表信息中获取宏单元特征信息和宏单元连接信息。对预设布局区域进行划分,获得各分割网格。然后根据所述宏单元特征信息,计算得到各所述分割网格的宏单元密度,并根据所述宏单元密度,生成所述预设布局区域的宏单元密度图。然后可以根据所述宏单元连接信息,生成所述预设布局区域的宏单元线网超图。进而对所述宏单元特征信息进行特征提取,获得各宏单元节点特征。并通过对所述待布局电路网表信息的元数据进行特征提取,获得元数据特征。然后根据预设约束条件、所述宏单元特征信息和待摆放宏单元的标识信息,确定所述预设布局区域的实时合法掩膜矩阵。进而将所述宏单元密度图、所述宏单元线网超图、各所述宏单元节点特征、所述元数据特征和所述实时合法掩膜矩阵作为当前布局状态。
作为另一种示例,所述待摆放宏单元的摆放顺序可以是按照面积从大至小的顺序进行摆放,从而避免面积较小的宏单元摆放完成后,较大面积的宏单元无法摆放的问题。当然还将所述宏单元按照面积大小分为不同的面积区间,从而所述待摆放宏单元的摆放顺序可以是按照面积区间从大至小的顺序进行摆放。
其中,步骤S200中所述对所述待布局电路网表信息进行预处理,获得当前布局状态的步骤,包括:
步骤S210,从所述待布局电路网表信息中获取宏单元特征信息和宏单元连接信息;
步骤S220,对预设布局区域进行划分,获得各分割网格;
步骤S230,根据所述宏单元特征信息,确定各所述分割网格的宏单元密度,并根据所述宏单元密度,生成所述预设布局区域的宏单元密度图;
步骤S240,根据所述宏单元连接信息,生成所述预设布局区域的宏单元线网超图;
步骤S250,对所述宏单元特征信息进行特征提取,获得各宏单元节点特征;
步骤S260,对所述待布局电路网表信息的元数据进行特征提取,获得元数据特征;
步骤S270,根据所述宏单元特征信息和预设约束条件,确定所述预设布局区域的实时合法掩膜矩阵;
步骤S280,将所述宏单元密度图、所述宏单元线网超图、各所述宏单元节点特征、所述元数据特征和所述实时合法掩膜矩阵作为当前布局状态。
本实施例中,需要说明的是,宏单元是由触发器、逻辑单元、暂存器等元件组成的具有预设功能的单元。宏单元特征信息包括宏单元的尺寸、位置、端口列表、摆放状态(即是否已摆放在预设布局区域内)等特征。宏单元通常为矩形块,宽高可记为,通常宏单元的宽高是固定的,但是也有面积固定,宽高不固定的宏单元。宏单元的位置坐标(即宏单元的中心点位置)可记为(/>)。宏单元的端口列表可表示,其中P(i,1),...,P(i,j)为宏单元i的端口。端口为凸多边形,但在宏单元布局阶段中宏单元的端口可被看成是一个点。关于所述端口的坐标,第/>个宏单元的第/>个端口有相对宏单元中心的偏移坐标/>,偏移坐标描述的是端口在宏单元上的分布。当宏单元的位置确定时,端口的实际坐标/>也可以得到确定。示例性地,宏单元的端口的实际坐标计算公式可以如下所示:
如图2所示,图2为本实施例涉及的宏单元结构示意图。图2中宏单元M10上存在某个端口P10,端口P10以宏单元M10的中心点为原点的偏移坐标为。当宏单元的位置改变时,端口的偏移坐标会发生改变,宏单元的宽高也发生改变,通过公式依然可以计算出端口的实际坐标。
作为一种示例,从所述待布局电路网表信息中获取宏单元特征信息和宏单元连接信息。通过对预设布局区域进行划分,获得若干个等大的分割网格。示例性地,可以将所述预设布局区域划分为n*n个分割网格。然后根据所述宏单元特征信息中各所述宏单元的摆放状态,获得摆放状态为已摆放的已摆放宏单元的尺寸和位置。根据各所述已摆放宏单元的尺寸和位置,计算得到各所述分割网格的宏单元面积。将各所述分割网格的宏单元面积除以分割网格的面积,则可以得到各所述分割网格的宏单元密度。进而可以根据所述宏单元密度,生成所述预设布局区域的宏单元密度图。示例性地,可以通过将各所述分割网格的宏单元密度转换为灰度值,然后基于各所述分割网格的灰度值,生成所述预设布局区域的宏单元密度图。参见图3,图3为本申请实施例方案涉及的生成宏单元密度图的场景示意图。图3中包括表征宏单元特征信息的特征信息图Z10,被划分为若干个分割网格的预设布局区域Q10,以及宏单元密度灰度图。通过所述特征信息图Z10可以计算得到预设布局区域Q10中各个分割网格的宏单元密度,进而通过查询预设宏单元密度与灰度值的映射表,得到预设布局区域Q10中各个分割网格的灰度值。由此基于所述灰度值,构建了与所述预设布局区域Q10对应的宏单元密度图。由于超图是对图的概括,其中一条边可以连接任意数量的顶点。而所述线网通常会连接多个电路单元,因此采用超图的形式可以更加准确地描述宏单元之间的连接关系(即线网)。因此,本实施例可以根据所述宏单元连接信息,生成所述预设布局区域内用于描述所述线网的宏单元线网超图。进而可以采用预训练编码网络对所述宏单元特征信息进行初步的特征提取,获得各宏单元节点特征;并采用预训练元数据编码网络对所述待布局电路网表信息的元数据进行特征提取,获得元数据特征。其中所述元数据可以包括所述待布局电路网表信息的基本数据,如线网数量、电路单元的类型(宏单元或标准单元)和数量等。
本实施例中还根据预设约束条件、所述宏单元特征信息和待摆放宏单元的标识信息,确定所述预设布局区域的实时合法掩膜矩阵。其中所述预设约束条件为宏单元之间不允许重叠,宏单元整体需要在预设布局区域内。所述预设约束条件可用公式表示如下:
其中,表示宏单元在横向上不超出预设布局区域,/>为宏单元的位置坐标的横坐标,/>为宏单元的宽,W为预设布局区域的宽;/>表示宏单元在纵向上不超出预设布局区域,/>为宏单元的位置坐标的纵坐标,/>为宏单元的高,H为预设布局区域的高。/>表示宏单元之间不存在重叠。
作为一种示例,可以将所述预设约束条件以掩膜矩阵的形式进行实现。可以通过获取所述宏单元特征信息中待摆放宏单元的待摆放特征信息和已摆放宏单元的已摆放特征信息。进而根据所述待摆放特征信息和所述已摆放特征信息,基于所述预设约束条件遍历所述待摆放宏单元摆放在各所述分割网格中对应的摆放结果,其中所述摆放结果包括所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域和所述待摆放宏单元允许摆放。从而可以将所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域对应的分割网格标记为非法位置。将所述待摆放宏单元允许摆放对应的分割网格标记为合法位置。从而确定当前的待摆放宏单元允许摆放的所有位置。进而基于所述非法位置和所述合法位置,构建对应的实时合法掩膜矩阵,用于将所述待摆放宏单元的第一摆放位置限制在预设约束条件下,以确保所述第一摆放位置均合法。
最终可以将所述宏单元密度图、所述宏单元线网超图、各所述宏单元节点特征、所述元数据特征和所述实时合法掩膜矩阵作为当前布局状态。
其中,步骤S270中所述根据所述宏单元特征信息和预设约束条件,确定所述预设布局区域的实时合法掩膜矩阵的步骤,包括:
步骤S271,获取所述宏单元特征信息中待摆放宏单元的待摆放特征信息和已摆放宏单元的已摆放特征信息;
步骤S272,根据所述待摆放特征信息和所述已摆放特征信息,基于预设约束条件遍历所述待摆放宏单元摆放在各所述分割网格中对应的摆放结果,其中所述摆放结果包括所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域和所述待摆放宏单元允许摆放;
步骤S273,将所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域对应的分割网格标记为非法位置;
步骤S274,将所述待摆放宏单元允许摆放对应的分割网格标记为合法位置;
步骤S275,基于所述非法位置和所述合法位置,构建对应的实时合法掩膜矩阵。
本实施例中,需要说明的是,在摆放所述待摆放宏单元时,所述待摆放宏单元的中心点(即宏单元的位置坐标对应的位置)可以与分割网格的中心点重合。当然可以理解的是,也可以是分割网格内的任一位置,但是需要将待摆放宏单元摆放在各分割网格的同一位置。示例性地,参照图4,图4为本申请实施例方案中宏单元的摆放示意图。图4中圆形为宏单元M11的中心点,×形为分割网格F11的中心点。在摆放宏单元M11时,宏单元M11的中心点与分割网格F11的中心点重合。在将宏单元M11摆放在其他分割网格上时,同样需要将宏单元M11的中心点与该分割网格的中心点重合。
作为一种示例,本申请通过所述宏单元特征信息各宏单元的摆放状态,将各所述宏单元划分为待摆放宏单元和已摆放宏单元。进而获取待摆放宏单元的待摆放特征信息和已摆放宏单元的已摆放特征信息;可以理解的是,待摆放宏单元的特征信息中至少包括待摆放宏单元的尺寸,当然待摆放宏单元的特征信息中也可以包括待摆放宏单元的位置,该位置对应的位置坐标为变量。已摆放宏单元的特征信息中至少包括待摆放宏单元的尺寸和位置。然后将所述待摆放宏单元依次放置在各所述分割网格中,根据所述待摆放特征信息、所述已摆放特征信息和预设约束条件,则可以确定遍历所述待摆放宏单元摆放在各所述分割网格中对应的摆放结果,其中所述摆放结果包括所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域和所述待摆放宏单元允许摆放。将所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域对应的分割网格标记为非法位置;将所述待摆放宏单元允许摆放对应的分割网格标记为合法位置。由此,则可以基于所述非法位置和所述合法位置,构建对应的实时合法掩膜矩阵。示例性地,所述实时合法掩膜矩阵是与所述预设布局区域内分割网格对应的0,1矩阵,0表示该分割网格对应的位置合法,可以将待摆放宏单元摆放在该位置,1则表示该分割网格对应的位置不合法,不可以将待摆放宏单元摆放在该位置。
参照图5,图5为本申请实施例方案中实时合法掩膜矩阵的构建场景示意图。图5中包括预设布局区域Q10,已摆放宏单元M0,待摆放宏单元M2。待摆放宏单元M2内存在“×”表示该位置为非法位置。通过将待摆放宏单元M2依次摆放在各所述分割网格中,获得对应的摆放结果,从而确定该分割网格对应的摆放结果是否为所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域或者所述待摆放宏单元允许摆放。从而可以构建对应的实时合法掩膜矩阵。
步骤S300,将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;
本实施例中,需要说明的是,所述已训练布局模型包括已训练图神经网络、已训练卷积神经网络和已训练策略网络,所述已训练图神经网络和所述已训练卷积神经网络用于对待布局电路网表信息对应的当前布局状态进行特征提取,获得相应的宏单元复合特征。已训练策略网络用于根据所述宏单元复合特征和所述当前布局状态中的实时合法掩膜矩阵,输出所述当前布局状态中待摆放宏单元的第一待摆放位置。可以理解的是,所述已训练布局模型可以是提前训练得到的模型,也可以是实时训练得到的模型。
由此,本实施例通过将所述当前布局状态输入已训练布局模型后,则可以通过已训练图神经网络、已训练卷积神经网络对所述当前布局状态进行特征提取以及特征组合,获得所述当前布局状态对应的宏单元复合特征,然后获取基于所述预设约束条件和所述宏单元特征信息构建的实时合法掩膜矩阵,进而将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,从而获得待摆放宏单元的第一待摆放位置。
其中,步骤S300中所述已训练布局模型包括已训练图神经网络、已训练卷积神经网络和已训练策略网络,所述将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置的步骤,包括:
步骤S310,将所述宏单元密度图输入所述已训练卷积神经网络,获得对应的宏单元密度特征;
步骤S320,将各所述宏单元节点特征和所述宏单元线网超图输入所述已训练图神经网络,获得对应的宏单元全局节点特征,并确定所述宏单元全局节点特征中的待摆放节点特征;
步骤S330,对宏单元全局节点特征取平均值,获得对应的全局平均特征;
步骤S340,根据所述宏单元全局节点特征和待摆放节点特征,基于预设多头注意力机制,生成注意节点特征;
步骤S350,将所述宏单元密度特征、所述全局平均特征、所述注意节点特征和元数据特征拼接为宏单元复合特征;
步骤S360,将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,获得所述当前布局状态中待摆放宏单元的第一待摆放位置。
本实施例中,通过将所述宏单元密度图输入所述已训练卷积神经网络,以使所述已训练卷积神经网络基于所述宏单元密度图对宏单元状态进行特征采样分析,输出表征宏单元全局分布的宏单元密度特征。示例性地,所述已训练卷积神经网络由第一卷积层、第二卷积层、第三卷积层和全连接层组成。其中第一卷积层,输出卷积通道32,卷积核大小8,步长4;第二卷积层,输出卷积通道64,卷积核大小4,步长2;第三卷积层,输出卷积通道32,卷积核大小3,步长1;全连接层,输入数据大小,输出向量维度496。示例性地,将所述宏单元密度图输入所述已训练卷积神经网络,输出对应的密度特征图,进而将所述密度特征图进行简化,获得所述宏单元密度图对应的密度特征向量作为所述宏单元密度特征。
进而通过将所述宏单元线网超图转换为稀疏邻接矩阵,将各所述宏单元节点特征和所述宏单元线网超图对应的稀疏邻接矩阵输入所述已训练图神经网络,以使所述已训练图神经网络输出对应的宏单元全局节点特征,并确定所述宏单元全局节点特征中的待摆放节点特征。其中所述待摆放节点特征为待摆放宏单元的节点特征。然后则可以对宏单元全局节点特征取平均值,获得表征预设布局区域全图信息特征的全局平均特征。进而根据所述宏单元全局节点特征和待摆放节点特征,基于预设多头注意力机制,生成注意节点特征,以使已训练策略网络基于注意节点特征针对待摆放宏单元进行优化。然后则可以将所述宏单元密度特征、所述全局平均特征、所述注意节点特征和当前布局状态中的元数据特征拼接为宏单元复合特征。该宏单元复合特征可全面地表征所述当前布局状态。从而可以将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,获得所述当前布局状态中待摆放宏单元的第一待摆放位置。可以理解的是,所述第一待摆放位置符合所述实时合法掩膜矩阵,从而满足预设约束条件。
其中,步骤S360中所述将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,获得所述当前布局状态中待摆放宏单元的第一待摆放位置的步骤,包括:
步骤S361,将所述宏单元复合特征输入已训练策略网络,获得对应的动作概率分布;
步骤S362,根据所述实时合法掩膜矩阵,对所述动作概率分布进行合法化处理,获得合法概率分布;
步骤S363,根据所述合法概率分布,确定所述当前布局状态中待摆放宏单元的第一待摆放位置。
本实施例中,通过将所述宏单元复合特征输入已训练策略网络,以使所述已训练策略网络输出对应的动作概率分布;然后根据所述实时合法掩膜矩阵,对所述动作概率分布进行合法化处理,获得合法概率分布。从而避免动作概率分布对应的位置不满足预设约束条件。示例性地,可以将所述动作概率分布再减去实时合法掩膜矩阵点乘最小数(趋于负无穷),然后经过归一化处理,则可以得到合法概率分布。其中归一化处理的softmax公式如下:
其中,zij为待摆放宏单元摆放在预设布局区域中分割网格(i,j)处的概率,e为自然常数。
进而可以根据所述合法概率分布,确定所述当前布局状态中待摆放宏单元的第一待摆放位置。示例性地,可以直接将合法概率分布最高的分割网格作为所述当前布局状态中待摆放宏单元的第一待摆放位置。
步骤S400,根据所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态,并执行步骤:将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;
由于每获得一个待摆放宏单元的第一待摆放位置,将该待摆放宏单元摆放在第一待摆放位置之后,之前的当前布局状态则无法表征摆放了该待摆放宏单元后的布局状态。因此需要获取新的待摆放宏单元的标识信息,并根据新的待摆放宏单元的标识信息和所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态。并执行步骤:将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;从而获得新的待摆放宏单元的第一待摆放位置,直至获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置。
步骤S500,在获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置后,生成对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。
本实施例通过在获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置后,则可以在预设布局区域内将所有待摆放宏单元摆放在对应的第一待摆放位置,以获得对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。
在本申请第一实施例中提供了一种宏单元布局方法,通过获取待布局电路网表信息和已训练布局模型,进而对所述待布局电路网表信息进行预处理,获得当前布局状态。然后将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;根据所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态,并执行步骤:将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置。由此可以按照预设次序通过已训练布局模型对所述待布局电路网表信息中所有待摆放宏单元进行摆放,直至获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置。进而根据所有待摆放宏单元的第一摆放位置生成对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。本实施例中通过表征当前宏单元布局状态的当前布局状态以及采用已训练布局模型输出的第一待摆放位置之间的交互,使得按照预设次序的待摆放宏单元放置在最优的位置,即避免了宏单元位置较为紧凑造成的拥塞。并且本申请通过针对宏单元进行布局,也避免了宏单元与标准单元进行混合摆放造成的电路单元重叠和合法化困难,有效提高了宏单元的布局效果,进而也提升了最终得到的布局布线效果。
参照图6,图6为本申请宏单元布局方法的第二实施例的流程示意图。
如图6所示,本申请第二实施例提供了一种宏单元布局方法,在所述获取待布局电路网表信息和已训练布局模型的步骤之前,包括:
步骤A10,获取电路网表训练集和未训练布局模型;
步骤A20,对所述电路网表训练集进行预处理,获得训练布局状态;
步骤A30,将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;
步骤A40,根据所述第二摆放位置对所述训练布局状态进行更新,获得新的训练布局状态,并执行步骤:将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;
步骤A50,在获得所述电路网表训练集中所有训练宏单元的第二摆放位置后,生成对应的训练布局结果;
步骤A60,调用预设布局工具,基于所述训练布局结果进行标准单元布局和全局布线,获得布局布线结果;
步骤A70,根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值;
步骤A80,基于所述当前奖励值对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。
本实施例中,需要说明的是,所述电路网表训练集为包括训练网表,还包括对于该训练网表工程师摆放的第一宏单元解,以及未训练布局模型摆放的第二宏单元解,标签为根据预设奖励函数和基于第一宏单元解和第二宏单元解生成的布局布线结果的当前奖励值。所述网表至少包含训练用的宏单元特征信息和宏单元连接信息,还可以包括标准单元特征信息、预设布局区域、电路工艺信息。
本实施例中,还需要说明的是,所述未训练布局模型包括未训练图神经网络、未训练卷积神经网络和未训练策略网络,所述未训练图神经网络和所述未训练卷积神经网络用于对电路网表训练集对应的训练布局状态进行特征提取,获得相应的训练宏单元复合特征。未训练策略网络用于根据所述训练宏单元复合特征和所述训练布局状态中的训练合法掩膜矩阵,输出所述训练布局状态中训练宏单元的第二待摆放位置。
本实施例通过获取电路网表训练集和未训练布局模型,对所述电路网表训练集进行预处理,获得训练布局状态;将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;根据所述第二摆放位置对所述训练布局状态进行更新,获得新的训练布局状态,并执行步骤:将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;在获得所述电路网表训练集中所有训练宏单元的第二摆放位置后,生成对应的训练布局结果。然后则可以调用预设布局工具,基于所述训练布局结果进行标准单元布局和全局布线,获得布局布线结果。示例性地,所述预设布局工具可以是Synopsys的Astro。进而可以根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值。其中所述预设奖励函数包括总线长项、拥塞度项和时序项中的至少一项。基于所述当前奖励值和预设损失函数值,计算得到对应的损失函数值,根据该损失函数值通过反向传播对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。由此本实施例可以在进一步对于宏单元布局结果对后续布局布线过程中总线长、拥塞度或时序进行优化。
其中,步骤A70中所述根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值的步骤,包括:
步骤B10,将所述布局布线结果输入预训练测算模型,测算得到所述布局布线结果的总线长、拥塞度和时序;
步骤B20,根据所述总线长、所述拥塞度和所述时序,基于预设奖励函数计算得到所述布局布线结果对应的当前奖励值。
本实施例中,需要说明的是,所述预训练测算模型为用于对所述布局布线结果的总线长、拥塞度和时序等信息进行测量计算的模型。
本实施例通过将所述布局布线结果输入预训练测算模型,测算得到所述布局布线结果的总线长、拥塞度和时序。然后根据所述总线长、所述拥塞度和所述时序,基于预设奖励函数计算得到所述布局布线结果对应的当前奖励值。
示例性地,所述预设奖励函数R= -αwirelenght-βcongestion-γtiming。其中α、β、γ为根据对于总线长、拥塞度和时序的需求设置的权重。wirelenght为所述布局布线结果的总线长,可以是半周长线长,也可以是斯坦纳树密线长。congestion为所述布局布线结果的拥塞度,可以采用矩形线密度进行表征。timing为所述布局布线结果的时序,即时序路径的时延,包括总时延和最差时延。
其中,步骤A80中所述未训练布局模型包括未训练图神经网络、未训练卷积神经网络、未训练策略网络和未训练估值网络,所述基于所述当前奖励值对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型的步骤,包括:
步骤C10,获取历史奖励值和所述估值网络的拟合估值;
步骤C20,根据所述历史奖励值、所述当前奖励值和预设折扣因子,计算得到长期折扣奖励;
步骤C30,根据所述长期折扣奖励、所述拟合估值,计算得到所述未训练策略网络和所述未训练估值网络对应的损失函数值;
步骤C40,根据所述损失函数值,对所述未训练策略网络、所述未训练估值网络、所述未训练图神经网络和所述未训练卷积神经网络进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。
本实施例中,将所述未训练图神经网络和所述未训练卷积神经网络输出的训练宏单元复合特征输入所述估值网络,则可以获得所述估值网络对应的拟合估值。然后再根据所述历史奖励值、所述当前奖励值和预设折扣因子,计算得到长期折扣奖励作为所述未训练策略网络和所述未训练估值网络的回报值。进而可以根据所述长期折扣奖励、所述拟合估值和预设损失函数,计算得到所述未训练策略网络和所述未训练估值网络对应的损失函数值;根据所述损失函数值,通过反向传播对所述未训练策略网络、所述未训练估值网络、所述未训练图神经网络和所述未训练卷积神经网络进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。
本发明第二实施例中,通过获取电路网表训练集和未训练布局模型;对所述电路网表训练集进行预处理,获得训练布局状态;将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;根据所述第二摆放位置对所述训练布局状态进行更新,获得新的训练布局状态,并执行步骤:将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;在获得所述电路网表训练集中所有训练宏单元的第二摆放位置后,生成对应的训练布局结果;调用预设布局工具,基于所述训练布局结果进行标准单元布局和全局布线,获得布局布线结果;根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值;基于所述当前奖励值对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。由此本实施例通过基于所述训练布局结果得到布局布线结果和预设奖励函数计算得到对应的当前奖励值,然后再基于所述当前奖励值对所述未训练布局模型进行参数更新,从而可以保障所述已训练布局模型对于后续布局布线过程的优化效果,进而有效提高了宏单元的布局效果。
作为一种示例,参照图7,图7为本申请实施例方案涉及的未训练布局模型的训练场景图。如图7所示,所述未训练布局模型包括未训练图神经网络edge-GNN,未训练卷积神经网络CNN、未训练策略网络policy network和未训练估值网络value network。将电路网表训练集中的宏单元特征信息node features经节点特征编码器nodedata encoder进行初步特征提取,获得各训练宏单元节点特征。将电路网表训练集中的训练元数据metadata经元数据编码器metadata encoder进行特征提取,获得训练元数据特征。训练布局状态包括各训练宏单元节点特征、训练元数据特征、训练版图特征图、训练宏单元线网超图和训练合法掩膜矩阵。将训练版图特征图输入所述未训练卷积神经网络CNN,获得对应的训练版图特征图,然后将训练版图特征图经展平(flatten)处理后获得训练版图特征;将各训练宏单元节点特征和训练宏单元线网超图对应的稀疏邻接矩阵sparse-adj-matrix输入所述未训练图神经网络edge-GNN,获得对应的训练全局节点特征,并确定所述训练全局节点特征中的训练待摆放节点特征next-macro-index;对训练全局节点特征取平均值(mean),获得对应的训练全局平均特征;根据所述训练全局节点特征和训练待摆放节点特征next-macro-index,基于预设多头注意力机制multi-head attention,生成训练注意节点特征;将所述训练版图特征、所述训练全局平均特征、所述训练注意节点特征和元数据特征拼接(concatenate)为训练宏单元复合特征;将所述训练宏单元复合特征和所述训练合法掩膜矩阵输入未训练策略网络policy network,输出对应的动作概率分布action-probability,进而根据动作概率分布action-probability确定所述训练布局状态中训练宏单元的第二摆放位置。此外,训练全局平均特征还输入预训练测算网络pretrainnetwork,计算得到线长wire-length、线密度density等信息,进而未训练估值网络valuenetwork基于所述训练宏单元复合特征和预设奖励函数,计算得到对应的拟合估值value。进而基于该拟合估值value和预设损失函数计算得到对应的损失函数值,根据该损失函数值通过反向传播对所述未训练布局模型中的所有神经网络进行参数更新,直至所述未训练布局模型收敛,得到所述已训练布局模型。
如图8所示,图8为本申请实施例方案涉及的宏单元布局设备的结构示意图。
示例性地,所述宏单元布局设备可以是PC(Personal Computer,个人计算机)、平板电脑、便携式计算机或者服务器等设备。
如图8所示,所述宏单元布局设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如触摸屏或键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是非易失性存储器(Non-Volatile Memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图8中示出的设备结构并不构成对所述宏单元布局设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及宏单元布局应用程序。
在图8所示的设备中,处理器1001可以用于调用存储器1005中存储的宏单元布局应用程序,并执行如上各实施例中宏单元布局方法的操作。
此外,本申请实施例还提出一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例提供的宏单元布局方法中的操作,具体步骤此处不再过多赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,车辆,或者网络设备等)执行本申请各个实施例所述的宏单元布局方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种宏单元布局方法,其特征在于,所述宏单元布局方法包括以下步骤:
获取待布局电路网表信息和已训练布局模型;
对所述待布局电路网表信息进行预处理,获得当前布局状态;
将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;
根据所述第一待摆放位置对所述当前布局状态进行更新,获得新的当前布局状态,并执行步骤:将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置;
在获得所述待布局电路网表信息中所有待摆放宏单元的第一待摆放位置后,生成对应的宏单元布局结果,并基于所述宏单元布局结果进行宏单元布局。
2.如权利要求1所述的宏单元布局方法,其特征在于,所述对所述待布局电路网表信息进行预处理,获得当前布局状态的步骤,包括:
从所述待布局电路网表信息中获取宏单元特征信息和宏单元连接信息;
对预设布局区域进行划分,获得各分割网格;
根据所述宏单元特征信息,确定各所述分割网格的宏单元密度,并根据所述宏单元密度,生成所述预设布局区域的宏单元密度图;
根据所述宏单元连接信息,生成所述预设布局区域的宏单元线网超图;
对所述宏单元特征信息进行特征提取,获得各宏单元节点特征;
对所述待布局电路网表信息的元数据进行特征提取,获得元数据特征;
根据所述宏单元特征信息和预设约束条件,确定所述预设布局区域的实时合法掩膜矩阵;
将所述宏单元密度图、所述宏单元线网超图、各所述宏单元节点特征、所述元数据特征和所述实时合法掩膜矩阵作为当前布局状态。
3.如权利要求2所述的宏单元布局方法,其特征在于,所述根据所述宏单元特征信息和预设约束条件,确定所述预设布局区域的实时合法掩膜矩阵的步骤,包括:
获取所述宏单元特征信息中待摆放宏单元的待摆放特征信息和已摆放宏单元的已摆放特征信息;
根据所述待摆放特征信息和所述已摆放特征信息,基于预设约束条件遍历所述待摆放宏单元摆放在各所述分割网格中对应的摆放结果,其中所述摆放结果包括所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域和所述待摆放宏单元允许摆放;
将所述待摆放宏单元与所述已摆放宏单元重叠、所述待摆放宏单元超出预设布局区域对应的分割网格标记为非法位置;
将所述待摆放宏单元允许摆放对应的分割网格标记为合法位置;
基于所述非法位置和所述合法位置,构建对应的实时合法掩膜矩阵。
4.如权利要求2所述的宏单元布局方法,其特征在于,所述已训练布局模型包括已训练图神经网络、已训练卷积神经网络和已训练策略网络,所述将所述当前布局状态输入已训练布局模型,获得所述当前布局状态中待摆放宏单元的第一待摆放位置的步骤,包括:
将所述宏单元密度图输入所述已训练卷积神经网络,获得对应的宏单元密度特征;
将各所述宏单元节点特征和所述宏单元线网超图输入所述已训练图神经网络,获得对应的宏单元全局节点特征,并确定所述宏单元全局节点特征中的待摆放节点特征;
对宏单元全局节点特征取平均值,获得对应的全局平均特征;
根据所述宏单元全局节点特征和待摆放节点特征,基于预设多头注意力机制,生成注意节点特征;
将所述宏单元密度特征、所述全局平均特征、所述注意节点特征和元数据特征拼接为宏单元复合特征;
将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,获得所述当前布局状态中待摆放宏单元的第一待摆放位置。
5.如权利要求4所述的宏单元布局方法,其特征在于,所述将所述宏单元复合特征和所述实时合法掩膜矩阵输入已训练策略网络,获得所述当前布局状态中待摆放宏单元的第一待摆放位置的步骤,包括:
将所述宏单元复合特征输入已训练策略网络,获得对应的动作概率分布;
根据所述实时合法掩膜矩阵,对所述动作概率分布进行合法化处理,获得合法概率分布;
根据所述合法概率分布,确定所述当前布局状态中待摆放宏单元的第一待摆放位置。
6.如权利要求1至5中任一项所述的宏单元布局方法,其特征在于,在所述获取待布局电路网表信息和已训练布局模型的步骤之前,包括:
获取电路网表训练集和未训练布局模型;
对所述电路网表训练集进行预处理,获得训练布局状态;
将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;
根据所述第二摆放位置对所述训练布局状态进行更新,获得新的训练布局状态,并执行步骤:将所述训练布局状态输入未训练布局模型,获得所述训练布局状态中训练宏单元的第二待摆放位置;
在获得所述电路网表训练集中所有训练宏单元的第二摆放位置后,生成对应的训练布局结果;
调用预设布局工具,基于所述训练布局结果进行标准单元布局和全局布线,获得布局布线结果;
根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值;
基于所述当前奖励值对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。
7.如权利要求6所述的宏单元布局方法,其特征在于,所述根据所述布局布线结果和预设奖励函数,计算得到对应的当前奖励值的步骤,包括:
将所述布局布线结果输入预训练测算模型,测算得到所述布局布线结果的总线长、拥塞度和时序;
根据所述总线长、所述拥塞度和所述时序,基于预设奖励函数计算得到所述布局布线结果对应的当前奖励值。
8.如权利要求6所述的宏单元布局方法,其特征在于,所述未训练布局模型包括未训练图神经网络、未训练卷积神经网络、未训练策略网络和未训练估值网络,所述基于所述当前奖励值对所述未训练布局模型进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型的步骤,包括:
获取历史奖励值和所述估值网络的拟合估值;
根据所述历史奖励值、所述当前奖励值和预设折扣因子,计算得到长期折扣奖励;
根据所述长期折扣奖励、所述拟合估值,计算得到所述未训练策略网络和所述未训练估值网络对应的损失函数值;
根据所述损失函数值,对所述未训练策略网络、所述未训练估值网络、所述未训练图神经网络和所述未训练卷积神经网络进行参数更新,直至所述未训练布局模型收敛,获得已训练布局模型。
9.一种宏单元布局设备,其特征在于,所述宏单元布局设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的宏单元布局方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有宏单元布局程序,所述宏单元布局程序被处理器执行时实现如权利要求1至8中任一项所述的宏单元布局方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310375105.4A CN116306465A (zh) | 2023-04-10 | 2023-04-10 | 宏单元布局方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310375105.4A CN116306465A (zh) | 2023-04-10 | 2023-04-10 | 宏单元布局方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306465A true CN116306465A (zh) | 2023-06-23 |
Family
ID=86830617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310375105.4A Pending CN116306465A (zh) | 2023-04-10 | 2023-04-10 | 宏单元布局方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306465A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911245A (zh) * | 2023-07-31 | 2023-10-20 | 曲阜师范大学 | 一种集成电路的布局方法、系统、设备和存储介质 |
-
2023
- 2023-04-10 CN CN202310375105.4A patent/CN116306465A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116911245A (zh) * | 2023-07-31 | 2023-10-20 | 曲阜师范大学 | 一种集成电路的布局方法、系统、设备和存储介质 |
CN116911245B (zh) * | 2023-07-31 | 2024-03-08 | 曲阜师范大学 | 一种集成电路的布局方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7413580B2 (ja) | ニューラルネットワークを使用した集積回路フロアプランの生成 | |
Saraswat et al. | A framework for multi-objective facility layout design | |
Li et al. | Calibrating cellular automata based on landscape metrics by using genetic algorithms | |
Goldie et al. | Placement optimization with deep reinforcement learning | |
US10733332B2 (en) | Systems for solving general and user preference-based constrained multi-objective optimization problems | |
Zhang et al. | Improved whale optimisation algorithm for two-sided disassembly line balancing problems considering part characteristic indexes | |
JP2008507038A (ja) | 最適化を用いて電子回路を設計する方法および装置 | |
CN116306465A (zh) | 宏单元布局方法、设备及计算机可读存储介质 | |
CN114154412A (zh) | 基于深度强化学习的优化芯片布局系统及方法 | |
Xu et al. | GoodFloorplan: Graph convolutional network and reinforcement learning-based floorplanning | |
Zou et al. | A memory-based simulated annealing algorithm and a new auxiliary function for the fixed-outline floorplanning with soft blocks | |
Lai et al. | Maskplace: Fast chip placement via reinforced visual representation learning | |
Kim et al. | An integrated approach for the concurrent determination of the block layout and the input and output point locations based on the contour distance | |
Liu et al. | Efficient multilayer obstacle-avoiding rectilinear Steiner tree construction based on geometric reduction | |
Javadi et al. | A hybrid electromagnetism-like algorithm for dynamic inter/intra-cell layout problem | |
CN115470741A (zh) | 用于光源掩模协同优化的方法、电子设备和存储介质 | |
Bigi et al. | A new solution method for equilibrium problems | |
Tao et al. | Multi-objective optimization of water distribution networks based on non-dominated sequencing genetic algorithm | |
CN116467981A (zh) | 集成电路布局方法、设备及计算机可读存储介质 | |
WO2022241782A1 (zh) | 一种集成电路的电路单元布局方法及装置 | |
Moiseev et al. | Timing-constrained power minimization in VLSI circuits by simultaneous multilayer wire spacing | |
Pérez-Rúa | Solver-free heuristics to retrieve feasible points for offshore wind farm collection system | |
Xie et al. | Deep learning for routability | |
Li* et al. | A new approach to parting surface design for plastic injection moulds using the subdivision method | |
Liao et al. | Reinforcement learning for routing |
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 |