HSPICE 简介 周伶俐 2006/05/31 lilingzhou1982@163.com.

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

HSPICE 簡介 SPICE (Simulation Program with Integrated Circuit Emphasis) 原先的目的是為了電子系統中積體電路 之模擬與設計而發展的軟體. 目前成為微 電子領域中電腦輔助電路分析的標準.
电工新技术的发展与职业教育 一 电工新技术的最新发展 1 电工新技术的整体发展状况 2 超导技术的原理及发展 3 磁流体发电的原理及发展
Dr. Baokun Li 经济实验教学中心 商务数据挖掘中心
6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
第三章 版图设计.
第十三章 現代科技簡介 13-1 物理與醫療 13-2 超導體 13-3 半導體 13-4 人造光源 13-5 奈米科技.
计算机辅助电路分析 ——Multisim仿真
下學期物理實驗 -205 室 三用電錶:三用電錶、注意事項、使用要領、方均根、麵包板、色碼電阻、實做、腦力激盪。
HSPICE 基本操作.
Chap. 4 Techniques of Circuit Analysis
Oracle数据库 Oracle 子程序.
EN 電快速瞬變脈沖群抗擾性試驗 Electrical Fast Transient/Burst Immunity Test Speaker
在PHP和MYSQL中实现完美的中文显示
电路的计算机仿真 电磁学小论文 演示文稿 邱哲儒 PB
2-1 基本直流分析. 2-1 基本直流分析 新專案(Project)的建立 點選 File/New/Project.
Active Clamp and Reset Technique 有源钳位电路 完整开关周期工作过程分析 摘自TI资料 庄主 —2.20
Chapter 4 獨立電源元件 獨立電壓及電流電源之描述 獨立電壓及電流電源之函數波形描述
Chap. 9 Sinusoidal Steady-State Analysis
Chapter 7 單載子場效電晶體(FET)
實驗十三 接面場效電晶體特性(JFET) 實驗目的 學習量測並描繪接面場效電晶體(JFET)的汲極特性曲線。
簡易 Visual Studio 2010 C++ 使用手冊
Noise & Distortion in Microwave Systems.
KIP+L110E02C2-01 (例) 彩电研发中心电源所 张华水
Fundamentals of Physics 8/e 27 - Circuit Theory
Chapter 5 控制電源元件及其描述 線性控制電源 非線性控制電源 電壓控制電壓電源
开关电源常规测试项目 目录 1、功率因素和效率测试 2、平均效率测试 3、输入电流测试 4、浪涌电流测试 5、电压调整率测试
6.系統設定.
现代电子技术实验 4.11 RC带通滤波器的设计与测试.
EWB 电 路 电 子 分 析 设 计 仿 真 软 件 软件简介   随着电子技术和计算机技术的发展,电子产品已与计算机紧密相连,电子产品的智能化日益完善,电路的集成度越来越高,而产品的更新周期却越来越短。电子设计自动化(EDA)技术,使得电子线路的设计人员能在计算机上完成电路的功能设计、逻辑设计、性能分析、时序测试直至印刷电路板的自动设计。EDA是在计算机辅助设计(CAD)技术的基础上发展起来的计算机设计软件系统。与早期的CAD软件相比,EDA软件的自动化程度更高、功能更完善、运行速度更快,而且操作界面
内容提要:
AIM-spice Miao-shan, Li.
第四章 CMOS电路与逻辑设计 MOS晶体管 MOS的物理结构 CMOS版图与设计规则 基本CMOS逻辑门 基本门版图设计
普通物理 General Physics 31 - Alternating Fields and Current
Fundamentals of Physics 8/e 31 - Alternating Fields and Current
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
瞬态油漆混合器 练习 6.
第9章 DSP集成开发环境CCS 内容提要 CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。 本章对CCS开发软件的使用作了详细地介绍。首先,对CCS开发软件作了简要地说明,并介绍了该软件的安装及配置;其次,介绍了CCS的基本操作,包括:CCS的窗口和工具条、文件的编辑、反汇编窗口、存储器窗口、寄存器窗口、观察窗口
数模混合设计课题组 基于Hspice的二级运放 设计与仿真 Page  1.
H-SPICE 投影片原著:徐鉉強 助教:曾世穎.
RFID晶片設計報告 學生:黃嘉瑩 學號:B
示波器应用基本知识 以TDS3000B产品的基本功能为基础
第二章 双极型晶体三极管(BJT).
动名词(续2).
實驗五 截波電路與箝位電路 實驗目的 瞭解何謂截波電路與箝位電路及其差異。 能預測一個直流偏壓對箝位電路之影響。 電子學實驗 陳瓊興編.
Active Clamp and Reset Technique 有源钳位电路 完整开关周期工作过程分析 摘自TI资料 庄主 —2.20
10.2 串联反馈式稳压电路 稳压电源质量指标 串联反馈式稳压电路工作原理 三端集成稳压器
集成运算放大器 CF101 CF702 CF709 CF741 CF748 CF324 CF358 OP07 CF3130 CF347
9.1 仿真概念和仿真操作步骤 9.2 常用仿真元件与激励源 9.3 仿真器的设置与运行
第三章:恒定电流 第4节 串联电路与并联电路.
北京掌宇金仪科教仪器设备有限公司 空军工程大学
Three stability circuits analysis with TINA-TI
崑山科技大學 電子工程系 99學年度 學生實務專題成果展
姚金宇 MIT SCHEME 使用说明 姚金宇
放大器 頻率響應實驗 通訊二甲 B 洪紹凱.
项目二:HTML语言基础.
The viewpoint (culture) [观点(文化)]
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
分词(一).
基本HSPICE概念 HSPICE教學.
iSIGHT 基本培训 使用 Excel的栅栏问题
电路原理教程 (远程教学课件) 浙江大学电气工程学院.
Python 环境搭建 基于Anaconda和VSCode.
◆ 啟動 CADENCE ◆ 建立 Library ◆ Schematic 操作
Example for CIC Report CIS-I.
第四章 UNIX文件系统.
簡單迴歸分析與相關分析 莊文忠 副教授 世新大學行政管理學系 計量分析一(莊文忠副教授) 2019/8/3.
9.6.2 互补对称放大电路 1. 无输出变压器(OTL)的互补对称放大电路 +UCC
When using opening and closing presentation slides, use the masterbrand logo at the correct size and in the right position. This slide meets both needs.
Presentation transcript:

