在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13167|回复: 19

HSPICE软件的应用及常见问题解决

[复制链接]
发表于 2007-11-25 12:44:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
HSPICE软件的应用及常见问题解决
HSPICE常用分析类型
直流分析(DC Analysis( 参见HSPICE User’s Manual 13-4 )
常用命令:
.OP直流工作点分析
.NODESET节点设置
.SENS小信号灵敏度分析
.TF小信号转移函数分析
.DC直流扫描
       .OP
       计算直流工作点,但其不控制偏置点分析的方法和偏置计算的结果。
.NODESET
在计算直流偏置点时,为使直流分析收敛,电路的某些节点或所有节点可以用.NODESET命令设置初始估计值。一旦建立了工作点,.NODESET语句在直流扫描分析和瞬态分析中将不再其任何作用。注意.NODESET.IC命令不同。.IC命令在电路进行瞬态分析作工作点计算时为电路设置初始状态。
Example
.NODESET V(4)=1.5V  V(6) = 0
.DC
格式:
.DC  var1  start1  stop1  incr1  <var2  start2  stop2  inc2>
.DC  var1  start1  stop1  incr1  <SWEEP  var2  type  np  start2  stop2  >
.DC  var1  start1  stop1  incr1  <SWEEP  DATAdatanm  >
.DC  DATAdatanm  <SWEEP  var2  start2  stop2  incr2>
其中type可以为DECOCTLINPOIList of Points)。
注意start的值可以比stop的值大,即扫描可以在两个方向上进行,但inc只能为正值。
Examples
.DC  VIN  0  10  1
.DC  VIN  0  10  1  VGS  0  5  1
.DC  XVAL  1K  10K  0.5K  SWEEP  TEMP  LIN  5  25  125
.DC  TEMP  POI  5  0  30  50  100  125
该语句将在五个温度点进行直流扫描:03050100150(单位:摄氏度)。
1直流参数扫描
电路图:

**** t6.cir
****直流参数扫描
M1       1   2   0   0    NSS
VGS      2   0    DC 0V
VDD      1   0    DC 12V
.MODEL NSS NMOS LEVEL=3 RSH=0 TOX=275E-10 LD=.1E-6 XJ=.14E-6
+ CJ=1.6E-4 CJSW=1.8E-10 UO=550 VTO=1.022 CGSO=1.3E-10
+ CGDO=1.3E-10 NSUB=4E15 NFS=1E10
+ VMAX=12E4 PB=.7 MJ=.5 MJSW=.3 THETA=.06 KAPPA=.4 ETA=.14

.DC  VDD  0  5  0.1  VGS  0  2  0.5
.PLOT  DC  I1(M1)

