Standard Cell Routing with Reinforcement Learning and Genetic Algorithm in Advanced Technology Nodes

Standard Cell Routing with Reinforcement Learning and Genetic Algorithm in Advanced Technology Nodes

一、整体思路和创新点

将遗传算法和强化学习结合起来,本文提出一种基于机器学习的方法,用遗传算法来产生初始路由,并使用强化学习的方法(RL)增量地修复 design rule checking (DRC)。
强化学习比起现有其它优化算法如SAT和MILP的主要优点在于,不需要DRC约束的解析表达式。 约束条件可以通过DRC分析独立于优化运行的环境给出的奖励来实施。 分两步进行标准信元路由。

  1. 创建一个所有终端都与路由相连的迷宫路由解决方案,
  2. 通过添加额外的路由金属来固定DRCs。

对于第一步,我们使用遗传算法产生最小路径候选,并调用第二步来确定它们的DRCs。 对于第二步,我们训练一个RL代理来学习修复DRCs。 遗传算法在DRC修复后找到使剩余DRC错误最小的最佳路径。 主要贡献如下:

  1. 提出了一种基于强化学习的方法,在具有单向金属的先进技术节点中,给定标准单元上的现有路线,以修复DRC错误。 只在一个标准单元上训练,该模型可以转移到我们库中测试过的所有标准单元上。 该模型可以为每个单元进一步重新训练,以改善结果。
  2. 提出了利用遗传算法寻找最小路径,优化DRC误差。 它成功地路由了我们库中所有的小型和大型复杂标准单元,没有DRCs。 与经验丰富的设计师的最佳设计相比,它还通过减少宽度来路由几个单元格,减少了11%的单元格面积。
  3. 开发了一个名为Sticks的程序,它直接从基于网格布局的Stick图中生成DRC/LVS布局。

二、背景

2.1 Standard Cell Routing

在这里插入图片描述
在标准单元之间布线时,基于网格的系统已经普遍使用了几十年。 在这样的系统中,每个路由层只在一个方向上使用,所有路由都在固定的轨道上。 轨道间距通常定义为最小导线宽度加上最小导线空间,以便最大限度地利用。 由于M1路由可能偏离轨道、改变方向、改变宽度,并使用各种各样的通孔切口。近年来,技术的发展限制了允许的路由形状集,从而产生了一个更易于自动化的环境。

图1显示了在具有单向金属的先进技术节点上的标准单元的棒状图(我们将在第3节中介绍棒状图)。 有5层网络可以路由:LISD(本地互连源漏)、LIG(本地互连门)、M1、M2和M3。 请注意,这些层名称来自开放源代码ASAP7 PDK[2]。 M1和M3是水平方向,而M2是垂直方向。 LISD连接基本上允许M1以下的一些垂直路由,而LIG连接允许一些最小的水平路由。 对于如何路由每一层有许多限制。
最严格的DRC规则在M1层。 在M1层,路由形状在一个固定的网格上,切割的金属形状需要插入在同一轨道上的相邻路由段之间。 切割金属的位置可以从路径分配中推断出来,并且必须满足许多DRC约束条件。

在这里插入图片描述

这里我们说明了一个DRC规则,它特别难以用[17]所使用的MILP约束来建模。 如图2所示,紧密放置的切割金属形状需要能够用两种不同的颜色着色,以实现双重图案。 这要求由切割金属形成的环中形状的数目为偶数,如图2(a)所示。 如果环有奇数切割金属如图2(b)所示,就不可能正确着色。 为这类规则创建MILP约束要求枚举由切割金属形成的所有可能的环,以指数方式增加约束的数量。

2.2 Prior Arts for Standard Cell Routing

信道路由算法早被提出来进行标准信元路由。 然而,常用的确定性信道路由方法如只能生成特定的路由解,不能很好地处理DRC约束。 基于遗传算法的信道路由方法[12][3]能够产生许多路由候选者。 路由段编码成基因型。 这种编码确保了路由结构中良好的“路由孤岛”得到很好的表示。 遗传算法对遗传基因型进行交叉和变异,并将路由结果作为遗传算法的适应度函数。 除了可路由性,它们还可以支持多个不同的路由目标,如最小化过孔、减少串扰等。遗传算法依赖随机路由器来创建路由候选。 这些随机路由器基于两个终端的随机扩展来创建路由,目前还不清楚它们是否能在先进技术的节点上直接产生DRC路由。

