一花一世界,一叶一菩提
芯片设计是一个庞大复杂的工程,我们的日常生活已经充满了一块一块小小的芯片,在实际使用中我们并不是与他们直接接触,而是通过使用了集成它们的产品,从门禁、手机、MP3、电视...芯片是简化我们生活的枢纽,一个小小的芯片上面可能就有千万或者更多个单元,它们一个个排列,相连组成一个个整体实现一个个功能。那么它们是怎样设计出来的呢?
注文章内容总结或者引用自书籍、他人教授或者知乎等网络知识
文章只是作为个人的学习与总结,同时文章内容感觉也是存在不足和问题的,需要根据了解更新,不可当作真理
芯片设计--知乎
首先,跟所有领域一样,我们做一款芯片都是带有目的性的,也就是Design For。为了实现这个目的我们可能需要采取多种措施,经历多个阶段。
前端设计(逻辑设计)和后端设计(物理设计)并没有统一的界限,设计到与工艺有关的设计就是后端设计。
1.规格制定
芯片规格,就像我们所说的设计要求,是客户向芯片设计公司提出的。
2.详细设计
芯片设计公司会根据客户需求进行方案设计和架构实现,划分具体模块
3.HDL编码
使用硬件描述语言(VHDL或Verilog HDL,业界一般使用后者)将模块功能使用代码来描述实现,也就是将实际的硬件电路功能通过HDL语言编写出来,形成RTL级(寄存器传输级)代码
4.仿真验证
检验编码设计的正确性,检验的标准就是前面制定的规格。看设计是否满足要求。
5.逻辑综合-Design Compiler
仿真验证通过,进行逻辑综合。结果是把HDL代码翻译成门级网标netlist。综合需要设定约束条件,也就是你希望综合出来的电路在面积时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(Standard Cell)的面积,时序等是不同的。
综合后需要再次进行仿真验证(也称为后仿真,之前的称为前仿真)
6.STA
静态时序分析,主要在时序上对电路进行验证,检查电路是否存在建立时间(Setup Time)和保持时间(Hold Time)的违例(Violation)。
7.形式验证
是从功能上对综合后的网表进行验证,常以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。
此上为前端设计流程大致介绍,即得到了芯片的焖鸡网表电路
后端设计
1.DFT
Design for test。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。
2.布局规划(Floorplan)
就是放置芯片的宏单元模块,在整体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等。
3.CTS
Clock Tree Synthesis.时钟树综合。简单说就是对时钟的布线,由于时钟信号在数字芯片的全局指挥作用,他的分布应该是对称式的连接到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟最小。这就是为什么它要单独布线
4.布线(Place & Route)
普通信号布线。包括各种标准单元(基本逻辑门电路)之间的走线。比如我们常听到的90nm工艺,实际就是这里金属布线可以达到的最小宽度,从微观上来看就是MOS管的沟道长度。
5.寄生参数提取
导线间是会存在干扰等的。它们会影响信号的作用。提取寄生参数进行再次的分析验证,分析信号完整性是十分重要的
6.版图物理验证
对完成的布线的物理版图进行功能和时序上的验证,包括LVS、DRC等。
物理版图验证完成也就是整个芯片设计阶段完成,后面就是芯片制造了。物理版图以GDSII的文件格式交给芯片代工厂(Foundry)在晶圆硅片上做出实际的电路,再进行封装和测试,就得到了我们实际看见的芯片。
数字电路设计图
数字电路一般使用Verilog编写
数字电路仿真
写完了Verilog就需要运行数字仿真
模拟电路电路图
模拟电路仿真
接下来就要把他们变成实实在在的电路