当前位置:首页 >> 信息与通信 >>

Cadence及Hspice基础


Cadence及Hspice基础 Cadence及Hspice基础
厦门元顺微电子技术有限公司 廖建平

Cadence 概述
Candence包含的工具较多,主要有数字仿真工具 Verilog-XL,布局布线工具Preview和Silicon Ensemble,电路图设计工具 Composer,电路模 拟工具Analog Artist,

版图设计工具Virtuoso Layout Editor,版图验证工具Dracula等。 今天主要讲下电路图设计工具Composer的使用, 为Hspice仿真工具的使用做准备。

一些名词解释 库(Library):特定工艺相关的单元集合 单元(Cell):构成系统或芯片模块的设计对 象 视图(View):单元的一种预定义类型的表 示,常用的有 schematic,layout,symbol,functional, config等 CIW:命令解释窗口(Command Interpreter Window)

系统启动命令 1 .前端启动命令

命令 icde icds icms icca

规模 s s m xl

功能
基本数字模拟设计 输入 icde 加数字设计环 境 前端模拟、混合、 微波设计 前端设计加布局规 划

2 .版图工具启动命令 命令 规模 功能
基本版图设计 (具有交互 DRC 功能) 基本版图设计 (具有自动化设 计工具和交互验 证工具)

layout

s

layoutPlus

m

3 .系统级启动命令

命令 swb msfb icfb

规模 s l xl

功能 Pcb 设计 混合型号IC设 计 前端到后端大 多数工具

Cadence 软件的启动
在UNIX提示符下输入icfb&,再按回车,就会出现如 下图中所示的CIW(Command Interpreter Window) 窗口,从CIW窗口中可以调用许多工具并完成许多 任务。

库文件的管理
在CIW中点击Toos,再选择Library Manager,就会弹出库文 件的管理窗口,如下图所示:

几个用到的系统自带的库文件: 1.basic:电路中用的电源和地(vdd,gnd)主要 从该库里调用。 2.sample:该库包含了我们所用到的大部分器 件,有P场管(pmos,pfet)、N场管 (nmos,nfet)、三级管(pnp,npn)、电阻 (resistor)、电容(capacitor)、电感(inductor) 及一些门电路。 3.analogLib:该库与sample库差不多,当我们 用Analog Artist仿真且想看电流时就应把相 关器件替换成该库里的器件。

新建自己的工作库 1.在Library Manager中点击File菜单,选中其中的 New/Library,弹出下图中的对话框,输入库名再 点击ok即可,这时会出现3个选项,对我们电路 而言,选择最下面的Don’t need a techfile即可。

2.新建的库是一个空的库,里 面什么也没有,我们可在库 中生成自己所需的单元。例 如可生成一个反相器单元, 并为其生成一个电路视图, 其流程如下:

选择File菜单中的New项, 并选择Cellview项,则 弹出右图上方所示的对 话框,选择所需的库并 输入单元名inv,选择视 图类型Schematic,再 点击ok,则弹出右图下 方的窗口。

用Add菜单中的 Instance命令调用 sample和basic中的单 元,输入PMOS和 NMOS管以及电源和 地,再用Add菜单中的 Pin命令添加输入和输 出端,如右图所示。 最后记得点击Check and save命令保存。

添加一个工作库 通常我们需要从别的工作 站,拷贝一个工作库到自 己的工作站上,这时需要 我们设置一下库的路径后 才能用,方法有两种: 1.在Library Manager中点击 Edit菜单中的Library Path 按钮,弹出如右上图所示 窗口,在里面添加库名和 相关路径即可,记得保存 哦; 2.直接cds.lib文件中添加库 名和相关路径,如右下图 所示。

网表(netlist)的生成 点击CIW窗口中的File菜单,再选中Export按钮,最后点 击其中的CDL按钮,则会弹出如下窗口,填写所要转换 的电路图(包括库名,单元名和电路视图),并指定生成网 表的存放路径后,点击OK按钮即可。 注:在转换之前一定要先将电路图check and save 一遍, 否则会转换失败。可在网表存放路径下的si.log文件中查 找网表转换失败的具体原因。

反相器(Inverter)描述范例

