[读论文] Towards Machine Learning for Placement and Routing in Chip Design: a Methodological Overview

Abstract

在现代芯片设计流程中,放置和布线是两个不可或缺且具有挑战性的 NP-hard 问题。与使用启发式算法或专家精心设计的算法的传统求解器相比,机器学习凭借其数据驱动的性质显示出了广阔的前景,它可以减少对知识和先验的依赖,并且通过其先进的计算范式具有更大的可扩展性 (例如 GPU 加速的深度网络)。本调查首先介绍了基本的布局(Placement)和布线(Routing),并简要介绍了经典的无学习解算器。

1. Introduction

布局和布线是芯片设计过程中最关键但最耗时的两个步骤。布局将逻辑门和功能块等各种逻辑组件分配到芯片物理布局中的离散位置,布线完成物理上的互连。布局和布线的目标是在约束条件下优化功率、性能和面积 (power, performance, and area PPA) 指标,例如布局密度和布局拥塞。

布局可以看作是具有几何约束的二维装箱问题的一个更为复杂的变化。后者被认为是 NP-hard 问题。布局与电路设计的逻辑互连和逻辑元件的几何位置有关。由于在布线之前无法准确评估放置解决方案的质量,导致设计流程中的反馈循环很长,因此现代布局需要在早期阶段减少布线拥塞并提高可达性。布线已经被证明是 NP-hard问题。布局与布线紧密耦合,一个优秀的布局解决方案可以带来更好的芯片面积利用率、时序性能和可达性。

目前 EDA 领域的 ML 研究主要分为四类:传统的决策方法、性能预测、黑盒优化和自动化设计,这四类按照自动化程度递增。


在这里插入图片描述

2. Problem Background and Classic Solvers

2.1 Placement Problem

布局可以在不同的层次上进行。通常,全局布局(Global Placement)涉及宏布局(Macro Placement)和标准单元布局(Standard Cell Placement)。详细布局(Detailed Placement)包括合法化(legalization),线长(wirelength)和可达性的细化(routability refinement)。

  • Global Placement
    芯片设计过程中最关键但最耗时的步骤之一,可以看作是一个约束优化问题。它为网表(netlist)的各种组件分配精确的位置,包括芯片布局中的宏和标准单元。标准单元是基本逻辑单元,即逻辑门,是预先设计的IP块,例如 SRAM。良好的布局会带来更好的芯片面积利用率、时序性能和可达性,而较差的布局会影响芯片的性能,甚至使其无法制造。

    在形式上,全局布局的输入是一个可以用超图表示的网表 H = ( V , E ) H=(V,E) H=(V,E) V = { v 1 , v 2 , ⋯   , v n } V=\{v_1,v_2,\cdots,v_n\} V={v1,v2,,vn} 表示宏和标准单元组成的点集而 E = { e 1 , e 2 , ⋯   , e m } E=\{e_1,e_2,\cdots,e_m\} E={e1,e2,,em} 表示超边, e i ∈ E e_i\in E eiE 是点集的非空子集。我们试图确定宏和标准单元格的位置 ( x i , y i ) (x_i,y_i) (xi,yi),线长最小化是放置的主要目标之一,通常使用 H P W L N ( x ⃗ , y ⃗ ) HPWL_N(\vec x,\vec y) HPWLN(x ,y ) 来近似线长,输入的两个向量为 x ⃗ = ( x 1 , x 2 , ⋯   , x n ) ,    y ⃗ = ( y 1 , y 2 , ⋯   , y n ) \vec x=(x_1,x_2,\cdots,x_n),~~\vec y=(y_1,y_2,\cdots,y_n) x =(x1,x2,,xn),  y =(y1,y2,,yn) H P W L = ∑ e i ∈ E ( max ⁡ v j ∈ e i x j − min ⁡ v j ∈ e i x j + max ⁡ v j ∈ e i y j − min ⁡ v j ∈ e i y j ) HPWL=\sum\limits_{e_i\in E}\left(\max\limits_{v_j\in e_i}x_j-\min\limits_{v_j\in e_i}x_j+\max\limits_{v_j\in e_i}y_j-\min\limits_{v_j\in e_i}y_j\right) HPWL=eiE(vjeimaxxjvjeiminxj+vjeimaxyjvjeiminyj)这里布线的模式有好几种,比如 Star、最小斯坦纳树(RSMT),但是使用 HPWL 进行评估最简单、速度最快且误差只有 10%。但是 HPWL 的问题在于不是处处可导,所以要通过一个可导函数进行近似,以此可以更好的建模。
    请添加图片描述

  • Detailed Placement
    全局布局的解决方案通常是非法的:单元可能重叠或占用非法的位置,因此需要详细布局执行合法化和质量改进。合法化消除了单元之间的重叠,并将它们固定在正确位置,同时尽量使详细布局时对质量的不利影响最小。然后,细化布局通过移动局部单元使它处于一个合法的位置,并进一步提高目标的线长和可达性。