HSPICE 简介 周伶俐 2006/05/31 lilingzhou1982@163.com

一.HSPICE 简介 SPICE (Simulation Program for Integrated Circuits Emphasis) PSpice (MicroSim Corp.) ——PC version of SPICE HSpice (Avant!.) ——runs on workstations and larger computers

Hspice和Pspice的区别 Hspice可以支持sun,hp,sgi,ibm,ux,pc(win2000,win98,nt,linux)支持多线程工作,sun-mt,hp-mt,pc-mt .... 不过由于两者的引擎都是脱胎于spcie2g.5所以在运算能力上差别不是很大,但是hspice的功能要比pspice强大,特别是在收敛上面加了很多option,由于hspice在业界20多年,有着强大的model支持,使它在业界有着特别良好的应用,以至于成为了业界的一个标准。

Hspice和Pspice的区别 缺点就是,对内存敏感,内部是frotran写的采用类似c指针的方式对内存地址进行操作,大概只可以做5000个晶体管,速度很慢 其实在有效的2000个晶体管以上的电路就应该考虑用cadence,主要比起Hspice来说,cadence在电路收敛性问题比较少。(后面会讲到收敛性问题)

简单电路正向设计的典型流程 功能定义 行为设计 逻辑级电路设计——得到由基本逻辑单元组成的电路(数字电路) 逻辑级仿真(迭代) 选择合适的工艺库。把各基本功能单元映射至其上;或设计各单元晶体管级电路——得到电路级网表

