数字IC设计流程

1、架构/算法设计分析

  • 目的:完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确的软件功能模型,更为重要的是,通过大量的高层次仿真和调试,为RTL实现提供总体性的设计指导。数字部分越复杂,这一点越重要。

  • 工具:MATLAB、C++、C、System C、System Verilog等。不同类型的芯片都不同的选择,如数字信号处理类芯片,偏好MATLAB。

  • 特点:这部分工作至关重要,基本上奠定了整个芯片的性能和功耗的基础。

2、RTL实现

  • 目的:依据第一步的结果,完成由高层次描述到Verilog HDL实现的过程。

  • 工具:GVim/Emac、Verilog/VHDL

  • 特点:能够在书写Verilog HDL、描述逻辑功能的同时,还能够兼顾逻辑综合、STA、P&R、DFX、功耗分析等多方面因素。

3、Coding Check

  • 目的:排除RTL代码中CDC(Clock Domain Cross)、Lint等问题,跑功耗分析。

  • CDC:跨时钟域检查,使用spyglass工具,输入:RTL,SDC,lib

  • Lint:代码潜在问题检查(例如A+B的进位溢出),使用lec工具,输入:RTL

  • 功耗分析:分析每个模块的功耗,使用jouls工具,输入:RTL,SDC,lib

  • 特点:目前大部分芯片中的数字部分基本上都采用局部同步和全局异步的设计策略,因此,在设计中需要小心注意跨时钟域的数据同步问题。

4、功能验证

  • 目的:在无延迟的理想情况在,通过大量的仿真,发现电路设计过程中的人为或者非人为引起的bug。主要指标是功能覆盖率。

  • 工具:Modelsim、VCS、NC-Verilog、(DVE/Verdi波形查看器)

  • 语言:C++、C、System C、System Verilog,基于UVM的方法学等。主要是System Verilog,一般哪个方便用哪个。

5、逻辑综合

  • 目的:将RTL代码映射为与工艺库相关的网表。

  • 工具:DesignCompiler、RTL Compiler、genus。

  • 特点

a)从芯片生产的角度来看,在该步骤之前,所有的工作都可近似看做一个虚拟性的,与现实无关。而从逻辑综合起,后续所有的工作都将与工艺的物理特性、电特性等息息相关。

b)该步骤中,通常会插入DFT、clock gating等。

c)该步骤中通常加入Memory、各种IP等。为了在各种工艺库以及FPGA原型验证平台之间有一个更方便的移植,注意适当处理这些Memory、IP等的接口。该步骤中也可加入I/O、PLL等。

6、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 文件做后仿真。

c)各种报告:timing report、area report、constrain report、clock report、violation report等等,以及工具的log文件。(此处最好能够熟悉各种脚本语言,将各种report处理为友好易读形式)

7、形式验证

  • 目的:RTL代码和逻辑综合后的网表是否具有一致的功能。(尤其是在后端做ECO的时候)

  • 工具:Formality、Conformal

  • 输入文件:RTL代码、netlist(逻辑综合输出)、约束

  • 输出文件:match和verify 报告。

8、静态时序分析

  • 目的:分析设计中所有的路径,确保满足内部时序单元对建立时间和保持时间的要求。

  • 工具:PrimeTime、Tempus。PrimeTime在市场中占有垄断性地位,几乎成为STA的标准

  • 输入:spef文件、PnR网表,标准单元库db文件,IP的dp文件

  • 输出:SDF,timing ECO文件

  • 特点:

a)从逻辑综合开始,基本上每做一步大的调整,都会完成一次STA分析,以保证每步都能实现时序收敛。鉴于该特性非常重要,PrimeTime成为了Sign off的重要工具。

b)所用到的SDC同逻辑综合;

c)通常设计中会存在大量的违例路径,STA要修大量的setup、hold等,如何修这些违例,可以体现工作经验的重要性。此外,如果是前端修timing违例,一般会修的很快,但是会带来一个重大的问题,代码被前端修改后是否存在新的bug,还需重新仿真确认,仿真会消耗掉数以月计的时间,所以除非万不得已,不会找前端修timing。

注:静态时序分析和形式验证这属于验证范畴

STA主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。而形式验证是从功能上对综合后的网表进行验证。常用的就是等价性检查(LEC)方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。

静态时序分析和形式验证出现在设计流程中前后端过程,有一些地方在前端中没有提到,应该是在后端当中比较重要,作为验证设计工作的一部分,在前端中也加入静态时序分析和形式验证可以提高设计的可靠性。

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值