机器之心报道
机器之心编辑部
近年来,机器学习的快速发展使其在各行各业迎来了更加广泛和深入的应用,电子设计自动化领域也不例外。机器学习技术在该领域的应用已有二三十年的时间,期间相关技术的进展为电子设计自动化任务提供了更好的解决方案。在本文中,清华大学汪玉团队联合港中文 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 工具;
新的机器学习技术的应用;
值得信赖的机器学习。
,