当前位置:文档之家› IC后端流程(初学必看)

IC后端流程(初学必看)

IC后端流程(初学必看)
IC后端流程(初学必看)

校外IC后端实践报告

本教程通过对synopsys公司给的lab进行培训,从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。此教程只是本人探索实验的结果,并不代表内容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。

此后端流程大致包括一下内容:

1.逻辑综合(工具DC 逻辑综合是干吗的就不用解释了把?)

2.设计的形式验证(工具formality)

形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL 代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格(设计周期短)的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是逻辑等价的。

3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用

primetime对整个设计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。(PR后也需作signoff的时序分析)

4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR)

5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到

网表,再做静态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。

6.APR后的门级功能仿真(如果需要)

7.进行DRC和LVS,如果通过,则进入下一步。

8.用abstract对此lab实验进行抽取,产生一个lef文件,相当于一个hard macro。

9.将此macro作为一个模块在另外一个top设计中进行调用。

10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整

的芯片,具体操作下面会说。

11.重复第4到7步

1.逻辑综合

1)设计的verilog代码

2)综合之前,我们要选取库,写好约束条件,修改dc的启动文件synopsys_dc.setup,目标库选择TSMC(此设计都是用TSMC18的库)的typical.db。(选择max库会比较好) Dc的命令众多,但是最基本的命令差不多,此设计的约束文件命令如下:

create_clock -period 10 [get_ports clk] //用于时钟的创建

set_clock_latency -source -max 0.2 [get_ports clk] //外部时钟到core的clk连线延时

set_clock_latency -max 0.1 [get_ports clk] //core的clk到寄存器clk端的net连线延时

set_clock_uncertainty -setup 2 [get_ports clk] //时钟延时的不确定性,求setup违规时会被计算进去

set_clock_uncertainty –hold 1 【all_clocks】

set_input_delay -max 0.5 -clock clk [get_ports [list [remove_from_coll [all_inputs] clk] ] //输入延时,外部信号到input端的连线延时

set_output_delay -max 0.5 -clock clk [all_outputs] //输出延时

set_driving_cell -lib_cell INVX4 [all_inputs] //输入端的驱动强度

set_load -pin_load 0.0659726 [all_outputs] //输出端的驱动力

set_wire_load_model -name tsmc18_wl10 -library typical //内部net的连线模型

set_wire_load_mode enclosed //定义建模连线负载相关模式

set_max_area 0

compile

report_timing

report_constraint

change_names -rule verilog –hier

set_fix_multiple_ports_net –all

write -format verilog -hier -output mux.sv //输出网表,自动布局布线需要

write -format ddc -hier -output mux.ddc //输出ddc

write_sdf mux.sdf //输出延时文件,静态时序分析时需要

write_sdc mux.sdc //输出约束信息,自动布局布线需要

3)逻辑综合

启动design_vision。Read->mux.v

输入约束文件。File->excute script->verti.con

之后会产生mux.sv,mux.sdc,mux.sdf,mux.ddc等文件

4)时序分析

综合以后我们需要分析一下时序,看时序是否符合我们的要求,综合实际上是一个setup 时间的满足过程,但是我们综合的时候,连线的负载只是库提供的(即上面的wire_load),并不是实际的延时,所以一般做完综合以后,时间余量(slack)应该为时钟的30%(经验值),以便为后面实际布局布线留下充足的延时空间。因为如果slack太小,甚至接近于0,

虽然我们看起来是没有时序违规的,但是实际布局以后,时序肯定无法满足。

使用report_timing命令,可以查看时序分析报告:

****************************************

Report : timing

-path full

-delay max

-max_paths 1

-sort_by group

Design : mux

Version: D-2010.03-SP1

Date : Fri Jul 2 12:29:44 2010

****************************************

Operating Conditions: typical Library: typical(模型库)

Wire Load Model Mode: enclosed

Startpoint: data2[4] (input port clocked by clk)

Endpoint: dataout_reg_15_

(rising edge-triggered flip-flop clocked by clk)

Path Group: clk

Path Type: max

Des/Clust/Port Wire Load Model Library

------------------------------------------------

mux tsmc18_wl10 typical (线载模型及库)

Point Incr Path

-------------------------------------------------------------------------- clock clk (rise edge) 0.00 0.00 clock network delay (ideal) 0.00 0.00 input external delay 0.50 0.50 f data2[4] (in) 0.01 0.51 f mult_14/b[4] (mux_DW_mult_uns_0) 0.00 0.51 f mult_14/U131/Y (INVX1) 0.54 1.05 r mult_14/U161/Y (NOR2X1) 0.14 1.18 f mult_14/U39/S (CMPR42X1) 0.68 1.87 f mult_14/U12/CO (ADDFX2) 0.32 2.19 f mult_14/U11/CO (ADDFX2) 0.23 2.42 f mult_14/U10/CO (ADDFX2) 0.23 2.65 f mult_14/U9/CO (ADDFX2) 0.23 2.88 f mult_14/U8/CO (ADDFX2) 0.23 3.10 f mult_14/U7/CO (ADDFX2) 0.23 3.33 f mult_14/U6/CO (ADDFX2) 0.23 3.56 f

mult_14/U5/CO (ADDFX2) 0.23 3.79 f mult_14/U4/CO (ADDFX2) 0.23 4.02 f mult_14/U3/CO (ADDFX2) 0.23 4.25 f mult_14/U2/CO (ADDFX2) 0.22 4.47 f mult_14/product[15] (mux_DW_mult_uns_0) 0.00 4.47 f dataout_reg_15_/RN (DFFTRXL) 0.00 4.47 f data arrival time 4.47

clock clk (rise edge) 10.00 10.00

clock network delay (ideal) 0.30 10.30

clock uncertainty -0.10 10.20

dataout_reg_15_/CK (DFFTRXL) 0.00 10.20 r library setup time -0.19 10.01 data required time 10.01

-------------------------------------------------------------------------- data required time 10.01

data arrival time -4.47

-------------------------------------------------------------------------- slack (MET) 5.55 我们来看以上报告,dc报告的时候会显示出关键路径,即延时最大的路径,时序分析包括两段,前面一段是信号的延迟时间,即data arrival time 为4.47,下面是计算要求时间,也即相对于时钟,设计所能忍受的最大延时,由于到达寄存器clk端延时,即clock network delay,所以设计增加了0.30的余量,同样由于时钟的不确定度(可能提前也可能延后0.1),我们取最坏情况,就是时钟超前0.1,则时间余量减去0.1,最后一个是门的建立时间要求,是0.19,最后得到数据的要求时间。

Slack是要求时间减去到达时间的差值,slack越大越好。越大说明留给布局布线的时序越宽松。从报告中我们看出,时序余量为5.55,说明时序达到了要求,足够满足我们以后布局布线的时序要求。

当然,我们有专门的时序分析工具,primetime,下面会稍微介绍。

2.形式验证

1)怎么保证综合前和综合后的网表逻辑功能是一致的呢,对门级网表进行动态仿真,又太浪费时间,于是,一款强大的验证工具formality,给了我们很好的帮助。

2)形式验证数据准备:综合前RTL代码,综合后的网表,综合所用到的库。

3)验证过程如下:

1.首先我们打开formality,命令为fm_shell(命令行界面),formality(图形界面)。初学

者一般使用图形界面,使用图形界面的时候,工具会自动产生一个log文件,记录命令,我们可以将这个文件内容做一个fms格式,这样在下次验证的时候可以使用命令界面。

