首先做一款芯片需要有市场,一般公司会先做市场调研,比如最近市面上比较火的人工智能芯片,物联网芯片,5G 芯片,需求量都比较大。有了市场的需求我们就可以设计芯片的 spec了。先由架构工程师来设计架构,确定芯片的功能,然后用算法进行模拟仿真,最后得出一个可行的芯片设计方案。有了芯片的 spec,下一步就可以做 RTL coding 了。
Office
完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确的软件功能模型,更为重要的是,通过大量的高层次仿真和调试,为 RTL 实现提供总体性的设计指导。数字部分越复杂,这一点越重要。
MATLAB、C++、C、System C、System Verilog 等。
不同类型的芯片都不同的选择,如数字信号处理类芯片,偏好 MATLAB。
这部分工作至关重要,基本上奠定了整个芯片的性能和功耗的基础。这部分工作主要由具有通信、信号处理、计算机、软件专业背景的工程师完成,也有很多微电子专业背景的工程师参与。
依据上一步的结果,完成由高层次描述到 Verilog HDL 实现的过程。
GVim/Emac、Verilog/VHDL
这一步能明显区别中训练有素的工程师和初学者。前者在写代码的过程中,具有极强的大局观,能够在书写 Verilog HDL、描述逻辑功能的同时,还能够兼顾逻辑综合、STA、P&R、DFX、功耗分析等多方面因素,最终提供一份另其他环节的工程师都赏心悦目的代码。初学者则处处留地雷,一不小心就引爆。
目的:排除 RTL 代码中 CDC(Clock Domain Cross)、Lint 等问题。
CDC:跨时钟域检查
LInt:代码潜在问题检查(例如 A+B 的进位溢出)
工具:Syglass、LEDA、0inCDC
特点:目前大部分芯片中的数字部分基本上都采用局部同步和全局异步的设计策略,因此,在设计中需要小心注意跨时钟域的数据同步问题。
输入:RTL,SDC,lib/sglib
输出:wave file,report
在无延迟的理想情况在,通过大量的仿真,发现电路设计过程中的人为或者非人为引起的 bug。主要指标是功能覆盖率。
Modelsim、VCS、NC-Verilog、(DVE/Verdi 波形查看器)
C++、C、System C、System Verilog,基于 UVM 的方法学等。主要是 System Verilog,一般哪个方便用哪个。
验证工程师近年来已经成为 IC 设计中需求量最大的岗位。这个阶段会占用大量的时间,数以月计。
将 RTL 代码映射为与工艺库相关的网表。
DesignCompiler、RTL Compiler。
DesignCompiler 在市场中占有垄断性地位,几乎成为逻辑综合的标准。
为了保证芯片内部的制造缺陷尽量能够被检测到,通过在电路中插入扫描链(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 处理为友好易读形式)
RTL 代码和逻辑综合后的网表是否具有一致的功能。(尤其是在后端做 ECO 的时候)
Formality、Conformal
RTL 代码、netlist(逻辑综合输出)、约束
match 和 verify 报告。
分析设计中所有的路径,确保满足内部时序单元对建立时间和保持时间的要求。
PrimeTime、Tempus。
PrimeTime 在市场中占有垄断性地位,几乎成为 STA 的标准
spef 文件、PnR 网表,标准单元库 db 文件,IP 的 dp 文件
SDF,timing ECO 文件
注:静态时序分析和形式验证这属于验证范畴。
STA 主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。而形式验证是从功能上对综合后的网表进行验证。常用的就是等价性检查(LEC)方法,以功能验证后的 HDL 设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。
静态时序分析和形式验证出现在设计流程中前后端过程,有一些地方在前端中没有提到,应该是在后端当中比较重要,作为验证设计工作的一部分,在前端中也加入静态时序分析和形式验证可以提高设计的可靠性。
Place & Route 一般由后端工程师来做,Physical Design Engineer.
后端里 DRC 就是要检查设计规则是否符合芯片制造商的要求,这样才能正确的生产芯片。
后端完成工作后,最终会生成 GDSII 格式的文件,交由芯片制造商流片。
本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!
本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!
如果觉得对你有用的话,记得收藏+评论!!!