近年来,机器学习的快速发展使其在各行各业迎来了更加广泛和深入的应用,电子设计自动化领域也不例外。机器学习技术在该领域的应用已有二三十年的时间,期间相关技术的进展为电子设计自动化任务提供了更好的解决方案。在本文中,清华大学汪玉团队联合港中文 Bei Yu 组对机器学习技术在电子设计自动化领域的应用进行了全面性回顾,为读者了解该领域提供了一份非常好的学习指南。
电子设计自动化(electronic design automation, EDA)是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。机器学习技术在 EDA 领域的应用可以追溯至上世纪 90 年代,而 ML 技术的近期突破性发展和 EDA 任务不断增加的复杂度使得研究者对利用 ML 解决 EDA 任务产生了愈发浓厚的兴趣。
最近,清华大学电子工程系教授汪玉团队联合香港中文大学 Bei Yu 老师组同学就该主题撰写了一篇 44 页的综述文章。该论文被 ACM TODAES 期刊录用。
论文链接: https://arxiv.org/abs/2102.03357
电子设计自动化 (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 的现有机器学习方法,并重点介绍了该领域的未来趋势。