从代码到硅片:一枚芯片的设计之旅

从代码到硅片:一枚芯片的设计之旅 我们每天用的手机、电脑、汽车里都藏着一枚枚小小的芯片。它们安静地躺在电路板上却承担着整个设备的“大脑”或“心脏”的功能。很多人听说过“芯片”这个词却不太清楚芯片到底是怎么设计出来的。今天我们就来聊聊这个话题看看一枚芯片从无到有究竟经历了怎样的旅程。芯片是什么先说说芯片到底是什么。芯片英文叫chip又称微电路或微芯片。通俗地说芯片就是内含集成电路的一小块硅片体积很小。它通常被封装成我们常见的黑色方形元件焊接在电路板上。“芯片”和“集成电路”这两个词在日常生活中经常混用——芯片设计、集成电路设计、IC设计说的基本是同一回事。但如果细究起来两者还是有区别的集成电路更强调电路本身的设计和功能而芯片更强调电路的集成、生产和封装这个完整的成品形态。打个比方集成电路就像是一份菜谱芯片就是做好的那道菜。广义上只要是采用微细加工手段制造出来的半导体片子都可以叫做芯片里面甚至不一定有电路——比如半导体光源芯片、MEMS机械芯片、DNA生物芯片等。不过我们日常讨论的通常还是指硅基集成电路芯片。另外还有一个容易混淆的概念叫“半导体”。半导体指的是一类材料——导电性能介于导体和绝缘体之间的材料比如硅、锗、砷化镓。芯片是用半导体材料制成的但半导体不等同于芯片。简单来说半导体是材料集成电路是电路芯片是产品。芯片设计的大致框架芯片设计是一个极其复杂的过程涉及多个环节、多种专业工具和大量反复的验证。目前主流的芯片设计思路是“自顶向下”——先做整体设计再做模块设计。整体上可以分为四个阶段规格定义、系统设计、前端设计和后端设计。有些资料也会把前两个阶段归入前端设计。整个过程贯穿大量的“设计—验证—再设计—再验证”循环每一步都要确保准确无误才能进入下一步。下面我们逐一展开。第一步规格定义——确定要做什么芯片设计的第一步不是写代码也不是画电路而是搞清楚到底要做一款什么样的芯片。这个工作不能靠拍脑袋决定。芯片设计团队需要和客户充分沟通了解具体需求芯片要实现什么功能用在什么环境下算力、功耗、成本大概是多少需要提供哪些接口要满足什么安全标准所有这些需求最终会转化为一份文件——芯片规格说明书Spec。这份文件是后续所有工作的依据也是判断设计正确与否的“黄金标准”。第二步系统设计——设计实现方案规格定下来之后架构工程师就要出马了。架构师要根据规格说明书设计出具体的实现方案。方案内容包括芯片的整体架构、功能模块划分、供电方案、接口设计、时序安排、性能指标、面积和功耗约束等等。架构师还要决定哪些功能用硬件实现、哪些用软件实现哪些模块采购现成的IP核、哪些自己设计。芯片架构的选择取决于芯片的用途。通用计算芯片可能采用冯·诺依曼架构数字信号处理芯片可能更适合哈佛架构复杂芯片还可能采用多核或异构集成架构。第三步前端设计——把想法变成逻辑电路前端设计也叫逻辑设计。它的任务是把芯片的功能需求转化为可实现的电路逻辑确保功能正确。这个阶段暂时不考虑物理实现的细节。前端设计主要包括以下几个环节HDL编码。这是前端设计的核心工作之一。设计工程师使用硬件描述语言Verilog或VHDL来描述电路的功能。写出来的代码叫RTL寄存器传输级代码它描述的是数据在寄存器之间如何传输、如何处理。简单来说就是用代码来“写”电路。仿真验证。代码写完后要验证它是否正确——也就是检查它是否满足规格说明书的要求。验证和编码是一个反复迭代的过程发现错误就修改代码再验证直到完全符合规格。仿真验证工具有Synopsys的VCS、Cadence的NC-Verilog等。逻辑综合。仿真验证通过后就要把RTL代码翻译成门级网表。门级网表就是用基础逻辑门与门、或门、寄存器等搭建起来的电路连接关系。这个翻译过程叫逻辑综合用的工具是Synopsys的Design Compiler。综合时需要设定约束条件——比如面积要多大、时序要达到什么标准。综合完成后通常还要再做一次仿真验证后仿真确保综合没有改变电路的功能。静态时序分析STA。这是从时序角度对电路进行验证。检查电路中是否存在建立时间和保持时间的违例——如果出现这两种问题寄存器就无法正确采样和输出数据芯片功能就会出问题。STA工具主要是Synopsys的Prime Time。形式验证。这是从功能角度对综合后的网表进行验证。常用的方法是等价性检查——以功能验证通过的HDL设计为参考对比综合后的网表在功能上是否等价。目的是确保逻辑综合没有改变原先的电路功能。工具是Synopsys的Formality。前端设计完成之后得到的结果就是芯片的门级网表电路。第四步后端设计——把逻辑变成物理版图后端设计也叫物理设计。它的任务是把前端设计得到的网表转化为可以实际制造的物理版图。这个阶段需要考虑制造工艺约束、信号完整性、功耗管理等实际问题。后端设计主要包括以下环节可测性设计DFT。芯片制造出来后要测试为了便于测试在设计阶段就要考虑加入测试电路。常见的方法是插入扫描链把普通寄存器变成可扫描的寄存器。工具是Synopsys的DFT Compiler。布局规划FloorPlan。在芯片面积上确定各种功能模块的摆放位置——IP模块放在哪里、RAM放在哪里、I/O引脚怎么安排。布局规划直接影响芯片的最终面积。时钟树综合CTS。时钟信号在芯片中起着全局指挥的作用它需要从时钟源对称地分布到各个寄存器保证时钟到达各个寄存器的延迟差异最小。这就是时钟信号需要单独布线的原因。布线Place Route。这是普通信号的布线——各种标准单元之间的走线。我们常说的“90nm工艺”“7nm工艺”指的就是这里金属布线可以达到的最小宽度。寄生参数提取。导线本身有电阻相邻导线之间有互感、耦合电容这些会产生信号噪声和串扰。严重的话会导致信号失真。因此需要提取寄生参数分析信号完整性问题。版图物理验证。对完成布线的物理版图进行各种验证LVS版图与门级电路图对比验证、DRC设计规则检查检查连线间距、宽度是否满足工艺要求、ERC电气规则检查检查短路、开路等。物理版图验证完成芯片设计阶段就结束了。最终输出的是GDS II格式的版图文件。这个文件会被交给芯片代工厂Foundry在晶圆硅片上制造出实际的电路再经过封装和测试就变成了我们看到的芯片。关于工艺文件在整个设计过程中有一个非常重要的东西叫工艺库文件。工艺文件由芯片制造厂提供包含模拟仿真库、版图库、数字综合库、版图验证库等。综合、时序分析、版图绘制等环节都需要用到这些文件。由于工艺文件涉及制造厂的商业机密一般只有与制造厂合作的企业才能获取。这也意味着个人想要完整地自学芯片设计流程在获取工艺文件方面会遇到不小的困难。设计工具与行业趋势芯片设计离不开EDA工具——电子设计自动化软件。从前端到后端每个环节都有对应的EDA工具。Synopsys和Cadence是这个领域的两大主要厂商。近年来芯片设计行业也在发生一些变化。AI正在渗透到设计流程中——有公司推出了基于大语言模型的EDA工具能够将规格自动转化为RTL代码。生成式AI也被用于辅助芯片设计。同时随着摩尔定律放缓和先进制程成本上升行业开始更多关注系统级性能提升而不仅仅是追逐更小的晶体管尺寸。写在最后一枚芯片的诞生要经历规格定义、系统设计、前端逻辑设计、后端物理设计再到制造、封装、测试每一个环节都环环相扣。前端设计工程师用代码描述电路功能后端设计工程师把代码变成物理版图代工厂再把版图变成硅片上的真实电路。整个过程动辄需要数百人协作、耗费数月甚至数年时间、投入数亿乃至数十亿美元的研发经费。我们手里那枚小小的芯片背后凝聚的正是这样庞大的智力与财力投入。