HSPICE使用流程Word下载.docx
- 文档编号:22395558
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:17
- 大小:69.31KB
HSPICE使用流程Word下载.docx
《HSPICE使用流程Word下载.docx》由会员分享,可在线阅读,更多相关《HSPICE使用流程Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
HSPICE可以以命令行方式方式启动,类似于DOS命令交互方式,较繁琐。
我们目前采用的是Windows标准输入界面,使用标准输入文件。
操作步骤为:
1、启动Hspui.exe,出现Star-HspiceLauncher。
2、在Star-HspiceLauncher下,按Browse,选取网表输入文件(*.sp),然后按确定。
3、在Star-HspiceLauncher下,按Simulate,就会自动弹出Hspice窗口,并对电路进行模拟。
4、模拟结束后,Hspice窗口关闭。
5、在Star-HspiceLauncher下,按Avanwaves,查看输出波形。
6、可以用记事本来查看输出文档(*.list)。
四、电路模拟过程
用HSPICE进行电路分析时,各个程序模块之间的关系和设计流程见图1:
图1程序设计流程图
电路的模拟过程描述如下:
逆向设计的步骤是一开始便进入了电路原理图的输入。
原理图是根据逆向提取的结果输入。
原理图Schematics文件输入完毕并检查Check通过后,将原理图转换成网单文件。
我们首先要选择合适的工艺,并调用该工艺所提供的库文件。
该库文件中应包含用该工艺制得的三极管的各个参数值,如单位漏电流,基区方块电阻,
值等(详见HSPICE使用手册)。
有源器件,如三极管,它们的尺寸是根据工艺的最小尺寸及电路的指标要求来设定的,如发射区、基区和集电区的面积,网单文件中的各个管子后面area、areab和areac分别标明其面积因子。
这样,在模拟时,Hspice便会自动根据库文件和尺寸计算出具体各管子的参数。
电阻、电容值等参数的确定则先测量它们的尺寸,然后根据所选工艺的方块电阻和面电容的值计算得出。
将网单文件和参数生成完毕以后,我们还要输入激励源和分析语句。
输入信号根据实际情况用调用相应的信号。
按各个功能块模拟时,前一级的输出作为后一级的输入。
分析语句则根据不同的需要选用。
当我们需要知道电路每一节点的电流和电压时,选用静态工作点分析.op语句;
如果需要了解在指定范围内,输出变量值随某个指定的独立源变化的规律,选用.dc语句;
如要知道某个电路的幅频特性和相频特性,选用交流小信号分析语句.ac;
在要查看在指定的时间间隔内,输出波形的变化函数关系,选用瞬态分析语句.tran。
还有其它语句,如噪声分析语句.noise、频域分析.four、和小信号传输函数分析.tf、小信号灵敏度分析.sens等,也能反映出电路性能的好坏。
Hspice具有很强的查错功能,可对输入的电路描述语句进行语法检查,以及电路连接关系的拓扑检查。
一旦发现错误,将输出出错信息并停止程序的运行,这时应先检查.lis文件中是否由出错信息。
五、HSPICE的基本语法
1.概述
1.1文件命名
Star-Hspice的输入文件类型和标准命名列出如下:
输入文件类型文件名
输出配置文件meta.cfg
初始化文件hspice.ini
直流工作点初始状态文件<
design>
.ic
输入网表文件<
.sp
库输入文件<
library_name>
模拟转换数据文件<
.d2a
1.2输入网表文件(<
.sp)
Star-Hspice读入一个输入网表文件,并将模拟结果存在一个输出列表文件或图形数据文件中。
输入文件<
design.sp>
包含以下内容:
●电路网表(子电路和宏、电源等)
●声明所要使用的库(可选)
●说明要进行的分析(可选)
●说明所要求的输出(可选)
输入网表文件和库文件可以由原理图的网表生成器或文本编辑器产生。
输入网表文件中的第一行必须是标题行,并且.ALTER辅助模型只能出现在文件最后的.END语句之前,除此之外,其它语句可以按任意顺序排列。
注意:
如果输入文件的最后没有.END语句,将会产生错误信息。
1.2.1输入行格式
●输入网表文件不能为压缩格式。
●输入文件名的长度、语句长度以及等式长度不超过256个字符。
●除了被引用的文件名以外,不区分所有大小写。
●一行输不完转到下一行时,下一行的第一个非数字、非空格的字符必须为“+”。
●注释(“*”和“$”符号后的内容视为注释)
●当输入文件中出现了特殊的控制字符时会产生错误。
由于大多数系统无法打印特殊字符,错误信息就会因为错误字符无法显示而不明确。
可以采用.OPTIONSBADCHAR语句来定位这些错误。
1.2.2名称
●名称必须以字母打头,然后可以跟上数字和下列字符:
!
#$%*+-/<
>
[]_
●定界符优于名称,并紧跟名称之后。
●名称可以长达1024个字符。
●名称不区分大小写。
1.2.3定界符
●输入定界符有:
tab、空格、逗号、等号和小括号
●一次和二次引用定界表达式和文件名
●元素的属性用冒号来定界(如“M1:
beta”)
●用句点来表示隶属定界,如“X1.A1.V”表示电路X1的A1子电路的V结点
1.2.4结点
●结点标识可以长达1024个字符(包括句号和延展部分)
●结点数字开头的0被忽略
●跟在以数字开头的结点编号后的字母被忽略。
如,结点1A等同结点1
●结点名可以由以下任何字符打头:
#_!
%
●结点可以用.GLOBAL语句声明为全局的
●结点0、GND、GND!
和GROUND均指的是Star-Hspice全局的地。
2.元件输入的一般格式
2.1基本元件(R、L、C等)输入语句
NAMEnode1,node2….nodeN<
modelreference>
value<
optionalparameters>
其中,
NAME定义元件的类型及名称。
第一个字母用于指定元件的类型,例如:
C表示电容、L表示电感、R表示电阻,剩下的字母则是给这个元件起的名字。
node1...nodeN指明元件在电路中的连接情况
value指明元件的标称值。
比如:
C12010uF,表明在结点2和地之间接入一个10uF的电容C1。
<
当基本元件参数不能充分描述时,调用相应的模型来描述。
参数列表
2.2二极管输入语句
Dxxxnplusnminusmname<
AREA=val>
<
PJ=val>
WP=val>
LP=val>
+<
WM=val>
LM=val>
OFF>
IC=vd>
M=val>
DTEMP=val>
或
area_val<
periphery_val>
>
W=val>
L=val>
2.3BJT输入语句
Qxxxncnbne<
ns>
mname<
aval>
IC=vbeval,vceval>
AREAB=val>
AREAC=val>
VBE=val>
+<
VCE=val>
2.4MOS器件的输入
Mxxxndngns<
nb>
AD=val>
AS=val>
PD=val>
PS=val>
NRD=val>
NRS=val>
RDC=val>
RSC=val>
IC=vds,vgs,vbs>
GEO=val>
DELVTO=val>
or
mnamelvalwval…
.OPTIONWLMxxxndngns<
mnamewvallval…
3.模型语句
.MODELmnametype<
VERSION=version_number>
pname1=val1pname2=val2...>
mname所定义的模型名。
模型名称中如果含有点(.)可能会导致某些情况下模型自动选择的失败。
type选择模型类型。
为以下类型之一:
AMPoperationalamplifiermodel
Ccapacitormodel
COREmagneticcoremodel
Ddiodemodel
Lmagneticcoremutualinductormodel
NJFn-channelJFETmodel
NMOSn-channelMOSFETmodel
NPNnpnBJTmodel
OPToptimizationmodel
PJFp-channelJFETmodel
PLOThardcopyplotmodelforthe.GRAPHstatement
PMOSp-channelMOSFETmodel
PNPpnpBJTmodel
Rresistormodel
pname1...参数名称。
参数名称和模型要匹配,可以多行输入,新起行的第一个字符必须为“+”。
VERSION版本号。
用于识别不同版本所允许的BSIM和BSIM2的模型。
(略)
4.元件库的选择输入
分立器件库(DDL)是Star-Hspice的分立器件模型的集合,由BJT、MESFET、JFET、MOSFET和二极管模型组成。
可以采用X子电路调用语句和DDL元件调用,将DDL库中的元件包含进来。
DDL元件语句调用实际DDL库文件中的模型名。
例如,下面的语句建立了一个lN4004二极管模型的实例:
X121DlN4004
其中,DlN4004是模型名。
Star-Hspice有如下几种方式调用DDL模型库:
1、系统在安装时的缺省设置。
当输入语句中用到某个模型或者子电路时,系统自动在DDLPATH环境变量所指向的路径中搜索和模型名同名的文件,其后缀为.inc。
DDLPATH变量设置在meta.cfg配置文件中。
2、在输入文件中用.OPTIONSSEARCH=”<
library_path>
”设置搜索路径。
3、直接用.INCLUDE语句将特定模型包含进来。
如
.INCLUDE<
path>
/T2N2211.inc
可以用.LIB语句将常用的命令、器件模型、子电路分析等放入到库文件中。
(暂时略)
5.电压/电流源语句
5.1独立电压/电流源
某些类型的分析只能使用与之相关联的电压/电流源语句。
例如,如果在同一独立源语句中定义了DC和AC源,则在进行DC分析时,AC源被将移出电路。
Vxxxn+n-<
DC=>
dcval>
tranfun>
AC=acmag,<
acphase>
或者
Iyyyn+n-<
Vxxx独立电压源的名称。
必须以“V”打头,后面可以跟1023个字母数字字符。
Iyyy独立电流源的名称。
必须以“I”打头,后面可以跟1023个字母数字字符。
n+正结点
n-负结点
DC设置DC电压/电流源的值,dcval为设置的值。
“tranfun”在零时刻的值将覆盖DC值(缺省为0.0)。
tranfun电压/电流源的输出函数(AC,ACI,AM,DC,EXP,PE,PL,PU,PULSE,+PWL,R,RD,SFFM,SIN)
AC表示该电压/电流源用于AC小信号分析
acmagAC幅度
acphaseAC相位(缺省为0.0)
M用于模拟多个并联的电流源的倍乘因子。
电流值与M相乘为总电流(缺省为1.0)。
例子
VX105V
VB20DC=VCC
VH36DC=2AC=1,90
IG87PL(1MA0S5MA25MS)
VCC100VCCPWL0010NSVCC15NSVCC20NS0
VIN1320.001AC1SIN(011MEG)
ISRC2321AC0.33345.0SFFM(0110K51K)
VMEAS129
5.1.1DC电压/电流源
可以采用不同的方式定义DC电压或者电流源:
V110DC=5V
V1105V
I110DC=5mA
I1105mA
前两个例子在结点1和地之间定义了一个5V的DC电压源。
第三和第四个例子在结点1和地之间定义了一个5mA的DC电流源,电流流向为从结点1流向地。
5.1.2AC电压/电流源
用AC关键词来定义AC电压/电流源的幅度和相位。
V110AC=10V,90
VIN10AC10V90
上面两个例子定义了一个幅度为10V、相位为90度的AC电压源。
进行AC分析时的频率扫描范围在.AC分析语句中给出。
AC分析给出电路的脉冲响应。
5.1.3瞬态电压/电流源
对于瞬态分析,可以将电源定义成时间的函数。
可以采用的函数有:
脉冲、指数、阻尼正弦、单频FM以及分段线性函数。
5.1.4混合电压/电流源
混合电源的定义是为了进行多种类型的分析。
例如,可以在定义DC电源时,在相同结点间同时定义AC和瞬态电源。
在这种情况下,当进行特定的分析时,Star-Hspice会选择相应的DC,AC或者瞬态电源。
有一个特例是零时间常数的瞬态电源,它将覆盖DC值,并被用来计算所有分析的工作点。
VIN1320.5AC1SIN(011MEG)
上面的例子在结点13和2之间同时定义了一个0.5V的DC电压源、一个1V的AC电压源和一个阻尼正弦电压源。
当进行DC分析时,程序对其它两个电压源采用零电压值。
5.2独立电压/电流源函数
Star-Hspice提供以下几种电压/电流源函数:
●Pulse(脉冲函数)
●Sinusoidal(正弦函数)
●Exponential(指数函数)
●Piecewiselinear(分段线性函数)
●Single-frequencyFM(单频调频函数)
●Single-frequencyAM(单频调幅函数)
5.2.1PULSE(脉冲函数)
Star-Hspice采用梯型脉冲函数。
在第一个上升斜坡前有一段瞬态模拟的初始过渡延迟,以后每个上升斜坡内,电压或者电流从初始值到脉冲平顶值线性变化,过了脉冲平顶值后,电压或者电流沿下降斜坡线性变化到初始值。
整个脉冲再按某一周期重复变化。
PULSE<
(>
v1v2<
td<
tr<
tf<
pw<
per>
)>
PU<
v1电压或者电流的初始值。
v2脉冲平顶值。
td从瞬态模拟开始到第一个上升斜坡开始前的延迟(单位为秒,缺省为0.0,
并且当设置td<
0.0时,同样取td=0.0)
tr从初始值到脉冲平顶值的上升斜坡的时间(缺省为TSTEP)
tf从脉冲平顶值返回到初始值的下降斜坡时间(缺省为TSTEP)
pw脉冲宽度(脉冲平顶部分的宽度)(缺省为TSTEP)
per脉冲的重复时间(单位为秒,缺省为TSTEP)
例子:
VIN30PULSE(-112NS2NS2NS50NS100NS)
V1990PUlvhvtdlaytristfalltpwtper
第一个例子在结点3和地之间定义了一个脉冲电压源。
脉冲的输出高电压为1V,输出低电压为-1V,初始延迟为2ns,上升和下降时间均为2ns,脉冲宽度为50ns,周期为100ns。
第二个例子中所用到参数值应该有相应的.PARAM语句定义。
脉冲时序表
时刻
电压或电流值
v1
td
td+tr
v2
td+tr+pw
td+tr+pw+tf
tstop
5.2.2SIN(正弦函数)
Star-Hspice采用阻尼正弦电压/电流源,即电压或电流值为一衰减指数因子与一正弦波的乘积。
使用时要求给出正弦波的频率、指数衰变因子、初始相位以及波形的初始时刻(详细见下面说明)。
SIN<
vova<
freq<
θ<
φ>
vo电压或者电流的直流偏移量(单位为V或者A)
va电压或者电流的幅度(单位为V或者A)
freq频率(单位为Hz,缺省为1/TSTOP)
td延迟时间(单位为秒,缺省为0.0)
θ阻尼因子(单位为1/秒,缺省为0.0)
φ初始相位(单位为度,缺省为0.0)
输出函数为:
VIN30SIN(01100MEG1NS1e10)
这个例子在结点3和地之间定义了一个阻尼正弦电压源。
波形峰值为1V,直流偏移量为0V,频率为100MHz,时间延迟为1ns,阻尼因子为1e10,初始相位为0。
5.2.3EXP(指数函数)
EXP<
td1<
t1<
td2<
t2>
v1初始的电压或者电流值(单位为V或A)
v2电压或者电流的脉冲值(单位为V或A)
td1上升延迟时间(单位为秒,缺省为0.0)
td2下降延迟时间(单位为秒,缺省为td1+TSTEP)
t1上升时间常数(单位为秒,缺省为TSTEP)
t2下降时间常数(单位为秒,缺省为TSTEP)
VIN30EXP(-4-12NS30NS60NS40NS)
5.2.4PWL(分段线性函数)
PWL<
t1v1<
t2v2t3v3…>
R<
=repeat>
TD=delay>
PL<
v1t1<
v2t2v3t3…>
v1…定义电压或者电流值
t1…定义时间段的值
R设置函数循环重复
repeat定义波形重复的起始点
TD是定义分段线性波形在开始前有一段延迟的关键词
delay定义分段线性波形在开始前有一段延迟的延迟量
每一对(t1,v1)定义时刻t1时的电压或电流值为v1。
每两个时间点之间的电压或电流值线性变化。
用参数“R”来设置函数被循环调用,可以在“R”后面加一参数用来指定函数从什么地方开始循环,但必须设置在函数的间断点处,例如,如果t1=1,t2=2,t3=3,t4=4,则“repeat”可以等于1,2,或者3。
此外,可以采用DADA语句来定义PWL:
PWL(TIME,PV)
.DATAdatanam
TIMEPV
t1v1
t2v2
t3v3
t4v4
……
.ENDDATA
.TRANDATA=datanam
TIME提供给DADA语句的时间值参数
PV提供给DADA语句的幅值参数。
p
这种输入方式可以将一个模拟的结果作为另一个模拟的输入。
最后一定要加瞬态分析语句。
5.2.5SFFM(单频调频函数)
SFFM<
vova<
fc<
mdi<
fs>
vo输出电压或者电流的直流偏移量(V或A)
va输出电压或者电流的幅度(V或A)
fc载波频率(单位Hz,缺省为1/TSTOP)
mdi调制系数(缺省为0)
fs信号频率(单位Hz,缺省为1/TSTOP)
5.2.6AM(单频调幅函数)
AM(saocfmfctd)
sa信号幅度(缺省为0)
fc载波频率(缺省为0)
fm调制频率(缺省为1/TSTOP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HSPICE 使用 流程