970 likes | 1.18k Views
PSPICE 电子线路辅助设计. 主讲人:徐莹隽. 第一部分. 计算机辅助电路分析基础. 计算机辅助电路设计的特点. 电路规模可以从简单到复杂 电路的计算精度非常高 提高了设计效率,减少了设计周期 可以进行极限状态和最坏情况分析 可以进行容差分析和优化设计. 电路设计流程. 常见电路网络. 线性电阻网络 线性动态网络 非线性电阻网络 非线性动态网络. 常见电路分析内容. 直流分析 求线性电阻网络的直流解,给出节点及支路的电压和电流值,给出直流功耗。
E N D
PSPICE电子线路辅助设计 主讲人:徐莹隽
第一部分 计算机辅助电路分析基础
计算机辅助电路设计的特点 • 电路规模可以从简单到复杂 • 电路的计算精度非常高 • 提高了设计效率,减少了设计周期 • 可以进行极限状态和最坏情况分析 • 可以进行容差分析和优化设计
常见电路网络 • 线性电阻网络 • 线性动态网络 • 非线性电阻网络 • 非线性动态网络
常见电路分析内容 • 直流分析 求线性电阻网络的直流解,给出节点及支路的电压和电流值,给出直流功耗。 • 工作点分析 求出非线性网络的静态工作点,对动态网络求出初始条件、偏置或平衡状态下的工作点(将网络中的所有电容开路,电感短路得到的)。这些也是非线性网络的直流解 • 驱动点分析 求出非线性电阻网络的驱动点电流和驱动点电压之间的关系,这也是网络的直流解。
常见电路分析内容 • 传输函数分析 求出电阻网络的输出电压或电流和输入电压或电流之间的关系,可得到网络的输入阻抗和输出阻抗。这也是网络的直流解 • 交流分析 求出线性网络的频率响应特性,即频域分析。对非线性网络进行小信号交流特性分析(将非线性元件在工作点处线性化,然后分析这个被线性化电路的稳态交流响应)。可得到网络的幅频特性与相频特性,得到在给定频率下的输入与输出阻抗等。对非线性动态网络可求出有输入或无输入时的稳态周期解
常见电路分析内容 • 瞬态分析 对动态网络进行时域分析,求出其瞬态响应。(在用户或程序确定的初始条件下。在有或无输入信号时,求出随时间变化的输出波形。) • 噪声分析 对线性网络进行频域或时域的等效输入噪声和输出噪声特性分析(将噪声源作为输入,求这时的交流解或瞬态解) • 温度特性分析 求出在各种温度网络的各种特性
常见电路分析内容 • 灵敏度分析 计算电路中元件参数变化时对输出量的影响。灵敏度分析可在直流工作情况下进行,也可在交流和瞬态工作条件下进行。 • 容差分析 在元件参数各自的容差范围内求出对电路特性的影响.PSPICE中可用蒙特卡罗分析对直流,交流和瞬态特性进行容差分析. • 最坏情况分析 求电路特性的最坏情况(在电路元件参数取最坏的极端值时求电路的特性)
常见电路分析内容 • 付里叶分析 在给定频率下对网络进行瞬态分析。将得到的输出波形再做频谱分析求出输出变量的基频和谐波量。 • 失真分析 求电路在小信号条件下的失真特性。
第二部分 PSPICE程序基础
SPCIE和PSPICE • Simulation Program with Integrated Circuit Emphasis • 1972年由加州大学伯克利分校开发完成 • 程序代码完全开放,用户可以根据需要修改 • 1988年SPICE成为美国国家标准 • 1984年Microsim公司开发完成PSPICE成为第一个用于PC平台的SPICE模拟器 • 《通用电路模拟技术及软件应用SPICE和PSPICE》姚立真
程序清单 “标题”,由任意字符串构成作为打印的标题,但必须要有。 载入库文件,此处载入的是三极管的库文件 Example1: Simple Amplifier .LIB BIPOLAR.LIB V1 1 0 AC 1 SIN(0 10M 1K) R1 1 2 1K C1 2 3 10U R2 4 3 50K R3 3 0 10K R7 4 5 3K *Included A Bipolar Q1 5 3 6 Q2N2222A R8 6 0 1K C2 6 0 100U C3 5 7 10U R6 7 0 1K V2 4 0 DC 12V .TRAN 1US 10MS .PROBE .END 电路的描述语句:包括定义电路拓扑和元件值的元件,半导体器件,电源等描述语句。其位置在描述语句的第二行与最后结束语句行之间的任何地方。 电路特性分析的控制语句:包括定义的模型语言性能分析语句和输出控制语句。 注释语句:是用户对程序运算和分析时加以说明的语句,其一股形式为 *字符串 结束语句,表示程序结束
输入描述语句 • 输入描述由若干条输入描述语句构成,语句中的信息由字母字符串组成的名字段、数字段和分隔符构成。 • 名字段(名称):其第一个字16必须是字母A至Z,其它没有任何限制。在描述元件时第一个字必须是指定的元件器件类型字母 • 数字段(数值):可以是整数、浮点数、整数或浮点数后面跟整数指数和整数或浮点数后面跟比例因子表示 • 比例因子:有十种比例因子,它们的符号和代表的值为:T=1E12、G=1E9、MEG=1E6、K=1E3、MIL=25.4E-6、M=1E-3、U=1E-6、N=1E-9、P=1E-12、F=1E-15
输入描述语句 • 分隔符:包括空格、逗号、等号、左括号或右括号等 • 续行号:若一行信息表达不完,可在第二行的第一列上打一个“十”号以表示该行语句是上一语句的继续。 • 单位:包括米、千克、秒等。单位后缀在程序中是被忽略的。任何非比例因子后缀字母都可用作单位后缀。 • 方向:采用常用习惯标准,即规定支路电流的正方向和支路电压假定的正方向一致。 • 节点编号;一般取任意的正整数,不能为负数,但也可以是任意字母数字串,可以是不连接的。接地点一定是编号为零的参考点,这是事先定义好的,意为接地或共同节点。节点“0”或“000”是等效的。
第三部分 PSPICE元器件描述语句
元件描述(电阻) • 语句格式R(name) N+ N- <ModName> Value • 例: R1 1 2 100 RF 4 5 RMOD 12K • N+和N-是电阻所连接的正、负两个节点号。当电阻上为正电压时,电流从N+节点流出通过电阻流入N-节点。 • < ModName>为模型名,其内容由.MODEL语句给出。 • Value是电阻值,单位为欧姆,可正可负,但不能为零。 • PSPICE元器件描述
元件模型和描述(电容) • 语句格式C(name) N+ N- <ModName> Value IC=V0 • 例: C1 1 2 10U Cload 4 5 CMOD 10P • N+和N-是电容所连接的正、负两个节点号。当电容上为正电压时,电流从N+节点流出通过电容流入N-节点。 • < ModName>为模型名,内容由.MODEL语句给出。 • Value是电容值,单位法拉,可正可负,但不能为零。 • IC定义了电容的初始(时间为0)电压V0。注意只有在瞬态分析语句.TRAN中的任选项关键字UIC规定时,IC规定的初始条件才起作用。
元件模型和描述(电感) • 语句格式L(name) N+ N- <ModName> Value IC=I0 • 例: L1 1 2 10U LA 4 5 LMOD 10M • N+和N-是电感所连接的正、负两个节点号。当电感上为正电压时,电流从N+节点流出通过电感流入N-节点。 • <ModName>为模型名,其内容由.MODEL语句给出。 • Value是电感值,单位亨利,可正可负,但不能为零。 • IC定义了电感的初始(时间为0)电流I01。注意只有在瞬态分析语句.TRAN中的任选项关键字UIC规定时,IC规定的初始条件才起作用。
在语句中如果给出了< ModName> ,此时就会有以下四个变化: (1)相互耦合的电感器变成了一个非线性磁芯器件,磁芯的磁通量的磁场强度B—H特性可用Jils—Atherton模型分析。 (2)电感器成了“线圈”,故原来设定为电感的值现在要设定为线圈匝数。 (3)电感器清单里可能只有一个电感器。 (4)模型语句需设定模型参数。 元件模型和描述(互感) • 语句格式K(name) L(1st name)L(2nd name) Value +< ModName> <size value> • 例: L1 1 2 0.5mH L2 4 5 0.5mH K1 L1 L2 0.9999 • 其中L(1st name) 和L(2nd name) 是两个耦合电感的名字,Value是耦合系数K的值,它必须大于零且小于或等于1,其耦合规则采用通常的在每个电感的第一个节点上加上一个“.”作为极性端。 • < ModName>为非线性磁心模型名, <size value> 缺省值为1,它用来衡量磁横截面大小的,它代表的是薄片的层数。因此对每种薄片只需有一种模型语句。
元件模型和描述(无损传输线) • 语句格式T(name) NA+ NA- NB+ NB- Z0=<value> + [TD=<value>] [F=<value> NL=<value>] • T(name) 为传输线名字,NA+ NA-为输入端口节点, NB+ NB-为输出端口节点, NA+ NB+定义为正节点, NA- NB-定义为负节点。正电流从NA+ 流向NA-,从 NB+流向 NB- 。Z0为特性阻抗 • 传输线长度可用两种形式表示,一种是由传输线的延迟TD决定的;另一种是给出一个频率F和参数NL来确定,NL是在频率为F时相对于传输线波长归一化的传输线电学长度.若规定了F而未给出NL,则认为NL=0.25,即F是1/4波长时的频率。
元件模型和描述(压控开关) • 语句格式S(name) N+ N- NC+ NC- <ModName> • 例子:S1 6 5 4 0 SMOD1 • 节点N+和N-分别是开关的正和负节点,NC+和NC-分别是控制的正和负节点 • <ModName> 是模型名,由.MODEL语句说明。
元件模型和描述(流控开关) • 语句格式W(name) N+ N- VN <ModName> • 例子:W1 6 5 VIN WMOD1 • 节点N+和N-分别是开关的正和负节点,VN是控制电流流过的电压源 • <ModName> 是模型名,由.MODEL语句说明。
元件描述(二极管) • 语句格式:D(name) N+ N- <ModName> <AREA> +<OFF> <IC=VD> • 例:D1 3 4 DMOD1 • 其中N+和N-分别是二极管的正负节点,正电流从正节点流出,通过二极管流入负节点。 • <ModName>是模型名,可由用户自行选定。AREA是面积因子,OFF规定在直流分析时在器件上所加初始条件为关态。如未指定AREA则缺省值为1.0。若瞬态分析不要求从静态工作点开始,就可规定IC=VD为初始条件。
元件描述(三极管) • 语句格式:Q(name) NC NB NE <NS> <ModName> <AREA> +<OFF> <IC=VBE,VCE> • 例:Q1 3 4 5 QMOD1 • 其中NC,NB,NE,NS分别是集电极、基极、发射极和衬底的节点。NS是可选项,若未规定则认为NS接地。 • <ModName>是模型名,可由用户自行选定。AREA是面积因子,OFF规定在直流分析时在器件上所加初始条件为关态。如未指定AREA则缺省值为1.0。若瞬态分析不要求从静态工作点开始,就可规定IC=VBE,VCE为初始条件。
元件描述(JFET) • 语句格式:J(name) ND NG NS <ModName> <AREA> +<OFF> <IC=VDS,VGS> • 例:J1 3 4 5 JMOD1 • 其中ND,NG,NS是漏极、栅极、源极的节点。 • <ModName>是模型名,可由用户自行选定。AREA是面积因子,OFF规定在直流分析时在器件上所加初始条件为关态。如未指定AREA则缺省值为1.0。若瞬态分析不要求从静态工作点开始,就可规定IC=VDS,VGS为初始条件。
元件描述(MOSFET) L和W分别是沟道的长和宽,单位为米。AD和AS是漏和源扩散区的面积,单位为平方米,PD和PS分别是漏结和源结的周长,单位米。L、W缺省值为100mm,AD、AS的缺省值为零。NRD和NRS分别是漏和源扩散区等效的方块数,该值乘以 .MODEL语名中规定的薄层电阻RSH,就可计算出每个晶体管漏和源的寄生串联电阻。NRG和NRB为栅极和衬底扩散区的方块数。PD和PS缺省值为0,NRD和NRS缺省值是1,NRG和NRB缺省值为0。M是与器件面积有关的“倍数”,它模拟了多个器件并联的效应。MOSFET的有效宽度,结和覆盖电容,结电流要乘M,寄生电阻值(如RD,RS)要除以M。 • 语句格式:M(name) ND NG NS NB <ModName> +<L=value> <W=value> <AD=value> +<AS=value> <PD=value> <PS=value> + <NRD=value> <NRS=value> <NRG=value> + <NRB=value> <M> +<OFF> <IC=VDS,VGS,VBS> • 例:M1 3 4 5 MMOD1 • 其中ND,NG,NS,NB是漏极、栅极、源极和衬底的节点。 <ModName>是模型名,可由用户自行选定。
元件描述(GaAs FET) • 语句格式:B(name) ND NG NS <ModName> <AREA> +<OFF> <IC=VDS,VGS> • 例:B1 3 4 5 BMOD1 • 其中ND,NG,NS是漏极、栅极、源极的节点。 • <ModName>是模型名,可由用户自行选定。AREA是面积因子,OFF规定在直流分析时在器件上所加初始条件为关态。如未指定AREA则缺省值为1.0。若瞬态分析不要求从静态工作点开始,就可规定IC=VDS,VGS为初始条件。
元件描述(数字器件) 时域模型,包括上升时间、下降时间、传输延时等 输入输出模型名,描述负载和驱动特性 基本类型参数 例子: 2、 UIOI STIM(4,4) IN1 IN2 IN3 IN4 +IO_STM TIMESTEP=1NS +0S 0 +LABEL=STARTLOOP + 10C 1 + 20C A + +5NS 0 + 30C GOTO STARTLOOP 1 TIMES + +10C 1 例子: 3、 UEX5 STIM ( 16, 4444 ) $G_DPWR $G_DGND + 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 + IO_STM TIMESTEP = 10ns + 0s 0000 + LABEL=STARTLOOP + 10c INCR BY 0001 + 20c GOTO STARTLOOP UNTIL GE 000A 基本类型 例子: 1、 UCLOCK STIM(1,1) OUT1 IO_STM +0S 0 +LABEL=STARTLOOP + +5NS 1 + +5NS 0 + +5NS GOTO STARTLOOP –1 TIMES • 语句格式: U(name) <primitive type> (<parameter value>) +<node> <(timing mode) name> +<(I/O model) name> +<Mntymxdly=(delay select) value> +<I/O_level=(interface model) value> • 例:U1 NAND(2) 1 2 10 Do_Gate I/O_PET 延迟选择 I/O界面模型选择
信号(节点)数指定的一个数字序列。1表示二进制,3表示8进制,4表示16进制信号(节点)数指定的一个数字序列。1表示二进制,3表示8进制,4表示16进制 激励器件输出信号或节点数目 数字输出节点 元件描述(数字激励源) 每个节点的值(0,1,X或Z) • 语句格式: U(name) STIM (<Width>,<format array>)<node> +<I/O model> <TIMESTEP=(step size)> +<<time>,<value>> +<LABEL=(label name)>+<<time> GOTO <(label) name> <n>TIMES> + <<time> GOTO <(label) name>UNTIL GT <value>> + <<time> GOTO <(label) name> UNTIL GE <value>> + <<time> GOTO <(label) name> UNTIL LT <value>> + <<time> GOTO <(label) name> UNTIL LE <value>> + <<time> INCR BY <value>> + <<time> DECR BY <value>> (时间)前缀:“十” 如果在前面直接加‘十”,那么就假定该时间是用来说明相对于前一时间参考点的相对时间,如果前面不加“十”,则就假定该时间是相对于0的绝对时间。 后缀:S表示秒,C表示步(周期),步长是由该激励源的TIMESTEP参数的值来确定的。
元件描述(独立电压源) • 语句格式:V(name) N+ N- <DC value> +<AC (magnitude value) (phase value) > +<transient value> +<PULSE> <SIN> <EXP> <PWL> <SFFM> • 例: Vcc 3 0 DC 6V Vin 1 0 DC 2 AC 1 30 SIN(0 2V 10kHz) • 其中N+和N-分别是独立电压源的正负节点,正电流从正节点进入独立电压源流入负节点。
元件描述(独立电流源) • 语句格式:I(name) N+ N- <DC value> +<AC (magnitude value) (phase value) > +<transient value> +<PULSE> <SIN> <EXP> <PWL> <SFFM> • 例: I1 3 0 DC 6V Iin 1 0 DC 2 AC 1 30 SIN(0 2V 10kHz) • 其中N+和N-分别是独立电流源的正负节点,电流从正节点流入独立电流源,从负节点流出。独立电流源不必接地
元件描述(指数源) • 一般形式:EXP(V1 V2 TRD TRC TFD TFC) V1 初始电压 V2 峰值电压 TRD 上升延时时间 TRC 上升时间常数 TFD 下降延时时间 TFC 下降时间常数
元件描述(脉冲源) • 一般形式:PULSE(V1 V2 TD TR TF PW PER) V1 初始电压 V2 脉冲电压 TD 延迟时间 TR 上升时间 TF 下降时间 PW 脉冲宽度 PER 脉冲周期
元件描述(分段线性源) • 一般形式:PWL (T1 V1 T2 V2 ….TN VN) Ti 时间点 Vi 该时间点电压值
元件描述(单频调频源) • 一般形式:SFFM (V0 VA FC MOD FS) V=V0+VAsin[(2πFCt)+Msin(2πFSt)] V0 偏置电压 VA 电压振幅 FC 载波频率 MOD 调制系数 FS 信号频率
元件描述(正弦源) • 一般形式:SIN (V0 VA FREQ TD ALPHA THETA) V=V0+VAe-α(t-td)sin[2πf(t-td)-θ] V0 偏置电压 VA 电压振幅 FREQ 频率 TD 延迟时间 ALPHA 阻尼因子 THETA 相位延迟
元件描述(多项式源) • 一般形式:POLY(n) N1+ N1- N2+ N2- .. Nn+ Nn- +P0 P1 … Pm n=1: Y=P0+P1A+P2A2+ P3A3+….. PnAn n=2: Y= P0+P1A+ P2B+ P3A2+ P4AB+ P5B2 + P6A3+P7A2 B+ P8AB2 + P9B3…….. n=3: Y= P0+P1A+ P2B + P3C+ P4A2+ P5AB+ P6AC + P7B2 + P8BC + P9C2 + P10A3 + P11A2 B+ P12A2 C + P13AB2 + P14ABC + P15AC2 + P16B3 + P17B2 C + P18BC2 + P19C3 +P20A4 + …..
元件描述(线性受控电压源) • 语句格式:电压控制电压源E(name) N+ N- NC+ NC- <(voltage gain) value> 电流控制电压源H(name) N+ N- VN <(transresistance) value> • 例: E1 3 4 1 0 6 Hin 1 0 Vin 2 • 其中N+和N-分别是电压源的正负节点, NC+和NC-分别是控制电压源的正负节点。VN为控制电流流过的电压源
元件描述(线性受控电流源) • 语句格式:电压控制电流源G(name) N+ N- NC+ NC- <(transconductance value> 电流控制电流源F(name) N+ N- VN <(current gain) value> • 例: G1 3 4 1 0 6 Fin 1 0 Vin 2 • 其中N+和N-分别是电压源的正负节点, NC+和NC-分别是控制电压源的正负节点, VN为控制电流流过的电压源
元件描述(非线性受控电压源) • 语句格式:非线性电压控制电压源E(name) N+ N- Poly(n) +NC1+ NC1- NC2+ NC2- .. NCn+ NCn- +P0 P1 P2…Pm <IC=value> 非线性电流控制电压源H(name) N+ N- Poly(n) VN1 VN2.. VNn +P0 P1 P2…Pm <IC=value> • 非线性电流控制电流源常作为非线性电阻 例子: E1 10 12 POLY(2) 3 0 5 0 0 1 1.5 1.2 1.7 1 V=V(3)+1.5 V(5)+1.2[V(3)]2+1.7 V(3) V(5)+ [V(5)]2 H1 25 40 POLY VN 0 1 1.5 1.2 1.7 V=I(VN)+1.5[I(VN)]2+ 1.2[I(VN)]3+ 1.7[I(VN)]4
元件描述(非线性受控电流源) • 语句格式:非线性电压控制电流源G(name) N+ N- Poly(n) +NC1+ NC1- NC2+ NC2- .. NCn+ NCn- +P0 P1 P2…Pm <IC=value> 非线性电流控制电流源F(name) N+ N- Poly(n) VN1 VN2.. VNn +P0 P1 P2…Pm <IC=value> • 非线性电压控制电流源常作为非线性电导 例子: G1 10 12 POLY(2) 3 0 5 0 0 1 1.5 1.2 1.7 1 I=V(3)+1.5 V(5)+1.2[V(3)]2+1.7 V(3) V(5)+ [V(5)]2 F1 25 40 POLY VN 0 1 1.5 1.2 1.7 I=I(VN)+1.5[I(VN)]2+ 1.2[I(VN)]3+ 1.7[I(VN)]4
模型描述语句 • 语句格式:.MODEL MNAME TYPE(P1=VAL1 +P2=VAL2 P3=VAL3…. Pn=VALn) <DEV=val> <LOT=val> • MNAME是模型名,它和器件描述语句相同,该语句可指定一个或多个器件使用的一组模型参数。 • TYPE为元器件模型类别,每种类别有自己的一套参数。给定模型类别后,模型参数值由括号内参数表中的参数值来给出,对模型可设置部分参数值或全部参数值。末给定的参数名和值就由程序中的缺省值代替。 <DEV=val> <LOT=val>是两个容差参数设定。DEV和LOT的规定值可以是百分数也可以是数值。DEV是描述不连续的独立器件,如印刷电路板上的元器件或不同批管芯的容差。LOT描述的是连续的、器件批,如集成电路一批中的各个晶片的偏差,以及芯片中匹配器件的容差。
子电路描述语句 在子电路中所定义的那部分器件模型或子电路的定义都只是局部的,在子电路定义之外不能识别其含意。子电路定义中的任何节点也都是局部量,接地点是全局量。所以子电路定义中的节点号、器件名、MODEL的说明可以和外部的相同,而不会冲突。 • 语句格式: .SUBCKT SUBNAME N1<N2 N3 …Nn> • 其中SUBNAME 是子电路名,N1,N2…是子电路外部节点号,不能为零。子电路的定义是以.SUBCKT语句开始的,其后跟一组元件语句定义子电路,直到语句.ENDS为止。子电路定义中不能出现控制语句,但可包括器件模型,子电路调用,其它子电路定义等其它内容。
例子: 定义一个名为OPA的子电路,1、2是两个输入节点,3为输出节点,节点4是电源Vcc .SUBCKT 0PA l 2 3 4 {一组子电路拓扑结构描述语句} .ENDS 调用语句为: X1 7 9 3 4 OPA 在调用子电路时,电路节点顺序要与子电路节点顺序一致,该语句规定电路的7、9、3、4节点分别代表OPA子电路的输入1、2,输出3和电源Vcc节点。 子电路调用 • 语句格式:X(name) N1<N2 N3 …Nn> SUBNAME • X是关键字,调用子电路只要规定以X为首的假元件名即可。其后是用来连接到子电路上的电路节点号,最后是子电路名。子电路的外节点号由于是局部的,所以和电路调用时的节点号无关,但电路节点号的顺序必须.SUBCKT语句中定义的顺序一致。
库文件调用语句 • 语句格式:.LIB <file name> • 例: .LIB .LIB DIODE.LIB .LIB C:\PSPICE\LIB\BIPOLAR.LIB • .LIB语句用于参考和调用存在于库文件中的模型或子电路库。 • <file name> 是文件名,可以是任意字符串。其扩展名.LIB不能缺省,如果设定一个文件名就必须有扩展名。若<file name>缺省,其缺省值为NOM.LIB。NOM.LIB将引导查找所有其它的库文件。