.END
波形:
1、交流分析(AC Analysis
常用命令
.AC交流分析
.NOISE噪声分析
.NET 网络特性分析
格式:
.AC 交流分析
.AC type np fstart fstop
.AC type np fstart fstop <SWEEP  var type np fstart fstop >
.AC type np fstart fstop <SWEEP  var fstart fstop incr>
.AC type np fstart fstop <SWEEP  DATA=datanm >
其中,np是交流扫描的点数;fstart是起始频率;fstop是终止频率。type可以为DECLINOCTPOI
LIN为线性扫描,是从起始频率到终止频率的线性扫描,np是扫描中的总点数。下一个频率值由当前一个频率值加上一个常量得到。LIN在带宽较窄时使用。
OCT为倍频扫描,频率以倍频程进行对数扫描。np是倍频程内的扫描点数。下一个频率值由当前值乘以一个大于一的常数产生。OCT用于带宽教窄的情形。
DEC为十倍频扫描,它进行对数扫描。np是十倍频程内的扫描点数。DEC用于带宽特别宽的情况。
Examples
.AC  DEC  10  1K  100MEG
.AC  DEC  10  1  10K  SWEEP cload LIN 20 1pf  10pf
.NOISE 噪声分析
.NOISE  ovv  srcnam  inter
其中,ovv为节点电压输出变量,srcnam是产生等价输入噪声的独立电压源或电流源,inter是打印间隔。
.NET 网络特性分析
单端口网络:
.NET  input <RIN = val>
.NET  input <val>
双端口网络:
.NET  Output  Input < ROUT = val > < RIN = val >
Input 为输入交流电压源或电流源
Output 为输出端,可以是电压或电流
RIN 输入电阻或电源内阻,用于计算输出电阻
ROUT输出电阻或负载电阻,用来计算收入阻抗
(详细用法请参阅HSPICE User’s manual 3-14

例:低通滤波器
***** t11.cir
.AC  DEC  10  10  100MEG

vin 1 0 ac 1
r1 1 2 100
c1 2 0 30p
.end
波形如下:

2、瞬态分析(Transient Analysis
常用命令:
.IC 瞬态初始状态
其一般格式为:
.IC V(1)=V1 V(2)=V2 ……
这些偏置点不影响直流分析和直流扫描中固定偏置点的计算。为了使IC命令有效,应在.TRAN语句中指定UICIC语句也可写在元件后面,如C1  2  0  IC3
.TRAN 瞬态分析
格式:
.TRAN tincr1 tstop1 <tincr2 tstop2 …><UIC>
.TRAN tincr1 tstop1 <tincr2 tstop2 …><SWEEP  var  pstart  pstop pincr >
.TRAN tincr1 tstop1 <tincr2 tstop2 …><SWEEP  var  type  np  pstart  pstop >
Examples:
.TRAN 1ns 100ns
.TRAN
2
****   t2.cir
****温度扫描*****
R1       1   2    100
R2       0   1    100  TC1=0.05
V1I3     2   0    dc 5v
.tran 1ms 10ms sweep temp  20  60  20
.plot v(1)
.END
波形:
3
**** t3.cir
******电阻参数扫描
R1       1   2    rload
R2       0   1    100
V1I3     2   0    dc 5v
.tran 1ms 10ms sweep rload poi 3 100 200 300
.END
波形:
4
**** t5.cir
****IC命令
R2       1   2   20
C1       2   0   2.5U
VIN      1   0   dc 5v
.IC V(2)=4V
.TRAN 5US 1MS
.END
使用.IC命令仿真波形:

不使用.IC命令仿真波形:

由此可见,对于含有记忆性元件的电路,为正确反映电路特性,可采取以下措施:
(1)       采用.IC语句
(2)       电源采用分段线性源
3、其他常用语句
.DATA
格式:
.DATA datanm pnam1 < pnam2  pnam3 ……>
+            pval1 < pval2   pval3……>
+            pval1’ <pval2’  pval3’……>
.ENDDATA
Examples:
.TRAN     1n  100n        SWEEP DATA=devinf
         .AC DEC   10  1hz  10khz  SWEEP DATA=devinf
         .DC TEMP  -55  125  10     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
再上例中,将分别利用给出的三组参数对电路进行瞬态、交流、直流扫描。
.ALTER
该语句用来对电路进行不同参数下的模拟,这些参数包括:电路拓扑结构、模型、库元件、参数值、选项、源激励、变量等。
Examples:
.PARAM  A=4ns  B=5ns
V1 VA GND PULSE ( 0V  5V  0ns  A  B  46.5ns  100ns )
.ALTER
.PARAM  A=5ns  B=6ns
.ALTER
.PARAM  A=6ns  B=7ns
.END
.LIB
指定所用到的库文件,下面给出一个与.ALTER语句合用的例子:
Examples:
*file2: alter2.spalter examples
.options list acct post=2
.macro inv 1 2 3
m1 3 2 1 1  p 6u 15u
m2 3 2 0 0  n 6u 8u
.lib 'tlib1' normal
.eom inv
xinv 1 2 3 inv
vdd 1 0 5
vin 2 0
.dc vin 0 5 0.1
.graph v(3) v(2)
$$$$$$  alter sequences $$$$$$
.alter
.del lib 'tlib1' normal
.tf v(3) vin                $dc small-signal transfer function
*
.macro inv 1 2 3            $change the data within subcircuit def
m1 4 2 1 1  p 100u 100u    $change channel length & width, also
*                           topology
m2 4 2 0 0  n 6u 8u        $change topology
r4 4 3 100                 $add the new element
c3 3 0 10p                 $add the new element
.lib 'tlib1' slow        $set slow model library
$.inc 'mos2.dat'           $not allowed to be used
.eom inv
*
.end
在该例中,将分别利用不同的拓扑结构及参数模型(normalslow)进行模拟。
该文件及库文件tlib1见:D:\edasoft\Avant97\DEMO\APPS
二、           常用输出格式(HSPICE User’s Manual1 4-1
1、输出命令
.PLOT
.PRINT
.PROBE
2、输出格式
直流分析和瞬态分析中:
V(n1,<n2>)  n1n2节点的电压,n2省略为0(即地)
In(Xzzz<.Yyyy.><.Wwww>) n为节点号,括号中为元件。
Examples:
I1(R1)    I4(X1.M1)
常用元件节点电流值的表示方法
电阻                                          二极管
三极管                          MOS
交流分析中:
Vx(n1,<n2>) x为电压输出类型,主要参数有R(实部)、I(虚部)、P(相位)、M(幅度)、DB(分贝表示)。
Iz(Wwww) z为输出类型,同上。
3、功率输出
格式:
.PRINT <DC | TRAN> P(element_or_subcircuit_name)POWER
Examples
.PRINT TRAN P(M1) P(VIN) P(CLOAD) POWER
.PRINT TRAN P(Q1) P(DIO) P(J10) POWER
.PRINT TRAN POWER $ Total transient analysis power
* dissipation
.PLOT DC POWER P(IIN) P(RLOAD) P(R1)
.PLOT DC POWER P(V1) P(RLOAD) P(VS)
.PRINT TRAN P(Xf1) P(Xf1.Xh1)
三、        常用信号源( 详见HSPICE User’s manual 2 120)
1、指数源
EXP ( v1  v2  td1  t1  td2  t2 )
2、脉冲源
PULSE ( v1  v2  td  tr  tf  pw  per )
3、分段线性源
PWL ( t1  v1  t2  v2 …… )
4、正弦源
SIN ( vo  va  freq  td  alpha  theta )
5、单频调频源
6、独立电压源
7、独立电流源
四、        电路的优化
一般步骤:
1)        在分析语句中指明OPTIMIZE
2)        measure语句中指出优化的目标或误差
3)        一般的分析语句
4)        输出语句
因电路的优化牵涉到较多知识,在此只以一个具体的例子来说明。
例:RC网络的优化
优化目标:
1)  时常数为1
2)  电阻上的有效功耗为50mwatts
步骤:
1)  RC1计算时常数
2)  RC2计算功耗
3)  选取RXCX为变量
网表:
***rcopt.sp
.param rx=optrc(.5, 1e-2, 1e+2)   
.param cx=optrc(.5, 1e-2, 1e+2)
.measure tran rc1  trig at=0 targ v(1) val=.3679 fall=1 goal=1sec
.measure tran rc2  rms  p(r1) goal=50mwatts
.model opt1 opt
.tran .1 2         $ initial values
.tran .1 2 sweep optimize=optrc results=rc1,rc2 model=opt1
.tran .1 2         $ analysis using final optimized values
.ic 1 1        $ .IC  v(1)  1
r1 1 0 rx
c1 1 0 cx
.end
解释:
1)      param语句表明:rx取值范围为0.01~100 ohm,初始取值为0.5 ohm
2)        trig表明触发条件,本例中为0时刻
3)        targ表明优化目标,本例中表示优化目标为v ( 1 ) = 0.3679
4)        goal表示到达1second时终止
HSPICE进行仿真,结束后由.lis文件中可以看出:当r7.4823ohmc133.9934mF时,满足所要求的条件。
关于电路的优化,请参阅:
1)  HSPICE User’s Manual 1Chapter 5Optimization
2)  HSPICE User’s Manual 149.MEASURE Statement
3)  HSPICE User’s Manual 13-4 Chapter 8Cell Characterization
五、不收敛问题
不收敛(Nonconvergence)诊断表
当发生不收敛问题时,hspice将自动在列表文件中产生两种标注(printback):节点电压标注和元件(element)标注。节点电压标注将打印出所有不收敛节点电压名称和相关的电压错误容差(voltage error tolerance)。元件标注列出所有不收敛元件及其相关电压、电流、模型参数和电流的错误容差。
通过分析诊断表中异常的支路电流、节点电压和容限,可以找到引起不收敛的支路电流或节点电压,之后.NODESET.IC命令对其初始化,则有可能消除不收敛现象。其中节点包括一些隐藏的节点,比如说由寄生电阻产生的附加节点。
例:一环形振荡器,其不收敛诊断表如下

