清华汪玉等电子设计自动化ML论文综述:180篇文献、ACM TODAES接收

近年来,机器学习的快速发展使其在各行各业迎来了更加广泛和深入的应用,电子设计自动化领域也不例外。机器学习技术在该领域的应用已有二三十年的时间,期间相关技术的进展为电子设计自动化任务提供了更好的解决方案。在本文中,清华大学汪玉团队联合港中文 Bei Yu 组对机器学习技术在电子设计自动化领域的应用进行了全面性回顾,为读者了解该领域提供了一份非常好的学习指南。

电子设计自动化(electronic design automation, EDA)是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。机器学习技术在 EDA 领域的应用可以追溯至上世纪 90 年代,而 ML 技术的近期突破性发展和 EDA 任务不断增加的复杂度使得研究者对利用 ML 解决 EDA 任务产生了愈发浓厚的兴趣。

最近,清华大学电子工程系教授汪玉团队联合香港中文大学 Bei Yu 老师组同学就该主题撰写了一篇 44 页的综述文章。该论文被 ACM TODAES 期刊录用。


论文链接:http://nicsefc.ee.tsinghua.edu.cn/media/publications/2021/TODAES21_331.pdf

电子设计自动化 (EDA) 作为应用计算机 / 电子工程的一个重要领域,有着悠久的历史,并且仍在积极融合前沿算法和技术。近年来,随着半导体技术的发展,集成电路 (IC) 的规模呈指数级增长,这对电路设计流程的可扩展性与可靠性提出了挑战。因此,EDA 算法和软件在处理低延时超大搜索空间的情况下需要更有效、更高效。


现代芯片设计流程。

机器学习 (ML) 在我们的生活中扮演着重要角色,并广泛应用于各种场景。机器学习方法,包括传统算法和深度学习算法,在解决分类、检测和设计空间探索问题上取得了惊人的成绩。此外,机器学习方法显示出为许多 NP-complete (NPC) 问题生成高质量解决方案的巨大潜力,而这些问题在 EDA 领域普遍存在。传统方法往往需要从头开始解决每一个问题,无法累积知识,进而导致大量时间和资源的浪费。而机器学习方法侧重于提取高级特征或模式,这些特征或模式可以在其他相关或类似的场景中重用,从而避免重复的复杂分析。因此,应用机器学习方法是加速解决 EDA 问题的一个很有前景的方向。

近年来,基于机器学习的 EDA 逐渐成为热门话题,研究人员提出了许多利用机器学习改进 EDA 方法的研究。这些研究几乎涵盖了芯片设计流程的所有阶段,包括设计空间缩减与探索、逻辑综合、布局、布线、测试、验证、制造等。

在该综述论文中,作者将收集的研究分为四类:传统方法中的决策、性能预测、黑盒优化和自动化设计。

机器学习在 EDA 领域的应用开始于传统方法中的决策算法,即训练机器学习模型,使之在可用的工具链、算法或超参数中进行选择,以取代经验选择或暴力搜索。

机器学习还可以用于性能预测,即基于先前实现设计的数据库训练模型以预测新设计的质量,从而帮助工程师评估新设计,而无需耗时的综合过程。

它还可以更加自动化,EDA 工具利用黑盒优化的工作流程,即设计空间探索 (DSE) 的整个过程由预测性机器学习模型和机器学习理论支持的采样策略来指导。

深度学习 (DL) 特别是强化学习 (RL) 的最新进展激发了一些研究,这些研究将具备极大设计空间的复杂设计任务完全自动化,即以在线形式学习、执行和调整预测模型和策略,显示了人工智能(AI)辅助自动化设计的美好前景。