2.2 Routing Problem

  • Global Routing
    在表示芯片物理布局的网格图 G ( V , E ) G(V,E) G(V,E) 上用金属材料连接电线。物理布局被划分为矩形区域,每个区域对应一个全局线路单元(G-Cell),表示每个顶点 v i ∈ V v_i\in V viV。每条边 e i j ∈ E e_{ij}\in E eijE 表示相邻 G-Cell v i v_i vi v j v_j vj 之间的关节边界。网格边缘 e e e 的容量 c e c_e ce 定义为可以穿过网格边缘的最大电线数量。使用量 u e u_e ue 被定义为穿过网格边缘的电线的实际数量。溢出值 o e o_e oe 定义为 max ⁡ ( 0 , u e − c e ) \max(0,u_e-c_e) max(0,uece)。当采用多金属层布线时,在网格图中引入一个垂直维度,在三维网格图中相邻的金属层通过通孔连接。
  • Detailed Routing
    与全局路由相比,该算法在细粒度的三维网格图上工作,考虑了复杂的设计规则。每个网格边缘提供单元路由资源,这样网格上的详细路由路径不会违反最小金属宽度和间距等设计规则。详细路由还需要考虑优选路由方向,相邻的路由层优选垂直路由方向。沿着其相应层的首选方向(例如,在X或Y方向上)的连续网格边被描述为路由轨迹。典型的详细路由算法以全局路由段为指导。每个全局路由段对网络的拓扑结构提供了粗略的提示,详细路由需要在细粒度网格图上最终确定实际的路由路径。不能在网格图上没有冲突的情况下路由的网络可能导致违反设计规则,这是一个广泛使用的度量,用于描述详细路由解决方案的质量或设计的拥塞程度。

2.3 Classic Placement Solvers

2.4 Classic Routing Solvers


3. Machine Learning for Placement

3.1 Traditional Placers Enhancement

  • DREAMPlace [Lin et al., 2020] 的灵感来自于分析布局问题类似于训练神经网络的想法。它们都涉及参数优化和成本函数最小化。DREAMPlace 基于最先进的解析布局算法 RePlAce,通过深度学习实现手动优化的关键操作符实现了超过 30 倍的加速。
  • PL-GNN [Lu et al.,2021] 提出了一种基于图学习的框架,该框架通过基于设计实例的逻辑亲和力信息和属性生成单元簇,为商业放置器提供布局指导。
  • [Agnesina et al., 2020] 提出了一种 RL 框架来优化商用 EDA 工具的布局参数。智能体学习自主调整参数,完全由 RL 从自我搜索中训练。采用手工特征和使用无监督图神经网络生成的图嵌入来泛化看不见的网表。
  • PADE [Ward et al., 2012] 通过自动数据路径提取和评估来改进数据路径逻辑,其中数据路径逻辑的放置与随机逻辑分开进行。

3.2 Placement Decision Making