Subctk
Element
Model
xinv21
21:mpch1
0:p1
xinv22
22:mpch1
0:p1
Xinv23
23:mpch1
0:p1
xinv23
23:mnch1
0:n1
xinv24
25:mpch1
0:p1
Id
27.5809f
140.5646u
1.8123p
1.7017m
5.5132u
Ibs
205.9804f
3.1881f
31.2989f
0.
200.0000f
Ibd
0.
0.
0.
-168.7011f
0.
Vgs
4.9994
-4.9992
69.9223
4.9998
-67.8955
Vds
4.9994
206.6633u
69.9225
-64.9225
2.0269
Vbs
4.9994
206.6633u
69.9225
0.
2.0269
Vth
-653.8030m
-745.5860m
-732.8632m
549.4114m
-656.5097m
tol ds
114.8609
82.5624
155.9508
104.5004
5.3653
tol bd
0.
0.
0.
0.
0.
tol bs
3.534e-19
107.1528m
0.
0.
0.
1  不收敛诊断表
由表中可以看出,在该环形振荡器中,反相器xinv21xinv21xinv22xinv23xinv24是引起不收敛的子电路,同时还可以看出xinv23n沟道晶体管也是造成不收敛的元件。表中还给出了相应的电压和电流,由此可以看出他们的知是否合理。误差容限toldstolbdtolbs值可以表明元件电流值(drain to sourcebulk to drainand bulk to source)与收敛与否的紧密程度。一般来说,tol变量的值小于或相近与1时,电路收敛。由表中可以看出,tol ds中接近100的项远大于使电路收敛的误差容限。(原文:For tol variablesa value close or below one indicates a convergent solutionAs shown in table 1the tol values in the order of 100 indicates the currents were far from convergence。)另外,表中还给出了各节点电压值和电流值,由此可以判断晶体管的工作状态。
Traceback of Nonconvergence Source
为了找到引起不收敛的源头,我们可以参考错误容限来检查电路通路。(原文:In order to locate a nonconvergence sourcethe circuit path can be traced for error tolerance。)比如一个反相器链,最后一个反相器可能有一个非常大的错误容差,在这种情况下,就应该检查驱动该反相器的元件的错误容差。如果驱动容差大的话,那么该驱动元件有可能就是造成不收敛的原因。然而,容差小的话,驱动元件就应该按不收敛源来检查。
通过检查引起不收敛的MOSFET的电流和电压,可以确定管子的工作状态。有可能是处于模型的间断区,比如截止区(subthreshold)到线性区(linear)或线性区到饱和区(saturation)。
考虑到误差容限,应该检查各节点电流和电压。如果电流值或节点电压值太小的话,有可能因除数太小而造成不收敛错误。一个解决办法是增加绝对精度的值
可以用诊断表和直流迭代次数(用ITL1语句)相结合来定位不收敛源。通过增加或减少迭代次数,有问题的节点和元件将被打印出来。
Transient Operating Point Analysis
一些电路,尤其是具有反馈的电路,没有稳定的工作点(Operating Point)。为了得到这些电路的直流工作点分析,或者去掉反馈环路,或者忽略直流工作点分析。为了忽略直流工作点分析,可以在瞬态分析中用UIC参数
Example:
.TRAN 1ns 100ns UIC
如果在这样的电路中必须要直流工作点分析,那么可以用.OP语句:
Example:
.TRAN 1ns 100ns UIC
.OP 20ns
上面的例子中跳过了初始的直流工作点分析,而改为计算0ns20ns时的瞬态工作点。
虽然瞬态分析有可能解决直流分析中的不收敛问题,但是瞬态分析本身不易收敛。在瞬态分析中,错误信息“Timestep Too Small”表明电路不收敛。这有可能是由初始条件不当造成的。
确定初始值
电路达到稳态时的工作点数据可以用来作为直流工作点分析的初始值。
Example:
.OPTION OFF
.TRAN 20n 250n UIC
.OP 250n
VSUPPLY 5 0 PL(0V  0S  5V  50N)
在这个例子中,VSUPPLY在开始的50ns内由0V升到5V200ns时电路已达到稳态。设置时间增量为电路的估计最大RC时间常数,在10倍于时间常数的的地方开始进行工作点分析。这样的步骤将有充分的时间保证电路达到稳态。利用这些步骤就可以确定初始电压。
不收敛电路及其解决
电路不收敛通常是由一下原因引起的:
1)初始条件不当
2)不恰当的模型参数
3)不恰当的.OPTIONS命令或分析模式
初始条件
多稳态电路需要状态信息来进行直流分析。因此,对于环形振荡器和触发器必须有初始体条件(利用.IC语句)。环形振荡器通常只需设置一个初始状态。