该综述论文对利用机器学习解决 EDA 重要问题的近期研究进行了全面回顾,涉及的大多数研究为最近 5 年内的工作。论文主体部分的结构如下:

  • 第二章:介绍 EDA 和 ML 的背景知识;

  • 第三到第五章:介绍针对 EDA 流程不同阶段的研究,分别是高级综合、逻辑综合和物理设计(布局和布线)以及掩模综合(mask synthesis);

  • 第六章:综述使用机器学习的模拟设计方法;

  • 第七章:探讨机器学习支持的测试和验证方法;

  • 第八章:其他高度相关的研究,包括用于 SAT 求解器的机器学习和使用深度学习引擎加速 EDA;

  • 第九章:从机器学习的角度探索多种研究,也是对该论文主要部分的补充;

  • 第十章:总结了 EDA 的现有机器学习方法,并重点介绍了该领域的未来趋势。


高级综合

高级综合(high-level synthesis, HLS)工具提供了从基于 C/C++/SystemC 的规范到 Verilog 或 VHDL 等硬件描述语言的自动转换。业界和学界开发的 HLS 工具极大地提升了自定义硬件设计的生产效率。高质量 HLS 设计需要在与并行性、调度和资源使用相关的高级源代码中有恰当的编译指示,并在后 - 寄存器传输级(register-transfer level, RTL)阶段精心选择综合配置。对这些编译指示和配置进行调整是一项重要的任务,并且每个设计的长综合时间(从源代码到最后位元流的时间)使得无法进行详尽的 DSE。

机器学习技术的应用通过三个方面改善了 HLS 工具,分别是快速准确的结果估计、优化常规 DSE 算法和将 DSE 改造为主动学习问题。除了在单个问题上取得优秀结果之外,之前的研究还提出了一些针对特征工程、ML 模型选择与自定义、设计空间采样和搜索策略等的新型泛化技术。


利用 ML 进行结果估计

首先是对时序、资源使用和操作延时的估计。下图 2 展示了时序与资源使用预测的整体工作流。Dai et al. [30] 提出的工作流可分为两个步骤:数据处理和训练估计模型。


跨平台性能预测的整体流程如下图 3 所示:


利用机器学习优化 DSE 算法

下图 4 展示了迭代优化 DSE 框架:



HLS 机器学习算法汇总

下表 2 汇总了近来研究中提出的 HLS 机器学习算法:



逻辑综合与物理设计

逻辑综合与物理设计阶段,很多关键的子问题都可以从机器学习模型中获益,如光刻热点检测、路径分类、拥塞预测、布局指导、快速时序分析、逻辑综合调度等。下表 3 汇总了用于逻辑综合与物理设计的机器学习算法:



光刻与掩模分析

光刻是半导体制造中的关键步骤,它将设计的电路及其布局转化为实物(real object)。光刻热点检测和掩模优化是两种流行的研究方向。

光刻热点检测

许多研究利用机器学习进行光刻热点检测。最近,Chen et al. [22] 提出了一个用于大规模热点检测的端到端可训练目标检测模型。该框架以完整或大规模的布局设计作为输入,定位热点可能出现的区域,参见下图 6。



利用机器学习进行光学邻近修正

对于光学邻近修正(optical proximity correction, OPR)而言,逆向光刻技术(inverse lithography technique, ILT)和基于模型的 OPC 是两种代表性的掩模优化方法,并各具优劣势。Yang et al. [163] 提出了一种有助于掩模布局优化的异构 OPC 框架,其构建的确定性机器学习模型可以为给定设计选择恰当的 OPC 解决方案,具体如下图 7 所示:


随着半导体技术的改进与集成电路(IC)规模的增长,传统 OPC 方法变得越来越复杂和耗时。Yang et al. [159] 提出了一种基于生成对抗网络(GAN)的新 OPC 方法,GAN-OPC 的训练流程与 ILT-guided 预训练流程如下图 8 所示。实验结果表明,基于 GAN 的方法可以极大地加速基于 ILT 的 OPC 方法,并生成更加准确的掩模图案。



利用机器学习进行 SRAF 插值

一些研究探讨了机器学习辅助的(ML-aided)SRAF 插值技术。Xu et al. [158] 提出了一种基于机器学习技术的 SRAF 插值框架;Geng et al. [43] 提出了一种具备更好特征提取策略的框架。下图 9 为特征提取阶段示意图:



