内容发布更新时间 : 2024/11/6 8:42:00星期一 下面是文章的全部内容请认真阅读。
Hspice应用讲解
Hspice是一种通用电路分析程序,可用来进行集成电路和电子线路的分析模拟。它可以用来分析电路的非线性直流特性,线性交流小信号特性,非线性瞬态特性,温度特性等。其中,直流分析(.DC)不光可进行直流转移特性分析,还可进行直流工作点(.OP),直流小信号传输特性(.TF),直流小信号灵敏度(.SENS)分析;在进行交流分析(.AC)的同时还可进行噪声特性(.NOISE)和失真特性(.DISTO)分析;在进行瞬态分析(.TRAN)的同时还可进行傅立叶(.FOUR)分析;进行温度特性分析(.TEMP)以求得电路的温度特性。在进行交流分析和瞬态分析前先进行直流分析,以决定其非线性组件的线性化小信号模型和其初始条件。
Hspice输入描述文件格式:
Hspice的输入描述文件格式是一种自由格式,其输
标题语句 入的第一条语句必须是标题语句,且不能省略;最后一
组件语句 条语句必须是结束语句(.END),其余语句的顺序是任
模型语句 意的。在输入描述文件的任何地方都可插入注释语句(在
.SUBCKT 语句前加“*”或“$”),程序只对注释语句进行原样打子电路 组件语句, 模型语句 印而不进行任何处理。
子电路调用 组件语句是说明该组件的拓扑关系和组件值的。每.ENDS语句 个组件给予一个组件名,组件名的第一个字母说明该组
控制语句 件的类型,Hspice并对各种类型的组件所对应的英文字 结束语句 母作了规定,组件名不能重复。组件的节点号可以用一正整数表示,也可以用网点名表示。
模型语句是说明该组件的模型参数的。在模型语句中定义一组组件模型参数并赋予一个唯一的模型名,在组件语句中即可引用此模型名,表明此组件具有该组模型参数值。
子电路是用一组组件语句来定义,程序会自动将这组组件插入到子电路被调用的地方,其大小和复杂性没有限制,并允许其包含其它子电路。在电路中不能包括短路的电压源和电感,开路的电流源和电容,电路中的每个节点都不能悬空。
控制语句是控制程序的运行和规定分析及输出的内容。如温度语句,工作点分析语句,交流分析语句,瞬态分析语句,打印语句,绘图语句和可选项语句等。
Hspice的每条语句都有若干个字段,字段之间由空格或符号隔开,多余的空格将被忽略,字段内不能随意加空格,即字段不能断开。
字段可以是字符段或数字段,字符段必须以字母开头,长度不超过8个字符,多余的字符将被忽略,且由用户定义的字符段中不能包括Hspice输入描述语言中已定义的字符段(即保留字);数字段可以为整数或浮点数,其后可直接跟下列比例因子:
K=1E3,MEG=1E6,G=1E9,T=1E12,
M=1E-3,U=1E-6,N=1E-9,P=1E-12,F=1E-15,MIL=25.4E-6
比例因子必须紧跟在数字后面,不是比例因子的字母及比例因子之后的字母均被忽略。 如一个语句一行写不完,可在下一行接着写,该行称为续行,续行的第一列必须是“+”号,续行数没有限制。
Hspice模拟仿真流程:
调用 Hspice 程序 读入 .sp(i) 文件 文件检错 N 是否要分析直流传输 特性或工作点 Y 设定温度 直流传输特性分析 直流工作点分析 N 是否要分析交流特性 Y 交流特性分析 N 是否要分析瞬态特性 Y 直流传输特性分析 直流工作点分析 瞬态特性分析 Y
是否要分析温度特性 N 输出结果 Hspice输出文件类型如下表: 输 出 文 件 类 型 扩 展 名 列表输出,其内容包括仿真所用的名字和版本;Meta-Software. lis,或使用者指定 单元信息;输入文件名;使用者名;注册资料;拷贝的输入网点文件;节点计算;操作点参数;每个source和sub-circuit的电压降,电流,功耗的详细情况;由. PLOT语句产生低分辩率图表;. PRINT语句结果;. OPTIONS语句结果。 瞬态分析结果,它包含瞬态分析的资料结果,是在输入文件同时有. TRAN和. OPTION POST语句时产生的一个分析记录文件。 DC分析结果,包含其使用的步长或在. DC语句中定义的扫描频率下的分析结果,包括噪声,失真或网络分析。 DC分析测量结果,它是. MEASURE DC语句分析结果。 AC分析结果,包含一个频率功能的输出变量列表,符合其后的. AC语句的使用者规格。 AC分析测量结果,它是. MEASURE AC语句分析结果。 硬拷贝图表资料(从meta.cfg PRTDEFAULT) FFT分析图表数据,包含显示FFT分析波形的图表数据。 分支电路交叉列表,它说明了在符合分支电路定义下调用的分支电路节点名。 . tr# + 瞬态分析测量结果,它是. MEASURE TRAN语句分析结果。 . mt# . sw# + . ms# . ac# + . ma# . gr# ++ . ft# +++ . pa# 数字输出,包含从U单元A2D转换选项得到的转换数字数据。 . a2d 输出情况,包含运行时间结果:每个CPU状态的开始和结束. st# 时间;废弃的选择项设置警告;预先检查注册资料,输入语法,模型和电路拓扑结构的情况;对困难电路使用的Hspice收敛方法。 操作点节点电压(初始状态),对于. SAVE语句。 . ic 注意:#表任一扫描编号或硬拷贝文件编号。 +只有在使用. POST语句产生图表数据才会生成。 ++需要. GRAPH语句或在meta.cfg文件中有一文件输出指针。在PC版的 Hspice中此文件不能产生。 +++只有在使用. FFT语句才会生成。 Hspice基本组件描述: 在下列描述中,“[ ]”内的域为可选项,其余的域为必须的;name1,name2为可选的字符串,字符串最多可有八个字符(包括首字符),但其中不能出现分隔符(如空格,等号,逗号等)。
1. 电阻:Rname N1 N2 value [TC=TC1[,TC2]]
R为关键词,N1,N2为与电阻相连的两节点的节点号,电阻值可为正值或负值,其单位为欧姆。TC1,TC2为电阻的温度系数,电阻值按下式随温度而变化: R(T)=R(TD)·(1+TC1·(T- TD )+TC2·(T- TD )2) 当两可选参数TC1,TC2未给出时,程序将自动赋零。T0为标称温度,可由.OPTIONS控制语句进行修改。
2. 电容:Cname N+ N- [PLOY] value [C1 [C2…]] [IC=v]
C为关键词,N+,N-表电容的正负节点,可选项PLOY表示该电容是一个随电压变化的非线性电容,其值可由下式求得:
C(V)=value+C1·V+C2·V2+?+Cn·Vn,其中n≤20。
[IC= ] 项为初始条件项,其作用将视瞬态分析语句中是否有UIC(Use Initial Condition)关键词而不同:若瞬态分析语句中有UIC项,则进行瞬态分析时,将以IC项所给值作为该组件的瞬态分析初始条件。
3. 电感:Lname N+ N- [PLOY] value [L1 [L2…]] [IC=i]
L为关键词,N+,N-表电感的正负节点,电流从正节点流到负节点。可选项PLOY表示该电感是一个随电流变化的非线性电感,其值可由下式求得: L(V)=value+L1·I+L2·I2+?+Ln·In,其中n≤20。
[IC= ] 项为初始条件项,其作用将视瞬态分析语句中是否有UIC(Use Initial Condition)关键词而不同:若瞬态分析语句中有UIC项,则进行瞬态分析时,将以IC项所给值作为该组件的瞬态分析初始条件。 4. 互感:Kname1 Lname2 Lname3 value
K为关键词,Lname2和Lname3为两个耦合电感名,耦合系数的取值范围为大于
0小于1,每个电感的第一个节点作为同名端。
5. 传输线:Tname N1 N2 N3 N4 Z0=value TD=val2 [F=freq [NL=nlen] ]
+[IC=v1,i1,v2,i2]
T为关键词,N1,N2是埠1的两个节点,N3,N4是埠2的两个节点。Z0为特性
阻抗值,TD为传输延迟值,F为频率,NL相当于在频率F时传输线波长的归一化电学长度。如指定F而省去NL,则NL缺省值为0.25。 传输线的传输延迟值必须以下列两种方法中的一种输入: 1).直接给出TD值;
2).由F和NL两项求出,即TD=NL/F。
v1,i1,v2,i2分别为埠1和端口2的电压,电流的初始值。
6. 线性和非线性受控源:Hspice包含四种线性和四种非线性受控源,它们分别为:
⑴.线性电压控制电流源:I=G·V,Gname N+ N- NC+ NC- value ⑵.线性电压控制电压源:V=E·V,Ename N+ N- NC+ NC- value ⑶.线性电流控制电流源:I=F·I,Fname N+ N- Vname value ⑷.线性电流控制电压源:V=H·I,Hname N+ N- Vname value
G,E,F,H分别为跨导,电压增益,电流增益和互阻因子。N+,N-分别为受控 源的正负节点,NC+,NC-分别为控制电压源的正负节点,Vname为控制电流所流 过的电压源的名称,语句中的value值分别为各受控对应的跨导值,电压增益值,电流增益值和互阻因子值。
Hspice允许以一组多项式系数来描述非线性受控源,并且控制变量可以是多维的,维数与系数的数目没有限制,但系数的意义随维数的不同而改变。其语句格式为: ⑴.非线性电压控制电流源:Gname n+ n- POLY (nd) nc1+ nc1- ? ncnd+
ncnd- P0 [P1?] [IC=控制电压初值]
⑵.非线性电压控制电压源:Ename n+ n- POLY (nd) nc1+ nc1- ? ncnd+
ncnd- P0 [P1?] [IC=控制电压初值]
⑶.非线性电流控制电流源:Fname n+ n- POLY (nd) Vname1 ? Vnamend
P0 [P1?] [IC=控制电压初值]
⑷.非线性电流控制电压源:Hname n+ n- POLY (nd) Vname1 ? Vnamend
P0 [P1?] [IC=控制电压初值]
n+,n-为受控源的正负节点,POLY为非线性受控源关键词,nd为控制变量维数,nc1+,nc1- ? ncnd+,ncnd-分别为nd个控制电压源的正负节点,Vname1 ? Vnamend分别为nd个控制电流所流过的电压源的名称,P0 ,P1?是多项式的系数。初始条件IC项给出受控源的初始条件,计算时将先使控制变量取IC项所给值,求电路的直流工作点;收敛后继续迭代,再求出控制变量的最终精确解。若不给IC项,则控制变量的初始值为零。以电压控制电压源为例,如控制电压为一维的,则受控电压为:V(VX)=P0+P1VX+P2VX2+ P3VX3+?+ PnVXn; 如控制电压为二维的,则受控电压为:
V(VX,Vy)=P0+P1VX+P2Vy+P3VX2+P4VXVy+P5Vy2+P6VX3+P7VX2Vy +P8VXVy2+P9Vy3+?
如控制电压为三维的,则受控电压为:
2V(VX,VY,VZ)?P0?PV?PV?PV?PV1X2Y3Z4X?P5VXVY?P6VXVZ3222?P7VY2?P8VYVZ?P9VZ2?P10VX?P11VXVY?P12VXVZ?P13VXVY232234 PVV?PVVV?PV?PVV?PVV?PV?PV14XZ15XYZ16Y17YZ18YZ19Z20X????
7. 独立电压源和电流源:
Vname N+ N- [ [DC] value] [AC magval [phaseval] ] + [PULSE( v1 v2 [td [tr [tf [pw [per] ] ] ] ] ) ] or [SIN (vo va [freq [td [kd] ] ] ) ]
or [EXP (v1 v2 [td1 [t1 [td2 [t2] ] ] ] ) ] or [PWL( t1 v1 t2 v2 ? tn vn ) ] or [SFFM( vo va freq [mdi [fs] ] ) ] or [AM( vo va freq [fs [td] ] ) ]
或Iname N+ N- [ [DC] value] [AC magval [phaseval] ] + [PULSE( i1 i2 [td [tr [tf [pw [per] ] ] ] ] ) ] or [SIN (io ia [freq [td [kd] ] ] ) ]
or [EXP (i1 i2 [td1 [t1 [td2 [t2] ] ] ] ) ] or [PWL( t1 i1 t2 i2 ? tn in ) ] or [SFFM( io ia freq [mdi [fs] ] ) ] or [AM( io ia freq [fs [td] ] ) ]
V和I 为独立电压源和电流源的关键词,N+和N-为电源的正负节点,这里规定电 流源的方向是从正节点经电源内部流向负节点。
一个独立源,可以同时给出三种分析类型的信号源值,上面第一个选择项为电源 的直流值,第二个选择项为交流资料,第三个选择项为瞬态资料。程序在作不同 的分析时,将取相应的信号源资料。若作直流分析,取直流常数值;若作交流分 析,独立源被视为由振幅和相位所描述的正弦小信号(频率即为交流分析频率); 当作瞬态分析时,则用随时间变化的瞬态资料(也可能是常数);直流和瞬态分析 可用同一值描述,如值随时间变化,则取t=0的值作直流分析。
DC为直流信号的关键词,如直流值为零也可省略不写。模拟时可用零值电压源表 电流表,因每个电压源和电流值都将被打印。
AC为交流信号的关键词,交流信号的振幅和相位的缺省值分别为“1”和“0”。 当电路中只有一个交流信号输入时,交流信号的振幅通常设为1,以便求得电路的