快捷键的使用 电路图输入和整理的操作中应尽量养 成使用快捷键的习惯,有助于提高工 作效率。具体的快捷键在ComposerSchematic Editing窗口中的相关按钮 都有提示,使用时注意查看或请教别 人。

HSPICE电路设计流程

HSPICE所使用的单位(不区分大小写) 单位缩写 F(f) P(p) N(n) U(u) M(m) K(k) Meg(meg) G(g) T(t) DB(db) 含义 1e-15 1e-12 1e-09 1e-06 1e-03 1e+03 1e+06 1e+09 1e+12 20log10

HSPICE 基础知识 1.Avant!Start-Hspice(现属于Synopsys公司) 是IC设计中最常使用的电路仿真工具,是目前业 界使用最为广泛的IC设计工具,甚至可以说是事 实上的标准。我们公司的工作站用的就是该仿真 软件来仿真模拟电路。我们公司也有PC机和 LINUX上的hspice仿真软件,原理一样,但速度 比在工作站上快很多。在工作站上启动hspice的 命令为:hspice *.sp>*.lis& 2.Hspice输入网表文件为.sp文件(一般分成网表文 件netlist和激励文件*.sp两部分,在激励文件中利 用.inc语句将netlist包含进来,这样做的好处是激 励文件可以移植到其他电路的仿真中,且重新生 成网表后不用动激励文件),输入文件还包括模型 和库文件为.inc和.lib,这些都可以在激励文件中 将它们包含进来。

HSPICE 基础知识 3.Hspice输出文件有运行状态文件.st0、输出列表 文件.lis、瞬态分析文件.tr#、直流分析文件.sw#、 交流分析文件.ac#、测量输出文件.m*#等。其中, 所有的分析数据文件均可作为AvanWaves的输入 文件用来显示波形。

输入激励文件(.sp) 标准格式和范例如下:

输入激励文件(.sp) 1.Title Statement 在Netlist中的第一行为Title Statement,供使 用者注解使用,Hspice对于此行不予理会。 另外,在第一行以外的描述中,若要加入注 解,以‘*’为首的为整行注解,在行中以 ‘$’以后的文字会被视为注解,如下图:

输入激励文件(.sp) 2.元件描述(netlist) a.电阻(resistor):Rxxx node1 node2 10k b.电容(capacitor):Cxxx node1 node2 10p c.电感(inductor):Lxxx node1 node2 10u d.二级管(diode): Dxxx node1 node2 DIODEtype e.MOS管(nmos,pmos,nfet,pfet): Mxxx D G S B MOStype W=width L=length f.BJT管(npn,pnp): Qxxx C B E BJTtype area=val
这里值得注意的是MOS管的L和W的scale是m,而不是um

输入激励文件(.sp) 3.信号源描述 我们HSPICE所输入之信号源,一般以独立的电压源和电流 为主。 直流源(DC): 电压源 Vxxx n+ n- <dc=>dcval 电流源 Ixxx n+ n- <dc=>dcval 交流源(AC): Vxxx n+ n- AC=acmag,acphase 瞬态源(随时间变化): 脉冲源:pulse v1 v2 td tr tf pw per 线性源:pwl t1 v1<t2 v2 t3 v3…> 正弦源:sin vo va freq td dampling phasedelay 混合源:可以包括以上所有的形式,如: Vin v1 gnd DC=2 AC=1,90

输入激励文件(.sp)
4.分析命令 分析类型大致分为三类:直流、交流和瞬态分 析,即DC、AC和TRAN,这三类分析都有延伸 的分析指令,如下表所示。 分析类型 延伸指令 .OP .DC .AC .TRAN .IC .NODESET .TF .PZ .SENSE .NOISE .DISTO .SAMPLE .NET .FOUR(UIC) .FFT X轴(横轴)

电压/电流等 频率 时间

.OP分析是工作点(Operation Point)分析, 是Hspice最先做的分析,完成后才进行其 他的DC/AC/Tran分析。 由上表可发现,除了分析类型外,也包含 了延伸指令。以.Tran分析为例,使 用.Tran指令分析后才能够进 行.FOUR/.FFT指令进行Fourier分析。因 此延伸指令是附属于分析类型之后的额外 分析。我们在分析时应注意这点。

