数字集成电路设计流程

数字 IC top-down 设计流程

拿到一个芯片设计项目,首要做的事就是确定好系统功能、性能、物理尺寸、

设计模式、制造

工艺、设计周期、设计费用等等。芯片项目的总体规划确定好之后,接着就要

从技术层面上设计芯

片,芯片流程一般分为前端设计和后端设计连个过程。

前端设计:

1.设计输入

确定芯片的具体逻辑功能,设计合理的算法(如有必要,可将芯片划分子模

块),使用 HDL 语言

(常用 VHDL 或 Verilog)描述芯片(模块)功能,写出可综合级别的代码。

HDL 语言可以直接用各种

文本编辑器编写(要注意后缀),也可以用仿真器自带的文本编辑器编写。如

果逻辑结构不是很复

杂,或者电路形式有特定的要求,不宜用 HDL 语言描述,这时可以考虑用原理

图编辑器直接画出原理

图,或者直接编写出电路网表。常用的输入工具有 Cadence 的 Composer,

Synopsys 的 Viewdraw 等。

2.前端仿真( RTL 级)

用仿真工具对 HDL 代码作前仿真,做理想状况下的功能验证,观察 HDL 仿真结

果是否满足要求。

仿真工具主要有 Synopsys 公司的 V S S( VHDL)、 V C S( Verilog),

Cadence 公司的 NC-Verilog 和 Verilog-XL

( Verilog), Leapfrog( VHDL) ,Mentor Graphics 公司的 Modelsim

( Verilog&VHDL)。还有些 FPGA

公司的仿真软件也不错,比如 Altera 公司的 Quartus。

3.逻辑综合

前仿真通过以后,就可以把代码拿去综合了,逻辑综合是指把 HDL 语言描述转

化成电路门级网表,

并进行逻辑和时序电路的优化。综合需要设定约束条件,还需要基于特定的综

合库。不同的库中,

门电路基本标准单元( standard cell)的面积,时序参数是不一样的。所以,

选用的综合库不一样,

综合出来的电路在时序,面积上是有差异的。输出文件也可以有多种格式,常

用的有 EDIF 格式

( Electronic Data Interchange Format 电子数据交换格式)。综合工具

Synopsys 公司的比较强,

如 DC( Design Compiler), BC( Behavior Compiler), Cadence 的有 Ambit,

PKS。有些 FPGA 用的第

三方综合工具功能也很强大,如 Cadence 的 Synplify, Synopsys 的 FPGAExpress 和 FPGA-Compiler,

Mentor 的 Leonardo Spectrum。

4. 形式验证

是从功能上对综合后的网表进行验证。常用的就是等价性检查方法,以 HDL 为

参考,对比综合生

成的网表功能,验证他们是否在功能上存在等价性。这样做是为了保证在逻辑

综合过程中没有改变

原先 HDL 描述的电路功能。形式验证工具有 Synopsys 的 Formality, Mentor 的

FormalPro。

这些都没有问题了就可以进入后端设计了。

后端设计:

5.数据准备

后端设计需要 foundry 提供的和前端设计产生的一些数据。

例如对于 Cadence 的 SE( Silicon Ensemble)而言所需的数据主要有 Foundry

厂提供的标准单元

(全定制设计也可由自己设计标准单元)、宏单元和 I/O Pad 的库文件,它包括

物理库、时序库及网

表库,分别以.lef、 .tlf 和.v 的形式给出。前端的芯片设计经过综合后生成的

门级网表,具有时序约

束和时钟定义的脚本文件和由此产生的.gcf 约束文件以及定义电源 Pad 的 DEF

( Design Exchange

Format)文件。对 synopsys 的 Astro 而言, 经过综合后生成的门级网表,

时序约束文件 SDC 是一样

的,Pad 的定义文件--tdf, .tf 文件--technology file,Foundry 厂提供的标

准单元、宏单元和 I/O

Pad 的库文件就与 FRAM, CELL view, LM view 形式给出(Milkway 参考库 and

DB, LIB file)

标准单元版图。标准单元分为单元库和全定制两种。单元库一般是 foundry 给

定的,全定制的话,