2.打开formality如下

第一步:首先我们加入原RTL代码,reference->read_design file->verilog->mux.v,选择好以后load file

第二步:然后选择库,没加库之前,FM会自动加载与工艺无关的库,所以我们要自己把自己的目标库加上去,reference->read DB libarary->DB,选择typical.db

第三步:设置top名reference->set top design 我们选择mux为top名

同样的方法对网表进行设置(第二个菜单栏implementation)

然后转到第四栏,点击run matching

最后转到第五栏,verify,如果网表无错,会显示验证通过。

3 静态时序分析

静态时序分析主要针对大型ASIC设计,

4 自动布局布线

1)数据准备

第一:需要综合后的网表以及时序约束文件mux.sv,mux.sdc

第二:需要自动布局布线的物理库(lef文件,这里用到tsmc18_6lm_cic.lef, tsmc18_6lm_antenna_cic.lef)

为了能够了解lef文档的作用,这里对lef做简单的介绍,lef一般分为两种:

一种是技术物理库,主要包含工艺信息,设计规则信息,金属通孔信息等。下例是对金属一层的定义,TYPE指明METAL1是可布线层,WIDTH定义的是METAL1的默认布线宽度,SPACING用于设定METAL1布线间距。DIRECTION HORIZONTAL指明METAL1是用于水平走线,当然这并不意味着它不能垂直走线,在一些布线资源较少的区域,还是可以选择垂直布线的。具体介绍,可以参考相关技术文档。

LAYER METAL1

TYPE ROUTING ;

WIDTH 0.230 ;

MAXWIDTH 9.9 ;

AREA 0.202 ;

SPACING 0.230 ;

SPACING 0.6 RANGE 10.0 100000.0 ;

PITCH 0.560 ;

DIRECTION HORIZONTAL ;

EDGECAPACITANCE 9.1090e-05 ;

END METAL1

另外一种就是单元物理库,定义了单元库中各单元的信息,文件又有两部分一种是SITE语句对布局(placement)最小单位的定义,另一部分是采用MACRO语句对单元属性及几何形状的描述,下例是对一个与门为例来看看lef是如何描述它的。MACRO是单元定义的关键字,每一个MACRO代表一个单元。CLASS core说明该单元是用于芯片的核心区,SIZE 确定了单元的面积大小,比如5.04是代表该单元的高度,后面我们做单元供电route的时候,可以看到它们的宽度就是这个数值。再后面就是定义引脚A,B,Y,VDD,VSS等。MACRO AND2X1

CLASS CORE ;

FOREIGN AND2X1 0.000 0.000 ;

ORIGIN 0.000 0.000 ;

LEQ AND2XL ;

SIZE 2.640 BY 5.040 ;

SYMMETRY x y ;

SITE tsm3site ;

PIN Y

DIRECTION OUTPUT ;

PORT

LAYER METAL1 ;

RECT 2.355 2.380 2.500 2.660 ;

END

END Y

PIN B

DIRECTION INPUT ;

PORT

LAYER METAL1 ;

RECT 0.800 2.315 1.215 2.895 ;

END

END B

PIN A

DIRECTION INPUT ;

PORT

LAYER METAL1 ;

RECT 0.150 1.820 0.565 2.315 ;

END

END A

PIN VSS

DIRECTION INOUT ;

USE ground ;

SHAPE ABUTMENT ;

PORT

LAYER METAL1 ;

RECT 1.790 -0.400 2.640 0.400 ;

RECT 1.450 -0.400 1.790 0.575 ;

RECT 0.000 -0.400 1.450 0.400 ;

END

END VSS

PIN VDD

DIRECTION INOUT ;

USE power ;

SHAPE ABUTMENT ;

PORT

LAYER METAL1 ;

RECT 1.755 4.640 2.640 5.440

END

END VDD

OBS

LAYER METAL1 ;

RECT 1.835 1.935 1.885 2.355 ;

END

END AND2X1

第三:时序库文件,typical.lib,也就是时序文件,定义了门的各种时序信息,某种意义来讲,这个和综合使用的db库是等价的。

2)布局布线过程:

第一步:打开encounter 把数据输入,另外在advanced栏的Power相应位置填上VDD,和VSS。如下图,设置完以后,记得把设置的配置文件做一个save以便于下次使用

第二步:打开以后,我们可以看到芯片区域,左边粉红色的就是标准单元,中间那个就是我们要设计的区域,64%是指cell面积的占有率,一般来说控制在70%左右,布线的时候不会引起拥塞。

另外我们需要对芯片进行稍微的更改,Floorplan->specify floorplan.,将core to IO那些项都

填上45,留给电源环的放置。

第三步:添加电源环

设置如下图,

NET填写VDD和VSS,layer选择顶层的两层金属,宽度设置为20(这个不定,可以根据实际设计来定),offset选择center in channel,则电源环会被设置在IO与core之间。

还需要横竖添加stripes,降低IRdrop。

第四步:自动布局以及布置标准单元,因为此设计较小,并没有block,所以可以直接进行标准单元的放置。Place->standard cells and blocaks->OK

然后我们发现标准单元已经被加进去了:

第五步:布置好了以后,我们需要将电源,地,等接口先连接起来,首先我们在floorplan 中选择global net connection,分别将VDD,VSS等都连接起来。

然后我们需要specify route将电源和地线先连接起来,选择route->specify route

因为我们这个设计只有标准单元,所以我们只要选择标准单元的布线即可:

完成以后,点击OK,会得到下面的图:每行的row都有线连接到外面的电源环

第六步:时钟树综合(CTS),这是一个APR设计中最重要的一环,为什么要进行时钟树综合呢,简单地说,因为信号传输的延时,我们需要让相应路径的时钟路径的也具有同样的延

时,通过添加时钟缓冲器的方法,来消除各路径的建立时间,具体请参考相关书籍和资料。添加好时钟树以后的版图如下:加了时钟树以后的版图密集了很多,因为加了很多buf。

时钟树的脚本:

AutoCTSRootPin clk

Period 10ns

MaxDelay 500ps # set_clock_latency

MinDelay 0ps # set_clock_latency

MaxSkew 100ps

SinkMaxTran 400ps

BufMaxTran 400ps

Obstruction NO

DetailReport YES

PadBufAfterGate NO

RouteClkNet NO

PostOpt YES

OptAddBuffer YES

OptAddBufferLimit 100

NoGating NO

Buffer CLKBUFX1 CLKBUFXL CLKBUFX2 CLKBUFX3 CLKBUFX4 CLKBUFX8 CLKBUFX12 CLKBUFX16 CLKBUFX20 CLKINVXL CLKINVX1 CLKINVX2 CLKINVX3 CLKINVX4 CLKINVX8 CLKINVX12 CLKINVX16 CLKINVX20

END

然后将脚本选中,并进行时钟树综合。

第七步:优化设计,命令optDesign –postCTS,然后report_timing查看时序报告,确定无违规,再进行完全布线。

第八步:完全布线,route ->nanoroute->route

之后得到的版图如下所示:

第九步:保存设计,提取需要的数据。

这里特别注意提取gds文件的时候,需要指定库文件中的streamOut.map文件,和merge gds

(tsmc18_core.gds)文件,如图所示

保存网表,并将此版图提取的网表做一次formality,与原代码匹配成功。