4.1 OP分析 Hspice进行.OP分析时,会将电路中所有 节点的DC工作点计算出来,遇到电容视为 开路; 遇到电感视为短路。 另外,.NODESET指令可设定某节点之起始值,以 当作Hspice计算时的Initial Guess;而.IC指令则时强 制设定某节点的电压初始值(Initial Value)。 4.2 DC分析 DC分析可针对多种参数进行扫描,包括电压/电流 源、温度、自定参数(.param中所定义)等,另外也 可使用.TF指令求得电路的Transfer Function;使 用.PZ指令求得电路的Pole/Zero。 下面给出几个范例:

a. .DC vin 0 2.5V 0.1V 扫描vin电压由0V开始扫描,每 0.1V扫描一点,扫至2.5V(共扫描26点) b. .DC vdd 0 10 0.1 vg 0 5 1 主扫描为vdd(X axis),副扫描为vg c. .DC temp 0 100 1 温度扫描由0度到100度,每1度扫描一次 d. .DC temp POI 5 0 25 50 80 120 温度扫描5点,分别为0度, 25度,50度,80度和120度。 e. .DC rval 1k 10k 0.5k sweep temp LIN 5 25 125 主扫描为变 数,扫描rval由1k至10k,每0.5k扫描一次;次扫描为温度 扫描,由25度至125度进行5点线性扫描(分别为25度、50 度、75度、100度及125度) f. .DC DATA=data1 sweep par1 DEC 110 1k 10k .DATA data1 vdd 3 5 .ENDDATA 主扫描的变数由data1的内容而定:vdd 为3v及5v;副扫描 变数为par1,在1k至10k区间里,进行DEC(Decade variation)扫描(X axis 为log10),每个decade110个点。

4.3 tran分析 Hspice的暂态分析为时域上的响应结果, 除了时域上的分析之外,Hspice还提供 了.FOUR/.FFT指令,让使用者除了得到时 域上的结果外也能经过Fourier变换得到频域 上的响应结果,让我们方便对照,但受限于 Fourier变换的算法缘故,在做.tran分析时应 注意分析时间必须以0为起点(缺省为0),否 则所得到的响应结果会有错误。 a. .tran 1ns 100ns 由0到100ns,每隔1ns分析 一点 b. .tran 10n 1u UIC 由0到1us,每隔10ns分析 一点,使用.ic指令所指定的节点起始电压

c. .tran 10n 1u UIC sweep temp -55 75 10 主扫描为时间,由0到1us,每隔10ns分析一点,使 用.ic指令所指定的节点起始电压。副扫描为温度, 由-55至75,每隔10分析一次 d. .tran 10n 1u sweep load POI 3 1pf 5pf 10pf 主扫描为时间,由0到1us,每10ns分析一点。次扫 描为负载电容,分别以1pf、5pf、10pf的负载电容 分3次扫描。 .tran 分析指令常配合.measure(.meas)量测指令以便 快速地得到量测结果: a. .meas tran trise trig v(out) val=‘2.5*0.1’ +rise=3 targ v(out) val=‘2.5*0.9’ rise=3 进行暂态分析量测,由v(out)第三上升段的0.25V量 至v(out)第三上升段的2.2V,以变数名称trise存储 之。

b. .meas tran tfall trig v(out) val=‘2.5*0.9’ +fall=3 targ v(out) val=‘2.5*0.1’ fall=3 进行暂态分析量测,由v(out)第三下降段的 2.2V量至v(out)第三下降段的0.25V,以变数 名称tfall存储之。 c. .meas tran avgval avg i(vdd) from=1m +to=2m 进行暂态分析量测,计算从1ms到 2ms之间i(vdd)的平均值,以变数名称avgval 存储之。 d. .meas tran fre=param(’1/tdelay‘) 将变数’tdelay’做倒数运算,并将运算结果 以变数名称’fre’存储之。

e. .meas tran result Find v(out) When v(in) =2.5v rise=1 执行暂态分析量测,当节点 in的电压为第一个上升段,且电压为2.5v时, 量测节点out的电压,并将结果以变数名称 result存储之。 f. .meas tran minval MIN v(1,2) from=25n to=50n 执行暂态分析量测,在分析的时间 区段为25ns到50ns间,量测节点1和2之间 电压差的最低值,并将结果以变数名称 minval存储之。

