CN116562218B - 一种基于强化学习实现矩形宏单元的布图规划方法和系统 - Google Patents
一种基于强化学习实现矩形宏单元的布图规划方法和系统 Download PDFInfo
- Publication number
- CN116562218B CN116562218B CN202310493297.9A CN202310493297A CN116562218B CN 116562218 B CN116562218 B CN 116562218B CN 202310493297 A CN202310493297 A CN 202310493297A CN 116562218 B CN116562218 B CN 116562218B
- Authority
- CN
- China
- Prior art keywords
- macro
- reinforcement learning
- matrix
- rectangular
- macrocell
- 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
- 230000002787 reinforcement Effects 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 49
- 239000011159 matrix material Substances 0.000 claims abstract description 105
- 230000006870 function Effects 0.000 claims abstract description 21
- 230000007613 environmental effect Effects 0.000 claims abstract description 7
- 230000009471 action Effects 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000012549 training Methods 0.000 claims description 8
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000011176 pooling Methods 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 claims 1
- 101150011258 Crppa gene Proteins 0.000 abstract 1
- 238000012163 sequencing technique Methods 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 17
- 230000001186 cumulative effect Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000004931 aggregating effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000002699 waste material Substances 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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/092—Reinforcement learning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Architecture (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种基于强化学习实现矩形宏单元的布图规划方法,包含:根据公开数据集ispd2005整理宏单元和标准单元信息;用GCN对宏单元编码;将宏单元按照面积从大到小排序,将排好顺序的宏单元信息和宏单元编码作为双线性模型的输入,提取环境特征;根据宏单元大小计算掩模矩阵确定当前宏单元可摆放的范围;将环境特征作为强化学习策略网络的输入,策略网络输出宏单元摆放位置的概率;根据策略网络的输出和掩模矩阵确定宏单元的位置;奖励函数设为总线长、拥塞程度和布局密度的加权和。还包括一种基于强化学习实现矩形宏单元的布图规划系统。本发明在满足宏单元互相不相交的约束条件下,为用强化学习求解不同大小的矩形宏单元的布图规划问题提供了一种解决方案。
Description
技术领域
本发明与芯片的物理设计有关,具体为用强化学习算法对芯片中的元件做布图规划,具体涉及一种基于强化学习实现矩形宏单元的布图规划方法和系统。
背景技术
芯片是电子设备最重要的组成部分,它承担着运算和存储功能。随着芯片制程工艺的不断进步,芯片面积更小,功耗更优,但是集成的晶体管数量变得更多,设计流程更加复杂,使得一个芯片的平均设计制造周期将近26周。在芯片制造流程中,芯片的物理设计是芯片设计流程中最耗时的一环,它直接影响了芯片的面积、功耗、性能。布图规划和布局是芯片物理设计中的重要组成部分,因此,开发出设计周期更短、功耗和性能更优的芯片设计方法显得尤为重要。
芯片布图规划问题,是二维矩形装箱问题的一个具体应用,并且是一个多目标的优化问题。布图规划问题,以每个节点的大小形状、引脚的位置和节点之间的连接关系作为输入,以最小化总线长、功耗、面积等为目标,将所有单元互不相交地摆放在芯片画布上。近些年,强化学习在决策问题中显现出了独特的优势,因此受到了广泛的关注。在2020年,Google团队将芯片布局过程与下棋类比,率先将强化学习应用在芯片布局中,缩短了芯片布局时间,并且达到了人类设计师的水平。
在强化学习实现芯片布图规划问题中,通常用0-1矩阵描述智能体的动作空间,这使得动作空间变得非常大,增加强化学习的训练难度。对于形状不完全相同的宏单元,用矩阵描述的动作空间,较大的宏单元容易造成宏单元相交,然而较小的宏单元容易造成空间浪费,使得布图规划结果不合理。芯片布图规划和布局的结果直接影芯片布线,在布图规划阶段估计布线拥塞程度,可以增加布线的成功率。因此,降低训练难度,获得合理的布图规划,以及对总线长、拥塞程度等优化目标的估计是在用强化学习方法进行布图规划设计的过程中需要解决的重要问题。
发明内容
本发明要克服现有技术的上述缺点,提供一种基于强化学习实现矩形宏单元的布图规划方法和系统。
基于强化学习实现不同大小的矩形宏单元的布图规划方法,包含如下步骤:
S1:根据宏单元、标准单元、网表等信息对宏单元和标准单元进行初始编码,然后根据节点初始编码和网表的图结构进一步得到宏单元的编码;
S2:根据宏单元的面积大小按照降序排列,确定强化学习中智能体的摆放宏单元的顺序;
S3:用规则网格将矩形芯片画布划分为若干个矩形区域,同时用矩阵中的每个元素与矩形区域一一对应,获得离散的芯片画布,矩阵中每个元素的值由策略网络决定,该矩阵是智能体的动作空间;
S4:根据动作空间和宏单元的大小和位置信息,用0或1对动作空间再次编码,获得掩模矩阵,然后根据掩模矩阵限制智能体的行动范围;
S5:根据宏单元和标准单元的位置通过虚拟布线,计算总线长、拥塞程度和布局密度,并取三者的加权和作为强化学习的奖励函数;
S6:取总线长、拥塞程度和布局密度的加权和作为强化学习的奖励函数,根据奖励函数用PPO算法训练强化学习模型。
进一步,步骤S1中将宏单元和标准单元的编码包含性质、宽、高、引脚数量、与其直接相连的宏单元数量和标准单元数量以及位置。
进一步,步骤S1中采用图卷积神经网络聚合宏单元及其周边节点的信息得到宏单元的编码,并将宏单元的编码作为强化学习的环境特征。
进一步,步骤S2中,将宏单元按照面积从大到小排序,作为强化学习阶段智能体摆放宏单元位置的顺序。
进一步,步骤S3所述的矩形区域,是离散化后的智能体的动作空间,与动作空间相对应的矩阵是策略网络的输出。
进一步,步骤S4所述的掩模矩阵与策略网络的输出矩阵维数相同。
进一步,步骤S4所述的掩模矩阵根据当前宏单元的宽和高以及已经确定位置的宏单元的大小计算得到,然后与策略网络的输出相结合实现限制智能体行动范围的目的。
进一步,步骤S4所述的掩模矩阵,在当前掩模矩阵下,如果智能体没有合适的摆放区域时,通过扩大掩模矩阵的行数或列数,增加当前宏单元可布局区域,然后,再对扩大后的掩模矩阵用最大池化方法降维,使得掩模矩阵与策略空间的维数保持一致。
进一步,步骤S5所述的拥塞程度的估计,取两棵单树干斯坦纳树的交点作为网络的起点,连接网络中所有引脚;根据网格的宽和高计算每个引脚所属的网格;定义损失矩阵计算网格水平边对应的拥塞程度矩阵CH和竖直边对应的拥塞程度矩阵Cver,以及与每个区域相对应的通孔走线数量矩阵Cvia;计算与每个网格相对应的累计损失;设起点的累计损失为0;遍历每个网格只需计算从起点到区域的四个顶点的累计损失值即可,损失计算方法如下:
1)起点右下方网格的累计损失计算方法是:
与损失值对应的网格位置是:
2)起点右上方网格的累计损失计算方法是:
与损失值对应的网格位置是:
3)起点左下方网格的累计损失计算方法是:
与损失值对应的网格位置是:
4)起点左上方网格的累计损失计算方法是:
与损失值对应的网格位置是:
最后,根据累计损失矩阵,从引脚开始一步一步退回到起点,输出虚拟布线路径,然后根据路径更新拥塞程度矩阵;通孔走线数量,根据前一步方向和当前这一步方向的内积判断:
1)如果则说明布线方向发生变化即由水平方向转变为竖直方向或者由竖直方向转变为水平方向,此时需要经过通孔改变布线方向,因此通孔的走线数量增加;
2)如果则说明布线方向未发生变化,此时不需要经过通孔。根据三个矩阵CH、Cver和Cvia计算所有元素的平均值作为拥塞程度。
进一步,步骤S6所述的奖励函数为:
R=-λ1sign(WL-Bestw)-λ2sign(Cong-Bestc)-λ3sign(D-Bestd)。 (9)本发明还涉及一种基于强化学习实现矩形宏单元的布图规划系统,包含:
宏单元编码模块,用于根据宏单元、标准单元、网表等信息对宏单元和标准单元进行初始编码,然后根据节点初始编码和网表的图结构进一步得到宏单元的编码;
宏单元的摆放顺序确定模块,根据宏单元的面积大小按照降序排列,确定强化学习中智能体的摆放宏单元的顺序;
动作空间模块,用规则网格将矩形布图规划区域划分为若干个矩形区域,同时用矩阵中的每个元素与矩形区域一一对应,获得离散化后的动作空间。
掩模矩阵模块,根据动作空间和宏单元的大小和位置信息,用0或1对动作空间再次编码,获得掩模矩阵,然后根据掩模矩阵限制智能体的行动范围;
总线长、拥塞程度和布局密度计算模块,根据宏单元和标准单元的位置通过虚拟布线,计算总线长、拥塞程度和布局密度;
强化学习模型训练模块,取总线长、拥塞程度和布局密度的加权和作为强化学习的奖励函数,根据奖励函数用PPO算法训练强化学习模型。
本发明的工作原理和创新点是:基于图卷积神经网络提取强化学习阶段环境特征;宏单元在布图规划过程中需满足互不重叠的要求,根据矩形宏单元的特点,通过设计掩模矩阵,限制强化学习过程中智能体的行动范围,以实现宏单元互不重叠的约束条件;通过调整网格划分增加宏单元可以布局的范围,并保证了掩模矩阵既包含细分后的宏单元可布局区域又与策略网络输出矩阵具有相同的维数;设计虚拟布线算法,粗略估计拥塞程度,根据布线规则计算三个方向上的拥塞程度计算路径损失,然后采用动态规划方法实现虚拟布线。
本发明的优点是:设计掩模矩阵限制智能体行动规则,解决了在强化学习方法中,智能体根据策略网络随机决定矩形宏单元位置时容易出现宏单元重叠的现象;通过动态调整网格划分增加宏单元可布局区域,并使得掩模矩阵的维数与策略网络的输出矩阵的维数保持一致;设计虚拟布线方法,在布图规划阶段估计拥塞程度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1用强化学习实现不同形状矩形宏单元的布图规划问题的整体流程图;
图2用强化学习实现不同形状矩形宏单元的布图规划问题的网络结构图;
图3(a)—图3(e)是掩模矩阵示意图。图3(a)芯片画布网格划分与初始掩模矩阵;图3(b)掩模矩阵计算方法示意图;图3(c)当前宏单元不可放置区域;图3(d)当前宏单元可以放置区域与掩模矩阵;图3(e)划分子网格增大可放置区域范围;
图4(a)—图4(g)是虚拟布线示意图。图4(a)网格水平边的拥塞矩阵;图4(b)网格竖直边的拥塞矩阵;图4(c)网格通孔走线数量矩阵;图4(d)一个网络在画布中的位置;图4(e)从起点到区域右下角的布线方向;图4(f)网络的布线效果;图4(g)根据损失矩阵确定具体路径。
图5本发明的系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例,仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。为便于描述,对实施例中用到的符号加以说明。用超图表示节点以及网表信息,其中V={v1,v2,...,vn}表示节点集合,记vi为第i个节点,节点集合包含宏单元和标准单元,不失一般性,设有M个宏单元节点,令节点集V中前M个节点为宏单元,记宏单元节点集合为VM={v1,v2,...,vM};E={net1net2,...,netN}表示网表的集合,neti表示第i个网络,N为网表包含的网络的个数。用/>表示与节点vi存在直接连接关系的节点的集合。
本发明的目的是提供一种基于强化学习实现不同形状的矩形宏单元的布图规划方法,首先根据宏单元、标准单元和网表等信息,用GCN对宏单元编码;然后,通过设计掩模矩阵,使得在强化学习阶段获得合理的布图规划结果;接下来,用虚拟布线粗略地估计拥塞程度,将总线长、拥塞程度和布局密度作为奖励函数指导智能体的行为;最后用PPO算法优化布图规划结果。包含以下6个步骤:
步骤一:根据宏单元、标准单元、网表等信息对宏单元和标准单元进行初始编,然后根据节点初始编码和网表的图结构进一步得到宏单元的编码。其中宏单元和标准单元的初始编码用一个8维列向量表示vi=(ki,wi,hi,pi,mi,si,xi,yi)T,其中ki∈{0,1}表示节点种类,这里用0表示该节点是宏单元节点,1表示该节点是标准单元节点;wi,hi>0分别表示节点的宽和高;为节点引脚的数量;/>分别是与节点直接相连的宏单元数量和标准单元数量,xi,yi>0分别是节点在芯片画布上的具体位置坐标,宏单元和标准单元的初始位置设为坐标原点。根据宏单元和标准单元的初始编码以及网表信息,用GCN对宏单元的编码,将每个宏单元vi∈VN的初始编码和与Neti中节点的初始编码输入进GCN中,宏单元vi通过聚合自身初始编码及与vi直接相连的节点的初始编码,得到宏单元vi的编码。例如,通过函数f(·,·)聚合vi与vj∈Neti的初始编码,然后再取均值:
其中,xi为宏单元vi的编码;函数p为正整数。根据宏单元vi的编码xi聚合全体宏单元的初始编码VM作为当前环境状态特征。例如,图2中所示的双线性模型,具体操作为,将当前宏单元的编码xi与全体宏单元的初始编码VM作为双线性模型的输入:
其中为第i步放置宏单元vi∈VM时观测到的环境状态特征;q为正整数,其大小与双线性模型中的权值矩阵W的数量保持一致。
步骤二:根据宏单元的面积大小按照降序排列,确定强化学习中智能体的摆放宏单元的顺序。其中智能体根据宏单元的顺序,用强化学习先确定面积最大的宏单元的位置,然后依次确定其他宏单元在芯片画布中的位置,完成宏单元的布图规划。
步骤三:用规则网格将矩形芯片画布划分为若干个矩形区域,同时用一个矩阵将矩阵中的每个元素与矩形区域一一对应,获得离散的芯片画布,矩阵中每个元素的值由策略网络决定,该矩阵是智能体的动作空间的动作空间。如附图3(a)所示,用虚线划分成m×n个矩形区域,记为B={bij},其中bij为第i行第j个矩形区域,此时可以得到网格与m×n矩阵P=(pij)m×n的一一对应关系,矩阵P为策略网络的输出矩阵。
步骤四:根据动作空间和宏单元的大小和位置信息,用0或1对动作空间再次编码,获得掩模矩阵,然后根据掩模矩阵限制智能体的行动范围。掩模矩阵具体计算方法如下:首先,根据第三步的网格划分和矩形区域B获得初始的掩模矩阵A=(aij)m×n,其中矩阵A的每个元素aij∈{0,1},当aij=1时表示矩形网格bij可以放置宏单元,当aij=0时表示矩形网格bij不可以放置宏单元。然后,定义关键点,取矩形左下角顶点,即平面中矩形四个顶点中横纵坐标最小的顶点为矩形宏单元的关键点,矩形区域bij左下角的顶点为每个矩形区域bij的关键点。接下来,根据位置已知的宏单元,计算掩模矩阵中每个元素的值,如附图3(b)所示,图中实心矩形为位置已知的宏单元,它的关键点与区域b33的关键点重合,由于矩形宏单元的面积比区域b33的面积大,因此,它同时还覆盖了另外三个矩形区域b23、b24和b34,从而,与这四个矩形区域对应的矩阵A中的元素a23、a24、a33和a34均为0。然后,根据当前宏单元节点vi的宽wi和高hi计算掩模矩阵,计算掩模矩阵中智能体的行动范围。记当前宏单元左下角顶点的坐标为(xi,yi)。根据宏单元互补不相交的约束条件,(xi,yi)在平面中的位置需要满足如下不等式:
xi<xj-wi,或者xi>xj+wj,或者yi<yj-hi,或者yi<yj+hi. (12)
其中,wi和hi是宏单元vi的宽和高;j<i,表示已经确定位置的节点vj的大小和位置信息。根据上述公式,如果
xj-wi≤xi≤xj+wj且yj-hi≤yi≤yj+hj, (13)
此时,会发生重叠现象,即(xi,yi)坐落在附图3(c)和(d)所示的阴影区域中。具体效果如附图3(c)和(d)所示,图中实心矩形为已经确定了位置的宏单元,图中空心矩形框为当前待放置的宏单元vi的形状和大小。附图3(c)中如果空心框的左下角顶点在阴影区域内部,则宏单元vi要么与已经确定了位置的宏单元相交,要么超出了芯片画布的边界。附图3(d)中vi左下角顶点在阴影区域外侧,此时不会出现相交和越界现象。因此,图中阴影区域为当前宏单元vi不能摆放的位置。下面根据宏单元vi的宽和高计算附图3(c)和(d)中的阴影区域。最后,根据阴影区域和画布中的空白区域,可以得到智能体活动范围,即附图3(d)中左下角顶点被阴影区域覆盖的矩形区域bij均不可以放置宏单元vi,此时,矩阵A中与这一部分区域对应的的元素取值为0。值得注意的是如图3(e)所示,图中空心矩形框宏单元v仅覆盖了区域b24和区域b34中很小的一部分,这两个区域的右侧还可以放下图中形如红色框的矩形宏单元v*。然而,计算出来的掩模矩阵a24=0,a34=0,即宏单元v*不允许放置在区域b24和区域b34,因此会造成画布空间资源的浪费。为了解决这一问题,采用对网格更细的划分。如附图3(e)所示,图中黄色虚线将网格再次划分,每个网格再次划分为4个子网格,此时有2m×2n个网格,对应于一个2m×2n的矩阵A*。此时,原划分中区域b24和区域b34中,存在子网格的关键点没有被宏单元v覆盖,这些关键点均是宏单元v*可以放置的位置。由于再次划分网格会改变掩模矩阵的大小,为了使得掩模矩阵与策略网络的大小保持一致,在计算完可布局区域后用最大池化对掩模矩阵A*降维。即,附图3(e)中的与区域b24和区域b34相对应的掩模矩阵中的元素a24=1,a34=0。
步骤五:根据宏单元和标准单元的位置通过虚拟布线,计算总线长、拥塞程度和布局密度,并取三者的加权和作为强化学习的奖励函数。其中采用单树干斯坦纳树估计总线长,布局密度取步骤三划分的矩形区域bij中所有宏单元和标准单元的面积总和与矩形区域bij面积的比值的最大值。对于拥塞程度采用虚拟布线计算,具体计算方法如下。首先,根据步骤三中的网格划分,获得三个方向上的拥塞度矩阵。附图4(a)中将bij底边的拥塞度与矩阵中的元素/>对应,由于矩形芯片画布的最外层边界不参与拥塞程度的计算,所以,芯片画布的底边不在矩阵CH中,矩阵CH的行数要比网格的行数少一;附图4(b)中将bij右侧边的拥塞度与矩阵/>中的元素/>对应,与矩阵CH类似,芯片画布最右侧的边不在拥塞度计算范围内,因此Cver的列数比网格的列数少一;附图4(c)中将bij的通孔走线数量与矩阵/>中的元素/>对应,由于通孔与网格一一对应,因此矩阵Cvia的维数与网格行列数相同。然后,根据上述三个矩阵计算路径的累计损失矩阵/>其中损失/>与网格一一对应。如附图4(d)所示,网络neti所在区域中包含4×4个矩形区域,因此损失矩阵的大小为4×4。附图4(d)中实心圆点是网络neti的引脚,根据引脚的具体位置和矩形区域bij的宽和高,获得引脚所属的网格,图中空心圆形是单树干斯坦纳树方法得到的两棵树干的交点。接下来,以两棵树干的交点为起点,以每个引脚为终点,根据布线规则,连接网络neti的全部引脚。所述布线规则为,布线方向仅有水平方向和竖直方向,当需要改变布线方向时,需要经过通孔改变方向。为了减少计算量,只需要计算芯片画布中,四个顶点所在的网格到起点所在网格的累计损失值,即可获得所有网格到起点的损失,经过严格的证明,发现在计算四个顶点的累计损失值的过程中已经计算了所有网格的损失值。根据上述规则详细介绍损失矩阵的计算。以芯片画布右下角顶点所在网格区域为例,其余三个网格的计算方式类似。如附图4(e)所示,区域右下角在起点的右下方,从起点开始的布线方向仅有向下和向右两个方向。设起点所在网格的累计损失/>根据布线方向,每个网格bij的累计损失/>由两部分组成,其一,从网格左侧区域bi,j-1经过右侧边,到达网格bij;其二,从网格上方区域bi-1,j经过底边到达网格bij,起点右下方网格的累计损失计算方法如公式(1)所示,并记录与损失值/>对应的网格位置dij,可通过公式(2)计算得到dij。根据公式(1)和(2)可计算起点右下方所有网格对应的累计损失值。类似地,根据公式(3)可计算起点右上方所有网格的累计损失,公式(4)可以得到与损失值/>对应的网格位置;根据公式(5)可以计算起点左下方网格的累计损失,公式(6)可以获得与损失值/>对应的网格位置;根据公式(7)可以计算起点左上方网格的累计损失,公式(8)可以获得与损失值/>对应的网格位置。值得注意的是,起点水平方向和竖直方向上的累计损失计算过两次,从公式(1)至公式(8)可以看出,累计损失仅与上一步的累计损失和三个拥塞度矩阵有关,因此,重复计算不会影响累计损失的数值。最后,如图4(f)和图4(g)所示根据累计损失矩阵Cc和公式(1)至公式(8),采用动态规划方法虚拟布线从引脚到起点,确定所有引脚的路径,并根据路径经过的网格bij的底边和右侧边,更新两个损失矩阵CH和Cver。对于矩阵Cvia,判断每条路径的布线方向是否发生变化。判断方法,根据前一步方向/>和当前这一步方向/>的内积判断,有如下两种情况:
1)如果则说明布线方向发生变化即由水平方向转变为竖直方向或者由竖直方向转变为水平方向,此时需要经过通孔改变布线方向,因此通孔的走线数量增加;
2)如果则说明布线方向未发生变化,此时不需要经过通孔,因此通孔走线数量保持不变。
步骤六:取总线长、拥塞程度和布局密度的加权和作为强化学习的奖励函数,根据奖励函数用PPO算法训练强化学习模型。其中塞程度Cong,取步骤五中的三个拥塞度矩阵CH、Cver和Cvia中所有元素取值的前10%的平均值;总线长WL和布局密度D可根据步骤五计算得到;奖励函数R的计算方式如公式(9)所示,取总线长、拥塞程度和布局密度的加权和,然后用PPO算法训练网络模型。
实施例2
参照附图5,本发明还涉及用于实现实施例1所述的方法的一种基于强化学习实现矩形宏单元的布图规划系统,包含:
宏单元编码模块,用于根据宏单元、标准单元、网表等信息对宏单元和标准单元进行初始编码,然后根据节点初始编码和网表的图结构进一步用图卷积网络得到宏单元的编码;
宏单元的摆放顺序确定模块,根据宏单元的面积大小按照降序排列,确定强化学习中智能体的摆放宏单元的顺序;
动作空间模块,用规则网格将矩形布图规划区域划分为若干个矩形区域,同时用矩阵中的每个元素与矩形区域一一对应,获得离散化后的动作空间。
掩模矩阵模块,根据动作空间和宏单元的大小和位置信息,用0或1对动作空间再次编码,根据公式(11)和公式(12)获得掩模矩阵,然后根据掩模矩阵和策略网络限制智能体的行动范围;
总线长、拥塞程度和布局密度计算模块,根据宏单元和标准单元的位置通过虚拟布线,计算总线长、拥塞程度和布局密度;
强化学习模型训练模块,取总线长、拥塞程度和布局密度的加权和作为强化学习的奖励函数,根据奖励函数用PPO算法训练强化学习模型。
实施例3
本发明还涉及用于实现实施例1所述的方法的一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的一种基于强化学习实现矩形宏单元的布图规划方法。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (11)
1.一种基于强化学习实现矩形宏单元的布图规划方法,其特征在于,包含:
S1.根据宏单元、标准单元、网表信息对宏单元和标准单元进行初始编码,然后根据节点初始编码和网表的图结构进一步得到宏单元的编码;
S2.根据宏单元的面积大小按照降序排列,确定强化学习中智能体摆放宏单元的顺序;
S3.用规则网格将矩形芯片画布划分为若干个矩形区域,同时用矩阵中的每个元素与矩形区域一一对应,获得离散的芯片画布,矩阵中每个元素的值由策略网络决定,该矩阵是智能体的动作空间;
S4.根据动作空间和宏单元的大小和位置信息,用0或1对动作空间再次编码,获得掩模矩阵,然后根据掩模矩阵限制智能体的行动范围;
S5.根据宏单元和标准单元的位置通过虚拟布线,计算总线长、拥塞程度和布局密度;
S6.取总线长、拥塞程度和布局密度的加权和作为强化学习的奖励函数,根据奖励函数用PPO算法训练强化学习模型。
2.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S1中宏单元和标准单元的编码包含性质、宽、高、引脚数量、与其直接相连的宏单元数量和标准单元数量以及位置。
3.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S1中采用图卷积神经网络聚合宏单元及其周边节点的信息得到宏单元的编码,并将宏单元的编码作为强化学习的环境特征。
4.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S2中,将宏单元按照面积从大到小排序,作为强化学习阶段智能体摆放宏单元的顺序。
5.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S3所述的矩形区域,是离散化后的智能体的动作空间,与动作空间相对应的矩阵是策略网络的输出。
6.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S4所述的掩模矩阵与策略网络的输出矩阵维数相同。
7.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S4所述的掩模矩阵根据当前宏单元的宽和高以及已经确定位置的宏单元的大小计算得到,然后与策略网络的输出相结合实现限制智能体行动范围的目的。
8.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S4所述的掩模矩阵,在当前掩模矩阵下,如果智能体没有合适的摆放区域时,通过扩大掩模矩阵的行数或列数,增加当前宏单元可布局区域,然后,再对扩大后的掩模矩阵用最大池化方法降维,使得掩模矩阵与策略空间的维数保持一致。
9.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S5所述的拥塞程度的估计,取两棵单树干斯坦纳树的交点作为网络的起点,连接网络中所有引脚;根据网格的宽和高计算每个引脚所属的网格;定义损失矩阵计算网格水平边对应的拥塞程度矩阵CH和竖直边对应的拥塞程度矩阵Cver,以及与每个区域相对应的通孔走线数量矩阵Cvia;计算与每个网格相对应的累计损失;设起点的累计损失为0;遍历每个网格只需计算从起点到区域的四个顶点的累计损失值即可,损失计算方法如下:
1)起点右下方网格的累计损失计算方法
2)起点右上方网格的累计损失计算方法
3)起点左下方网格的累计损失计算方法
4)起点左上方网格的累计损失计算方法:
最后,根据累计损失矩阵,从引脚开始一步一步退回到起点,输出虚拟布线路径,然后根据路径更新拥塞程度矩阵;通孔走线数量,根据前一步方向和当前这一步方向的内积判断:
1)如果布线方向发生变化,需要经过通孔改变布线方向;
2)如果布线方向未发生变化,不需要经过通孔;
根据三个矩阵CH、Cver和Cvia计算所有元素的平均值作为拥塞程度。
10.根据权利要求1所述的基于强化学习实现矩形宏单元布图规划方法,其特征在于,步骤S6所述的奖励函数为
R=-λ1sign(WL-Bestw)-λ2sign(Cong-Bestc)-λ3sign(D-Bestd) (9)。
11.一种基于强化学习实现矩形宏单元的布图规划系统,其特征在于,包含:
宏单元编码模块,用于根据宏单元、标准单元、网表信息对宏单元和标准单元进行初始编码,然后根据节点初始编码和网表的图结构进一步得到宏单元的编码;
宏单元的摆放顺序确定模块,根据宏单元的面积大小按照降序排列,确定强化学习中智能体的摆放宏单元的顺序;
动作空间模块,用规则网格将矩形布图规划区域划分为若干个矩形区域,同时用矩阵中的每个元素与矩形区域一一对应,获得离散化后的动作空间;
掩模矩阵模块,根据动作空间和宏单元的大小和位置信息,用0或1对动作空间再次编码,获得掩模矩阵,然后根据掩模矩阵限制智能体的行动范围;
总线长、拥塞程度和布局密度计算模块,根据宏单元和标准单元的位置通过虚拟布线,计算总线长、拥塞程度和布局密度;
强化学习模型训练模块,取总线长、拥塞程度和布局密度的加权和作为强化学习的奖励函数,根据奖励函数用PPO算法训练强化学习模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310493297.9A CN116562218B (zh) | 2023-05-05 | 2023-05-05 | 一种基于强化学习实现矩形宏单元的布图规划方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310493297.9A CN116562218B (zh) | 2023-05-05 | 2023-05-05 | 一种基于强化学习实现矩形宏单元的布图规划方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116562218A CN116562218A (zh) | 2023-08-08 |
CN116562218B true CN116562218B (zh) | 2024-02-20 |
Family
ID=87495857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310493297.9A Active CN116562218B (zh) | 2023-05-05 | 2023-05-05 | 一种基于强化学习实现矩形宏单元的布图规划方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116562218B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556760B (zh) * | 2024-01-12 | 2024-04-05 | 中科亿海微电子科技(苏州)有限公司 | 一种宏单元和可编程逻辑块分阶段优化的fpga全局布局方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259615A (zh) * | 2020-01-09 | 2020-06-09 | 中国人民解放军国防科技大学 | 一种基于原有布图规划的自动化物理单元插入方法 |
CN113261003A (zh) * | 2018-12-04 | 2021-08-13 | 谷歌有限责任公司 | 使用神经网络生成集成电路平面图 |
CN114154412A (zh) * | 2021-11-25 | 2022-03-08 | 上海交通大学 | 基于深度强化学习的优化芯片布局系统及方法 |
CN114372438A (zh) * | 2022-01-12 | 2022-04-19 | 广东工业大学 | 基于轻量化深度强化学习的芯片宏单元布局方法及系统 |
KR102420071B1 (ko) * | 2021-11-18 | 2022-07-12 | 주식회사 마키나락스 | 인공지능 기반의 반도체 설계 자동화 방법 |
CN114896937A (zh) * | 2022-05-24 | 2022-08-12 | 广东工业大学 | 一种基于强化学习的集成电路布局优化方法 |
CN115066006A (zh) * | 2022-05-28 | 2022-09-16 | 哈尔滨工业大学 | 一种基于强化学习的基站休眠方法、设备和介质 |
CN115270698A (zh) * | 2022-06-23 | 2022-11-01 | 广东工业大学 | 基于深度强化学习的芯片全局自动布局方法 |
CN115315703A (zh) * | 2020-04-22 | 2022-11-08 | 谷歌有限责任公司 | 使用神经网络生成集成电路布局 |
WO2022241782A1 (zh) * | 2021-05-21 | 2022-11-24 | 华为技术有限公司 | 一种集成电路的电路单元布局方法及装置 |
CN115455899A (zh) * | 2022-09-21 | 2022-12-09 | 无锡芯光互连技术研究院有限公司 | 一种基于图神经网络的解析布局方法 |
CN115758981A (zh) * | 2022-11-29 | 2023-03-07 | 东南大学 | 一种基于强化学习和遗传算法的布图规划方法 |
CN115996475A (zh) * | 2022-11-25 | 2023-04-21 | 北京邮电大学 | 超密集组网多业务切片资源分配方法及装置 |
-
2023
- 2023-05-05 CN CN202310493297.9A patent/CN116562218B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113261003A (zh) * | 2018-12-04 | 2021-08-13 | 谷歌有限责任公司 | 使用神经网络生成集成电路平面图 |
CN111259615A (zh) * | 2020-01-09 | 2020-06-09 | 中国人民解放军国防科技大学 | 一种基于原有布图规划的自动化物理单元插入方法 |
CN115315703A (zh) * | 2020-04-22 | 2022-11-08 | 谷歌有限责任公司 | 使用神经网络生成集成电路布局 |
WO2022241782A1 (zh) * | 2021-05-21 | 2022-11-24 | 华为技术有限公司 | 一种集成电路的电路单元布局方法及装置 |
KR102420071B1 (ko) * | 2021-11-18 | 2022-07-12 | 주식회사 마키나락스 | 인공지능 기반의 반도체 설계 자동화 방법 |
CN114154412A (zh) * | 2021-11-25 | 2022-03-08 | 上海交通大学 | 基于深度强化学习的优化芯片布局系统及方法 |
CN114372438A (zh) * | 2022-01-12 | 2022-04-19 | 广东工业大学 | 基于轻量化深度强化学习的芯片宏单元布局方法及系统 |
CN114896937A (zh) * | 2022-05-24 | 2022-08-12 | 广东工业大学 | 一种基于强化学习的集成电路布局优化方法 |
CN115066006A (zh) * | 2022-05-28 | 2022-09-16 | 哈尔滨工业大学 | 一种基于强化学习的基站休眠方法、设备和介质 |
CN115270698A (zh) * | 2022-06-23 | 2022-11-01 | 广东工业大学 | 基于深度强化学习的芯片全局自动布局方法 |
CN115455899A (zh) * | 2022-09-21 | 2022-12-09 | 无锡芯光互连技术研究院有限公司 | 一种基于图神经网络的解析布局方法 |
CN115996475A (zh) * | 2022-11-25 | 2023-04-21 | 北京邮电大学 | 超密集组网多业务切片资源分配方法及装置 |
CN115758981A (zh) * | 2022-11-29 | 2023-03-07 | 东南大学 | 一种基于强化学习和遗传算法的布图规划方法 |
Non-Patent Citations (1)
Title |
---|
Chip Placement with Deep Reinforcement Learning;Azalia Mirhoseini 等;《TrainarXiv: 2004.10746v1 [cs.LG]》;第1-15页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116562218A (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5745363A (en) | Optimization processing for integrated circuit physical design automation system using optimally switched cost function computations | |
Wang et al. | Graph representation for structural topology optimization using genetic algorithms | |
CN106485317A (zh) | 一种神经网络加速器以及神经网络模型的实现方法 | |
CN116562218B (zh) | 一种基于强化学习实现矩形宏单元的布图规划方法和系统 | |
Jan et al. | High-order MS CMAC neural network | |
CN115315703A (zh) | 使用神经网络生成集成电路布局 | |
CN114896937A (zh) | 一种基于强化学习的集成电路布局优化方法 | |
CN113673196A (zh) | 一种基于可布线性预测的全局布线优化方法 | |
Karafyllidis | Design of a dedicated parallel processor for the prediction of forest fire spreading using cellular automata and genetic algorithms | |
CN115758981A (zh) | 一种基于强化学习和遗传算法的布图规划方法 | |
Zhang et al. | Floorplan design using a hierarchical neural learning algorithm | |
Pace et al. | Closed‐form maximum likelihood estimates of nearest neighbor spatial dependence | |
Smith et al. | Network automata: Coupling structure and function in dynamic networks | |
CN112861466B (zh) | 一种布线轨道分配方法、电子设备及计算机可读存储介质 | |
Veloso et al. | Self-learning agents for spatial synthesis | |
CN106228235A (zh) | 一种顾及格局与过程耦合效应的土地利用空间优化配置方法 | |
Xu et al. | TilinGNN: learning to tile with self-supervised graph neural network | |
CN114841098B (zh) | 基于稀疏表示驱动的深度强化学习北斗导航芯片设计方法 | |
CN104933103A (zh) | 整合结构聚类和属性分类的多目标社区发现方法 | |
Ying et al. | An analytical approach to floorplanning for hierarchical building blocks layout (VLSI) | |
Herbert et al. | A granular computing framework for self-organizing maps | |
CN109583006A (zh) | 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法 | |
CN115081381A (zh) | 基于图神经网络的芯片布图规划方法、装置及存储介质 | |
Stroobandt | Improving Donath's technique for estimating the average interconnection length in computer logic | |
CN107644143B (zh) | 一种基于向量化和并行计算的高性能城市ca模型构建方法 |
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 |