版图是由自己公司专门的版图工程师画的, Layout 工具有 Cadence Virtuoso

layout editor,另外

还有 Laker 等使用也很广泛。版图画完后往往要做一下 DRC 验证( Design Rule

Checking 设计规则检

查,检查连线间距,连线宽度等几何规则是否满足工艺要求), LVS 验证

( Layout Vs Schematic 版图

与逻辑综合后的门级电路图的参数对比验证),这要借助 Cadence 的 Diva,

Dracula 或者 Mentor 公司

的 Calibre 或者 Synopsys 公司的 Hercules, LVS 上 Hercules 功能尤显强大。

6.自动布局布线( Auto place & route,简称 APR)

利用前面做好的网表和单元版图生成整块芯片版图。可用工具有 Synopsys 公司

的 Astro( Avant!

的 Apollo), Cadence 的 design framework,Silicon Ensembler, Envisia

place &route DSM,Design

Planner,Gate Ensemble。

( 1)布局规划,主要是标准单元、 I/O Pad 和宏单元(如 IP 模块, RAM 等)的

布局。 I/O Pad 一般

是预先给定了位置的,而宏单元则根据时序要求进行摆放,标准单元则是给出了

一定的区域由工具自

动摆放。布局规划后,芯片的大小,Core 的面积,Row 的形式、电源及地线的

Ring 和 Strip 就都确定下来

了。如果有必要,在自动放置标准单元和宏单元之后, 可以先做一次

PNA(power network analysis)

--IR drop(电压降) and EM(电迁移)。布局规划能直接影响芯片最终的面

积。

( 2) Placement(标准单元放置)。布局规划后,宏单元、 I/O Pad 的位置和放

置标准单元的区域

都已确定,这些信息由 SE( Silicon Ensemble)通过 DEF 文件传递给

PC(Physical Compiler 物理综合

工具),PC 根据由逻辑综合给出的.DB 文件获得网表和时序约束信息进行自动放

置标准单元,同时进行

时序检查和单元放置优化。如果是用 PC +Astro,则可用 write_milkway,

read_milkway 传递数据。

( 3) Routing(布线)是指在满足工艺规则和布线层数限制、线宽、线间距限

制和各线网可靠绝

缘的电性能约束的条件下,根据电路的连接关系将各单元和 I/O Pad 用互连线连

接起来,这些是在时

序驱动(Timing driven ) 的条件下进行的,保证关键时序路径上的连线长度能

够最小。基本流程是:

Global route-- Track assign --Detail Dummy Metal 的增加(详见第 10

步)。

( 4)布局布线中需要注意的是 CTS( Clock Tree Synthesis,时钟树综合),

简单点说就是时钟

的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的

连到各个时序单元,

使时钟从同一个时钟源到达各个时许单元的延迟差异最小。而且有的时序单元,

对时钟源来说负载很

多,其负载延时很大也会造成不平衡,这是就需要插入缓冲器减小负载和平衡延

时。从而因此时钟信

号一般需要单独布线。这些时钟网络及其上的缓冲器构成了时钟树。一般要反

复几次才可以做出一

个比较理想的时钟树。 CTS 工具常用 Synopsys 的 Physical Compiler。

7.寄生参数提取及后仿真

( 1)由于芯片里面的导线等本身存在的电阻,相邻导线之间还有互感,耦合电

容等,他们都会在

芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导

致信号的电压波动和

变化,如果严重就会导致信号失真错误。因此从 layout 进行寄生参数提取

( extract),反标到前面

的网表中,再次分析验证信号完整性问题是非常重要的。常用的参数提取工具

有 Synopsys 的 Star-RC

XT, Cadence 的 Nautilus DC,软件生成的带有完整的延时信息的设计文件格式

一般有: *.vho,*.sdf

文件。

( 2) STA( Static Timing Analysis 静态时序分析)是采用穷尽分析方法来提

取出整个电路存在的

所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立时间

( setup time)和保持时

间( hold time)是否满足时序要求,通过对最大路径延时和最小路径延时的分

析,找出违背时序约

束的错误。因为时钟树插入后,每个单元的位置都确定下来了,工具可以提出