基于SAT的路由[13]为每个终端对创建候选路由,并利用SAT为所有终端对找到可行的路由候选。 它需要DRC检查来剪除所有冲突的路由候选项。 路由候选方案的质量也限制了最终的路由质量。 因此,对于复杂的单元往往找不到路由方案。
基于MILP的路由方法[17][9]将路由问题表述为混合整数线性规划问题。 [17]使用二进制变量来表示网络是否使用特定的路由网格。 多商品流动约束保证每个网络都有流动变量的路由。 然而,该方法依赖于MILP求解器来求解大量约束,并要求DRC约束以条件等式或不等式的形式表示。 这使得支持较新的技术节点变得困难,例如,上一节中提到的着色约束不能很容易地用条件不等式表示。 [7]使用MILP和RIPUP-REROUTE技术的组合来路由,这将有前面提到的相同问题。

2.3 Reinforcement Learning for Routing

RL在玩Atari和围棋等游戏时取得了巨大成功。 最近,RL也被提出来处理路由问题。 [11]使用DQN创建路由方向动作,即在每一步向北、向南等。 [10]使用基于注意力模型的增强算法选择路由顺序,一旦确定路由顺序,使用模式路由器生成实际路由。 [5]利用基于MCTS和DNN的方向行为来寻找路径。 在这些方法中,只针对连接路由而没有考虑设计规则的违反,如何将这些方法扩展到处理先进技术节点的DRC约束还不明显。 这些方法的应用范围是模拟布线或PCB布线,能否推广到标准单元布线问题还不清楚。

三、 算法

3.1 DRC Fixing: RL Environment

在这里,主要在于M1的DRC修正,其它的DRC错误可以在路由步骤中修正。 M1 DRC误差是由切割金属位置的限制引起的。 棒确定切割金属位置的基础上M1路线。 因此,改变M1路线修改切割金属位置,这反过来改变M1 DRCs。 然后RL博弈增量地改变M1路由,以减少M1 DRCs。这里只考虑添加到M1路线,但没有删除现有的M1路线,该约束是为了保证初始路径的可路由性。它确实限制了DRC固定步骤的解空间,但基于遗传算法的路由步骤创建了多个路由解,扩展了空间。 请注意,同样的RL方法也可以应用于修复其他层上的DRCS。 RL环境由其观察空间,行动空间,内部状态,奖励和完成条件组成。 以下是DRC RL环境中这些元素的定义:

  • Internal state: DRC RL环境的内部状态是sticks中使用的多层网格空间。 它是从路由步骤生成的棒状图中初始化的,它记录了代理的动作所做的所有更改。
  • Observation space: 是一个张量[3, H M 1 H^{M1} HM1, W M 1 W^{M1} WM1]。 H M 1 H^{M1} HM1 W M 1 W^{M1} WM1是M1网格维度。 o b s [ 0 , : , : ] obs [0,:,:] obs[0,,:]表示M1路由。 o b s [ 1 , : , : ] obs [1,:,:] obs[1,,:]表示路由掩码。 有效的路由网格应该满足两个条件:(1)靠近现有的路由网格;(2)不会对其他路由造成潜在的短路。 o b s [ 2 , : , : ] obs [2,:,:] obs[2,,:]代表DRC信息,它记录了STICS DRC API报告的DRC标记的位置。
  • Action space: 是一个范围i张量[ H M 1 H^{M1} HM1× W M 1 W^{M1} WM1]。它表示M1网格中任何一个[ H M 1 H^{M1} HM1, W M 1 W^{M1} WM1]是否应该被路由的概率。 Stick图将根据此操作更新,而Stick DRC API将在操作后返回新的DRC。
  • Reward: 环境给予的奖励有两种类型。 r s r_s rs是每一步都给出的负奖励,这个奖励推动代理尽快完成游戏。 r d r_d rd是与DRC改善相关的奖励, r d = R d × △ D R C r_d=R_d \times \triangle D R C rd=Rd×DRC,其中 R d R_d Rd是一个系数, △ D R C \triangle D R C DRC是由Sticks DRC API报告的DRC标记数的减少数。这种奖励驱使代理尽可能地减少DRCs。
  • Done condition: 在两种情况下,环境将告诉Agent它已经完成。 首先,下一步没有可用的操作,即掩码层 o b s [ 1 , : , : ] obs [1,:,:] obs[1,,:]=0。 第二,当DRC为零时,即DRC层 o b s [ 2 , : , : ] obs [2,:,:] obs[2,,:]=0。

3.2 DRC Fixing: RL Model

在这里插入图片描述
我们使用近程策略优化(PPO)算法进行我们的DRC固定步骤。 PPO是一种基于策略梯度的RL算法。 要使用PPO算法,一个深度学习模型应该产生两个头:一个预测当前状态值的值头和一个为每个动作产生策略概率的策略头。 这两个头最初通常共享一个公共模型,我们可以将共享模型的输出称为嵌入。 为了建立PPO的RL模型,我们需要考虑两个要求:一是对网数不变,二是对单元宽度不变,即 W M 1 W^{M1} WM1。 注意, H M 1 H^{M1} HM1是给定标准单元库的常量。 观测空间实际上与网数无关,因此满足了第一个要求。 但是,由于观察空间和操作空间都依赖于 W M 1 W^{M1} WM1,因此默认情况下不能满足第二个要求。 为了消除这种依赖性,我们设计了如图3所示的网络。

