现在常用的SPICE仿真软件为方便用户使用都提供了较好的用户界面,在用仿真库中的元器件连成原理图后就可以进行仿真(当然要设置必要的仿真参数),但实际上只是用原理图自动产生了SPICE的格式语句,还是要通过读取语句来进行仿真,这是历史的遗留问题。在当时的技术条件下,不能用图形方式输入电路结构,只能通过文本文件来描述,也就是所谓网表。SPICE软件的设计者规范了要进行仿真的电路对应的SPICE网表文件格式,还定义了许多仿真描述语句和分析控制语句等,使仿真软件能通过读取这些特殊信息来进行相关计算和运行,最后获得要求的结果。因为技术的进步,虽然现在已经不需要手工书写并输入网表了,但了解一些基本语句还是很有用的,不仅可以理解仿真时要设置的那些参数的含义,而且在出错时还易于通过网表来排错。 SPICE网表文件是文本文件,默认的输入文件名为:*.cir因为目前各个版本的SPICE软件都已图形化,并增加了很多功能,所以产生的语句顺序和格式有了一些变化,但主要是以*开头的注释语句的不同变化,便于阅读和模块化,而基本的语句变化不大,包括以下几种:1) 标题语句:网表文件第一行为标题语句,由任意字符串和字母组成,软件并不处理,而是直接在输出文件中作为第一行打印出来2) 注释语句:由*开头的字符串,为文件的说明部分,为方便阅读而在自动产生的SPICE网表文件中大量存在3) 电路描述语句:定义电路拓扑结构和元器件参数的语句,由元器件描述语句、模型描述语句、电源语句等组成4) 电路特性分析和控制语句:以.开头的语句,描述要分析的电路特性及控制命令5) 结束语句:即.END ,标志电路描述语句的结束,在文件最后一行(最后将会给出SPICE网表文件的例子) 一、电路描述语句:是SPICE网表文件中最多也最复杂的,有以下一些规定:1) 名称:为字符串,只有前8个字符有效,其中第一个字符必须为A--Z的字符,且有固定含义,对应不同类型的元件 2) 数字:有几种形式,整数、浮点数、整数或浮点数加上整数指数、浮点数或整数后面加上比例因子 常用的比例因子:有T、G、MEG、K、M、U、N、P、F、MIL等,不分大小写 3) 分隔符:有空格、逗号、等号、左括号、右括号等4) 续行号:“+”,一行最多只能有80字符,如一行无法表达完全,可在第二行起始加+号,表示是前一行的继续 5) 单位:使用国际标准单位制,语句中缺省6) 规定支路电流的正方向和支路电压的正方向一致7) 节点编号:可以是任意的数字或字符串,节点0规定为地,不允许有悬浮的节点,即每个节点对0节点都必须有直流的通路。当实际电路不满足这个要求时,可在悬浮节点与地之间接一个大电阻(如1G).8)不能分析的问题:电压源回路、电感回路、电压源和电感组成的回路、隔断的电流源和(或)电容 以下分别介绍一些常见的电路描述语句:1. 无源元件描述语句:由元件名、元件连接的节点号、元件的参数值组成 1.1 电阻描述语句:RXXXXXXX N+ N- <(MODEL)NAME> VALUE
> 其中:RXXXXXXX 元件名称 N+ N- 电阻两端的节点号,当电阻上加正电压时,电流从N+流向N- (MODEL)NAME 可选项,指出电阻将用上后面由.MODEL语句定义的模型 VALUE 电阻值,单位Ohm TC="TC1" 可选的温度系数,TC1 TC2分别是一阶、二阶温度系数1.1.1 电阻的温度公式:VALUE(T)=R*R0[1+TC1*(T-T0)+TC2*(T-T0)*(T-T0)] 其中:R0为电阻描述语句中的阻值,T0为常温300K1.1.2 电阻模型语句:.MODEL MNAME RES R="PVAL1" 其中:RES为电阻模型关键字,R定义电阻倍乘系数,TCE定义指数温度系数1.1.3 例句:R4 0 3 RMOD 100 .MODEL RMOD RES(R=2 TC1=0.1 TC2=0.01) 1.2 电容电感描述语句:CXXXXXXX N+ N- <(MODEL)NAME> VALUE LXXXXXXX N+ N- <(MODEL)NAME> VALUE 其中:VALUE为电容电感的值,不能为零 IC规定初始条件,仅在瞬态分析语句中设关键字UIC时赋值才有意义1.2.1 电容电感模型语句:.MODEL MNAME CAP(C=PVAL1 VC1=PVAL2 VC2=PVAL3 TC1=PVAL4 TC2=PVAL5) .MODEL MNAME IND(L=PVAL1 IL1=PVAL2 IL2=PVAL3 TC1=PVAL4 TC2=PVAL5) 其中:C、L定义电容电感的倍乘系数 VC1、VC2分别是电容的一阶、二阶电压系数 IL1、IL2分别是电感的一阶、二阶电流系数 TC1、TC2分别是电容、电感的温度系数1.2.2 电容电感的求值公式:C(V)=C0*C(1+VC1*V+VC2*V*V) L(I)=L0*L(1+IL1*I+IL2*I*I) 其中:C0、L0分别是元件描述语句中的值1.2.3 电容电感的温度公式与电阻的温度公式类似 1.3 互感描述语句:KXXXXXXX LYYYYYYY LZZZZZZZ ... VALUE <(MODEL)NAME> <(SIZE)VALUE> 其中:KXXXXXXX、LYYYYYYY、LZZZZZZZ是两个耦合电感的名称,也可以将多个耦合电感按顺序写下去 VALUE为耦合系数的值,且0 > + 其中:无损传输线是二端口器件,N1、N2是端口1的正负节点,N3、N4是端口2的正负节点 Z0是特性阻抗 TD是传输延迟,频率F及在频率F时相对于传输波长的归一化电学长度NL可用来确定延迟,两种表示方式要选一种 IC确定每个端口的电压和电流,只在瞬态分析中用到(加UIC时) 1.5 电压控制开关描述语句:SXXXXXXX N+ N- NC+ NC- <(MODEL)NAME> 其中:N+ N-分别是开关的正负节点 NC+ NC-分别是控制端的正负节点 (MODEL)NAME为模型名,指出将用上后面由.MODEL语句定义的模型1.5.1 电压控制开关模型语句:.MODEL NAME VSWITCH RON="PVAL1" ROFF="PVAL2" VON="PVAL3" VOFF="PVAL4" 其中:VSWITCH为压控开关模型的关键字 RON定义开关的导通电阻,缺省为1欧姆 ROFF定义开关的关断电阻,缺省为1兆欧姆 VON定义开关导通的阈值电压 VOFF定义开关关断的阈值电压1.6 电流控制开关的描述语句:WXXXXXXX N+ N- VNAME <(MODEL)NAME> 其中:N+ N-分别是开关的正负节点 VNAME是控制电流流过的电压源的名称 (MODEL)NAME为模型名,指出将用上后面由.MODEL语句定义的模型1.6.1 电流控制开关模型语句:.MODEL ISMOD ISWITCH RON="PVAL1" ROFF="PVAL2" ION="PVAL3" IOFF="PVAL4" 其中:ISWITCH为流控开关模型的关键字 ION为导通的阈值电流 IOFF为关断的阈值电流 2. 有源元件描述语句: 2.1 二极管描述语句:DXXXXXXX N+ N- MNAME 其中:N+ N-为二极管的正负节点 MNAME为二极管的模型名,为必选项 AREA为面积因子 OFF为直流分析时的初始条件 IC="VD为瞬态分析时的初始条件"2.1.1 二极管的模型语句:.MODEL MNAME D(PNAME1=PVAL1 PNAME2=PVAL2 ...) 其中:D为二极管模型的关键字,后面为二极管参数序列,一般二极管模型参数有15--25个2.1.2 半导体二极管的参数表(带*的受面积参数影响): 2.2 双极型晶体管描述语句:QXXXXXXX NC NB NE MNAME 其中:NC NB NE NS分别是双极型晶体管的集电极、基极、发射极以及衬底所在节点,NS缺省表示衬底接地 MNAME为双极型晶体管的模型名,为必选项 AREA为面积因子 OFF为直流分析时初始条件 IC="VBE",VCE为瞬态分析时初始条件2.2.1 双极型晶体管模型语句:.MODEL MNAME NPN(OR PNP) (PNAME=PVAL1 PNAME="PVAL2" ...) 双极型晶体管模型有两种类型,NPN PNP分别为其模型关键字,后面为参数序列,一般双极型晶体管模型参数有40多个2.2.2 双极型晶体管模型的参数表(带*的受面积参数影响): 2.3 MOS场效应晶体管描述语句:MXXXXXXX ND NG NS NB MNAME + 其中:ND NG NS NB分别是MOS场效应晶体管的漏极、栅极、源极和衬底所在的节点 MNAME为MOS场效应晶体管的模型名,为必选项 L W分别是MOS场效应晶体管沟道的长、宽 AD AS为漏极和源极的扩散区的面积 PD PS为漏极和源极的周长 NRD NRS为漏极和源极扩散区等效电阻的方块数 OFF为直流分析时初始条件 IC为瞬态分析时初始条件2.3.1 MOS场效应晶体管模型语句:.MODEL MNAME NMOS(OR PMOS) (PNAME=PVAL1 PNAME="PVAL2" ...) MOS场效应晶体管模型有两种类型,NMOS PMOS分别为其模型关键字,后面为参数序列,一般模型参数有40--60个,大多为工艺参数 MOS场效应晶体管模型有四个级别,用语句LEVEL来指定,缺省时LEVEL=1 LEVEL="1" Shichman-Hadges模型 LEVEL="2" 基于几何图形的一种二维分析模型 LEVEL="3" 半经验短沟道模型 LEVEL="4" 亚微米BSIM模型2.3.2 因MOS场效应晶体管模型的参数较多(40--60个)而且较复杂,很多与制造工艺有关,涉及太多微电子的知识,就不再列出了 系统级使用时一般使用相关制造厂商或第三方提供的模型参数 2.4 结型场效应晶体管描述语句:JXXXXXXX ND NG NS MNAME 其中:ND NG NS分别是结型场效应晶体管的漏极、栅极、源极所在的节点 MNAME为结型场效应晶体管的模型名,为必选项 AREA为面积因子 OFF为直流分析时初始条件 IC="VDS",VGS为瞬态分析时初始条件2.4.1 结型场效应晶体管模型语句:.MODEL MNAME NJF(OR PJF) (PNAME=PVAL1 PNAME="PVAL2" ...) 结型场效应晶体管模型有两种类型,NJF PJF分别为其模型关键字,后面为参数序列,一般模型参数有20多个, 结型场效应晶体管模型的参数也不再列出了,一般使用相关制造厂商或第三方提供的模型参数 2.5 GaAs场效应晶体管描述语句:BXXXXXXX ND NG NS MNAME 其中:ND NG NS分别是GaAs场效应晶体管漏极、栅极、源极所在的节点 MNAME为结型场效应晶体管的模型名,为必选项 AREA为面积因子 OFF为直流分析时初始条件 IC="VDS",VGS,VBS为瞬态分析时初始条件2.5.1 GaAs场效应晶体管模型语句:.MODEL MNAME GASFET (PNAME=PVAL1 PNAME="PVAL2" ...) GASFET为GaAs场效应晶体管模型的关键字,后面为参数序列,一般模型参数约30个 GaAs场效应晶体管模型有三个级别,用语句LEVEL来指定,缺省时LEVEL=1 LEVEL="1" Curtice模型 LEVEL="2" Statz或Raytheon模型 LEVEL="3" Triquint模型 GaAs场效应晶体管模型的参数也不再列出了,一般使用相关制造厂商或第三方提供的模型参数 2.6 数字电路器件描述语句: UXXXXXXX [(*)] + * + [MNTYMXDLY=] +[I/O-LEVEL=] UXXXXXXX *<(I/O)MODEL NAME> + 前一种表示数字电路,名称后是类型、参数值、节点、定时模型名、输入输出模型名 后一种表示激励波形发生器,将规定的激励加到指定的节点上2.6.1 子电路描述语句:以.SUBCKT作为开始,以.END作为结束的一组语句,作为以X开始的元件2.6.1.1 子电路定义开始语句:.SUBCKT N1 其中:SUBNAME是子电路名称 N1 N2 N3等是子电路外部节点号2.6.1.2 子电路结束语句:.ENDS 表示结束SUBNAME子电路或结束所有子电路定义 2.7 元器件库调用语句:.LIB 其中:filename为库文件名,必须带扩展名.lib,缺省名为nom.lib,列出所有库文件 3. 电源描述语句: 3.1 独立电源描述语句: 独立电压源描述语句:VXXXXXXX N+ N- <(DC)DC/TRAN VALUE> 独立电流源描述语句:IXXXXXXX N+ N- <(DC)DC/TRAN VALUE> 参数含义:N+ N-为电源的正负节点,电流源的电流正方向为使电流从N+节点流出并流入N-节点 DC/TRAN VALUE指电源的直流或随时间变化的瞬时值,缺省为0 独立电源按直流、交流、瞬态源等可细分为如下几种:3.1.1 直流电源: 直流电压源:VXXXXXXX N+ N- [DC] VALUE 直流电流源:IXXXXXXX N+ N- [DC] VALUE3.1.2 交流电源: 交流电压源:VXXXXXXX N+ N- AC > 交流电流源:IXXXXXXX N+ N- AC > 其中:ACMEG为正弦波幅值,缺省值为1 ACPHASE为正弦波的初始相位,缺省为03.1.3 瞬态电源: 脉冲电压源:VXXXXXXX N+ N- PULSE (V1 V2 TR TF PW PER) 脉冲电流源:IXXXXXXX N+ N- PULSE (I1 I2 TR TF PW PER) 其中:V1 I1为起始值 V2 I2为脉动值 TD为延迟时间,缺省值为0 TR为上升时间,缺省值为TSTEP TF为下降时间,缺省值为TSTEP PW为脉冲宽度,缺省值为TSTOP PER为周期,缺省值为TSTOP (TSTEP TSTOP为瞬态分析时的步长和中止时间) 3.1.4 瞬态正弦电源: 瞬态正弦电压源:VXXXXXXX N+ N- SIN (V0 VA F TD THETA) 瞬态正弦电流源:IXXXXXXX N+ N- SIN (I0 IA F TD THETA) 其中:V0 I0为偏置值 VA IA为振幅 F为频率,缺省值为1/TSTOP TD为延迟时间,缺省为0 THETA为阻尼时间,缺省为0 正弦曲线表达式:V(T)=V0+VA*SIN(2*PI*(F*(T-TD)+PHASE/360))*EXP(-(T-TD)*THETA) I(T)=I0+IA*SIN(2*PI*(F*(T-TD)+PHASE/360))*EXP(-(T-TD)*THETA)3.1.5 瞬态指数电源: 瞬态指数电压源:VXXXXXXX N+ N- EXP(V1 V2 TD1 TAU1 TD2 TAU2) 瞬态指数电流源:IXXXXXXX N+ N- EXP(I1 I2 TD1 TAU1 TD2 TAU2) 其中:V1 I1为初始值 V2 I2为终止值 TD1为上升延迟时间,缺省为0 TAU1为上升时间常数,缺省为TSTEP TD2为下降延迟时间,缺省为TD1+TSTEP TAU2为下降时间常数,缺省为TSTEP3.1.6 分段线性电源: 分段线性电压源:VXXXXXXX N+ N- PWL (T1 V1 ) 分段线性电流源:IXXXXXXX N+ N- PWL (T1 I1 )3.1.7 瞬态单调调频电源: 瞬态单调调频电压源:VXXXXXXX N+ N- SEFM (V0 VA FC MDI FS) 瞬态单调调频电流源:IXXXXXXX N+ N- SEFM (I0 IA FC MDI FS) 其中:V0 I0为偏置 VA IA为幅度 FC为载波频率,缺省值为1/TSTOP MDI为调制系数 FS为信号频率,缺省值为1/TSTOP 调频曲线表达式:V(T)=V0+VA*SIN[(2*PI*FC*T)+MDI*SIN(2*PI*FS*T)] 3.2 线性受控源描述语句:3.2.1 压控电压源:EXXXXXXX N+ N- NC+ NC- VALUE 其中:NC+ NC-为控制电压支路的正负节点3.2.2 压控电流源:GXXXXXXX N+ N- NC+ NC- VALUE3.2.3 流控电流源:HXXXXXXX N+ N- VNAME VALUE 其中:VNAME为控制电流流过的电压源的名称3.2.4 流控电流源:FXXXXXXX N+ N- VNAME VALUE 二、分析语句:1. 直流分析:1.1 直流工作点分析:.OP1.2 直流扫描分析:.DC VAR START STOP INC 其中:TYPE为扫描类型,线性为LIN、数量级为DEC、倍频程为OCT、列表为LIST VAR为扫描变量 START STOP为扫描变化范围 INC是扫描步长或者点数,必须为正数 VAR2是第二个扫描变量(外循环),可选项1.3 直流小信号传输函数分析:.TF OUTVAR INSRC 其中:OUTVAR为输出变量 INSRC为小信号输入源名称1.4 直流小信号灵敏度分析:.SENS1.5 节点电压设置:.NODESET 2. 交流小信号分析:.AC TYPE Nx FSTART FSTOP2.1 主要的3种形式:线性 .AC LIN NP FSTART FSTOP 数量级 .AC DEC ND FSTART FSTOP 倍频程 .AC OCT NO FSTART FSTOP 其中:NP为步长 ND为变化点数 NO为变化点数2.2 噪声分析:.NOISE OUTV INSRC NUMS 其中:OUTV为某节点上总的噪声输出电压 INSRC为作噪声输入基准的独立电压源或独立电流源名 NUMS为频率间隔点数,在每个频率处打印出电路中每个噪声源的贡献 3. 瞬态分析:3.1 时域波形分析:.TRAN TSTART TSTOP DISPSTART STEPMAX 其中:TSTART为起点时间 TSTOP为终点时间 DISPSTART为显示起点 STEPMAX为瞬态分析最大步长,可缺省而由系统选3.2 傅立叶分析:.FOUR FREQ OV1 其中:FREQ为基频 OV1 OV2 OV3为要求的输出变量3.3 瞬态初始条件设置:.IC 4. 综合分析:4.1 最坏情况分析:.WCASE (ANALYSIS) (OUTVAR)