乐于分享
好东西不私藏

AI与EDA:芯片设计软件的智能化之路

AI与EDA:芯片设计软件的智能化之路

大家好,欢迎来到新哥聊AI,今天跟大家聊一个跟我专业密切相关的话题——AI与EDA软件的操作。我试过国内外一些AI与EDA软件兼容的产品,也看过相关宣传片,今天我们一起讨论几个研究方向。
📖 什么是EDA?
EDA是Electronic Design Automation的缩写,直译就是电子设计自动化。做电路或相关器件时,我们需要用软件来辅助设计——你看,那个时代就有”自动化”了。
早期集成电路的EDA设计,要数康威(Lynn Conway)这位了不起的科学家。她在数字电路设计上首先提出了棒状图(Stick Diagram) 。当时数字电路数量还不多,根本没有什么仿真软件、设计软件,完全手工操作。
你可以想象,Intel的4004其实是一个芯片组,从4001到4004四款芯片组成,是最早的CPU。4004作为其中技术含量最高的一块被广为流传,它奠定了Intel后来X86体系的基础——那颗芯片只有3000多个晶体管,纯手工设计,多复杂可想而知。
在4004之前,存储器的设计相对容易,因为存储单元的结构高度重复。只要你把一个结构画对了,其他结构就像Conway规则一样复制即可。这也是为什么早期很多人做存储芯片——受限于手工绘制版图,重复结构是最务实的选择。
当时的版图绘制是在蓝色和红色的掩膜版上进行的,画完直接拿去制造。有点像服装设计师:画一个草图,根据模特身材设计衣服,再把设计图变成精确尺寸交给制作工坊。
🔢 从汇编到高级语言:电路听不懂人话
后来不行了。数字集成电路出来后,存储芯片要求的容量越来越高,过去K级就已经不错了——这就是为什么当时有汇编语言,介于编程语言和机器语言之间。
我本科时老师带着做大创,给了我一堆汇编代码去读,读得昏天黑地——有些部分直接就是0110,就是高低电平这种数字信号,给到单片机或嵌入式系统上实现功能。如果你不了解电路的具体结构,根本不知道给的1001意味着什么。
现在C语言、Python语言越来越像人类语言,很多AI可以直接把人类语言转化成C语言、Python去执行。但我要跟大家说:无论是哪种语言,电路根本听不懂也看不懂。底层仍然有一个翻译指令集,把人类熟悉的表达转化成机器能听懂的语言。
因此,随着计算机深入、软件开发和电路设计旺盛需求的推动,EDA及其算法逐渐形成了一个完整的体系。
📊 数学建模的陷阱:参数越多越聪明?
在学术领域,EDA算法的研究曾经走过一条弯路。
早期人们还结合具体工艺库和实际制造要求去设计,后来一些科学家提出:我完全用数学建模的方式来描述电路功能和器件特性,不需要去工厂了解芯片怎么制造,这就变成了一个编程和数学的游戏。
当时认为参数越多就越聪明——就好像现在说”70B满血版”的AI一样。刚开始确实如此:参数越多,模型仿真效果越接近真实情况。但后来发现不行了——
直接决定芯片性能的,不是仿真的性能,而是你实际做出来的芯片的测试效果。 电脑上的仿真和芯片做出来的结果不一样,甚至差距很大。
不断增加参数本质上是一种”拟合”思想:如果公式足够复杂、函数表达式足够复杂、参数足够多,就可以完美复刻一条曲线。但这些参数和公式本身是否具有物理意义?条件变了它是否能复现背后的物理机制?很多是达不到的。
举个例子:重力等于质量乘上重力加速度,g是9.8m/s²。但搬到月球上,这个g就不一样了。甚至在地球上,赤道和南北极测量的小g都不一样——你得结合实际情况去调整优化,甚至推倒重来。
后来人们发现了这个问题:计算机越跑越累,结果却不如人意。于是折中方案出现了——把实际的工艺参数、经验公式加入模型中进行优化,保证仿真结果越来越接近测试结果。
✈️ 飞行模拟器的启示
这就像训练飞行员。早期训练飞行员跟训练驾驶员一样,找个人少的地方直接上车开。但飞行员不能这样——飞行很危险,操作失误哪怕有经验丰富的飞行员在旁边也来不及挽回,机毁人亡。
后来有人发明了虚拟驾驶舱,把动作要领先在陆地上的模拟环境中练习,事故率大大降低。
EDA软件本质上也是这样。制造芯片要流片——把芯片设计图给到工艺厂去制造,整个流程费时费钱。如果每次都要试制,成本非常高,良率也低,烧好多次钱才有可能成功。每一次试错的代价太高。
把大量工作放在电脑上做,就可以帮你规避很多设计问题。而且集成电路无论是模拟电路、数字电路还是传感器,结构都趋向于越来越复杂,工艺制程越来越高级,单位芯片上晶体管和器件数量越来越多,人出错的概率因此增加,甚至不可能一把成。
我原来看过一些公司对外宣称”国产芯片流片一次成功”——我不相信,大概率是逆向设计别人的。你说一次成功,那你敢保证接下来每一次都一次成?谁敢说?
🔍 前仿与后仿:循序渐进的仿真逻辑
电路仿真一般分为前仿和后仿。最大的区别在于:后仿是画完版图之后再提取电路的寄生参数,因此后仿更接近芯片实际硬件的测试结果。
为什么要分前仿和后仿?因为仿真要循序渐进、由易入难。如果上来就仿真很复杂的后仿,纠错时你很难分清——这是寄生参数引起的错误,还是电路结构本身的问题?
所以仿真也是分开进行的:直流仿真、交流仿真、瞬态仿真、温度仿真、蒙特卡罗仿真、电磁场仿真等等。每次单独对某些特性进行仿真,背后的原因在于:人们分析问题时要化繁为简,把复杂的综合参数拆解成一步一步来实现。
🧩 设计电路不是拼乐高
有点像拼乐高玩具——只要零件不坏、按说明书一步步拼,无论多复杂的结构,理论上都是时间问题。
但设计电路不是乐高。乐高的魅力在于你做完第一步,第二步、第三步继续做,前面99步不用改变。 就算第50步拼错了,也可以拆开重拼。
电路设计完全不同。你有20到30个主要性能参数,互相之间是扯皮的——满足了这个,就难以满足那个。
举个最经典的例子:一个简单的闭环运放,它的增益和带宽存在一个参数叫增益带宽积(GBW) ——电压放大倍数乘上带宽,这是一个固定值。这个值一旦固定,意味着放大倍数和带宽是反着来的。
就像收音机:音量很大(放大倍数大),但能收到的电台频段范围减小;频段覆盖范围够了,但声音又听不清。增益和带宽,鱼和熊掌不可兼得。
而且逆向设计有时比正向还花时间——因为你要猜对方怎么想的。成熟产品为了防止别人逆向,会在版图或电路中埋雷——故意设置让你判断错误的结构,提取出来的参数很有可能是错的。
🤖 AI能做什么?从信息调研到多元参数仿真
现在主流EDA软件是三大巨头:Cadence、Synopsys、Mentor(现Siemens EDA)。
以Synopsys为例,AI的引入是由外到内、慢慢融合的。刚开始用AI帮集成电路设计师搜集相关数据——电路工程师虽然经验丰富,但设计新电路时一些基础概念和理论可能生疏,EDA体系太庞杂,谁都不敢保证学的全记住。这本质上跟用AI做舆情分析、搜集感兴趣的新闻是一模一样的——只是初级功能。
后来人们尝试让AI做更专业的事:
版图识别。 版图是你把芯片剖开放大后看到的结构,和电路图不同——电路图是方便设计的抽象图,版图才是跟工艺相关的真实设计图。Synopsys在数字电路版图设计上已经可以帮助实现这方面功能。
多元参数同时仿真。 过去做仿真是一步步来:直流→瞬态→交流→温度。经验丰富的工程师可以跳过一些步骤,或者写一个Perl脚本同时做分析。现在EDA软件自带变量扫描功能——给一个扫描范围和步长,只要工作站算力够,就可以在范围内给出结果。
但单独做到之后,人们提出:能不能让多个参数同时扫描,形成多维变量矩阵?
我试用了国内某款针对模拟电路的AI仿真工具,它可以实现多元参数同时仿真。参数维度方面:本科生毕设一般7-8个参数,研究生10-30个,真正的工程产品可能要加到50个。这些工具实际上都可以做到。
但必须说,目前有瓶颈——算力问题。
🔄 工艺库移植:目前落地效果最好的AI应用
工艺库移植(Porting)是现在工程界最喜欢的、也是落地效果最好的AI应用。
什么意思?你逆向了一个A厂家的电路,但现在能生产芯片的只有B厂家。你需要把A厂家的设计转化成B厂家的工艺库——怎么证明转化成功?仿真要跑通。
这个过程需要人工进行电路移植、调整、重画版图、改版。而AI可以做到:只要提取到电路的网表信息,就可以快速从一个工艺库移植到另一个工艺库。
实际上,大多数工程师设计电路都不是从零到一。几十年的芯片发展早就有大量IP核——前人经验积累的成果。接到甲方需求时,工程师首先到数据库里找最匹配的,有的直接不改就能当新品发货,有的调几个关键参数就能快速搞定。人类设计的范式就那么多,就像有人总结过小说只有70种情节套路。
🎨 美术生画版图:人为因素的启示
说到版图,有一件事可能出乎大家意料——硅谷很多画版图的工程师不是集成电路专业的,而是美术专业的。
美术专业的人有审美观点和艺术完美主义。我在硅谷认识一位女士,画了20多年版图,她就是美术专业的。培训三个月基本就能开始画版图。虽然她不一定很懂电路原理,但审美观点不比任何人差。
很多做电路的人会想”能实现就行,差不多就行”。但搞艺术的人往往有完美主义,把每个产品都当成艺术品去创造——反而能画出性能更好的版图。
这就是人为因素的作用。大语言模型的出现让更多非本专业的人涌入AI研究——数学的、物理的、各行各业的。一些非本专业人的奇思妙想破圈了,这才是大语言模型为EDA软件提供的难得契机。 仅靠堆砌算力和硬件,往往不见得能带来好结果。
🏗️ 数字电路vs模拟电路:AI的分水岭
数字电路的版图设计早就用算法实现了——这已经内建在Synopsys、Mentor这些EDA软件中,叫做综合(Synthesis) 。你用Verilog这样的描述性语言把功能描述下来,软件自动生成版图。
但模拟电路的版图,还是要靠人来做。 包括参数调整,以及什么时候做大刀阔斧的电路结构更换——这种抉择AI给不了你,只有人才能做。而且越有经验的工程师,越能早早预判”这个东西要重新规划”,越早做出判断,设计周期越短,产品竞争力越强。
十年前Google就有位女科学家做了AI辅助芯片设计的尝试——Google的AI芯片TPU(Tensor Processing Unit),围绕着大数据需求设计。AlphaGo、AlphaZero、AlphaFold都是基于TPU做的。他们用AI辅助设计TPU的版图,结论是:一个中级工程师做三个月的事情,AI一个星期就能完成。 这还是近10年前的情况。
现在不用大厂资源了。中等规模的EDA软件——电源管理芯片、保护电路、带隙基准电路——这些晶体管数量较少的电路,AI完全可以在一台中配的AI笔记本电脑上(1.5万到2.5万价位,有足够的CPU/GPU)完成多元参数仿真,速度还很快。
🧠 教AI学电路:从懂操作到懂原理
目前的AI帮EDA做的主要是操作步骤的优化——多元仿真也好、批处理合并也好,AI不用太懂电路,它只是帮你优化流程。
但接下来很多人在做的,是先教会AI学懂电路原理。有人专门开发了电路设计语言(不是Verilog,是另一种),让AI从集成电路设计基础开始,像带学生一样,一步一步学高阶课程,理解设计规则和版图规则。
AI足够聪明的话,这个过程可以大大缩短。等它懂了电路之后,你给它提出要求,它不仅能更准确地执行操作,还可以主动思考帮你调整电路——这才是大语言模型最精彩的地方。
我做了相关试验,结论很惊艳:基本上现在集成电路专业本科生毕业论文所做的所有事情,各种电路,AI都可以替代或部分替代。 我的学生做完后刚开始很开心——毕设轻松搞定了。但紧接着发愁:将来工作时这些活AI是不是做得比我更好?我得赶紧学更高阶的、AI不能替代的能力。
💡 AI的试错能力与人类的抗拒心理
AI还有一种能力比人类强——学习能力和敢于试错的能力。
国内很多工程师同时做三款芯片,起早贪黑,哪有时间学AI?甚至有版图工程师跟我说实话:”我不好意思跟老板说,但我就是不想试——我把AI教会了,它是不是就替代我了?”
这种心态只能阻碍AI发展一段时间。不想试,总有人想试——特别是年轻的新入职工程师,缺乏经验但有干劲,似懂非懂的状态反而更容易有闯劲去尝试新东西。
Flash ADC的设计就是一个例子。当年最早设计Flash ADC的那位工程师,他很拥抱AI,拿AI做尝试就做出来了。而像Sigma-Delta这种高精度ADC,结构复杂,AI暂时还无法完全自主设计——但Flash ADC现在基本上已经可以自主设计了。
🔮 大势所趋:交叉学科与AI协作
现在中型以上的设计公司(几十人到上百人)已经开始内部尝试,甚至自研大模型跟自家软件结合。我带着学生做这方面的尝试,效果非常显著。
黄仁勋说过:未来是机械领域工程师的天下。 这个”机械”不是传统的机械,而是AI+机器人+机械领域的交叉学科工程师——你不仅要懂机械,还要懂软件设计、编程,甚至集成电路和机器人。这种综合素质才是抢手的,但也是不容易达到的。
最重要的是:你要知道如何跟AI协作。 无论是你帮它还是它帮你,将来所有工作一定程度上都是这个属性——单靠一个不行。
台积电早在没有大语言模型之前,就已经对工艺设计参数进行了详细的数据化,做出了数字孪生——开发新工艺时不是直接上生产线调,而是在虚拟世界中先跑工艺仿真,再实际调。这也解释了为什么同一台光刻机,在三星和在台积电的效果确实有差距。
📌 写在最后
设计EDA也好、用EDA也好,我们不能采用静止的观念。我在高校给学生上课都跟大家说:你们不能沿用现有的方式来学了,得加上AI的辅助,甚至要跟AI成为朋友,让它越来越了解你,你的赋能才越来越好。
AI在几乎全行业的工程应用中都在攻城掠地——减轻人类一部分工作量。银行、设计、文案创作、科研都是如此。但我不想因此说成”AI取代人类”——从技术可行性来说,短时间内50年内还做不到。某些领域已经做到了:无人车替代司机、酒店机器人送餐、校园无人配送车,这些都标志着未来的方向。
未来不是AI替代人类,而是会用AI的人替代不会用AI的人。
国内很多团队五年前就已经开始布局和尝试了。如果你对这个方向感兴趣,欢迎评论区留言,我们有机会再聊。