[b]hspice2015[/b]是由synopsys公司打造的一款可以进行快速精确的电路和行为仿真,Monte Carlo、最坏情况、参数扫描(sweep)这些都可以由hspice实现,是您理想的电路单元设计和模型处理工具,更是信号完整性和传输线分析的最佳工具。小编带来的是HSpice2015免费版,欢迎下载!
随着 微电子技术的迅速发展以及集成电路规模不断提高,对电路性能的设计要求越来越严格,这势必对用于大规模集成电路设计的EDA 工具提出越来越高的要求。自1972 年美国加利福尼亚大学伯克利分校电机工程和计算机科学系开发的用于集成电路 性能分析的电路模拟程序SPICE(Simulation Program with IC Emphasis)诞生以来,为适应现代微电子工业的发展,各种用于集成电路设计的电路模拟分析工具不断涌现。HSPICE 是Meta-Software 公司为集成电路设计中的稳态分析,瞬态分析和频域分析等电路性能的模拟分析而开发的一个商业化通用电路模拟程序,它在伯克利的SPICE(1972 年推出),MicroSim公司的 PSPICE (1984 年推出)以及其它电路分析软件的基础上,又加入了一些新的功能,经过不断的改进,目前已被许多公司、大学和研究开发机构广泛应用。
HSPICE 可与许多主要的EDA 设计工具,诸如Cadence,Workview 等兼容,能提供许多重要的针对集成电路性能的电路仿真和设计结果。采用HSPICE 软件可以在直流到高于100GHz 的微波频率范围内对电路作精确的仿真、分析和优化。在实际应用中, HSPICE能提供关键性的电路模拟和设计方案,并且应用HSPICE进行电路模拟时,其电路规模仅取决于用户计算机的实际存储器容量。
一、HSPICE基础知识
Avant! Start-Hspice(现在属于Synopsys公司)是IC设计中最常使用的电路仿真工具,是目前业界使用最为广泛的IC设计工具,甚至可以说是事实上的标准。目前,一般书籍都采用Level 2的MOS Model进行计算和估算,与Foundry经常提供的Level 49和Mos 9、EKV等Library不同,而以上Model要比Level 2的Model复杂的多,因此Designer除利用Level 2的Model进行电路的估算以外,还一定要使用电路仿真软件Hspice、Spectre等进行仿真,以便得到精确的结果。
本文将从最基本的设计和使用开始,逐步带领读者熟悉Hspice的使用,并对仿真结果加以讨论,并以一个运算放大器为例,以便建立IC设计的基本概念。在文章的最后还将对Hspice的收敛性做深入细致的讨论。
Hspice输入网表文件为.sp文件,模型和库文件为.inc和.lib,Hspice输出文件有运行状态文件.st0、输出列表文件.lis、瞬态分析文件.tr#、直流分析文件.sw#、交流分析文件.ac#、测量输出文件.m*#等。其中,所有的分析数据文件均可作为AvanWaves的输入文件用来显示波形。
表1 Hspice所使用的单位
独立电压和电流源包括:
1. 直流源(DC):
电压源Vxxx n+ n- dcval
电流源 Ixxx n+ n- dcval
2. 交流源(AC):Vxxx n+ n- AC=acmag,acphase
3. 瞬态源(随时间变化):
脉冲源:pulse v1 v2 td tr tf pw per
线性源:pwl t1 v1
正弦源:sin vo va freq td damping phasedelay
4. 混合源:可以包括以上所有的形式,如:VIN 13 2 0.001 AC 1 SIN(0 1 1Meg)
二、输入网表文件
TITLE
.INCLUDE
.LIB MACRO
元件描述
信号源描述
分析命令
测量命令
.ALTER
.END
图1 输入网表(Netlist)文件标准格式
二、有源器件和分析类型
有源器件包括二极管(D)、MOS管(M)、BJT管(Q)、JFET和MESFET(J)、子电路(X)和宏、Behavioral器件(E,G)、传输线(T,U,W)等。这里值得注意的是MOS、JFET和MESFET的L和W的scale是m,而不是um。
分析的类型包括:直流、交流和瞬态分析。
1.直流分析:
对DC、AC和TRAN分析将自动进行直流操作点(DC OP)的计算,但.TRAN UIC将直接设置初始条件,不进行DC OP的计算。
.DC var1 start1 stop1 inc1 sweep var2 type np start2 stop2
直流分析包含以下五种语句:
.DC:直流扫描分析;
.OP:直流操作点分析;
.PZ:Pole/Zero分析;
.SENS:直流小信号敏感度分析;
.TF:直流小信号传输函数分析。
2.交流分析:
交流分析是指输出变量作为频率的函数。
.AC var1 start1 stop1 inc1 sweep var2 type np start2 stop2
交流分析包括以下四种语句:
.NOISE:噪声分析;
.DISTO:失真分析;
.NET:网络分析;
.SAMPLE:采样噪声分析。
3.瞬态分析:
瞬态分析是指计算的
电路结果作为时间的函数。
.TRAN tinc1 tstop1 tinc2 tstop2… START=.. UIC SWEEP..
三、输出格式和子电路
(1) 输出命令包括:.PRINT、.PLOT、GRAPH、.PROBE和.MEASURE。
.PLOT antype ov1 ov2… plo1,phhi1…plo32,phi32
.PROBE ov1 ov2… ov32
.PRINT antype ov1 ov2… ov32
有五种输出变量形式:
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. 器件模版:
用于显示制定的器件节点的电压、支路电流和器件参数。
lv16(m3)表示MOS管m3的漏电流,其他表示方式见手册。
4. MEASURE语句:
用于显示用户自定义的变量。
可以采用的句法包括:raise,fall,delay,average,RMS,min,max,p-p等。
5. 参数语句:
用于显示用户自定义的节点电压等表达式。
语法格式:.print tran out_var_name=PAR(‘expression’)
(2)还可以采用AvanWave进行波形输出,启动AvanWave的命令为:awaves &
(3)子电路:
1. 采用.GLOBAL设置全局节点:
.GLOBAL node1 node2 node3…
2. 子电路语句.SUBCKT和.MACRO:
.SUBCKT subnam n1 n2 n3… parnam=val…
.MACRO subnam n1 n2 n3… parnam=val…
子电路的调用:
Xyyy n1 n2 n3… sunnam parnam=val… M=val
四、控制语句和option语句
1.OPTION语句:
.options语句格式:.options opt1 opt2 opt3… opt=x
一般在每个仿真文件中设置options为.options acct list post,也可以设置为.options node opts,其中.option list表示将器件网表、节点连接方式等输入到列表文件,用于debug与电路拓扑结构有关的问题,.option node表示将输出节点连接表到列表文件,用于debug与由于电路拓扑结构引起的不收敛问题,.option acct表示在列表文件中输出运行时间统计和仿真效率,.option opts在列表文件中报告所有的.option设置,.option nomod表示不输出MODEL参数,以便减小列表文件的大小,.option brief=1表示不输出网表信息,直到设置.option brief=0,.protect/.unprotect用于屏蔽网表文件中要保护的信息,.option bypass=1不计算latent器件,.option autostop表示当所有.measure语句完成时,终止仿真,.option accurate=1表示设置为最精确的仿真算法和容差,tstep表示仿真步长值,delmax表示最大允许时间步长,其中delmax=tstep*max,.option dvdt=4用于数字CMOS电路仿真(默认设置),.option dcca=1在直流扫描时强行计算随电压变化的电容,.option captab对二极管、BJT管、MOS、JFET、无源电容器,打印出信号的节点电容
值,.option dcstep=val将直流模型和器件转换为电导,主要应用于“No DC Path to Ground”或有直流通路,但不符合Hspice定义的情况。
2.MODEL OPTION语句:
SCALE影响器件参数,如:L、W、area,SCALM影响model参数,如:tox、vto、tnom。
五、仿真控制和收敛
Hspice仿真过程采用Newton-Raphson算法通过迭代解矩阵方程,使节点电压和支路电流满足Kirchoff定律。迭代算法计算不成功的节点,主要是因为计算时超过了Hspice限制的每种仿真迭代的总次数从而超过了迭代的限制,或是时间步长值小于Hspice允许的最小值。
(1) 造成Hspice仿真不收敛主要有“No Convergence in DC Solution”和“Timestep too Small”,其可能的原因是:
1.电路的拓扑结构:
电路拓扑结构造成仿真不收敛主要有:电路连线错误,scale、scalm和param语句错误,其他错误可以通过查找列表文件中的warning和errors发现。
解决的方法是:将电路分成不同的小模块,分别进行仿真;简化输入源;调整二极管的寄生电阻;调整错误容差,重新设置RELV,ABSV,RELI,ABSI,RELMOS,ABSMOS等。
2.仿真模型:
由于所有的半导体器件模型都可能包含电感为零的区域,因此可能引起迭代的不收敛。
解决的方法是:在PN结或MOS的漏与源之间跨接一个小电阻;将.option中默认的GMINDC、GMIN增大。
3.仿真器的options设置:
仿真错误容差决定了仿真的精度和速度,要了解你所能接受的容差是多少。
解决的方法是:调整错误容差,重新设置RELV,ABSV,RELI,ABSI,RELMOS,ABSMOS等。
(2) 针对仿真分析中可能出现的不收敛情况进行分析:
1.直流工作点分析:
每种分析方式都以直流操作点分析开始,由于Hspice有很少的关于偏置点的信息,所以进行DC OP分析是很困难的,分析结果将输出到.ic文件中。
对DC OP分析不收敛的情况,解决方法是:删除.option语句中除acct,list,node,post之外的所有设置,采用默认设置,查找.lis文件中关于不收敛的原因;使
用.nodeset和.ic语句自行设置部分工作点的偏置;DC OP不收敛还有可能是由于model引起的,如在亚阈值区模型出现电导为负的情况。
2.直流扫描分析:
在开始直流扫描分析之前,Hspice先做DC OP计算,引起直流扫描分析不收敛的原因可能是快速的电压或电流变化,模型的不连续。
解决的方法是:对于电压或电流变化太快,通过增加ITL2来保证收敛,.option ITL2是在直流扫描分析中在每一步允许迭代的次数,通过增加迭代次数,可以在电压或电流变化很快的点收敛。对于模型的不收敛,主要是由于MOS管线性区和饱和区之间的不连续,Newton-Raphson算法再不连续点处进行迭点计算产生震荡,可以通过增减仿真步长值或改变
仿真初始值来保证收敛,如:.dc vin 0v 5v 0.1v的直流分析不收敛,可以改为.dc vin 0v 5v 0.2v增大步长值,.dc vin 0.01v 5.01v 0.1v改变仿真的范围。
3.AC频率分析:
由于AC扫描是进行频率分析,一旦有了DC OP,AC分析一般都会收敛,造成不收敛的原因主要是DC OP分析不收敛,解决的方法可以参看前面关于DC OP的分析。
4.瞬态分析:
瞬态分析先进行直流工作点的计算,将计算结果作为瞬态分析在T0时刻的初始值,再通过Newton-Raphson算法进行迭代计算,在迭代计算过程中时间步长值是动态变化的,.tran tstep中的步长值并不是仿真的步长值,只是打印输出仿真结果的时间间隔的值,可以通过调整.options lvltim imax imin来调整步长值。
瞬态分析不收敛主要是由于快速的电压变化和模型的不连续,对于快速的电压变化可以通过改变分析的步长值来保证收敛。对模型的不连续,可以通过设置CAPOP和ACM电容,对于给定的直流模型一般选择CAPOP=4,ACM=3,对于level 49,ACM=0。
对瞬态分析,默认采用Trapezoidal算法,精度比较高,但容易产生寄生振荡,采用GEAR算法作为滤波器可以滤去由于算法产生的振荡,具有更高的稳定性。
六、输入语句
对于.param语句,.param PARHIER=GLOBAL是默认的,使得参数可以按照Top-Down变化,.param PARHIER=LOCAL,可以是参数只在局部有效。
对于.measure语句,可以采用的模式有rise,fall,delay,average,rms,min,peak-to-peak,Find-When,微分和积分等。对Find-When语句,.measure result find val when out_val=val ,对微分和积分语句,.measure result val 。
对于.ALTER语句,可以通过改变.ALTER来改变使用不同的库,其中.ALTER语句可以包含element语句、.data、.lib、.del lib、.include、.model、.nodeset、.ic、.op、.options、.param、.temp、.tf、.dc、.ac语句,不能包含.print、.plot、.graph或其他I/O语句,同时应该避免在.ALTER中增加分析语句。
七、统计分析仿真
主要是对器件和模型进行Monte Carlo分析,随机数的产生主要依赖Gaussian、Uniform、Limit分析,通过.param设置分布类型,将dc、ac、tran设置为Monte Carlo分析,用.measure输出分析结果,如:
.param tox=agauss(200,10,1)
.tran 20p 1n sweep MONTE=20
.model … tox=tox …
其中,对Gaussian分析.param ver=gauss(nom_val,rel_variation,sigma,mult),
.param ver=agauss(nom_val,abs_variation,sigma,mult),
对Uniform分析,.param ver=unif(nom_val,rel_variation,mult),
.param ver=aunif(nom_val,abs_variation,mult),
对Limit分析,.param ver=limit(nom_val,abs_variation),如果你拼错Gauss或Uniform、Limit,不会产生警告,但不将产生分布。
GameSave Manager v4.0.090
查看
Cleanflight Configurator v2.6.0
查看
建筑施工资料软件 v1.3免费版
查看
快讯通 v8.0.4.0官方版
查看
九平米管理软件 v5.0.6官方版
查看
Fabmaster v8f3免费版
查看
淘宝刷流量软件 v3.4
查看
犀牛POS v1.32.15官方版
查看
工程之星3.0 v3.0 官方版 附使用教程
查看
金大师 v3.0.4.601官方版
查看
solidedge st6 64位/32位中文版 附安装教程
查看
翰宇进销存管理系统 v8.0官方版
查看
广联达广材助手 v2.0.0.3163 官方版
查看
文晟扫描软件 v5.0免费版
查看
固乔客户管理系统 v1.0官方版
查看
天马医药进销存 v3.0官方版
查看
Elecworks 2015 中文版 附安装教程
查看
JMMassProd2(JMS578固件升级工具) v1.16免费版
查看