芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。
一、需求分析
产品要解决什么问题,预测未来 3-5 年的走势和趋向,确保芯片是有卖点和前瞻性,面向 未来。 客户向 fabless(芯片设计公司)提出设计要求,包括芯片需要达到的具体功能和性能方面 的要求,让架构师可以进行细化。
二、功能架构设计
架构师将系统功能进行分解和细化,形成 spec 规范,将设计参数化、具体化。 包括处理器架构的选择:ARM、RISC-V; 总线接口选择:AHB、AXI、APB; 软硬件功能的划分:硬件速度快,性能高,灵活性差。软件速度慢、性能差灵活性高开发 周期短。 性能参数:引脚选择,电压频率、工艺选择、功耗和温度范围。
使用硬件描述语言(VHDL,Verilog HDL)将模块功能以代码来描述实现。 图形输入工具:Cadence 的 composer
四、功能仿真验证(前仿)
功能仿真,对 RTL 级的代码进行设计验证,检验设计功能的正确性,是否满足规格中的 所有要求。 仿真工具:Modelsim、VCS
五、逻辑综合
基于特定的工艺库,设定电路的面积、时序等目标参数的约束条件,将设计的 RTL 级代 码映射为门级网表 netlist。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单 元(standard cell)的面积,时序参数是不一样的。 综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)。 逻辑综合工具:Design Compiler
六、STA 静态时序分析
在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例。 STA 工具:Synopsys 的 Prime Time。(PT)
七、形式验证 Formality
从功能上对综合后的网表进行验证,将综合后的网表与验证后的 HDL 设计对比,看他们 是否在功能上存在等价性,保证逻辑综合过程中没有改变 HDL 描述的电路功能。
形式验证工具:Synopsys 的 Formality
后端流程
一、DFT
可测性设计,在设计中插入扫描链。SCAN、Mbist、ATPG 技术等。
二、布局规划
放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,能影响芯片的最终面积。 如 IP 模块、RAM、I/O 引脚等摆放位置。 工具:IC Compiler
三、时钟树综合 CTS
时钟的布线,时钟分布 H 型或树形,使时钟从同一个时钟源到达各个寄存器时,时钟延迟 差异最小。 工具:PC
四、布线
将前端提供的网表实现成版图,包括各种标准单元之间的走线。
五、寄生参数提取
由于导线本身存在的电阻,相邻导线之间的互感、耦合电容在芯片内部会产生信号噪声、 串扰和反射。提取寄生参数进行再次分析验证,分析信号完整性问题。
六、物理版图验证
对布线完成的版图进行功能和时序上的验证
LVS:版图和逻辑综合后的门级电路图对比验证
DRC:设计规则检查,检查连线间距,连线宽度。
ERC:电气规则检查,检查短路开路。
实际的后端流程还包括电路功耗分析,以及随着制造工艺不断进步产生的 DFM(可制造 性设计)问题。物理版图以 GDS II 的文件格式交给芯片代工厂(称为 Foundry)在晶圆硅片上 做出实际的电路,再进行封装和测试,就得到了可使用的芯片。