Global Route 形式的连

线寄生参数,此时对延时参数的提取就比较准确了。例如 SE 把.V 和.SDF 文件传

递给静态时序验证工具

进行分析。而对 Astro 而言,在 detail routing 之后, 用 starRC XT 进

行参数提取,生成的.V 和.SDF

文件传递给 PrimeTime 做静态时序分析,那将会更准确。时序验证工具有

Cadence 的 Pearl, Synopsys

的 Prime Time 等。这些流程都没有问题后,就可以将.v 和.sdf 文件送去前端

人员那里进行后仿真,

即 DTA(动态时序分析),再次验证逻辑功能,后仿真应做 SI(信号完整性)

分析。

8. ECO(Engineering Change Order)

针对静态时序分析和后仿真中出现的问题,对电路和单元布局进行小范围的改动。

后仿真和前面

的布局布线阶段可能需要反复的循环进行才能达到设计要求,这需要前端人员

和后端人员的良好配

合。

9.芯片功耗分析

实际的后端流程还包括电路功耗分析,功耗分析常用的工具有 Prime power,

Power Compiler 等。

10.Filler 的插入(pad filler, cell filler)和 Dummy 金属的添加

Filler 指的是标准单元库和 I/O Pad 库中定义的与逻辑无关的填充物,用来填

充标准单元和标准单元

之间,I/O Pad 和 I/O Pad 之间的间隙,它主要是把扩散层连接起来,满足 DRC 规

则和设计需要。另外还

因为 Foundry 对金属密度一般都有规定,使其金属密度不要低于一定的值,以防

在芯片制造过程中的

刻蚀阶段对连线的金属层过度刻蚀从而降低电路的性能,加入 Dummy Metal 就

是为了增加金属的密

度。

11.整体物理版图验证

主要包括 LVS, DRC, ERC( Electrical Rule Checking 电气规则检查,检查短

路,开路等电气规

则违例)。工具前面已经介绍,这一步的完成基本上就是是整个芯片设计阶段

完成,下面的就是芯

片制造了。物理版图以 GDSII 的格式交给掩膜版厂做掩膜,然后到芯片代工厂

( Foundry)流片( tape

out),在晶圆硅片上做出实际的电路。流片出来后要对样片进行各种测试,满

足要求后就可以批量

生产了。

附:

DFT( Design For Test 可测性设计)。 IC 设计时内部往往都设计为自带测试电

路的结构, DFT 的目

的就是在设计的时候就考虑将来的测试。 DFT 的常见方法就是,在设计中插入

扫描链,将非扫描单元

(如寄存器)变为扫描单元, DFT 工具 Synopsys 的 DFT Compiler, Mentor 的

FastScan 等,需前后端设

计员合作,并参与 tapeout 后测试。还有随着制造工艺不断进步产生的 DFM

(可制造性设计)问题等

等。

总结:

Specification ->Architecture->RTL->SIM->DC->SIM->PT->DC->ASTRO->PT-

>DRC,LVS, ERC->TAPE OUT

数字 IC 设计中常见文件格式:

.alf: Advanced Library Format describing IC technology, cells and

blocks

.cif: Caltech Intermediate Format,纯文本的中间文件,主要用于版图的导

入输出,不用于生产

.ctlf: Compiled Timing Library Format

.db: data base

.def:design exchange format

.dspf:寄生参数交互格式

.edif: Electronic Data Interchange Format

.gcf: General Constraint Format

.GDSII: Graphic Design System II, Foundry 最常用的最终版图格式

.lef: Layout Exchange Format

.lib: DC 工具用的库文件格式

.sdf:增量标准延时格式,用作静态时序分析模块 Prime Time 的输入

.spef:标准寄生参数交换格式

.tdf:工艺库对 pad 的定义文件

.tf : Technology File format

.tlf: timing library format

.v: Verilog 源代码

.vhd: VHDL 源代码

.vho:带延时的门级网表文件,用于 vhdl 代码在第三方仿真 tools 下运行




                                                                                   ----本人于网上找的资料,仅用于阅读

你可能感兴趣的:(数字集成电路设计流程)