数字IC设计流程

发布时间 2023-08-15 19:10:42作者: 应变春秋

I、ASIC设计流程
一、确定项目需求

  1. 确定芯片的具体指标:

物理实现
制作工艺(代工厂及工艺尺寸);

    裸片面积(DIE大小,DIE由功耗、成本、数字/模拟面积共同影响);

    封装(封装越大,散热越好,成本越高)。

性能指标:
速度(时钟频率);

    功耗。

功能指标:
功能描述

    接口定义
  1. 系统级设计:

     用系统建模语言(高级语言 如matlab,c等)对各个模块描述,为了对方案的可行性进行验证
    

二、前端流程

  1. RTL 寄存器传输级设计

     利用硬件描述语言,如verilog对电路以寄存器之间的传输为基础进行描述;
    
  2. 功能验证(动态验证):

     对设计的功能进行仿真验证,需要激励驱动,是动态仿真。仿真验证工具Mentor公司的 Modelsim, Synopsys的VCS,还有Cadence的NC-Verilog均可以对RTL级的代码进行设计验证,该部分称为前仿真,接下来逻辑部分综合之后再一次进行的仿真可称为后仿真。
    
  3. 逻辑综合(Design Compile):

     需要指定特定的综合库,添加约束文件;逻辑综合得到门级网表(Netlist)。
    
  4. 形式验证(静态验证):

     功能上进行验证,综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能。做等价性检查用到Synopsys的Formality工具。
    
  5. STA静态时序分析:

     在时序上进行分析,用到Synopsys的PT(Prime Time)工具,一般用在后端设计中,由版图生成网表进行STA更准确一些;
    
     STA满足时序约束,得到最终的Netlist
    
  6. DFT(design for test)可测性设计:

     为了在芯片生产之后,测试芯片的良率,看制作有无缺陷,一般是在电路中插入扫描连(scan chain)
    
     DFT是在得到Netlist之后,布局布线(Place and Route)之前进行设计
    

三、后端流程

  1. 布局布线(Place and Route):

     包括时钟树插入(布局时钟线),布局布线用到Synopsys的IC Compiler(ICC)工具。
    
     在布线(普通信号线)之前先布局时钟线,即时钟树综合CTS(Clock Tree Synthesis),用到Synopsys的Physical Compiler工具。
    
  2. 寄生参数提取(Extrat RC):

     提取延迟信息
    
  3. 静态时序分析(STA):

     加入了布局布线延迟,更真实的时序分析
    
  4. 版图物理验证:

     DRC(设计规则检查)、LVS(版图一致性检查)
    
     工具:Mentor:Calibre
    
                Synopsys:Hercules
    
                Cadence:Diva/dracula
    
  5. 生成GDSII文件,Tap_off 流片

(注:整个IC设计流程都是一个迭代的过程,每一步如果不能满足要求,都要重复之前的过程,直至满足要求为止,才能进行下一步。)