导读:eda(electronic design automation,即电子设计自动化)工具可以让芯片设计从几十年前图纸上画线的体力活,变成软件里“素材排列组合+敲敲代码”的脑力活。eda软件作为关键的芯片设计工具,是集成电路产业的一大基石,而这一领域长期由美国三巨头synopsys、cadence和西门子(原mentor)把持,占据全球市场份额超过64%。近日,美国宣布对华断供eda,给原本就严峻的国产eda发展形势带来了更多的不确定性。对此,智源社区访谈了北京大学集成电路学院助理教授、特聘研究员林亦波,了解他走上eda研究之路的点滴以及对国产eda发展的期许。
林亦波博士是北京大学集成电路学院助理教授,特聘研究员,博士生导师。2013年本科毕业于上海交通大学,2018年于美国德克萨斯大学奥斯汀分校获得电子与计算机工程专业博士学位。长期从事集成电路设计自动化(eda)、机器学习辅助eda等方面的工作。迄今为止发表论文100余篇,6次获得eda领域旗舰会议和期刊最佳论文奖(包括dac 2019、tcad 2021、date 2022)。曾担任包括dac、iccad等领域内旗舰会议的技术程序委员会成员,以及领域内顶级期刊如tcad、todaes等审稿人及编委。
入门电路仿真器,发现写代码的乐趣
说起如何走上eda研究的道路,还要回到本科时代。在上海交通大学就读微电子专业期间,在c++、数据结构与算法这些课上学得比较吃力,一度对编程有些排斥。后面我选修了一门叫做设计自动化引论的课程,要求我们自己写一个电路仿真器。这个任务对于当时的我来说颇具挑战。基本上一整个学期的所有周末都在忙这个大作业,做完之后我就拥有了一个带图形界面的仿真器,在这个过程中,我逐渐体会到了写代码的乐趣。完成之后,我拥有了一个属于自己的eda小工具,可以辅助分析电路,让我觉得好玩又好用。也正是这个小工具促使我走上eda的研究之路。
从模拟电路版图设计到投身eda
后来申请出国的时候,我在两个方向上犹豫不决,分别是eda和模拟电路设计。通过大四毕业设计,我排除了做模拟电路设计这个选项,这个故事说来话长。模拟电路的设计中,除了电路仿真验证是靠eda工具,搭电路、画版图都靠手工,是非常耗时耗力的工作。我记得当时跟一个同学合作画版图,lvs检查报错,找了几个礼拜都没找到原因,后来发现我们把电源接地上了,导致了失误,当时就觉得特别折腾。现在我们组有一个方向就是研究模拟电路的设计自动化,希望能够把版图工程师从繁琐劳动中解放出来。后来我来到德克萨斯大学奥斯汀分校(ut),并选择了eda作为研究方向。
在拜访我后来的导师david pan时,他说,你先来上我的课,证明你有足够的竞争力,然后再决定是否能让你进组。就在那一年我参加了一个eda比赛,最终拿了第五名,导师觉得还过得去,也就决定留下我了。当时比赛的题目是芯片布局,这也成为了我博士和博后期间的主要研究方向。我后面又在这个大方向里融合进了芯片可制造性、光刻等相关的课题。我的博士毕业论文题目就是如何在芯片设计流程中考虑可制造性优化和布局布线优化。做博后期间,我们与英伟达合作,发现深度学习训练过程与布局优化过程非常相似,于是利用深度学习框架,研发了dreamplace开源布局器,这项工作后来获得了eda领域顶会dac和顶刊tcad的最佳论文奖。
图 1 gpu并行可微时序分析与优化算法(左)及基于图学习的时序预测算法(右)
回国之后,我的主要研究方向是ai+eda,希望通过高效精准的建模与异构计算去优化芯片设计。最近,我们团队在时序分析方面取得了一系列成果,实现了gpu并行可微时序分析和基于图学习的时序预测,并将其应用到布局算法中(differentiable-timing-driven global placement),在时序优化性能、求解速度等方面基本上都达到了国际上学术领先的水平。
在研究过程中,我们发现ai+eda的研究常常受限于公开数据集,不像计算机视觉领域有imagenet这样的大数据集可以很方便地验证算法。针对这一问题,我们近期跟黄如院士、王润声教授等合作,发布了首个致力于芯片设计ai for eda应用的开源数据集——circuitnet,包含1万以上的数据样本,涵盖从实际制造工艺pdk下数字设计流程不同阶段中提取到的各类特征。欢迎大家试用并向我们反馈意见和建议(https://circuitnet.github.io/)。
图 2 circuitnet数据集支持多个ai for eda预测任务
eda中的关键问题——建模和优化
典型的芯片设计流程是先做前端、后端设计,再去验证性能、功耗和面积。但由于流程太长,在前端设计的时候,无法保证后端设计的效果,所以很多时候需要进行跨环节建模,在早期设计环节预测后续环节的求解质量,这当中就很适合ai算法来进行辅助。除了建模之外,另外一个关键问题是优化。eda中经常要求解各种各样的组合优化问题。这些问题往往是 np难题,比如经典的旅行商问题。传统上,我们会通过一些启发探索的方法来求解。但随着规模不断增大、设计约束越来越多,这种探索往往遇到效率瓶颈,所以我们需要通过机器学习技术进行辅助,寻找有效策略,提高效率。
q&a:国产eda发展,首要解决人才匮乏问题
q1:从芯片设计到流片,面临一系列“卡脖子”问题。请您从eda研究者角度谈谈中国在芯片领域近年来的优势和劣势?
a:芯片从设计到制造,流程很长。我对eda比较熟悉,就主要讲讲这方面。这两年,我们国家整个eda产业发展迅速,不过学术和产业应该分开来看。学术上来讲,特别是这两年稍微受到一些重视之后,学校的学术研究发展得快,在各大会议和竞赛中频频得奖。北大等高校也在不断发力,北大集成电路学院成立了“设计自动化与计算系统系”,聚焦eda技术。在学术界,只要盯着一个环节,甚至一个小算法,把它研发到极致就行。但在产业界,对于一个公司而言,要发布产品,用户主要看功能是否完整,性能是否领先。目前我们产业界还面临着完整性缺失的问题。
q2:为什么有些国内团队在eda比赛中能得奖,但是具体到应用工具的话还是有问题?
a:eda比赛由于时间的限制,都是从设计流程中抽象出来一个小问题,让参赛者求解。由于这个小问题经过抽象,所以跟工业界实际的需求并不完全一致。此外,实际工业界的设计流程需要解决很多这样的“小问题“。综合这两点,比赛获奖离实际应用到公司的产品还是有一段距离的。
q3:如果国产eda想发展的话,您觉得还需要哪些资源?
a:个人认为eda的发展需要时间、人力和资金的投入。第一个是时间。一个商用eda工具做出来后常面临性能不佳或者稳定性的问题,需要跟芯片设计厂商长时间的打磨,不断迭代,才能慢慢补齐性能差距。并且随着工艺和设计的发展,还根据特定用户的需求进行专门定制。这需要大量的时间。第二个是人力。国内eda的研发人员还是太少。前两天我刚看到一个数据, synopsys大概有1.6万研发人员,cadence大概9千多人,而且仍在扩招。国内eda公司研发人员大多在百人级别,虽然这两年增长较快,但差距依然很大。很多初创公司都会来高校,特别着急地想招毕业生。但高校培养学生需要时间,经过几年的硕士或博士训练之后,才具备一定的核心研发能力。所以说该领域对人才要求比较高,人才数量也比较缺乏。第三个是资金。18年的时候有数据显示,中国在eda一年的投入,差不多是synopsys一家公司三个月的研发投入,可见差距之大。近两年,几家国内eda公司上市,预计往后会有更多资金投入。
q4:说到人力的短缺,现在学生毕业后不愿意从事这方面工作,是薪资的问题吗?还是其他原因?
a:薪资确实是一方面。eda与算法息息相关,从业者很容易转去互联网公司。过去互联网公司薪资更高,很多eda背景的同学毕业后更愿意去互联网公司。但现在eda受到重视,我认为情况会有改变。另一方面,从我个人经验来看,原本高校当中做eda的老师就特别少,培养出的eda学生自然也少。这两年eda逐渐受到重视,有不少新的老师加入,相应地也会培养出越来越多的学生,那么毕业以后从事这个行业的学生也会增加,这是一个良性的循环。
q5:基于您之前重要的工作,谈一谈您个人的长远规划,或者说想实现的科研理想?
a:目前我的研究主要从两个角度出发,分为智能化和异构化。这两个角度其实是相辅相成的,其一,把ai技术和eda相结合,逐渐减少人为的干预。其二,把ai中常用的gpu、fpga、ai芯片等异构计算资源,也在eda算法当中利用起来。目前eda软件主要跑在cpu上。三大家这两年也发布了一些能够跑在gpu上的点工具和模块,我们希望未来能够有一套可支持各种各样异构计算资源的算法平台,在运行时选择最佳的计算资源。
q6:有关eda的学习,您对初入该领域的学生有什么建议吗?
a:现在「ai for eda」特别火。很多学过一些ai知识的同学,都愿意来尝试eda这个方向。我给同学们的建议就是要回到eda的基础原理和基础算法。从目前的ai技术来看,可以在传统eda算法的基础上起到锦上添花的作用,但短期内没有办法完全替代掉传统算法。此外,建议同学们去了解一下整个设计流程,这对于理解ai在eda中起到的作用非常关键,也有助于学习如何生成足够的数据,进行该方向的研究。这里打个小广告,欢迎同学们关注我们针对ai for eda发布的circuitnet数据集(https://circuitnet.github.io/),网页上提供了详细教程,可以作为一个很不错的起步。
q7:在科研规划或者职业发展上,您有没有什么建议?
a:第一,不管是走学术道路还是产业道路,你要解决的问题一定是实际问题。这个问题可以经过一定的抽象,但它必须来源于实际,必须是产业界所真正关心的问题。第二,走学术道路的话,在选课题的时候眼光可以放得更长远一点,比如未来10年、20年可能会遇到的问题。如果考虑去公司,可以考虑比如未来5年或者亟待解决的问题。第三,就eda领域而言,和产业结合紧密,学术上的成果很有机会在公司的环境下去做原型验证。当然,有时候产业当中的实际问题有时候会特别繁琐,包含很多工程性的工作,不那么适合学术研究。但完全脱离实际问题的学术研究,又是空中楼阁。如何平衡实用性和学术性是同学们需要在学习当中去思考的问题。
开发区污水管网多参数水质监测方案详解
SIGGRAPH 2021虚拟会议将对计算机图形的最新创新进行一次深入探讨
关于安森美RSL15电池寿命估算器的研讨会
如何提高的你的编程能力
声光报警实验稳压电源电路
深度研究AI+EDA新方向
逆变器IGBT模块的使用分析,各项技术指标
紫外光固胶UV胶的性能特点优势有哪些
用算法来挖掘人工智能的巨大潜力
解析未来LED封装的未来发展方向
基于排爆机器人PBJ-1的嵌入式控制系统的设计与解决方案
大空间测量测绘3d扫描仪大空间扫描三维扫描技术用于老旧建筑室内外改造三维扫描仪
电动车电瓶修复技术——蓄电池的故障与检修课程「连载1」
如何构建一个“软接触”开关
一种集成式微流控液滴数字化等温扩增(LAMP)方法
电磁加热圈电线如何选择
三大运营商表示坚决落实网络“提速降费”和推进“携号转网”
详解云计算之云渗透测试
浅谈如何提升电力市场化售电核心竞争力
linux安全基线如何配置