observation首先被馈送到四个卷积层。 每个卷积层使用有效的填充方案来产生与输入相同高度和宽度的输出激活。 最后一个卷积层的输出是状态嵌入,其形状为[512, H M 1 H^{M1} HM1, W M 1 W^{M1} WM1]。 然后,这种状态嵌入被馈送到价值和策略网络。 策略网络具有信道大小(64,64,1)的三个完全连接的层。 我们将状态嵌入图像的每个像素馈给这些完全连接的层。 由于状态嵌入图像上每个像素的通道维数是固定的,为512,所以那些完全连接层的参数不依赖于图像的大小。 然后,所有 H M 1 H^{M1} HM1x W M 1 W^{M1} WM1像素的策略网络输出被收集在一起,被来自观察的动作掩码掩盖,并被馈送到一个Softmax层以产生最终的动作策略向量。 为了产生状态值,所有像素的嵌入被AVGPOOL在一起形成一个512宽的向量。 然后将其馈送到由通道大小(64,64,1)的三个完全连接的层组成的值网络。 这个值网络的输出就是状态值。 同样,价值网络不依赖于图像的大小。

3.3 Genetic Algorithm based Routing

虽然DRC RL代理可以通过增加额外的M1来减少给定路由的DRC数目,但它不能破坏和重建现有路由。 因此,我们需要对不同的路由进行高效的探索,以找到DRC RL Agent能够完全修复DRCS的路由。
遗传算法:因为在每一个遗传代中有多个路由候选,会有多个候选方案获得DRC自由。 因此,除了DRC优化之外,此流程还可以生成多个路由解决方案,这是一个额外的优势。 我们采用了信道路由中的基于路由段的遗传编码策略,利用路由段作为遗传表示的好处在于,在交叉和变异等遗传操作过程中,能够保持路由结构中良好的路由孤岛。 我们用随机迷宫路由器和对棒状图的支持扩展了该策略。 完整的路由流程如算法1所示。
在这里插入图片描述

  • Fitness: f ( R i ) = 1 α U ( R i ) + β D R C ( R i ) f\left(\mathbb{R}_i\right)=\frac{1}{\alpha U\left(\mathbb{R}_i\right)+\beta D R C\left(\mathbb{R}_i\right)} f(Ri)=αU(Ri)+βDRC(Ri)1
    其中 U ( R i ) U\left(\mathbb{R}_i\right) U(Ri)是未路由终端对数, D R C ( R i ) D R C\left(\mathbb{R}_i\right) DRC(Ri)是DRC个数,其中 α \alpha α远大于 β \beta β,确保路由解决具有更高优先级。
  • Crossover: 在单元图像上任选一个做为切割点,可以垂直/水平切割,然后进行交叉。
  • Mutation: 在单元图像上选择一个区域随机生成。
  • Maze Router: 使用lee迷宫寻路算法来搜索两个终端之间的最小路由,通过多次迭代来得到最小的。

四、实验结果

五、总结与思考

这个工作最大的特点是把强化学习和遗传算法结合起来,解决布局布线问题中不同需求。在这篇工作中,解决DRC合法化用的是强化学习的方法,具体为PPO(Proximal Policy Optimization)算法,而遗传算法用来生成更多的路由布线方案。
思考:学习了PPO算法(重点学习了on policy和off policy的思想),而在路由布线部分,它的交叉变异是随机进行垂直或者水平分割方法,这个思路也开拓了我仅有的随机化的思路。而在随机生成布线方案的时候,用的是lee迷宫寻路算法。总之,借鉴这篇文章的思想,在布局布线的问题上,可以引入强化学习用来解决放置合法化的问题,而遗传算法用来搜索更多的布线方案,同时我也注意到最短路径搜索算法,在布局布线中往往要优化HPWL,也就是布线周长,合适路径搜索算法对于模型的收敛速度会有更好的效果。

六、补充知识点

6.1 MILP算法

b站有个视频讲整数线性规划 (MILP)的

6.2 SAT算法

是一种碰撞检测的算法

6.3 PPO算法

b站一个视频1
b站一个视频2
b站一个视频3

6.4 寻路算法

lee是一种暴力求解的算法,总能找到最优解,但是单数据规模上升后,时间和空间的开销也会增加。
其它的寻路算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值