美文网首页
数字集成电路设计流程

数字集成电路设计流程

作者: 古城阳光 | 来源:发表于2019-06-11 19:44 被阅读0次

    数字 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 下运行

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

    相关文章

      网友评论

          本文标题:数字集成电路设计流程

          本文链接:https://www.haomeiwen.com/subject/dgoqfctx.html