再提取def文件,保存为mux.def

5 第二次静态时序分析

用版图实际提取的延时文件进行

6 APR后仿真

用modelsim对版图提取的网表和sdf文件进行仿真。

7 用calibre对版图进行DRC及其LVS验证

在做这步之前,我们需要把相关的文档拷贝到icfb的工作目录下

Encounter导出的gds文档:这里是mux8.gds(注意merge库的map文件)

技术文档如:0.18um_Virtuoso4.4.tf,可以在厂家提供的库中去找

显示文件:display.drf

Caliber验证文件:drc,lvs文档

第一步:将encounter的版图数据导入virtuoso,打开icfb&,选择file->import->stream

然后将版图信息和技术文件填入:

导入成功以后会出现我们所做的库,mux就是我们encounter中所画的版图。

我们把版图打开:

这就是我们所画的版图然后在此进行drc,和lvs,通过以后再进行下面的工作。

第二步:drc检查

后端流程(初学必看)(DOC)

基本后端流程(漂流&雪拧) ----- 2010/7/3---2010/7/8 本教程将通过一个8*8的乘法器来进行一个从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。此教程只是本人探索实验的结果,并不代表内容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。 此后端流程大致包括一下内容: 1.逻辑综合(逻辑综合是干吗的就不用解释了把?) 2.设计的形式验证(工具formality) 形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是否逻辑等价。 3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用primetime对整个设 计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。(PR后也需作signoff 的时序分析) 4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR) 5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到网表,再做静 态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。 6.APR后的门级功能仿真(如果需要) 7.进行DRC和LVS,如果通过,则进入下一步。 8.用abstract对此8*8乘法器进行抽取,产生一个lef文件,相当于一个hard macro。 9.将此macro作为一个模块在另外一个top设计中进行调用。 10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整的芯片,具体 操作下面会说。 11.重复第4到7步

IC设计基础(流程、工艺、版图、器件)-笔试集锦

IC设计基础(流程、工艺、版图、器件)笔试集锦 1、我们公司的产品是集成电路,请描述一下你对集成电路的认识,列举一些与集成电路 相关的内容(如讲清楚模拟、数字、双极型、CMOS、MCU、RISC、CISC、DSP、ASIC、FPGA 等的概念)。(仕兰微面试题目) 什么是MCU? MCU(Micro Controller Unit),又称单片微型计算机(Single Chip Microcomputer),简称单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机。 MCU的分类 MCU按其存储器类型可分为MASK(掩模)ROM、OTP(一次性可编程)ROM、FLASH ROM等类型。MASK ROM的MCU价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合;FALSH ROM的MCU程序可以反复擦写,灵活性很强,但价格较高,适合对价格不敏感的应用场合或做开发用途;OTP ROM的MCU价格介于前两者之间,同时又拥有一次性可编程能力,适合既要求一定灵活性,又要求低成本的应用场合,尤其是功能不断翻新、需要迅速量产的电子产品。 RISC为Reduced Instruction Set Computing的缩写,中文翻译为精简执令运算集,好处是CPU核心 很容易就能提升效能且消耗功率低,但程式撰写较为复杂;常见的RISC处理器如Mac的Power PC 系列。 CISC就是Complex Instruction Set Computing的缩写,中文翻译为复杂指令运算集,它只是CPU分类的一种,好处是CPU所提供能用的指令较多、程式撰写容易,常见80X86相容的CPU即是此类。 DSP有两个意思,既可以指数字信号处理这门理论,此时它是Digital Signal Processing的缩写;也可以是Digital Signal Processor的缩写,表示数字信号处理器,有时也缩写为DSPs,以示与理论的区别。 2、FPGA和ASIC的概念,他们的区别。(未知) 答案:FPGA是可编程ASIC。 ASIC:专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。根据一 个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。与 门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计 制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点 3、什么叫做OTP片、掩膜片,两者的区别何在?(仕兰微面试题目)otp是一次可编程(one time programme),掩膜就是mcu出厂的时候程序已经固化到里面去了,不能在写程序进去!( 4、你知道的集成电路设计的表达方式有哪几种?(仕兰微面试题目) 5、描述你对集成电路设计流程的认识。(仕兰微面试题目) 6、简述FPGA等可编程逻辑器件设计流程。(仕兰微面试题目) 7、IC设计前端到后端的流程和eda工具。(未知) 8、从RTL synthesis到tape out之间的设计flow,并列出其中各步使用的tool.(未知) 9、Asic的design flow。(威盛VIA 2003.11.06 上海笔试试题) 10、写出asic前期设计的流程和相应的工具。(威盛) 11、集成电路前段设计流程,写出相关的工具。(扬智电子笔试) 先介绍下IC开发流程: 1.)代码输入(design input) 用vhdl或者是verilog语言来完成器件的功能描述,生成hdl代码 语言输入工具:SUMMIT VISUALHDL MENTOR RENIOR 图形输入: composer(cadence); viewlogic (viewdraw) 2.)电路仿真(circuit simulation) 将vhd代码进行先前逻辑仿真,验证功能描述是否正确 数字电路仿真工具: Verolog:CADENCE Verolig-XL SYNOPSYS VCS MENTOR Modle-sim VHDL : CADENCE NC-vhdl SYNOPSYS VSS MENTOR Modle-sim 模拟电路仿真工具: AVANTI HSpice pspice,spectre micro microwave: eesoft : hp 3.)逻辑综合(synthesis tools) 逻辑综合工具可以将设计思想vhd代码转化成对应一定工艺手段的门级电路;将初级仿真 中所没有考虑的门沿(gates delay)反标到生成的门级网表中,返回电路仿真阶段进行再 仿真。最终仿真结果生成的网表称为物理网表。 12、请简述一下设计后端的整个流程?(仕兰微面试题目) 13、是否接触过自动布局布线?请说出一两种工具软件。自动布局布线需要哪些基本元 素?(仕兰微面试题目) 14、描述你对集成电路工艺的认识。(仕兰微面试题目) 15、列举几种集成电路典型工艺。工艺上常提到0.25,0.18指的是什么?(仕兰微面试题 目) 16、请描述一下国内的工艺现状。(仕兰微面试题目)

半导体工艺流程

1清洗 集成电路芯片生产的清洗包括硅片的清洗和工器具的清洗。由 于半导体生产污染要求非常严格,清洗工艺需要消耗大量的高纯水; 且为进行特殊过滤和纯化广泛使用化学试剂和有机溶剂。 在硅片的加工工艺中,硅片先按各自的要求放入各种药液槽进行表面化学处理,再送入清洗槽,将其表面粘附的药液清洗干净后进入下一道工序。常用的清洗方式是将硅片沉浸在液体槽内或使用液体喷雾清洗,同时为有更好的清洗效果,通常使用超声波激励和擦片措施,一般在有机溶剂清洗后立即米用无机酸将其氧化去除,最后用超纯水进行清洗,如图1-6所示。 图1-6硅片清洗工艺示意图 工具的清洗基本米用硅片清洗同样的方法。 2、热氧化 热氧化是在800~1250C高温的氧气氛围和惰性携带气体(N2)下使硅片表面的硅氧化生成二氧化硅膜的过程,产生的二氧化硅用以作为扩散、离子注入的阻挡层,或介质隔离层。典型的热氧化化学反应为: Si + O2 T SiO2

