【基础知识】~ 集成电路设计流程,以及各阶段所使用的EDA工具
时间:2023-01-11 11:30:00
本章目录:
- 1. 确定项目需求
-
- 工具
- 2. 前端设计(架构/算法设计分析)
-
- 目的
- 工具
- 特点
- 3. RTL 实现
-
- 目的
- 工具
- 特点
- Coding Style Check
- 4. 功能验证
-
- 目的
- 工具
- 语言
- 特点
- 5. 逻辑综合 DFT
-
- 目的
- 工具
- 特点
- DFT(Design For Test)
- 6. 形式验证
-
- 目的
- 工具
- 输入文件
- 输出文件
- 7. 静态时序分析
-
- 目的
- 工具
- 输入
- 输出
- 特点
- 8. 后端设计
- 声明
1. 确定项目需求
首先,芯片需要市场。一般公司会先做市场调研,比如最近市场上流行的人工智能芯片、物联网芯片、5G 芯片需求量大。有了市场需求,我们可以设计芯片 spec了。架构工程师首先设计架构,确定芯片的功能,然后用算法模拟,最后得出可行的芯片设计方案。有了芯片的 spec,下一步就可以了 RTL coding 了。
工具
Office
2. 前端设计(架构/算法设计分析)
目的
完成芯片中数字部分的高级算法或架构的分析和建模,为硬件提供正确的软件功能模型。更重要的是,通过大量的高级模拟和调试 RTL 提供全面的设计指导。数字部分越复杂,越重要。
工具
MATLAB、C 、C、System C、System Verilog 等。
不同类型的芯片都不同的选择,如数字信号处理类芯片,偏好 MATLAB。
特点
这部分工作非常重要,基本上为整个芯片的性能和功耗奠定了基础。这部分工作主要由具有通信、信号处理、计算机和软件专业背景的工程师完成,以及许多具有微电子专业背景的工程师。
3. RTL 实现
目的
根据上一步的结果,从高层次描述完成 Verilog HDL 实现的过程。
工具
GVim/Emac、Verilog/VHDL
特点
这一步可以明显区分训练有素的工程师和初学者。前者在编写代码的过程中有很强的局观,可以写 Verilog HDL、在描述逻辑功能的同时,还可以兼顾逻辑综合性STA、P&R、DFX、功耗分析等因素最终为其他环节的工程师提供了悦目的代码。初学者到处留地雷,不小心引爆。
Coding Style Check
目的:排除 RTL 代码中 CDC(Clock Domain Cross)、Lint 等问题。
CDC:跨时钟域检查
LInt:检查代码潜在问题(例如 A B 进位溢出)
工具:Syglass、LEDA、0inCDC
特点:目前芯片中的数字部分大多采用局部同步和全局异步的设计策略。因此,在设计中需要注意跨时钟域的数据同步。
输入:RTL,SDC,lib/sglib
输出:wave file,report
4. 功能验证
目的
理想情况下,通过大量的模拟,发现电路设计过程中的人为或非人为原因 bug。主要指标是功能覆盖率。
工具
Modelsim、VCS、NC-Verilog、(DVE/Verdi 波形查看器)
语言
C 、C、System C、System Verilog,基于 UVM 主要是 System Verilog,一般用哪个方便。
特点
近年来,验证工程师已成为 IC 在设计中需求最大的职位。这一阶段将占用大量的时间,数以月计。
5. 逻辑综合 DFT
目的
将 RTL 代码映射是与工艺库相关的网表。
工具
DesignCompiler、RTL Compiler。
DesignCompiler 在市场上占据垄断地位几乎成为逻辑综合标准。
特点
- 从芯片生产的角度来看,在这一步之前,所有的工作都可以被视为虚拟的,与现实无关。从逻辑综合的角度来看,续工作都将与工艺的物理特性和电气特性密切相关。逻辑综合工具的主要功能是 VerilogHDL 格式文本映射为网表格式文本,因此其功能相当于文本编译器。那么转换的方法有很多种,如何选择工具呢?在逻辑综合过程中,整个文本格式的编译过程是在给定的人为约束条件下进行的,指导工具完成这些约束和设定的目标 Compiler 的工作。因此,逻辑综合过程可以看作是一个多目标(频率、面积、功耗)、多约束的工程优化问题。
- 这一步通常会插入 DFT、clock gating 等。
- 该步骤中通常加入 Memory、各种 IP 等等 FPGA 原型验证平台之间有一个更方便的移植,注意适当处理这些 Memory、IP 等接口。也可以在此步骤中添加 I/O、PLL 等。
DFT(Design For Test)
通过在电路中插入扫描链,以确保芯片内部的制造缺陷尽可能被检测到(Scan Chain)方法,测试 IC 生产过程中是否有问题。 DFT 会增加 20%~30%的面积。但为了保证良率,为了给客户合格的电影,会有缺陷(工厂制造
片子筛选造缺陷)。
输入文件:
a.RTL 代码:由 ASIC design engineers 团队提供;交接前必须保证 3 步的 check 没有问题;
b.工艺库(.db):晶圆厂提供;
c.约束(SDC):由逻辑综合工程师和 ASIC design engineers 共同商定。
输出文件:
a.网表:包含 RTL 中的所有的逻辑信息,除此以外,可能还会有 DFT、clock gating、I/O等等;网表主要用于 P&R 等流程;
b.标准延迟文件 SDF:时序仿真主要包括网表中所有设备的延迟信息;PT 结合后端工具生成的更准确 sdf ,因此,它通常被使用 PT 的 sdf 文件做后仿真。Project 文件:.ddc;
c.各种报告:timing report、area report、constrain report、clock report、violation report 等等,以及工具 log 文件。(这里最好熟悉各种脚本语言 report 友好易读处理)
6. 形式验证
目的
RTL 网表的代码和逻辑是否具有一致的功能。(特别是在后端 ECO 的时候)
工具
Formality、Conformal
输入文件
RTL 代码、netlist(逻辑综合输出)
输出文件
match 和 verify 报告。
7. 静态时序分析
目的
对设计中的所有路径进行分析,以确保满足内部时间单元对建立时间和维持时间的要求。
工具
PimeTime、Tempus。
PrimeTime 在市场中占有垄断性地位,几乎成为 STA 的标准
输入
spef 文件、PnR 网表,标准单元库 db 文件,IP 的 dp 文件
输出
SDF,timing ECO 文件
特点
- 从逻辑综合开始,基本上每做一步大的调整,都会完成一次 STA 分析,以保证每步都能实现时序收敛。鉴于该特性非常重要,PrimeTime 成为了 Signoff 的重要工具。
- 所用到的 SDC 同逻辑综合;
- 通常设计中会存在大量的违例路径,STA 要修大量的 setup、hold 等,如何修这些违例,可以体现工作经验的重要性。此外,如果是前端修 timing 违例,一般会修的很快,但是会带来一个重大的问题,代码被前端修改后是否存在新的 bug,还需重新仿真确认,仿真会消耗掉数以月计的时间,所以除非万不得已,不会找前端修 timing。
注:静态时序分析和形式验证这属于验证范畴。
STA 主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。而形式验证是从功能上对综合后的网表进行验证。常用的就是等价性检查(LEC)方法,以功能验证后的 HDL 设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。
静态时序分析和形式验证出现在设计流程中前后端过程,有一些地方在前端中没有提到,应该是在后端当中比较重要,作为验证设计工作的一部分,在前端中也加入静态时序分析和形式验证可以提高设计的可靠性。
8. 后端设计
Place & Route 一般由后端工程师来做,Physical Design Engineer.
后端里 DRC 就是要检查设计规则是否符合芯片制造商的要求,这样才能正确的生产芯片。
后端完成工作后,最终会生成 GDSII 格式的文件,交由芯片制造商流片。
声明
本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!
本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!
如果觉得对你有用的话,记得收藏+评论!!!