电路级仿真:验证各单元电路是否具有期望的功能,性能估计。(迭代) 版图设计、DRC, LVS 提取版图网表,进行后仿真:验证功能,估计性能。(迭代) Hspice主要应用于电路级仿真、分析。可以辅助调整电路参数。得到功耗、延时等性能估计。

Hspice的流程 前端功能 Schematic Netlister 反标注 Analysis 后处理 MetaLib CDF Simulation Analysis Wave Data Parameter Changes MetaLib CDF Symbol Library 前端功能 反标注 后处理

Hspice有哪些功能? 电路级和行为级仿真 直流特性分析、灵敏度分析 交流特性分析 瞬态分析 电路优化(优化元件参数) 温度特性分析 噪声分析 傅立叶分析 Monte Carlo, 最坏情况,参数扫描,数据表扫描 功耗、各种电路参数(如H参数、T参数、s参数)等可扩展的性能分析

.print/.plot/.graph/.probe Hspice的输入——网单文件 文件结构: *title options Analysis statement .print/.plot/.graph/.probe Sources (I or V) netlist .lib .model libraries .end 输入文件的标题 设置模拟的条件 设置扫描变量、设置分析模式 设置输出结果的显示方式 设置输入激励 电路网表 元件库 元件模型描述 结束语句

Hspice的输入——网单文件 例(The Star-Hspice netlist for the RC network circuit) : *title A SIMPLE AC RUN .OPTIONS LIST NODE POST .OP .AC DEC 10 1K 1MEG .PRINT AC V(1) V(2) I(R2) I(C1) V1 1 0 10 AC 1 R1 1 2 1K R2 2 0 1K C1 2 0 .001U .END

举例 SIMPLE RTL INVERTER $ Title *Circuit Description VCC 4 0 5 VIN 1 0 PULSE 0 5 2NS 2NS 2NS 30NS RB 1 2 10K Q1 3 2 0 Q1 RC 3 4 1K .MODEL Q1 NPN BF 20 RB 100 TF .1NS CJC 2PF $ Device Model * Analysis .DC VIN 0 5 0.1 .TRAN 1NS 100NS *Output .PLOT DC V(3) .PLOT TRAN V(3) (0,5) .PRINT TRAN V(3) .END $Necessary

二. 词法 1. 不区分大小写(case insensitive) 2. 标题行——第一行 3. 注释:* or $ 4. 续接符:+ 5. 非线性器件要用 .MODEL statement. 6. 0, GND, GND!, GROUND 表示全局地. 7. 表示数量的词尾: T(= 1E12 or 10+12); G(= E9); MEG(= E6); K(= E3); M(= E-3); U(= E-6); N(= E-9); P(= E-12), and F(= E-15),默认是国际单位。(关键不要搞错M和MEG) 8. Output variables:(后面会有详细的讲解) Voltage between two nodes: v(n1,n2) Voltage of a node relative to ground: v(n1) Current through an independent source: i(vin)

*与$注释的区别 一个星号(*)或一个美元符($)作为第一个非空行字符表明一个注释说明 语法 * <comment on a line by itself> 或 <HSPICE statement> $ <comment following HSPICE input> 例子 *RF=1K GAIN SHOULD BE 100 $ MAY THE FORCE BE WITH MY CIRCUIT VIN 1 0 PL 0 0 5V 5NS $ 10v 50ns R12 1 0 1MEG $ FEED BACK 你可以把一个注释说明放在电路描述的任何地方。 *必须在一行的第一个空格处。 $用作说明并不必在一行第一个空格处(例如,在同一行紧跟Star-Hspice输入的说明)。$必须在一个空格或逗号之前,如果它不是第一个非空白字符。 文件或节点名内允许使用$。

三. “预编译”指令

