机器学习如何帮助芯片设计
在过去的 20 年里,集成电路 (IC) 行业的发展是难以想象的,我们现在正在见证下一阶段的变化。为了利用半导体工艺的进步带来的机遇,需要不断开发新的工具和方法,以便使用这些技术的设计工程师尽可能地提高生产力。
机器学习(ML)也已经发展到现在似乎每个人都在使用的工具之一,但是ML对芯片设计意味着什么?是否ML确实是芯片设计的未来?
生产力挑战
在数字设计的萌芽阶段,工程师们采用了完全定制的电路布局方法,手动放置和连接每个晶体管,这是一项艰巨且耗时的任务。设计人员很快意识到,通过使用标准单元和原理图网表来实现数字逻辑设计,可以加快设计任务。
但是,创建原理图网表也是手动的。桌面 Unix 工作站的出现使寄存器传输逻辑 (RTL) 综合成为可能,允许工程师使用高级硬件描述语言(如 VHDL 和 Verilog)创建数字逻辑,这些语言可以快速综合具有数千个逻辑门的网表。
虽然这有助于克服设计问题,但它无意中创造了另一个问题——如何布局大量标准单元。反过来,通过开发自动化布局布线来克服这一点,这两个系统的综合效果是大大提高了数字设计流程的生产力,使设计人员能够专注于优化功耗、性能和面积 (power/performance /area PPA)。
然而,设计的挑战与设计的规模成比例,标准单元已从数千个迅速增长到数百万个。虽然IC的规模不断扩大,但可用的IC设计工程师的数量却跟不上,导致设计挑战不断加剧。随着晶圆代工工艺尺寸的缩小,晶体管密度不可避免地增加。为了让行业跟上这种不断提高的复杂性,设计工程师必须提高工作效率。
机器学习是帮助实现这一目标的理想之选。
EDA 中的 ML
1959年,计算机游戏和人工智能的先驱亚瑟·塞缪尔(Arthur Samuel)将ML定义为“使计算机能够在没有明确编程的情况下学习的研究领域”。芯片设计过程的每个元素都很难实现自动化,因为它在很大程度上依赖于单个工程师的经验。
传统上,该行业通过将大型芯片设计项目分解为更小的任务来解决这些问题,这包括timing closure、placement constraints、floor-planning 、了解EM以及DRC。需要许多芯片专家的投入,几乎每家芯片设计公司,无论大小,都有在timing、APR或功耗方面具有专业知识的常驻“专家”。
ML之所以非常适合应用到设计自动化,是因为大部分设计过程都是手动的,需要对可预测的场景进行迭代评估。机器学习推理的强大之处在于可以对其进行训练,以在比手动方法更短的时间内提供改进的结果。
ML 的概念在 1959 年只不过是一种理论,但计算机技术的巨大进步,导致多个强大的 GPU 并行运行,以及在云中执行复杂计算的能力,使计算机科学家在 ML 领域取得了巨大进步。近年来,它已经成功地应用于设计流程的各个任务(例如自动布局布线),但只有将其应用于更高层次,才能充分发挥ML的全部功能。
设计流程优化
虽然 ML 已经改进了设计流程的各个组件,但下一步是使用它来加速整个设计流程,目前这始终需要设计的手动交互。
使用AI获取这些专业知识对生产力可以产生更大的影响。
在当前的手动和迭代流程开发过程中,设计人员创建最初的RTL,综合设计,生成结果。然后,经验丰富的工程师根据输出结果调整流程,然后重新综合设计以生成新结果。此迭代过程一直持续到达到所需的 PPA 达到可以接受可用结果为止。
这需要大量的工程工作,并且对计算资源的使用效率低下。
在团队中增加更多的工程师并不一定能转化为 PPA 的改进。ImageImageImage
现在,有一种革命性的、机器学习驱动的芯片设计流程优化方法。这种新方法允许工程师指定 PPA 目标,然后以全自动方式优化数字 RTL 到 GDS 流程的各个方面,以比手动流程更快地实现这些目标。
今天的工程师可以在现有的 ML 架构上开发RTL,并利用现在可用的海量计算能力。ML仅使用实时设计数据样本,使其能够“即时”做出优化决策。这意味着它可以立即停止无法收敛于更好的 PPA 结果的RTL开发,从而将计算资源重新分配给其他更需要的任务。这种方法比手动流程调整更有效,因为在手动流程调整中,仅在每次综合结束时查看结果。
在流程优化过程中,学习引擎会分析大量设计数据。随着强化学习过程的进行,将创建一个机器学习模型,捕获设计数据分析。然后,通过在项目之间重用数据,可以将其用作未来设计流程优化的起点,从而节省大量计算资源并更快地交付改进的 PPA。
结论
半导体行业的持续增长将要求芯片设计工程师提高工作效率。利用现在可用的支持云的并行和分布式计算资源,ML工具将进一步改善PPA,使工程团队能够达到应对更大和日益复杂的芯片设计所带来的挑战所需的生产力水平。过去,EDA工具提高了工程师的工作效率。从现在开始,ML将提高EDA工具的生产力,从而提高使用它们的工程师的生产力。