4.4 AC分析 AC分析为Hspice计算频域响应的指令 a. AC DEC 10 1k 100meg 执行AC分析,频率 范围由1kHz到100MHz,每decade扫描10 点(X axis为log10)。 b. .AC LIN 50 1 100 执行AC分析,频率范围由 1Hz到100Hz,以线性扫描方式分析50点。 c. .AC dec 10 1 10k sweep Rx POI 2 5k 15k 执行AC分析,主扫描为频率,范围由1Hz到 10kHz,每decade扫描10点;副扫描为Rx 电阻值,扫描2点,分别为Rx=5k及Rx=15k 关于各种分析指令的更详尽的用法请参考手 册hspiceManual

.输出格式和子电路 .输出命令包 括:.PRINT、.PLOT、.PROBE 、.GRAPH 和.MEASURE 有五种输出变量形式: 1.直流和瞬态分析 直流和瞬态分析 用于显示单个节点电压,支路电流和器件功 耗。如.print V(node)或.plot I(node),也可 用.graph、.probe。 V(node)表示节点电压,I(node)表示节点电流, p(rload)表示在负载rload上的分析点的功耗。

2.交流分析 用于显示节点电压和支路电流的实部 、虚部和相 位。如:vi(node)表示节点电压的虚部,ip(node) 表示节点电流的相位,vp(4,6)表示节点4,6间的 相位角。 3.器件模版: 用于显示制定的器件节点的电压、支路电流和器 件参数。如:i(mp3)表示MOS管mp3的漏电流, i(mp3) MOS mp3 该电流亦可表示为i1(mp3)或lv16(mp3),其他表示 方式见手册hspiceManual 4.Measure语句: 用于显示用户自定义的变量。可以采用的句法包 括:raise,fall,delay,average,RMS,min, max,p-p等。如: .meas tran avgval avg i(vdd) from=2m to=4m

5.参数语句 : 用于显示用户自定义的节点电压等表达式。 语法格式: .print tran out_var_name=PAR(‘expression’) 还可以采用AvanWave进行波形输出,启动AvanWave的 命令为:awaves <filename>& 子电路 1.采用.Global设置全局节点: .global node1 node2..(一般为电源和地的节点) 2.子电路语句.SUBCKT和.MACRO: .subckt subnam n1 n2 n3…parnam=val… .macro subnam n1 n2 n3…parnam=val… 3.子电路的调用: Xyyy n1 n2 n3…sunnam parnam=val…M=val

控制语句和option语句 1.Options语句格式: .options opt1 opt2 opt3…opt=x 下面给出一部分关键词,详尽的请参考手册 .option list 表示将器件网表,节点连接方式等输入 到列表文件,用于debug与电路拓扑结构有关的 问题,verify同list; .option node 表示将输出节点连接表到列表文件, 用于debug与由于电路拓扑结构引起的不收敛问 题; .option acct 表示在列表文件中输出运行时间统计 和仿真效率; .option opts 在列表文件中报告所有的.option设置

1.Options语句格式(续): .option nomod 表示不输出MODEL参数,以便减小 列表文件的大小; .option brief=1 表示不输出网表信息,直到设 置.option brief=0,NXX同brief; .protect/.unprotect 用于屏蔽网表文件中要保护的信 息; .option bypass=1 不计算latent器件; .option autostop 表示当所有.meas语句完成时,终 止仿真; .option accurate=1表示设置为最精确的仿真算法和 容差,相当于设置了lvltim=3,dvdt=2,relvar =absvar=ft=0.2,relmos=0.01,缺省值为0; .option dvdt=4用于数字CMOS电路仿真(默认设置);

1.Options语句格式(续): .option captab对二极管、BJT管、MOS、JFET、 无源电容器,打印出信号的节点电容值; .option dcstep=val将直流模型和器件转换为电导, 主要应用于’No DC Path to Ground’或有直流通 路,但不符Hspice定义的情况,缺省为0; .option probe 可用来只保存自己想要的节点电压 或支路电流的波形(跑大电路时推荐使用); .option post 将仿真结果保存,可以用Avant Waves等波形查看工具打开。post=1用二进制保 存结果,post=2用ASCII格式保存结果,post=3 用New Wave binary 格式保存结果。默认值为1。 2.MODEL OPTION语句: SCALE影响器件参数,如:L、W,area, SCALM影响model参数,如tox、vto、tnom。 格式为:.option scale=1u