1. .INCLUDE Statement .INCUDE语句:引用一个文件,被引用的文件置于引用文件前。 例: LNA .include “me98xxxx/model.sp“ ···

2. .PARAM statement Syntax: .PARAM <parametername> = <Expression>' Example: .PARAM width  =  20u .PARAM length =  'sqrt(width)*1.65' M1  3   2  0  0 NMOS width length

3. .DATA statement .PARAM width = 10u .PARAM length = 6u .PARAM RL = 1K M1 3 2 0 0 NMOS width length Rload 3 5 RL .TRAN         1n     1000n                 SWEEP DATA=D1 .AC DEC    10     1hz      1GHz     SWEEP DATA=D1 .DATA D1  width  length  RL +                  50u      20u      1K +                  60u     10u      10K +                 100u     25u     1K .ENDDATA

4. .ALTER 可以使用.ALTER语句并使用不同的参数和数据以返回一个仿真结果。 语法 .ALTER <title_string> title_string是任何最长至72个字母的字符串。.alter运行所需的合适的字符串在每个输出列表文件和图形数据文件(.tr#)的标题部分打印出来。

.ALTER Vin node1 node2 dc h1 .alter change VIN=5 .PARAM h1=5V .ALTER FF .DEL LIB 'D:\TEST\PROCESS\0.6U BCD V0.1PHASE1.lib' TT .LIB 'D:\TEST\PROCESS\0.6U BCD V0.1PHASE1.lib' FF SS TT FF SF FS

四. 网表输入

1. The most important rules no duplicate nodes 不能重复定义节点 zero for your ground node 地确定是0 no floating nodes 不要有悬空节点

2. Node names 对于仿真中关键的节点最好给一个有意义的命名 节点名字的有意义化会方便你直接观看输出的结果,避免再回到图中对照。

3. 元器件描述 Vxx—独立电压源 Ixx—独立电流源 Exx-电压控制电压源 Gxx-电压控制电流源 Hxx-电流控制电压源 Fxx-电流控制电流源 Sxx-电压控制开关 Wxx-电流控制开关 Rxx-电阻 Cxx-电容 Lxx-电感 Kxx-互感 Dxx-二极管 Qxx-三极管 Mxx-MOS Jxx-JFET Xxx-模块

3. 元器件描述(续) --几种常用电源 Vname N1 N2 SIN(VO VA FREQ TD THETA PHASE) Sinusoidal sources Vname N1 N2 SIN(VO VA FREQ TD THETA PHASE)   Vname = VO + VA exp[-THETA.(t - TD)] sin[2pi.f (t - TD) + (Phase/360)] PWL Vname N1 N2 PWL(T1 V1 T2 V2 T3 V3 ...) Example: Vgpwl 1 2 PWL(0 0 10U 5 100U 5 110U 0) r 间隔时间 Pulse Vname N1 N2 PULSE(V1 V2 TD Tr Tf PW Period)

4. 子电路 下面是由前面举例的CMOS反相器组成的三级反相器链网表: …… .global vdd 4. 子电路 下面是由前面举例的CMOS反相器组成的三级反相器链网表: …… .global vdd .SUBCKT INV IN OUT wn=1.2u wp=1.2u Mn out in 0 0 NMOS W=wn L=1.2u Mp out in vdd vdd PMOS W=wp L=1.2u .ENDS X1 IN 1 INV WN=1.2U WP=3U X2 1 2 INV WN=1.2U WP=3U X3 2 OUT INV WN=1.2U WP=3U CL OUT 0 1PF VCC VDD 0 5V

5. .GLOBAL xx This statement causes all nodes numbered xx, whether in the main circuit or a subcircuit, to be connected together. 注意:Global的使用需格外小心,一般仅把电源定义成Global

6. .LIB 语句 LIB 语句: .lib ‘<filepath>filename’ entryname 该语句根据文件路径和文件名来调用一个库文件,一般该文件包含器件模型。 例 .lib ‘MODELS’ cmos1 MODELS文件: ··· .MODEL CMOS1 nmos ··· 我们仿真中加库的语句应该是 .LIB 'D:\TEST\PROCESS\0.6U BCD V0.1PHASE1.LIB' TT

五.常用仿真类型

1. .OP Statement 计算直流工作点指令,对于分析电路很有用(要会看.lis文件) 一般在任何其它仿真之前都需要计算直流工作点 .op time看某一时刻的各个器件和电源的状态。.op vol time某一时刻所有节点电压,.op cur time某一时刻所有器件和电源的电流。.ac.dc是初始工作点,.tran默认时间是0。

2. .DC Statement 对参数和独立电源扫描 .DC SRCname START STOP STEP 注意: 对参数和独立电源扫描  .DC SRCname START STOP STEP 注意: 1)对独立源扫描时,SRCname为电源名,而非节点名 2)仿真迟滞特性要正、负双向扫描, 如: .DC Vin 0 5 0.1 .DC Vin 5 0 -0.1 3) 注意对两个量的扫描,后面的是外循环

