Introduction to ML for EDA (Chinese)
0. 前言
近年来,人工智能(AI)与机器学习 (ML) 已经在诸多应用领域取得了突破。而在传统的半导体领域,研究者们也探索了基于机器学习的芯片设计新方法。这些新算法通常会最先反映在芯片设计工具上,也就是所谓的EDA工具。因此,这一研究方向通常可以被称为ML for hardware design,或者ML for EDA(严格来说前者的范围更大一些)。有时也称做智能化的EDA算法或者智能的IC设计方法。
本文就将介绍ML for EDA这一热门研究方向。这一方向涉及到机器学习,数据结构与算法,电路设计与制造等基础知识,是典型的交叉研究方向。我们将从EDA的背景知识开始,介绍什么是ML for EDA, 为什么我们研究ML for EDA,代表性的工作,当前商业化的进程,以及其他相关的研究方向。
1. 什么是EDA? – EDA与芯片设计
芯片的设计与实现涉及一个复杂的流程。以数字芯片为例,假设设计团队从已经完成的Verilog/VHDL代码出发,标准设计流程至少还要包括逻辑综合(logic synthesis),布局规划 (floorplan),时钟树综合(CTS),布局布线(placement & routing)等步骤。除此之外还需要大量的仿真和验证工作。这个过程设计者需要权衡功耗,频率,面积等多个设计目标,同时还要确保芯片能够正常运行各种功能。当下先进的芯片可以包含超过 100 亿个晶体管,考虑到流程的复杂性,几乎所有设计团队都需要商业EDA工具来辅助完成整个设计流程。如果我们把整个半导体产业比作一座金矿,EDA工具则也许可以被看做挖矿的铲子。在美国频繁限制半导体出口的当下,本身市值并不大的EDA产业越来越为人们所重视。
EDA的全称为Electronic Design Automation,即电子设计自动化。经过几十年的发展,EDA工具已经被用于芯片设计与制造流程的方方面面。EDA工具的质量将会影响最终芯片的质量(功耗,频率,面积)以及设计效率(产品上市时间)。因此,EDA算法研究者的目标通常包括两方面,一是芯片优化效果(功耗,频率,面积),二是EDA工具本身的效率(耗时=工具单次运行时间* 使用该工具的次数)。
量化EDA工具的效率时,我们强调了工具的使用次数。因为通常工程师需要反复迭代各个设计步骤直至达成设计目标。在每一次迭代,工程师可以修改EDA工具的参数或者芯片设计本身,并重新运行EDA工具,以期更好的芯片效果。然而对于大规模的芯片设计,仅执行部分设计流程每次即可花费数天至数周时间。因此,迭代次数越多,花费在EDA工具上的时间越多,最终流片以及产品上市时间就会越晚。
2. 什么是ML for EDA? – 预测与优化
在芯片设计流程中,根据个人总结,ML for EDA方法主要可以被用于预测(prediction)与优化(optimization)两大方面。下面分别举例来说明这两类应用。
预测类工作通常使用ML模型对芯片优化目标进行早期快速预测。利用ML模型的预测,设计师可以减少对耗时的EDA工具的使用,而直接预测EDA工具优化后的结果。因此,设计者可以获得更真实的优化目标,并且及时优化设计参数。换句话说,ML模型通过快速预测EDA工具的行为,一定程度上减少了运行EDA工具的必要性。
一个典型的预测类工作例子就是,使用CNN在芯片绕线之前对(绕线后可能产生的)DRC热点进行提前预测。通过预测结果,EDA工具可以提前设法修改布局,避免造成DRC热点。这个工作可以类比于用CNN进行图像分类或者语义分割,其中芯片版图类似于图片,而需要预测的DRC热点位置类似于图片上需要分割的区块。
为什么研究ML for EDA
- 关于ML for EDA相比传统EDA算法的优势,笔者这里提供一种解释。
ML for EDA的分类
事实上ML for EDA的工作远远不止刚才介绍的两个例子。这些工作可以通过多种方法进行分类。根据ML使用的阶段分类,ML已经被研究者尝试用于绝大部分设计阶段。根据最新的总结[1],分类可以包括 1.高阶综合(HLS)与设计空间搜索(DSE),2.逻辑综合,3.物理设计(从布局规划到布线),4.光刻与制造,5. 验证与测试,6.运行阶段的芯片管理。严格意义上说,最后一点(运行阶段的芯片管理)更接近IC设计而非EDA范畴,但由于使用的方法接近,可以将它归类到ML for hardware design。除开数字电路之外,一些ML研究也对模拟电路的布局布线有一些尝试。
根据ML预测或优化的目标分类,ML已经被研究者尝试用于大部分芯片优化目标,包括 1.功耗,2.频率/延迟(delay or slack),3.面积与线长,4.拥塞(congestion)与规则检查(DRC),5.电压降(IR drop)与串扰(crosstalk), 6. 光刻(lithography),等等。
代表性的ML for EDA工作
引用文献
[1] Martin Rapp, et al. “MLCAD: A Survey of Research in Machine Learning for CAD”