利用机器学习进行光刻模拟

此外还有一些研究致力于冗长光刻流程的快速模拟。传统光刻模拟包含多个步骤,如光学模型构建、抗蚀模型构建和抗蚀图案生成等。LithoGAN [165] 提出了一种利用 GAN 的端到端抗蚀建模方法,如下图 10 所示:


这一章综述了制造阶段设计中使用的机器学习技术,包括光刻热点检测、掩模优化和光刻建模。相关研究如下表 4 所示:



模拟设计

模拟电路的设计流程

Gielen 和 Rutenbar [45] 提供了大多数模拟设计师遵循的设计流程。如图 11 所示,该流程包括从系统级到设备级的自上而下设计步骤,以及自下而上的布局综合和验证。



用于设备尺寸自动化的机器学习

下表 5 列举了用于设备尺寸自动化的多种机器学习算法及其性能:



用于模拟布局的机器学习

模拟布局是一个难题,因为布局中的寄生元件会对电路性能产生重大影响,导致布局前和布局后模拟之间的性能差异。同时,布局与性能之间的关系很复杂。传统上,电路设计人员会依据他们的经验来估计寄生效应,这会导致设计时间过长和潜在的不准确性。因此,自动模拟布局已经引起研究人员的关注。近来机器学习算法的发展促进了该问题的研究,下表 6 是相关研究的总结。



验证和测试

加快验证和测试过程的方式主要有两种:1)减少测试集冗余;2)降低测试、验证和诊断过程的复杂性。为了减少测试集的冗余和优化测试实例的生成,针对覆盖范围的测试生成已经进行了很长时间的研究,可以通过多种机器学习算法来辅助。近年来,减少模拟 / RF 设计的测试集冗余和半导体技术的测试已经引起了广泛关注,并且该领域也引入了更多机器学习方法来解决问题。为了降低验证和测试的复杂性,有些研究采用的低成本模拟 / RF 设计测试,而另一些研究则专注于快速的错误分类和局部化。表 7 总结了与 ML 相关的验证和测试问题的相关研究。



机器学习的角度进行探讨

本章从机器学习应用的角度综述了上述研究。其中章节 2.2 介绍了 EDA 问题中使用的主要机器学习模型与算法。基于 EDA 工作流中机器学习的功能性,研究者将大多数研究分为四类,分别是传统方法中的决策制定、性能预测、黑盒优化和自动化设计。

下表 8 从算法、输入与输出三个角度汇总了每类的代表性工作以及典型的模型设置:



数据准备

数据集的数量和质量对模型的性能至关重要。本文综述的几乎所有研究都在谈论如何利用 EDA 领域的知识来设计一个大型、公平和干净的数据集。


未来工作

虽然该领域已经取得显著进步,但研究人员希望在以下几个方面对机器学习应用于 EDA 任务进行更多的研究:

  • 更加成熟的 ML-powered EDA 工具;

  • 新的机器学习技术的应用;

  • 值得信赖的机器学习


理论清华大学电子设计自动化香港中文大学
相关数据
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

http://www.tsinghua.edu.cn/
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

插值技术

数学的数值分析领域中,内插或称插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。求解科学和工程的问题时,通常有许多数据点借由采样、实验等方法获得,这些数据可能代表了有限个数值函数,其中自变量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

模型选择技术

模型选择是从给定数据的一组候选模型中选择统计模型的任务。对于具有类似预测或解释力的候选模型,最简单的模型最有可能是最佳选择(奥卡姆剃刀)。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

主动学习技术

主动学习是半监督机器学习的一个特例,其中学习算法能够交互式地查询用户(或其他信息源)以在新的数据点处获得期望的输出。 在统计学文献中,有时也称为最佳实验设计。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

生成对抗技术

生成对抗是训练生成对抗网络时,两个神经网络相互博弈的过程。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。

暂无评论
暂无评论~