.DC对参数的扫描 对参数的扫描 例如:vin 1 2 dc H1 .param H1=10v .dc H1 0 20 1 对温度的扫描: .dc temp -20 80 1

3. .TRAN Statement .TRAN: .TRAN var1 START=start1 STOP=stop1 STEP=incr1 or .TRAN tincr1 tstop1 <tincr2 tstop2 ...tincrN tstopN> + <START=val> <UIC> 起始时刻和步长都指的是输出打印的时刻点,计算的时间步长由hspice自己决定。UIC参数表示使用.IC语句指定的节点初始值。 例:.TRAN .1NS 25NS 1NS 40NS START=10NS 0-25ns,步长0.1ns,25ns-40ns,步长1ns;从10ns开始输出结果。 .TRAN 1NS 100NS $以1ns的步长输出到100ns

4.  .AC Statement .AC: 一般频域扫描: .AC type np fstart fstop <SWEEP var start stop incr> Or .AC type np fstart fstop <SWEEP var type np start stop> .AC var1 START = start1 STOP = stop1 STEP = incr1 例:.AC DEC 10 1K 100MEG 1kHz-100MHz,每10倍频10个采样点。

Ac type 一共有4种 DEC – decade variation. OCT – octave variation. LIN – linear variation. POI – list of points. 例如 .AC DEC 10 1K 100MEG .AC LIN 100 1 100HZ .AC DEC 10 1 10K SWEEP cload LIN 20 1pf 10pf .AC DEC 10 1 10K SWEEP rx POI 2 5k 15k

5. .NOISE— AC Noise Analysis 噪声分析: 用来计算各个器件的噪声对输出节点的影响并给出其均方根并输出,可完成.AC语句规定的各频率的计算,应在.AC分析之后。 .NOISE ovv srcnam inter Ovv-输出变量,srcnam-输入源,inter-频率间隔 例:.title ac sweep example .OPTIONS POST R1 in 1 5 C1 1 0 500pf V1 IN 0 0 AC=10V,37 .AC OCT 10 1 100MEG .noise v(1) v1 20--分析1点电压的噪声情况,噪声源为V1端口 .END

Lis文件中输出的噪声分析结果 1 ****** Star-HSPICE -- 1999.4 (19991220) 22:12:12 04/16/2002 pcnt ****** .title ac sweep example ****** noise analysis tnom= 25.000 temp= 25.000 frequency = 1.0000 hz **** resistor squared noise voltages (sq v/hz) element 0:r1 total 8.233e-20 rx 5.0000 **** total output noise voltage = 8.233e-20 sq v/hz = 286.9260p v/rt hz transfer function value: v(1)/v1 = 1.0000 equivalent input noise at v1 = 286.9260p /rt hz **** the results of the sqrt of integral (v**2 / freq) from fstart upto 1.0000 hz. using more freq points results in more accurate total noise values. **** total output noise voltage = 0. volts **** total equivalent input noise = 0. …….