3、扩散 扩散是在硅表面掺入纯杂质原子的过程。通常是使用乙硼烷(B2H6)作为N —源和磷烷(PH3)作为P+源。工艺生产过程中通常 分为沉积源和驱赶两步,典型的化学反应为: 2PH3 —2P+3H2 4、离子注入 离子注入也是一种给硅片掺杂的过程。它的基本原理是把掺杂物质(原子)离子化后,在数千到数百万伏特电压的电场下得到加速,以较高的能量注入到硅片表面或其它薄膜中。经高温退火后,注入离子活化,起施主或受主的作用。 5、光刻 光刻包括涂胶、曝光、显影等过程。涂胶是通过硅片高速旋转在硅片表面均匀涂上光刻胶的过程;曝光是使用光刻机,并透过光掩膜版对涂胶的硅片进行光照,使部分光刻胶得到光照,另外,部分光刻胶得不到光照,从而改变光刻胶性质;显影是对曝光后的光刻胶进行去除,由于光照后的光刻胶 和未被光照的光刻胶将分别溶于显影液和不溶于显影液,这样就使光刻胶上 形成了沟槽。 6、湿法腐蚀和等离子刻蚀 通过光刻显影后,光刻胶下面的材料要被选择性地去除,使用的方法就

后端基本概念

为了方便大家尽快找到需要的话题,经icfb版主建议,编辑这个数字后端的FAQ。 如果您是初学者,建议先搜索相关的资料,读读其他人的帖子,一些基本概念在那里都已经讨论过了。 如果您已经有2年以上的实战经验,下面这些雕虫小技就不太值得您去浪费时间了。 先说说作为一个有经验的后端(暫不包括DFT工程师和layout工程师)工程师,需要掌握哪些知识 4个级别: 1)知道一些基本概念, 2)简单地掌握这门技术, 3)熟练 4)精通 半导体工艺--2 RTL coding -- 2 综合-- 2 时序约束-- 3 APR -- 3 DFT -- 2 DRC/LVS -- 3 仿真-- 2 形式验证-- 2 以下是FAQ分类: 2楼:时序约束,STA 3楼:综合DC/RC 4楼:APR (floorplan,place,CTS,route) 5楼:验证(LEC,DRC,LVS等) 6楼:DFT 7楼:低功耗 8楼:面试 9楼:名词解释

时序约束,STA (1) clock Q1.1 什么是同步时钟? 时钟频率是整倍数,并且相互之间的相位是固定而且相差可预知的,才可以称得上是同步时钟。其他的都算异步时钟。 比如, 5M,10M是同步 2M,3M一般算异步 一个时钟,输出到另一个芯片中,转一圈后,以同样的频率返回到自己的芯片,因为无法确定时钟在另一个芯片里面的latency,所以输出的时钟与输入的时钟算异步一个时钟进到2个PLL,就算那2个PLL的输出频率相同,一般也算是异步时钟,除非你de-skew Q1.2 如何处理同步时钟? 设计要求严格的公司,就算是同步时钟,数据在同步时钟间传送时,依然要用meta-stability FF,可以set_false_path 如果放松要求,不用meta-stability FF,则同步时钟之间是real path,做CTS时,同步时钟要clock tree balance。 注意不同频率的同步时钟的最小时间间隔被用来检查setup 如果上升下降沿混用的话,setup的时间间隔就只有半个时钟周期了 Q1.3 如何处理异步时钟? 很简单,set_false_path 注意要from A to B,同时要from B to A Q1.4 如何定义时钟? create_clock 如果指定某个pin/port,就是实时钟,如果没有指定pin和port,就是虚拟时钟 巧妙利用waveform选项可以做出不同波形的时钟 被定义成时钟的net,在综合时,自动带有ideal network和dont_touch的属性。但是当它被用作data计算延迟时,ideal net的属性会自动消失 时钟会自动穿过逻辑单元,停在时序单元的时钟端,所以用FF产生的分频时钟要再用create_generated_clock定义一次 Q1.5 如何处理多选一时钟? 在实际应用当中,如果这几个时钟不会同时出现的话,则在定义时钟时,只选择最快频率的就可以了 如果是多个时钟同时出现,可以用set_case_analysis选一个, 也可以放它们全都过去,但是在MUX后面把它们之间set_false_path Q1.6 巧妙定义时钟

IC设计的一些事情

当你坐在计算机旁工作或在网上冲浪,当你打开电视机欣赏节目,当你在川流不息的人群中拿起无绳电话,当你的VCD或DVD正在播放惊心动魄的hoolywood 电影......你可知道在这些和我们的生活悉悉相关的IC设计者(大规模集成电路)在默默的工作。 个人电脑、因特网、无绳电话、天气预报、模拟战争、空中预警、导弹卫星......几乎所有的新名词都和IC密切相关。IC工业的成就和未来正引起人类社会新的变革。当比尔.盖茨在condex大会上为我们描绘如诗般的internet生活;当intel和amd宣布里程碑式的1G处理器;你是否了解为致力于创造和改变人们生活方式的IC设计工程师是如何把我们的每一个梦想变成现实? 笔者愿以一个普通设计人员的身份帮你撩开IC设计的神秘面纱。 1,项目和课题; (1)Herbert Kroemer说过这样的名言:“任何一种新的并具创造性的技术的应用原理总是,也一直都是,因为这种技术所创造的应用。” 设计IC的唯一目的就是为了满足某种需求,譬如CPU和DRAM是为了计算机而存在;而80C51系列单片机就是因为很多的工控应用而蓬勃发展,而象mpeg1,mpeg2,mp3解码器这些专用电路更是目的明确。因此IC设计项目总是和应用密切相关。不要盯住无用的“新技术”而投入过份的精力。早在voodoo之前Nviria公司就创造了曲面帖图技术,但这种技术太超前了,以致它现在都是不切实际的幻想。然而任何IC开发计划又都必须具有前瞻性,只是这种前瞻性必须是也只能是:当芯片在制造厂流片成功时正是它所对应的技术即将或大量应用时。 (2)在IC设计行业,“时间就是金钱”是永远不变的铁律。 没有那个公司会做过时的IC,再傻的老板都不会在现在把开发mpeg1或10M以太网芯片做为自己的目标,因为技术和应用发展的方向正在淘汰他们,一切不和时宜和不具前瞻性的项目都不具吸引力。我所在的term就将千兆以太网芯片作为自己的努力方向,因为它比现在正流行的传输率快一个阶段。随千兆以太网标准的推出,未来的局域网应用一定会是千兆的天下,这称为技术贮备。NVIDIA公司在推出TNT2时早在研发NV20。符合技术发展潮流和应用规律的项目是保证投资回报和团队生存的基本要求。 (3)“没有人愿意和巨人打架”,syrex和IDT的失败正是这句话的真实印证。任何产品目标都必须是切实可行符合业界规范的。一个小的刚刚涉足IC设计的trem将CPU设计作为自己的目标无疑是可笑和毫无意义的。他必须了解自己的研发能力可以达到什么样的程度,这包括了项目带头人的能力和技术专长,包括了整个团队的开发经验等等。在IC设计中,最讲究的就是要“专”,不要什么都想干,往往什么都干不成。比如一个在网络开发方面有经验的TERM没必要选择开发单片机,最可能的是他会开发网路产品而在需要用单片机或DSP作为microcontroller时去买nation semiconducter或TI的芯核(我们所属的TMI公司就是这样);我们在开发USB芯片的过程中,从来不把host controller作为自己的目标,因为作为一个在国内的刚刚组建的IC design term,我们根本没有技术,经验和能力去和nec、philips、intel或、nation semiconductor比较。即使我们研发的USB1.1标准的芯核也只可以作为usb接口的以太网卡的一部分来使用,而不是作为一款单独的产品; 众所周知曾经有中国的SVCD规范出台,SVCD的最终失败正是因为它不符合国际标准;符合标准是IC设计的前提,计算机产业的迅速发展正是因为它的标准化。对标准的兼容性是一片IC是否可以被市场认可的关键。VIA正是因为intel在很多技术上的专利而不得不收购S3、syrex等公司来换取技术专利交换协议以保持和intel处理器的兼容性。另外,一个研发团队对标准的掌握程度和速度直接决定产品在市场中的成败。我们在开发USB接口的100M以太网卡芯片的过程中,之所以USB部分开发迅速,而network的mac部分遇到