Options Keyword Application Table

仿真控制和收敛 造成Hspice仿真不收敛主要有’‘No Convergence in DC Solution’‘和’‘Timestep too Small’‘,其可能的原因是: 1.电路的拓扑结构 电路连线错误,scale、scalm和param语句错误, 其他错误可通过查找列表文件(*.lis)中的warning 和errors发现。 解决方法:将电路分成不同的小模块,分别仿真; 简化输入源;调整二极管的寄生电阻;调整错误 容差,重新设置RELV,ABSV,RELI,ABSI, RELMOS,ABSMOS等。 2.仿真模型 由于所有的半导体器件模型都可能包含电感为零 的区域,因此可能引起迭代的不收敛。

解决办法:在PN结或MOS的漏和源之间跨接一个 小电阻;将.option中默认的GMINDC、GMIN增 大。 3.仿真器的options设置: 仿真错误容差决定了仿真的精度和速度。 解决方法:调整错误容差,重新设置RELV, ABSV,RELI,ABSI,RELMOS,ABSMOS等 针对仿真分析中可能出现的不收敛情况分析: 1.直流工作点分析: 每种分析方式都以直流操作点分析开始,由于 Hspice有很少的关于偏置点的信息,所以进行DC OP分析是很困难的,分析结果将输出到.ic文件中。 对DC OP分析不收敛的情况,解决方法:

a.删除.option语句中除acct,list,node,post之外的所 有设置,采用默认设置,查找.lis文件中关于不收 敛的原因; b.使用.nodeset和.ic语句自行设置部分工作点的偏 置; c.DC OP不收敛还有可能是model的问题,如在亚 阈值区模型出现电导为负的情况。 2.直流扫描分析: 在直流扫描之前,Hspice先做DC OP计算,引起 直流扫描分析不收敛的原因可能是快速的电压或 电流变化,模型的不连续。 解决方法:a.电压或电流变化太快,可通过增加 ITL2来保证收敛;b.模型不收敛,可通过增加仿 真步长值或改变仿真初始值来保证收敛。

3.AC频率分析 DC OP收敛,AC分析一般都会收敛,造成 不收敛的原因主要是DC OP分析不收敛 4.瞬态分析 瞬态分析先进行直流工作点的计算,将计 算结果作为瞬态分析在T0时刻的初始值, 再通过Newton-Raphson算法进行迭代计算, 在迭代计算过程中时间步长值是动态变化 的,.tran tstep中的步长值并不是仿真的步 长值,只是打印输出仿真结果的时间间隔 的值,可以通过调整.options lvltim imax imin来调整步长值。 对瞬态分析,默认采用Trapezoidal算法

精度比较高,但容易产生振荡,采用Gear算 法作为滤波器可以滤去由于算法产生的振 荡,具有更高的稳定性。

不收敛的常用解决办法总结如下: 1.换个算法 换个算法 前面讲过,Hspice提供两种基本算法:Gear和 Trap,系统默认算法是Trap,更改为Gear算法的 方法是加一个: .options method=gear,该方法具有一定的凑巧性。 2.改变容忍度 改变容忍度(tolerance) 改变容忍度 计算机解方程时,都是设定一个容忍度。这个容 忍度可以时迭代次数,可以精度,可以是计算时 间,而且还可能和accuracy配合起来,有大概20 个tolerance可以更改。根据不同的需要来改。可 参考前面的options table,里面记录了所有关键 词。

不收敛的常用解决办法总结如下: 3.改变步长 改变步长 主要是针对’internal time step too small’的情况。 前面所过,这个time step不是所设定的分析 step(这个step只是影响仿真步长的一个因子)。影 响仿真步长的因子有12个之多。如数值变换平缓 时,time step自动取的大些以增快仿真时间,更 改方法也可以查options table options table。一般通过调整 lvltim imax imin这3个来调整步长值。 4.改变初始条件 的设定 改变初始条件.ic的设定 改变初始条件 使用得当一般不影响模拟结果,特别是在有暂稳 态的结构中,如果damped pseudo transient算法 都不收敛,可以不改变电源波形使其收敛。