基于学习的布局决策方法尤其是 RL 被用来获得泛化能力。现有的 RL 应用程序已经证明了宏布局的有效性,其中需要放置的宏通常少于 1000 个。

  • [Mirhoseini et al., 2021] 提出了一种端到端的宏观布局学习方法,该方法将芯片放置建模为顺序决策问题。在每个步骤中,RL 代理放置一个宏,目标指标用作奖励,直到最后一个操作。价值值网络采用 GNN 对网表信息进行编码,策略网络的反卷积层输出当前宏观位置的掩码。
  • DeepPlace [Cheng and Yan, 2021] 首先提出了一种联合学习技术,通过将强化学习与基于梯度的标准单元放置器相结合,来放置宏和标准单元。为了进一步将布局与布线任务连接起来,他们还开发了一种通过 RL 的联合学习方法 DeepPR 来完成宏的布局和布线。
    在这里插入图片描述

3.3 Prediction Model Embedded in Placement

机器学习还帮助放置器通过嵌入预测模型来优化复杂的目标,如可达性,因为在放置期间很难准确预测路由拥塞。

  • [Huang et al., 2019] 提出了第一个基于深度学习的可达性驱动的宏放置。提出了一种基于 CNN 的可达性预测模型,并将其嵌入到一个宏观放置器中,从而通过 SA 优化过程得到一个具有最小设计规则检查(DRC)违规的良好宏观放置器。
  • [Chan et al., 2017] 提出了一种基于学习的算法来预测详细路由中的 DRC 违规,并自动提高这些设计的可达性。
  • [Liu et al., 2021b] 预测拥塞热点,然后将该预测模型集成到布局引擎中,展示了如何将基于 ML 的线路拥塞估计器嵌入到全局放置阶段。

3.4 Challenges and Limitations for Placement

机器学习应用程序在布局方面的主要挑战在于两个方面:长反馈循环和高可扩展性要求。在路由完成之前,无法评估诸如可达性之类的放置目标;因此,在优化循环中可能需要花费数小时才能获得反馈,这对于进行数千次查询来说是负担不起的。现代的放置器需要在几个小时内处理数万个宏和数百万个标准单元。这种可扩展性的要求仍然超出了现有 ML 方法的能力。


4. Machine Learning for Routing

4.1 Learning-aided Routability Prediction

在放置步骤中,必须考虑布线设计准则的基本要求。然而,在布局时很难准确快速地估计布线信息,研究人员最近使用机器学习来克服这个问题。表 1 总结了最近在可达性预测方面的研究成果,可分为不同设计阶段的拥塞数预测和拥塞位置预测。拥塞计数表示与拥塞相关的指标,如总拥塞和违反设计规则的数量,而拥塞位置需要详细的拥塞或违反设计规则的位置,通常以 2D 地图的形式表示。

  • Congestion count
    它表示拥塞的总体数量,用于评估放置解决方案的好坏。有效地预测拥塞数可以避免耗时的布线阶段,从而减少设计流中的周转时间。
    • [Qi et al., 2014; Zhou et al., 2019] 捕获全局布线中的多个因素,并使用多元自适应回归样条曲线(MARS)预测详细的拥塞。
    • [Tabrizi et al., 2018; Maarouf et al., 2018] 使用线性回归 LR、随机森林 RF 和 MLP 模型预测来自 ASIC 和 FPGA 的数据集在放置阶段的全局布线拥塞。
    • [Zhou et al., 2015; Chan et al., 2016] 旨在给定单元布局的情况下,预测详细线路的拥塞计数。
    • [Cheng et al., 2018b] 仅在给定宏位置的情况下,尝试预测全局线路的拥塞计数。
  • Congestion location
    它的准确预测对于有效地指导布局和路径优化是必要的,因为它可以帮助为拥挤的区域预留足够的空间。
    • RouteNet [Xie et al., 2018] 是第一次尝试利用 CNN 来预测给定单元布局和全局布线信息的设计规则检查(DRC)热点的位置。以矩形均匀线密度(RUDY)特征作为预拥塞估计器和全局拥塞图,构造了自定义的全卷积网络(FCN)。预测全局路由拥塞位置有助于指导早期可达性优化。
    • PROS 试图学习全局布线和单元放置的拥塞位置之间的相关性。由于特征和标签都可以表示为类图像张量,许多研究将问题转化为图像生成任务,并利用 FCN 和条件 GAN 来建立相关性。
    • [Liang et al.,2020] 进一步从单元布局直接预测详细布线的拥塞位置(即违反设计规则的位置)。使用定制的 CNN 架构,J-Net(U-Net 架构的扩展)。这项工作将放置结果中的引脚和宏的密度转换为图像,并使用逐像素损失函数优化编码器-解码器模型。网络输出热图,显示可能发生路由拥塞的详细位置。

