一个芯片是如何被设计出来的 寄存器传输级( 二 )



设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准 。该部分称为前仿真 。

先进行模块级仿真(IP Level),然后在放到一起片级仿真(chip level) 。

仿真工具:Synopsys的VCS,Mentor ModelSim(Linux版本为Questasim),Cadence Verilog-XL,Cadence NC-Verilog 。该部分个人一般使用Modelsim,公司里应用最广泛的还是VCS 。
IP级验证要用到基于SystemVerilog的UVM方法学,这个是属于验证工程师的范畴 。

5、逻辑综合――Logic Synthesis

逻辑综合是个比较灵活的环节,有时放在前端,有时放在后端,不同公司不同安排 。

仿真验证通过,进行逻辑综合 。逻辑综合就是把HDL代码翻译成门级网表netlist 。

综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准 。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的 。所以,综合库不一样,综合出来的电路在时序,面积上是有差异的 。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真)

逻辑综合工具:Synopsys的Design Compiler,仿真工具选择上面的三种仿真工具均可 。

6、静态时序分析——STA

Static Timing Analysis(STA),静态时序分析,验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation) 。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题 。

STA工具:Synopsys的Prime Time 。

7、形式验证——Formality

验证范畴,它是从功能上(STA是时序上)对综合后的网表进行验证 。

常用的就是等价性检查方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性 。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能 。

形式验证工具:Synopsys的Formality 。

从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路 。

后端设计流程
1、可测性设计——DFT

Design ForTest,可测性设计 。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试 。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元 。关于DFT,有些书上有详细介绍,对照图片就好理解一点 。

推荐阅读