六.输出及控制

1. .PRINT, .PLOT and .PROBE .PRINT:在输出的list文件中打印数字的分析结果,如果.OPTIONS中有POST则同时输出到post-processor中。 .PLOT:在输出的list文件中打印低分辨率的曲线(由ASCII字符组成),如果.OPTIONS中有POST则同时输出到post-processor中。 .GRAPH:生成用于打印机或PostScript格式的高分辨率曲线。 .PROBE:把数据输出到post-processor,而不输出到list文件。

.PRINT, .PLOT and .PROBE Examples: .PLOT DC V(1,2) V(3) I(Vmeas) .PRINT TRAN V(3,1) I(Vmeas) .PLOT AC VM(3,0) VDB(4,2) VM(2,1) VP(3,1) IR(V2) 注意:使用par计算参数的值 例:print dc i1=par(‘V(X1.node3)’)

输出某个器件的流过的电流 可以直接输出也可以通过间接的方法 间接的方法就是电路中串联0电阻和0电压源来看某个支路或者某个器件上的电流。 直接的方法有两种 1. 利用里面规范的语句看器件的电流 BJT ic( ) ib( ) ie( ) MOS id( ) ig( ) is( ) Diobe i( ) RES i( ) 例:.print dc ic(q1) 2.利用.par语句

输出某个器件的流过的电流 .print i1=par(‘i1(Q118)’) i2=par(‘i1(r1)’) I1,i2,i3,i4对于不同的器件有不同的含义,具体如下

输出某个器件的流过的电流

输出某个器件的流过的电流

输出某个器件的流过的电流

输出某个器件的流过的电流

输出某个器件的流过的电流

gain Vin node1 node2 dc 10 ac 1 .ac dec 10 1k 1meg .print vdb(‘vout’) .print vdb(‘vout/vin’) .print ac gain=par('vdb(vout)') Vout是输出节点。