不收敛的常用解决办法总结如下: 5.增加电阻 增加电阻 一些节点加很大的电阻(不影响电路性能的 情况下),来改变节点方程。这种方法不会 影响电路的模拟结果。但对收敛的改善不 但对收敛的改善不 显著。 显著。 6.在.option语句中加入改善收敛的语句 在 语句中加入改善收敛的语句 Hspice在模拟的速度,精度,收敛性三。 常用的是:对每个节点都加一个很大的电 阻或电容。(fF级即可,太大影响电路性能)。 如:方面进行折衷 .option gshunt=1e-11 cshunt=1e-11 但这样做会降低模拟精度。 但这样做会降低模拟精度。

不收敛的常用解决办法总结如下: 7.改变电源的波形 改变电源的波形 在电路起动时,让恒流源缓慢上升,而不 是突然加一个阶跃电压。在不影响电路的 在不影响电路的 情况下这种方法对收敛的改善最好。 情况下这种方法对收敛的改善最好。 8.改变电路 8.改变电路 去掉或者替换一些没什么用的电路。可以 加个非常小的电阻比如1u欧姆(等于加了个 节点,方程的维数多了一个)。

全文完 谢谢 !!
2007-042007-04-28


相关文章:
HSPICE与CADENCE仿真规范与实例
HSPICECADENCE仿真规范与实例_电子/电路_工程科技_专业资料。HSPICECADENCE仿真...参加本实验专题的人员应具备集成电路设计基础、器件模型等相关知识。 二、Spice ...
Cadence与hspice结合
Cadence与hspice结合_信息与通信_工程科技_专业资料。Cadence 公司有全套的模拟电路...Hspice(中文实用版) 62页 免费 Cadence及Hspice基础 50页 1下载券 Hspice中文教...
HSPICE与CADENCE仿真规范与实例 (3)
HSPICECADENCE仿真规范与实例 (3)_电子/电路_工程科技_专业资料。电路模拟实验...参加本实验专题的人员应具备集成电路设计基础、器件模型等相关知识。 二、Spice ...
hspice
Hspice,对 于已经熟悉了 Cadence 的 GUI 界面的使用者转而面对 Hspice 的文本...一、HSPICE 基础知识 Avant! Start-Hspice(现在属于 Synopsys 公司)是 IC 设计...
HSpice实战
Hspice, 对于已经熟悉了 Cadence 的 GUI 界面的使用者转而面对 Hspice 的文本...一、HSPICE 基础知识 Avant! Start-Hspice(现在属于 Synopsys 公司)是 IC 设计...
【简单易懂,图文并茂】教你如何上手Cadence
但 是我们的虚拟机中并没有安装 Hspice 软件, 所以我们使用 Cadence 自带的...⑦设计的项目库文件建立完成, 然后我们在这个项目库的基础上建立其子项目。 ...
第六章 《集成电路基础》实验
第六章实验方法与实验规则 《集成电路基础》实验 《集成电路基础》是一门理论性...75 实验二 Cadence 图形输入法的使用和 HSpice 电路仿真的使用 一、实验目的 1...
hspice基础知识
hspice基础知识_电子/电路_工程科技_专业资料。元件描述语句 1.1 R、L、C 元件...HSPICE基础知识 5页 免费 Hspice基础培训 25页 1下载券 Cadence及Hspice基础 50...
Hspice语言学习总结
? ? 文件名格式: 工具的多少:Cadence>>Hspice 精度:一般 Hspice>Cadence 适用...在这样的基础上进行分 析。如图是一个非常典型的三极管放大电路。当输入 为小...
Hspice 第一次仿真错误总汇20120724(图文教程)
Hspice 第一次仿真错误总汇20120724(图文教程)_电子/电路_工程科技_专业资料。Hspice...Hspice电路仿真教程ppt 149页 免费 Hspice电路仿真 149页 免费 Cadence hspice...
更多相关标签:
cadence hspice | hspice | hspice破解版下载 | hspice下载 | hspice教程 | hspice2015破解版下载 | hspice安装教程 | hspice破解版 |