典型ASIC设计流程

ASIC设计流程总体分四步:确定项目需求、系统级设计、前端设计、后端设计。本文也将按照这个顺序展开。由于缺乏实际ASIC设计经验,难免有纰漏,如有错误欢迎大家指出~~

1.确定项目需求

由公司市场部进行市场分析,确定下一代芯片需求,制定芯片的具体目标。

  • 物理目标:
    • 工艺,使用多少nm制程
    • 裸片面积,前期设计方便后期集成
    • 封装,越高级的芯片封装也越复杂,好的封装往往能带来芯片电气性能和稳定性的提升,并能间接地为主频的提升提供坚实可靠的基础
  • 性能目标:
    • 速度,包括主频、接口速率等等
    • 功耗 ,现在提到一个非常高的高度,移动端对功耗的要求非常高,比如手机芯片功耗会影响其耗电、发热
  • 功能目标:
    • 业务部分:要实现的具体功能
    • 平台部分:接口定义

2.系统级别设计

  • 最顶层的设计,根据上面的项目需求,确定出Architecture spec,形成书面文件。由架构师完成。
  • 架构、算法层面的设计与验证,常用C/C++/matlab.
  • 完成design spec,较Architecture spec更细节化。

3.前端设计_承接系统设计,以生成可以布局布线的网表为终点,用设计的电路实现算法功能;

  • IP层面设计与验证,根据上面的design spec由芯片设计师(Verilog、VHDL)和验证工程师(SV、C/C++、System C,UVM)同步开始进行IP设计、验证平台搭建和测试用例设计。
  • 一开始没有专门的芯片验证,一般是由芯片设计师用Verilog编写tb完成模块设计与仿真(常用的仿真工具:Synopsys:VCS,Mentor:modelsm,Cadence:NC-Sim.),但是随着芯片规模增大,只依赖仿真的方式进行验证逐渐被上述同步方式替代。
  • 将各个子IP开发完成后会进行集成,通常由资深IC工程师完成。之后同样要进行仿真与验证,但是更加注重系统层面
  • 此时得到的是一套成熟的HDL代码。进入RTL freeze阶段。
  • 逻辑综合,常用的工具有Synopsis:Design Compiler(DC)、Cadence:RC、Synplicity:Synplify(FPGA综合用的多)。HDL2netlist。
    • 逻辑综合三阶段:Synthesis=Translation+Optimization+Mapping
    • 转译:将HDL代码转为与工艺库(器件)无关的数据库
    • 优化:根据时序/面积/功耗等方面的要求,将上述数据库优化成为满足设计指标的门级网表
    • 映射:将网表对应到工艺库(器件),不同工艺库器件延时信息不同
    • 输入:RTL代码、工艺库、综合环境文件、时序约束文件;
    • 输出:门级网表(netlist)。
  • 一次形式验证,常用工具Synopsis:Formality。从功能上(STA是从时序上)对综合后的网表进行验证。常用等价性检查(Equivalence Check)的方法,以功能验证后的HDL为参考对比综合后的网表功能,在功能上是否等价。这是为了确认EDA工具在综合的时候没有出问题。
  • 网表仿真:通过网表反标标准延时格式文件(SDF)进行仿真,仿真速度较RTL仿真慢,由于标准延时格式文件通过SDC约束和单元逻辑延时和线网延时而来,可以发现时序约束问题。如果设计的规模较大的话,网表仿真所耗费的时间就比较长,所以常采用形式验证手段来保证门级网表在功能上与RTL设计保持一致,配合静态时序分析工具保证门级网表的时序。网表仿真中的门级仿真可以发现异步问题。
  • 一次STA:在时序上对综合后的网表进行验证。若形式验证和STA都通过那么此时的netlist就是IC前端产生的最终的网表。(基于线载模型进行STA)
  • DFT(design for test),这一步介于前端和后端之间(中端),在前端之后通过插入一些额外的逻辑(扫描插入、存储器BIST插入、逻辑BIST插入、边界扫描插入)。DFT工具:Mentor:Tessent、DC中的DFT compiler.

4.后端设计_以布局布线为起点,以生成可以可以送交代工厂进行流片的GDS2文件为终点,将设计的电路造出来,在工艺上实现算法。

  • 版图生成,自动布局布线(PR)。常用工具:Synopsis:IC Compiler(ICC)、Cadence:Encounter/INNOVUS。
  • 时钟树插入
  • 二次形式验证,将综合后的网表和插入时钟树的网表进行形式验证。
  • DRC/LVS:物理层面检查,DRC(design rule check):设计规则检查,LVS(Layout Versus Schematics):电路版图一致性检查,用来验证版图(layout)和逻辑图是否匹配。常用工具:Mentor:calibre、Synopsis:Hercules、Cadence:Diva/dracula。
  • 二次STA:布局布线后进行静态时序分析(根据实际的布局布线以及工艺库参数STA)。
  • 产生GDS2文件
  • 流片(tape out)

你可能感兴趣的:(ASIC/FPGA设计基础)