目录
基本流程
- 项目需求:确定芯片的具体指标(spec)
物理:工艺、面积、封装;
性能:速度、功耗;
功能:功能表述、接口定义。 - 系统级设计:用系统建模语言对各模块进行描述
- 前端设计:RTL 设计、仿真、电路综合
- 后端设计:版图设计、物理验证、后仿真
- 封装和测试
前端流程
- 架构和算法设计:完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确的软件功能模型,主要使用matlab,python等工具。
- RTL设计:完成由高层次描述到 Verilog HDL 实现的过程,再完成Verilog代码编写后应使用spyglass检查代码中的cdc问题以及lint问题(是否有进位的溢出)
- 功能仿真: 对设计的功能进行仿真验证,需要激励驱动,是动态仿真,在无延迟的理想情况在,通过大量的仿真,发现电路设计过程中的人为或者非人为引起的bug。主要指标是功能覆盖率。主要使用vcs,verdi,modelsim等工具
- 逻辑综合:将HDL描述的RTL代码转换成特定工艺约束条件下的门级网表。主要使用DC。
- DFT插入:为了在芯片生产之后,测试芯片的良率,看工艺制作中有无缺陷,一般是在电路中插入扫描连(scan chain),主要使用DFT Compiler
- 形式验证:形式验证是为了验证 RTL 代码与综合后的门级网表之间的逻辑等价性。功能是否等价,与时序无关。在综合的流程中通常会插入DFT,这样综合出的结果的逻辑关系可能会与RTL代码的等效逻辑不一致,因此利用利用形式验证来保证综合过程没有出 错。后端布局布线后,使用综合网表和和布局布线后网表进行比较。主要使用formality。
- 静态时序分析:分析设计中所有的路径,确保满足内部时序单元对建立时间和保持时间的要求。从逻辑综合开始,基本上每做一步大的调整,都会完成一次 STA 分析,以保证每步 都能实现时序收敛。前端流程中STA用到的是预估延迟,不是真实延迟,在后端寄生参数提取后得到了真实延迟,也需要做STA保证时序收敛。主要使用PT。
后端流程
- 布局布线:完成所有节点的连接,从全局布线到详细布线,包括时钟树插入(布局时钟线),在布线(普通信号线)之前先布局时钟线,即时钟树综合CTS(Clock Tree Synthesis),主要使用IC Compiler。
- 寄生参数提取: 提取延迟信息
- 静态时序分析:得到了布局布线后的延迟信息,保证时序收敛
- 版图物理验证:DRC(设计规则检查)、LVS(版图一致性检查),即检查版图网表一致性
- 生成GDSII文件,Tape out 流片