2. Options statement .OPTIONS: 该语句允许用户重新设置程序的参数或控制程序的功能。常用的一些如下: node: 列出个节点的元件端点,便于查错; post: 使输出数据可以使用 AvantWaves 浏览(即将数据输出到post processor; list: 列出元件列表; MEASDGT:.MEASURE语句输出的有效数字位数 语法:MEASDGT = x,The value of x is typically between 1 and 7, although youcan set it as high as 10. The default value is 4.0.

2. Options statement 例:.option post probe AvantWaves只观察.probe语句输出的变量。 除了以上的还有其它的参数详细hspiceguide中的P387页。 常用的是fast,bypass=0 加速仿真,但是会牺牲精度。(P426页)

3. .MEASURE statement 使用.MEASURE语句去修改信息和定义连续的仿真结果 .MEASURE语句打印使用者定义的一个电路的电气规范并大量地用于最优化。规范包括在一个特定的时间内的传播,时延,上升时间,下降时间,峰间(peak-to-peak)电压,最小和最大电压和大量使用者自己定义的变量。带有错误模式和GOAL参数,.MEASURE也广泛地用于组件值的优化和为参数模型寻找合适的测量数据。其结果保存在*.mt0文件中。

1. .SAVE and .LOAD .SAVE语句 .SAVE语句在一个使用者规定的文件内存储一个电路的工作点。接着你可以为接下来的仿真使用.LOAD语句以输入此文件的内容,以获得快速的DC 收敛。缺省情况下常常存储工作点,即使Star-Hspice输入文件不包含一个.SAVE语句。为了不存储工作点,规定.SAVE LEVEL=NONE。 你可以规定工作点数据作为一个.IC语句保存或者一个.NODESET语句保存。 语法: .SAVE <TYPE=type_keyword> <FILE=save_file><LEVEL=level_keyword> <TIME=save_time>

1. .SAVE and .LOAD .LOAD语句 使用.LOAD语句去输入与.SAVE语句存储在一起的文件的内容。与.SAVE语句存储在一起的文件在此点包含工作点的信息,在分析中.SAVE语句被执行。 不要在连接的网表文件中使用.LOAD语句。 语法 .LOAD <FILE=load_file> 详细见中文版的P121和P122

2. .IC or .NODESET This statement provides an alternative way to specify initial conditions of nodes (and thus over capacitors).   .IC Vnode1 = value Vnode2 = value etc. .NODESET Vnode1 = value Vnode2 = value etc.

sweep 参数扫描,可以扫描data和参数(包括temp) 例如 .TRAN 200P 20N SWEEP TEMP -55 75 10 .TRAN 1n 100n SWEEP DATA=devinf .DATA devinf width length thresh cap + 50u 30u 1.2v 1.2pf + 25u 15u 1.0v 0.8pf + 5u 2u 0.7v 0.6pf .ENDDATA

八.经验谈

1. 注释及版本管理的问题 这个跟计算机程序源代码管理十分类似。 好的注释为你减少错误的可能性和为别人减少读懂你仿真的时间 好的版本管理使你的很方便的从改错的或者改糟糕的版本恢复。

2.善用.op Op会输出所有的工作点信息,这样方便你分析电路的错误,防止出现因为管子工作状态不正常而引起的电路工作不正常,它也可以提醒我们电路工作中管子的状态的重要性。

3. 常见的错误 Failure to converge (OP and DC) – The DC solver uses an iterative method to find the operating point, but some circuits exist which have no or multiple operating points. The best solution is to perform hand analysis of your circuit to make sure that you haven’t done this. No DC Path to ground (OP and DC) – This often happens with floating MOSFET gates. Just add a resistor between the node and ground, or use the .IC or .NODESET commands to create an initial condition. Be warned, however, that .NODESET and .IC can cause convergence problems. Stability Problems (TRAN) – Sometimes a transient analysis shows a “ringing” or oscillation that shouldn’t be there. This can often be solved by reducing the maximum time step or using slower rise and fall times for independent sources. 注意:不要把HSPICE的lib和要仿真的网表放在中文目录下,或者把网表名改成中文名。

4.关于仿真不收敛 一般来说可以分为两种情况: 初始情况状态不收敛 瞬态仿真时电路出现间断点

初始情况下不收敛: 产生原因:由于反馈的存在,电路在实际仿真时会出现多个稳态而造成了不收敛。 解决方法:通过观察hspice仿真报错,找出不收敛的模块,在其内部使用.ic语句使电路工作于正常的工作状态。

瞬态仿真时电路出现间断点: 产生原因及现象:主要是由于电路工作状态发生剧烈跳变所引起的,表现为仿真时hspice长时间的停在仿真界面,或报错为:The internal timestep is too small.此种方式不能通过设置.ic语句进行解决. 将仿真步长尽量适当改小。 对于电路工作影响比较大的电源部分,使用pwl形式,使它不发生跳变。 在电路的初始条件下,使用.options off对所有有源器件进行初始化。 对于电路中跳变过快的点,在其一端并联一小电容,一般为FF级别,不会对电路产生影响。更方便的方法是使用cshunt语句,给每个节点并联一小电容,但此种作法有可能对电路功能产生影响。

5. 运放的仿真 开环增益、开环频响、共模增益、PSRR、CMRR、共模输入和输出电压范围、开环输出电阻、瞬态相应等 参见《CMOS 模拟集成电路的设计(第二版)》,Phillip E. Allen,6.6节 运算放大器的仿真和测量(P249-259)

6 步长的合理设置 步长的设置一定要合理,如果CLK的周期是1u,占空比为50%,那么用tran扫描的时候步长理论上至少是0.5u,但是实际上应该为0.1u,否则CLK就不在是方波,而是锯齿波。这在仿真数字电路的时候一定要注意。 当扫描迟滞特性的时候,如果步长设置过大,就无法看出有迟滞。

Thanks!