关于IC验证经验的总结

关于IC验证经验的总结 完整的、详细的设计规范是验证工作的重要起点。 验证工作根据设计规范(Specification)进行,详细的Spec是RTL代码的编写工作的依据,也是验证工作的依据。当验证过程发现DUT的响应与testbench预计的不符时,需要根据Spec判断是DUT出现错误还是testbench出现错误。 参数化的全局定义 ?Register相关位及其数值的全局宏定义。reg_define.v ?相关路径的全局宏定义。define_board.v ?系统重要变量的显示信息。display.v ?与Register相关的比较任务和报错任务。reg_cmp ?时钟周期参数的定义,一般局部定义,用parameter定义。 存取波形及相应变量的数据,使用`ifdef为全局定义使用 1.波形源头文件是VCD波形,但过于庞大,可用来做功耗分析。 $dumpfile(“wave.vcd”); $dumpvars(0,xxx); $dump0ff; $dumpflush; 2.SHM波形是Cadence的,可以用simvision打开。 $shm_open(“wave.shm”); $shm_probe(xxx,“AST”); $shm_close; 3.FSDB波形是Novas的,可以用nwave打开。 $fsdbDumpfile(“wave.fsdb”); $fsdbDumpvars(0,xxx); 4.VPD波形是Synopsys的,可以用dve打开。 $vcdplusfile(“wave.vpd”); $vcdpluson(0,xxx); 5.变量的存取,可以使用宏来选择变量的存取与否与存取时间使用。

半导体的生产工艺流程

半导体的生产工艺流程 微机电制作技术,尤其是最大宗以硅半导体为基础的微细加工技术 (silicon-basedmicromachining),原本就肇源于半导体组件的制程技术,所以必须先介绍清楚这类制程,以免沦于夏虫语冰的窘态。 一、洁净室 一般的机械加工是不需要洁净室(cleanroom)的,因为加工分辨率在数十微米以上,远比日常环境的微尘颗粒为大。但进入半导体组件或微细加工的世界,空间单位都是以微米计算,因此微尘颗粒沾附在制作半导体组件的晶圆上,便有可能影响到其上精密导线布局的样式,造成电性短路或断路的严重后果。为此,所有半导体制程设备,都必须安置在隔绝粉尘进入的密闭空间中,这就是洁净室的来由。洁净室的洁净等级,有一公认的标准,以class10为例,意谓在单位立方英呎的洁净室空间内,平均只有粒径0.5微米以上的粉尘10粒。所以class后头数字越小,洁净度越佳,当然其造价也越昂贵。为营造洁净室的环境,有专业的建造厂家,及其相关的技术与使用管理办法如下: 1、内部要保持大于一大气压的环境,以确保粉尘只出不进。所以需要大型 鼓风机,将经滤网的空气源源不绝地打入洁净室中。 2、为保持温度与湿度的恒定,大型空调设备须搭配于前述之鼓风加压系统 中。换言之,鼓风机加压多久,冷气空调也开多久。 3、所有气流方向均由上往下为主,尽量减少突兀之室内空间设计或机台摆 放调配,使粉尘在洁净室内回旋停滞的机会与时间减至最低程度。 4、所有建材均以不易产生静电吸附的材质为主。 5、所有人事物进出,都必须经过空气吹浴(airshower)的程序,将表面粉尘 先行去除。 6、人体及衣物的毛屑是一项主要粉尘来源,为此务必严格要求进出使用人 员穿戴无尘衣,除了眼睛部位外,均需与外界隔绝接触(在次微米制程技术的工厂内,工作人员几乎穿戴得像航天员一样。)当然,化妆是在禁绝之内,铅笔等也禁止使用。 7、除了空气外,水的使用也只能限用去离子水(DIwater,de-ionizedwater)。 一则防止水中粉粒污染晶圆,二则防止水中重金属离子,如钾、钠离子污染金氧半(MOS)晶体管结构之带电载子信道(carrierchannel),影响半导体组件的工作特性。去离子水以电阻率(resistivity)来定义好坏,一般要求至 17.5MΩ-cm以上才算合格;为此需动用多重离子交换树脂、RO逆渗透、与 UV紫外线杀菌等重重关卡,才能放行使用。由于去离子水是最佳的溶剂与清洁剂,其在半导体工业之使用量极为惊人! 8、洁净室所有用得到的气源,包括吹干晶圆及机台空压所需要的,都得使 用氮气(98%),吹干晶圆的氮气甚至要求99.8%以上的高纯氮!以上八点说明是最基本的要求,另还有污水处理、废气排放的环保问题,再再需要大笔

中国IC设计公司现状和发展分析

中国IC设计公司现状和发展分析 1. 200万门是最大设计规模 本次调查显示了中国IC设计公司的地域分布特点,84%的IC设计公司主要集中在沿海城市及北京市,其中上海、无锡和杭州三地占40%,北京占26%,深圳为18%,成都/重庆占5%,西安和武汉分别为4%和3%。 目前,中国IC设计公司的主要资金来源是自筹和政府,中小规模的公司占主体,如下图图1所示。 在被调查的公司中,平均每个公司有6个产品系列,44%的受访公司产品系列在5个以下,20个以上占10%。目前,中国IC设计公司的最大设计规模为200万门(图1)。数字IC产品的设计水平主要集中在0.25到0.5微米以及0.5到1.5微米内,分别占34%和29%,小于0.25微米仅占20%;模拟IC中50%采用0.5到1.5微米,1.5微米以上占42%。 2. 主流产品通信类第一、消费类第二 42%受访公司的产品主要应用领域为通信,34%为消费类,分别占第一、二位;工业电子和计算机类分别占10%和8%。受访公司的主要产品集中在ASIC、MCU、视频类IC和数模混合IC,如图1所示,显示了通信领域对ASIC和MCU的巨大需求。另一方面也反映出由于经济实力和规模的制约,ASSP等标准器件的设计仍然处于弱势。 通信类产品是目前国产IC中最主要的一类,本次调查显示42%的公司涉足该类产品,52%的受访者认为此类产品发展前景最好(图2),28%的受访公司在未来的两年中将会推出通信类IC产品,但仅为第二位(图3),暴露出中国IC设计公司对更高技术含量的通信类设计仍信心不足。随着中国在通信基础设施的大量资金投入,通信IC的市场的进一步扩大必将吸引更多国内IC设计公司的关注。请参见图2,图3。 图2 图3 在被调查公司的产品类型中,电视/视频/显示相关产品占12%,位居第三。该数据显示未来视频相关产品为广大IC公司所看好,这与目前宽带到户、数字HDTV、MPEG技术的发展趋势

晶圆封装测试工序和半导体制造工艺流程0001

盛年不重来,一日难再晨。及时宜自勉,岁月不待人 盛年不重来,一日难再晨。及时宜自勉,岁月不待人 A.晶圆封装测试工序 一、IC检测 1. 缺陷检查Defect Inspection 2. DR-SEM(Defect Review Scanning Electro n Microscopy) 用来检测出晶圆上是否有瑕疵,主要是微尘粒子、刮痕、残留物等问题。此外,对已印有电路图案的图案晶圆成品而言,则需要进行深次微米范围之瑕疵检测。一般来说,图案晶圆检测系统系以白光或雷射光来照射晶圆表面。再由一或多组侦测器接收自晶圆表面绕射出来的光线,并将该影像交由高功能软件进行底层图案消除,以辨识并发现瑕疵。 3. CD-SEM(Critical Dime nsioi n Measureme nt) 对蚀刻后的图案作精确的尺寸检测。 二、IC封装 1. 构装(Packaging) IC构装依使用材料可分为陶瓷(ceramic )及塑胶(plastic )两种,而目前商业应用上则以塑胶构装为主。以塑胶构装中打线接合为例,其步骤依序为晶片切割( die saw)、黏晶(die mount / die bond)、焊线(wire bon d)、圭寸胶(mold )、剪切/ 成形(trim / form )、印字(mark )、电镀(plating )及检验(inspection )等。 (1) 晶片切割(die saw ) 晶片切割之目的为将前制程加工完成之晶圆上一颗颗之晶粒(die )切割分离。举例来说:以 0.2微米制程技术生产,每片八寸晶圆上可制作近六百颗以上的64M微量。 欲进行晶片切割,首先必须进行晶圆黏片,而后再送至晶片切割机上进行切割。切割完后之 晶粒井然有序排列于胶带上,而框架的支撐避免了胶带的皱褶与晶粒之相互碰撞。 (2) 黏晶(die mou nt / die bo nd ) 黏晶之目的乃将一颗颗之晶粒置于导线架上并以银胶(epoxy)粘着固定。黏晶完成后之导线 架则经由传输设备送至弹匣( magazi ne )内,以送至下一制程进行焊线。 ⑶焊线(wire bond ) IC构装制程(Packaging )则是利用塑胶或陶瓷包装晶粒与配线以成集成电路( Integrated Circuit ;简称IC),此制程的目的是为了制造出所生产的电路的保护层,避免电路受到机械

半导体制造工艺流程

半导体制造工艺流程 N型硅:掺入V族元素--磷P、砷As、锑Sb P型硅:掺入III族元素—镓Ga、硼B PN结: 半导体元件制造过程可分为 前段(FrontEnd)制程 晶圆处理制程(WaferFabrication;简称WaferFab)、 晶圆针测制程(WaferProbe); 後段(BackEnd) 构装(Packaging)、 测试制程(InitialTestandFinalTest) 一、晶圆处理制程 晶圆处理制程之主要工作为在矽晶圆上制作电路与电子元件(如电晶体、电容体、逻辑闸等),为上述各制程中所需技术最复杂且资金投入最多的过程,以微处理器(Microprocessor)为例,其所需处理步骤可达数百道,而其所需加工机台先进且昂贵,动辄数千万一台,其所需制造环境为为一温度、湿度与含尘(Particle)均需控制的无尘室(Clean-Room),虽然详细的处理程序是随著产品种类与所使用的技术有关;不过其基本处理步骤通常是晶圆先经过适当的清洗(Cleaning)之後,接著进行氧化(Oxidation)及沈积,最後进行微影、蚀刻及离子植入等反覆步骤,以完成晶圆上电路的加工与制作。 二、晶圆针测制程 经过WaferFab之制程後,晶圆上即形成一格格的小格,我们称之为晶方或是晶粒(Die),在一般情形下,同一片晶圆上皆制作相同的晶片,但是也有可能在同一片晶圆上制作不同规格的产品;这些晶圆必须通过晶片允收测试,晶粒将会一一经过针测(Probe)仪器以测试其电气特性,而不合格的的晶粒将会被标上记号(InkDot),此程序即称之为晶圆针测制程(WaferProbe)。然後晶圆将依晶粒为单位分割成一粒粒独立的晶粒 三、IC构装制程 IC構裝製程(Packaging):利用塑膠或陶瓷包裝晶粒與配線以成積體電路目的:是為了製造出所生產的電路的保護層,避免電路受到機械性刮傷或是高溫破壞。 半导体制造工艺分类 半导体制造工艺分类 一双极型IC的基本制造工艺: A在元器件间要做电隔离区(PN结隔离、全介质隔离及PN结介质混合隔离)ECL(不掺金)(非饱和型)、TTL/DTL(饱和型)、STTL(饱和型)B在元器件间自然隔离 I2L(饱和型) 半导体制造工艺分类 二MOSIC的基本制造工艺: 根据栅工艺分类 A铝栅工艺 B硅栅工艺

synopsys数字前后端设计流程

synopsys数字前后端设计流程 数字前端设计流程(synopsys)流程 1. 设计输入1) 设计的行为或结构描述。2) 典型文本输入工具有UltraEdit- 32 和Editplus.exe.。3) 典型图形化输入工具-Mentor 的Renoir。 2. 代码调试1) 对设计输入的文件做代码调试,语法检查。2) 典型工具为Debussy。 3.前仿真1)功能仿真2)验证逻辑模型(没有使用时间延迟)。 4.综合1)把设计翻译成原始的目标工艺2) 最优化3) 合适的面积要求和性能要求 5. 布局和布线1) 映射设计到目标工艺里指定位置2) 指定的布线资源应被使用3) 采用Altera 公司的QuartusII 和MaxplusII、Xilinx 公司的ISE 和Foudation 布局和布线 6.后仿真1)时序仿真2) 验证设计一旦编程或配置将能在目标工艺里工作(使用时间延迟)3)所用工具同前仿真所用软件。 7. 时序分析 8. 验证合乎性能规范1) 验证合乎性能规范,如果不满足,回到第一步。 9. 版图设计1) 验证版版图设计。2) 在板编程和测试器件。 数字后端设计流程 1. 数据准备Foundry 厂提供的标准单元、宏单元和I/O Pad 的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf 和.v 的形式给出。前端的芯片设 计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产 生的.gcf 约束文件以及定义电源Pad 的DEF 文件。 2. 布局规划。主要是标准单元、I/O Pad 和宏单元的布局。 3. Placement -自动放置标准单元 4. 时钟树生成(CTSClock tree synthesis)时钟网络及其上的缓冲器构成了时钟树。

半导体工艺流程

集成电路芯片生产的清洗包括硅片的清洗和工器具的清洗。由于半导体生产污染要求非常严格,清洗工艺需要消耗大量的高纯水;且为进行特殊过滤和纯化广泛使用化学试剂和有机溶剂。 在硅片的加工工艺中,硅片先按各自的要求放入各种药液槽进行表面化学处理,再送入清洗槽,将其表面粘附的药液清洗干净后进入下一道工序。常用的清洗方式是将硅片沉浸在液体槽内或使用液体喷雾清洗,同时为有更好的清洗效果,通常使用超声波激励和擦片措施,一般在有机溶剂清洗后立即采用无机酸将其氧化去除,最后用超纯水进行清洗,如图1-6所示。 图1-6硅片清洗工艺示意图 工具的清洗基本采用硅片清洗同样的方法。 2、热氧化 热氧化是在800~1250℃高温的氧气氛围和惰性携带气体(N2)下使硅片表面的硅氧化生成二氧化硅膜的过程,产生的二氧化硅用以作为扩散、离子注入的阻挡层,或介质隔离层。典型的热氧化化学反应为: Si + O2→SiO2

扩散是在硅表面掺入纯杂质原子的过程。通常是使用乙硼烷(B 2H 6)作为N -源和磷烷(PH 3)作为P +源。工艺生产过程中通常分为沉积源和驱赶两步,典型的化学反应为: 2PH 3 → 2P + 3H 2 4、离子注入 离子注入也是一种给硅片掺杂的过程。它的基本原理是把掺杂物质(原子)离子化后,在数千到数百万伏特电压的电场下得到加速,以较高的能量注入到硅片表面或其它薄膜中。经高温退火后,注入离子活化,起施主或受主的作用。 5、光刻 光刻包括涂胶、曝光、显影等过程。涂胶是通过硅片高速旋转在硅片表面均匀涂上光刻胶的过程;曝光是使用光刻机,并透过光掩膜版对涂胶的硅片进行光照,使部分光刻胶得到光照,另外,部分光刻胶得不到光照,从而改变光刻胶性质;显影是对曝光后的光刻胶进行去除,由于光照后的光刻胶和未被光照的光刻胶将分别溶于显影液和不溶于显影液,这样就使光刻胶上形成了沟槽。 6、湿法腐蚀和等离子刻蚀 通过光刻显影后,光刻胶下面的材料要被选择性地去除,使用的基片 涂胶后基片 光刻胶 阻挡层

数字后端流程一【Design Compile】实例笔记

DC 综合 DC 又称为设计综合将设计的RTL代码综合成门级网表的过程。 在DC 流程中一般要经过以下几个步骤,以项目A为例做如下分析: 1】在项目子目录下创建DC文件夹,在DC文件夹下分别创建db in lib_syn log netlist rpt和script 文件夹以及一个makefile 文件用来运行DC 脚本。 2】第二步就是复制相应工艺技术库文件到lib_syn ,一般有2种文件各3个分别包括了typical worst 和best情况,一类是db,文件一类是lib 文件也可以在lc_shell 下读取lib 得到相应的db文件。 3】第三步将需要综合的设计RTL代码(Verilog 文件)复制到in 文件夹 4】第四步在script 创建综合脚本,脚本创建过程将在后面介绍 5】第五步编写运行脚本的makefile 文件 6】第六步运行脚本而后查看综合报告,是否有违例现象出现,如果有修改脚本加以修复直到最终通过设计。 注意另外的几个文件夹作用db文件夹存放DC综合生成的项目db文件,综合网表输出到netlist 文件夹,综合程序运行报告存放在log文件夹中,而综合结果的数据报告则存放在rpt 文件夹中。 DC脚本的编写(A.scr) DC综合脚本基本上有几大部分组成 1】定义综合环境中命名规则(分别对net cell port 命名) define_name_rules verilog –casesensitive define_name_rules verilog –type net –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 N ” \ -replacement_char “_” \ -prefix “n” define_name_rules verilog –type cell –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 ” \ -replacement_char “_” \ -prefix “u” define_name_rules verilog –type port –allowed “a-z A-Z 0-9 _ ” \ -first_restricted “ _ 0-9 ” \ -replacement_char “_” \ -prefix “p” 2】综合环境的建立 指明库所在的位置 Search_path = { lib_syn/db } 指定综合所需目标库一般选用最恶劣情况worst 库作目标库

如何成为一名IC设计工程师

如何成为一名IC设计师 IC设计不同于一般的板级电子设计,由于流片的投资更大,复杂度更高,系统性更强,所以学习起来也有些更有意思的地方。 那么如何才能成为一个优秀的IC设计工程师? 首先,作为初学者,需要了解的是IC设计的基本流程。应该做到以下几点:基本清楚系统、前端、后端设计和验证的过程,IC设计同半导体物理、通信或多媒体系统设计之间的关系,了解数字电路、混合信号的基本设计过程,弄清楚ASIC,COT这些基本的行业模式。窃以为这点对于培养兴趣,建立自己未来的技术生涯规划是十分重要的。学习基本的设计知识,建议读一下台湾CIC的一些设计教材,很多都是经典的总结。 EDA技术的学习:对于IC设计者来说,EDA工具意义重大,透过EDA工具商的推介,能够了解到新的设计理念。国内不少IC设计者,是单纯从EDA的角度被带入IC设计领域的,也有很多的设计者在没有接触到深亚微米工艺的时候,也是通过EDA厂家的推广培训建立基本概念。同时,对一些高难度的设计,识别和选择工具也是十分重要的。如果你希望有较高的设计水平,积累经验是一个必需的过程。经验积累的效率是有可能提高的。以下几点可以参考: 1.学习借鉴一些经典设计,其中的许多细节是使你的设计成为产品时必需注意的。有些可能是为了适应工艺参数的变化,有些可能是为了加速开关过程,有些可能是为了保证系统的稳定性等。通过访真细细观察这些细节,既有收益,也会有乐趣。项目组之间,尤其是项目组成员之间经常交流,可避免犯同样错误。 2.当你初步完成一项设计的时侯,应当做几项检查:了解芯片生产厂的工艺,器件模型参数的变化,并据此确定进行参数扫描仿真的范围。了解所设计产品的实际使用环境,正确设置系统仿真的输入条件及负载模型。严格执行设计规则和流程对减少设计错误也很有帮助。 3.另外,你需要知识的交流,要重视同前端或系统的交流,深刻理解设计的约束条件。作为初学者,往往不太清楚系统,除了通过设计文档和会议交流来理解自己的设计任务规范,同系统和前端的沟通是IC设计必不可少的。所谓设计技巧,都是在明了约束条件的基础上而言的,系统或前端的设计工程师,往往能够给初学者很多指导性的意见。 4.查文献资料是一个好方法。多上一些比较优秀的电子网站,如中国电子市场网、中电网、电子工程师社区。这对你的提高将会有很大的帮助。另外同“老师傅”一同做项目积累经验也较快。如果有机会参加一些有很好设计背景的人做的培训,最好是互动式的,也会有较好的收获。 5.重视同后端和加工线的交流:IC设计的复杂度太高,除了借助EDA工具商的主动推介来建立概念之外,IC设计者还应该主动地同设计环节的上下游,如后端设计服务或加工服务的工程师,工艺工程师之间进行主动沟通和学习。对于初学者来说,后端加工厂家往往能够为他们带来一些经典的基本理念,一些不能犯的错误等基本戒条。一些好的后端服务公司,不仅能提供十分严格的Design Kit,还能够给出混合信号设计方面十分有益的指导,帮助初学者走好起步之路。加工方面的知识,对于IC设计的“产品化”更是十分关键。 6.重视验证和测试,做一个“偏执狂”:IC设计的风险比板级电子设计来的更大,因此试

IC设计经验总结

I C设计经验总结 一、芯片设计之前准备工作: 1)根据具体项目的时间要求预订MPW班次,这个可以多种途径完成。 (1):一方面可以跟中科院EDA中心秦毅等老师联系,了解各个工艺以及各个班次的时间。半导体所是EDA中心的会员单位,他们会很热心的帮助完成。 (2):另一方面可以和具体项目合作的单位如清华等,根据他们的流片时间来制定自己的流片计划。 2)仔细核对设计库的版本更新情况,包括PDK、Spectre Model以及RuleDecks。这些 信息可以直接可以从中科院EDA中心获得,或者从相应的合作单位进行沟通统一。 这一点对后续的设计很重要,请务必要引起重视。 3)得到新的工艺库必须整体的熟悉一下,好好的查看里面的Document以及Userguide 之类的,里面的很多信息对实际设计很有帮助。安装工艺库的过程会根据具体设计要求做出一些选着。如TSMC65nm工艺库在安装过程中会提示是否选着RF工艺、电感是否使用厚层金属、MIM电容的单位面积电容值等之类的。 4)制定TapeOut的具体Schedule. 这个Schedule的制订必须请相关有经验的人来核 实,第一次TapeOut的人往往缺乏实际经验,对时间的安排可能会不合理。一旦Schedule制订好后,必须严格按照这个时间表执行。当然必须赶早不赶晚! 二、芯片设计基本系统框图一

图一 三、模拟IC设计基本流程 3.1) 设计框图如下图二 电路样式选择 电路结构确定 参数的选定 以及仿真 优化以及可 靠性仿真 图二

3.2 电路的式样确定 这个主要是根据系统设计结果,分析和确定模拟电路的详细的式样。 3.3 电路的结构确定 根据单元模块电路的功耗、代价等各个指标的折中分析,确定各个单元模块的具体实现电路形式,如滤波器是无源滤波器还是有源滤波器,有正交VCO产生I/Q信号还是通过/2分频器来实现I/Q信号,用差分形式还是用单路形式等等。在具体电路的选取过程中,我们需要查阅了大量的IEEE文献,从中选取了比较成熟的,应用较广的电路结构来进行我们的设计工作。有时候可能会发现所确定的结构很难或者根本不可能满足技术指标的要求,这就需要改进结构或者查阅文献,设法满足要求。 3.4 参数的选取和仿真 电路参数的选定与电路的仿真是分不开的。在比较重要的设计任务中,手算可以在20%的时间内完成80%的设计工作量,剩下的20%却需要花80%的时间来做。通过手算确定的参数是近似的,有时候会引错方向。但是它可以了解到参数的变化对设计会有多大的影响,是很有必要的。而采用计算机的反复迭代会使设计者对设计体会不深,不是明智的办法。 俗话说“公欲善其事,必先利其器”。目前,在公司内部可以使用多种EDA工具进行电路仿真。对于EDA工具的使用不在于多,能够精通常用的一类或者几类就行。最主要的时候能够灵活的进行仿真规划,知道什么样的电路适合用什么样的仿真工具。 -HSPICE;对于低频电路设计来说,HSPICE是一种最灵活方便的工具,而且其仿真精度也比较高,后来被SYNOPSYS收购,好像也正是因为这个原因使得如今的Hspice仿真速度以及精度都可以跟Cadence产出的仿真器相媲美了。业界使用Hspice作为仿真软件的也挺多,原先是avanti公司的, -Spectre;是Cadence的仿真器,由于其是图形界面,所以很直观。 -SpectreRF:对于射频电路设计,SpectreRF是一种不错的选择。 -UltraSim:相比于Spertre而言,在仿真精度损失3%的情况下,可以加速10~100倍的仿真速度。而且进行整体芯片后仿真时候,我们可以根据其不用的精度要求来设置各个模块的仿真精度。UltraSim Full-Chip Simulator for faster convergence on goals and signoff of post-layout designs at the chip level. 具体UltraSim的使用可以参考《Virtuoso? UltraSim Simulator User Guide》、《ADE/UltraSim Integration Tutorial》等。在网上相关资料很多,可以根据要求自己下载学习。 -APS:Accelerated Parallel Simulator delivers high-precision SPICE and scalable

后端设计流程

后端设计流程 ASIC/SoC后端设计作业流程剖析 Toshiba(美国) 秦晓凌 Trident(上海) 潘中平 关键词place route DSM megacell clock_tree STA OPT ECO 引言众所周知,ASIC产品是从用硬件描述语言(verilog HDL,VHDL)开始进行数字逻辑电路设计的,经过相关的仿真、综合出门级网表、验证直至完成电路布局布线并优化,最终经流片成功形成的芯片产品。随着中国经济的持续稳定地增长,国内生产厂家对IC需求增长势头强劲与自身设计IC能力薄弱的突出矛盾已经被国家和企业认识。为了缓解这一矛盾并更多地实现IC自主设计,近两年国内陆续出现了一些著名的传统通信系统厂商设立的IC设计队伍,以及归国留学人员领头创办的创业型IC设计公司,他们大多数有相当强的前端设计能力,但在IC后端设计领域的实践经验还较欠缺。在完成前端逻辑设计综合出门级网表后,真正能做好后端设计的公司还不多,有的则通过委托设计服务的方式完成后端布局布线及流片。本文 作者有多年从事覆盖前后端IC设计全流程并有每年几次成功流片数百万门级深亚微米SoC的经验,并担任IC设计的项目管理工作,对国外大公司的设计流程十分熟悉,并愿意就积累的经验与国内同行分享交流,以利于国内IC设计水平的提高。本文着重介绍国内设计公司薄弱的后端设计,介绍其流程并对在设计过程中的关键步骤进行一些讨论。传统的后端设计流程指的是从门级网表(gate level netlist)开始的,根据设计要求的不同,后端流程可以分为扁平流程(flat flow)和层次化流程(hierarchy flow)两种,在深亚微米 DSM(deep sub-micron)领域,又增加了布局加逻辑合成的前后端合二为一的扁平流程(flat flow)和分层流程(hierarchy flow)。我们首先介绍传统的两种后端流程。前后端合一的流程将作为另一个专题在以后讨论。 一、扁平流程(Flat flow)介绍 最简单的后端设计是扁平(flat)流程,一般四百万门以下的设计均可使用这一流程。芯片设计的最高境界是设计完成后一次性投片(Tape Out)成功,这一成功必须建立在正确的前端电路逻辑设计和科学合理及高效的后端布局布线上,要想获得最后的成功,设计阶段就来不得带有半点的侥幸心态,否则就算在电路功能上满足设计要求,在参数性能上的任何失误也是导致返工的重要因素。因此,后端设计阶段很难保证一遍成功,走几个来回是常事,要期望在最终投片时一次成功,就需要在设计阶段多下工夫。我们不妨给这些大循环起个名字,第一轮叫试验(trial),第二轮叫首次签收(first Sign Off), 第三轮叫最后签收(final Sign Off),每轮包括的前后端设计主要任务和结果如表一所示。不同的循环应该有不同的侧重点,为了节省时间,这些大循环还应该尽可能安排前后端设计同步进行。 Trial:80%模块设计完成数据库准备,流程确认,流程运行中问题的解决,主要设计数据(芯片大小,总体布局,大体时序)的可行性确认 First Sign Off:100%设计,DFT,I/O完成数据库已确定,时序收敛基本完成,没有大的拥塞(congestion) Final Sign Off:最后细小的功能修改,时序收敛所有时序和布局布线问题解决

相关主题
文本预览
相关文档 最新文档