4.2 Deep Neural Networks for Routing

一些工作直接采用 DNN 处理布线问题,很少甚至没有传统路由技术的帮助。

  • [Jain and Okabe, 2017] 提出了一个全卷积神经网络,学习通过适当选择金属轨道和电线类别组合来路由电路布局。将包含待路由引脚空间位置的编码布局馈送到网络中,经过 15 个完全卷积层和一个比较器后,产生 8 个布局层,然后对其进行解码以获得路由布局。这项工作将路由表述为每层每个像素的二进制分割问题,其中网络被训练以正确地将每个布局层中的像素分类为打开或关闭。
  • [He and Bao, 2020] 将电路建模为顺序决策问题,并通过蒙特卡罗树搜索(MCTS)与 DNN 引导推出。
  • [Utyamishev and Partin-Vaisband, 2020] 提出了一种全局布线器,它可以从电路中学习,并自主布局看不见的线路。与传统的路由流程不同,该方法将全局路由重新定义为经典的图像到图像处理问题,并使用深度学习系统以统一的单步非迭代方式处理成像问题,该系统包括变分自编码器和自定义损耗。

4.3 Reinforcement Learning for Routing

强化学习也是解决布线问题的一种很有前途的方法,因为它可以被视为一个包含决策阶段的过程。

  • DQN 智能体[ Liao et al., 2020b] 作为将 RL 与全局路由相结合的第一次尝试之一,学习在每一步确定 3D 网格图上的路由方向,例如向北、向南等。
  • 有关详细布线,[Liao等人,2020a] 提出了一种基于注意力的增强方法,用于获取路由顺序,然后使用经典模式路由器完成给定顺序的路由,用于多达数千个网络的小型基准测试。
  • [Lin et al, 2021] 使用异步 actor-critical 框架处理布线排序,用于布局数百万个网络,并通过策略蒸馏提高了最先进的详细布线器的解决方案质量。
  • [Ren and Fojtik, 2021] 采用遗传算法生成初始路由选择,然后使用 RL 逐步处理在标准单元路由中违反设计规则的情况。
  • 关于线性斯坦纳最小树(RSMT)构建 [Hartmanis, 1982],这是 EDA 和计算机科学中的一个基本问题,通常在传统的全局布线器中运行数百万次,REST [Liu et al., 2021a] 是使用基于机器学习的方法解决 RSMT 构建的首次尝试。提出了一个新的概念——直线边缘序列(RES)来编码 RSMT 解,并设计了一个行动者-评论家模型来构建 RSMT 解。

4.4 Challenges and Limitations for Routing

尽管在基于学习的布线问题上已有很多研究,但在公平的比较下,现有技术很难在效率和求解质量上系统地优于经典布线算法。大多数基于学习的技术在具有数千个网络的小型电路上工作得很好,而实际的布线引擎需要在超大型 3D 网格图 ( > 1000 × 1000 × 10 ) (> 1000 × 1000 × 10) (>1000×1000×10) 上有效地处理数百万个网络并产生高质量的解决方案。


5. Open-source and Public Datasets

  • Open-source
    • 谷歌发布了一个分布式的平面规划框架 DRL(https://github.com/google-research/circuit training)
    • 针对宏和标准单元布局问题的端到端学习方法 DeepPlace 也公开可用(https://github.com/Thinklab-SJTU/EDA-AI)
    • 另一个项目DREAMPlace提供了一个支持深度学习工具包的VLSI放置工具(https://github.com/limbo018/DREAMPlace)
    • 现在可以尝试将DRL与全局路由结合起来(https://github.com/haiguanl/DQN GlobalRouting)
  • Datasets
    从 2005 年的纯无线驱动电路设计开始,每年在 ISPD 和 ICCAD 举办定期的研究竞赛,以提供各种由业界贡献的通用书架格式的电路设计。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SP FA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值