2  环形振荡器
对触发器,最好用.IC语句在子电路内部设置初始条件。在下面的例子中,局部参数Qset默认为0,它被用来初始化Q值,这样,所有的Q值初始为0。若在调用时设置Qset1,则所有的Q值初始为1
Example:
.subckt  latch  in  Q  Q/  d  Qset=0
.ic Q=Qset

.ends
.xff  data_in[1]  out[1]  out[1]/  strobe  LATCH   Qset=Vdd
不恰当的模型参数(参见HSPICE User’s manual1 3-37
P-N结(参见HSPICE User’s manual 3-38
因以上两项在我们的分析中一般不会遇到,所以不予解释,需要时可查阅手册。
不恰当的.OPTIONS
高功率电路
由于HSPICE被设置成用于IC设计,所以在分析高功率电路时有可能发生不收敛现象,可通过增加Options ITL1300-400来使之收敛。
运放和比较器
高增益的运放和比较器有可能使电路违背了基而霍夫电流定律而造成电路的不收敛。这一般是由高增益比例因子造成的。可以将RELI改为0.005pA,ABSI改为1pA,则有可能使之收敛。
晶体振荡器(参见HSPICE User’s manual1 3-39

发表于 2008-4-21 12:59:06 | 显示全部楼层
很不错的东西,谢谢
发表于 2008-4-21 18:15:30 | 显示全部楼层
学习下。
发表于 2008-4-22 00:14:47 | 显示全部楼层
看看。。。。。。
发表于 2008-4-22 00:37:55 | 显示全部楼层
有用的簡介,感謝囉!
发表于 2008-4-22 10:59:24 | 显示全部楼层

好东西,值得看
发表于 2008-4-26 17:59:11 | 显示全部楼层
很实用 多谢拉
发表于 2008-5-18 22:54:44 | 显示全部楼层
不错啊。顶你
发表于 2010-10-10 10:31:59 | 显示全部楼层
能不能指示一下HSPICE的运用呢
发表于 2010-11-20 14:55:53 | 显示全部楼层
ddddddddddddddd
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 06:30 , Processed in 0.029346 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表