当前位置:首页 >> 信息与通信 >>

SPICE电路仿真


SPICE 电路仿真
陆许明 2011-05-16

? 背景介绍

? SPICE 语法 ? SPICE 仿真 ? SPB, Multisim 实例

2

什么是 SPICE?
? Simulation Program with Integrated Circuit Emphasis ? 专门针对模拟电路仿真 ? 由美国加州大学伯克利分校电工和计算机科学系开发 ? 1971年第一版SPICE1推出,使用FORTRAN语言设计; 1975年SPICE2发布;1985年SPICE3推出,并转为C语 言开发;1988年被定为美国国家标准 ? 广泛应用于电路板设计和芯片设计 ? 众多电路元件制造商都提供其产品的SPICE仿真模型 ? “SPICE” 既指电路网表,也指仿真器

3

各种版本的SPICE
? 伯克利原始版SPICE,最新版为SPICE3f5, 采用BSD许可证,源码地址:
http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm

? NGSPICE,采用BSD许可证,源码地址:
http://ngspice.sourceforge.net/

? Circuit Maker Student Edition,Windows平台,集成原理图 输入环境,免费使用:
http://my.ece.ucsb.edu/bobsclass/2C/Simulation/circuit_maker.htm

? PSpice,Cadence公司的SPICE软件,集成在SPB中,电路 板级仿真功能最强大 ? HSpice,Synopsys公司的SPICE软件,主要用于芯片设计 中的模拟仿真 ? Multisim, NI公司的EDA软件,仿真内核包括 SPICE3f5和Xspice 4

传统电路板设计流程
前期准备 (系统框图、器件 选型、多种方案) 手工步骤 原理图输入 计算机程序 生成 仿真网表 更改设计 网表
(SPICE, Verilog, VHDL)

生成 布板网表 网表

文件格式

仿真

PCB布板

Gerber文件

PCB制造

焊板

测试

5

SPICE仿真流程 1. 获取描述电路的网表文件
? 直接手工编辑网表文件 ? 画出电路原理图,用软件自动生成网表文件

2. 将网表文件输入SPICE软件进行仿真 3. 输出或打印仿真结果

6

? 背景介绍

? SPICE 语法 ? SPICE 仿真 ? SPB, Multisim 实例

7

SPICE网表基本结构
? 标题行 (Title Line)
? 网表中唯一不需以特殊字符开头的行 ? 一行描述一个元件 ? 每行元件包括三个部分
1. 首先是元件名:元件名的第一个字符表示元件类型, 如R表示电阻,C表示电容,L表示电感。 2. 第二部分是引脚连接:将元件的各个引脚连接到电路 的节点中。 3. 最后是元件参数,用于描述元件的特性。 例: R1 1 2 1K C1 0 1 33p

? 元件行 (Element Line)

? 结束行 (End Line)
? 最后一行必须为结束行:.end (注意以点开头)
8

元件类型
代码
R C L K D E F G H

元件类型
电阻 电容 电感 互感 二极管 VCVS CCCS VCCS CCVS
9

代码
V I S W T Q J M Z

元件类型
独立电压源 独立电流源 压控开关 流控开关 传输线 三极管BJT JFET MOSFET MESFET

数字表示
? 数字表示可以用整数、浮点数和指数 如:3, 5, 1.62, 2.47, 1.45E-12, 1.25E+4 ? 比例因子

10

其他约定
? 网表文件不区分大小写 ? 网表文件以行为单位,如果一行数据没有写完 需要另起一行时,续行的第一个字符必须是“+” ? 数据之间的分隔符可以采用空格或者逗号 ? 电路中必须含有节点0,表示参考地 ? 电路中任意节点必须有到节点0的直流连接 ? 电路不能含有由电压源和电感构成的回路 ? 电路不能含有由电流源和电容构成的割集(cut-set)

11

其他约定(续)
? 注释符“*”,在一行的开头注释一整行 ? .model 开头的行定义具体的模型,例如定义一种 阻值为1K的电阻 .model 模型名称 元件类型 (参数1 参数2 …) 例: .model MOD1 npn (bf =50 is=1e-13 vbf=50) ? 网表的第一行为标题行,不管其是否以 “*” 开头

12

网表实例
右图电路中 R1 ? R2 ? R3 ? 10?
U s ? 1V

I s ? 0.2A
VCCS的控制系数

g ? 0.2S

EX1 VS 2 IS 0 G 0 R1 1 R2 1 R3 3 .END

3 1 3 0 2 0

DC 1 DC 0.2 1 0 0.2 10 10 10
13

? 背景介绍

? SPICE 语法 ? SPICE 仿真 ? SPB, Multisim 实例

14

SPICE分析的类型
? .op – Operating point,计算电路的直流偏置状态 ? .dc – DC sweep,当电路中某一参数在一定范围 内变化时计算相对应的电路直流偏置特性 ? .ac – 计算电路的交流小信号频率响应特性 ? .tran – Transient,瞬态分析,在给定激励信号的 作用下,计算电路输出端的瞬态响应 ? .noise – 噪声分析 ? .pz – Pole-zero analyse,零极点分析 ? .disto – 失真分析 ? .tf – Transfer function,直流小信号传递函数分析
不同仿真器支持的分析类型集不一定相同,有的支持更多类型 的分析,有的只支持上述类型的一部分。
15

SPICE仿真器的功能
? 导入网表文件 ? 根据分析类型指令运行相应的仿真分析 ? 支持命令行交互(CLI)模式和批处理(batch)模式
? 在批处理模式下,各种控制指令都以“.”开头; ? 在命令行交互模式下,各种控制指令不需要“.”

? 提供打印输出命令(print) ? 提供绘制曲线命令(plot)

16

SPICE仿真器
为了更好地关注SPICE仿真,本节使用NGSPICE作为 演示工具。附件的 software 目录下带有此软件。 Windows 用户将 ngspice.zip 解压缩到D盘,然后将 路径 D:\ngspice\bin 添加到 PATH 环境变量,即可完成 安装。 Linux 和 Mac OS 用户则使用源码进行编译安装, 源码包: ngspice-22.tar.gz。

17

例程1—静态工作点分析
电路如右图,上一节 已经分析过其SPICE描述。 1. 在记事本中输入如下 SPICE描述,在上一节的 描述基础上增加了倒数第 二行,直流偏置分析指令。 保存到目录E:\spice,文件名取ex1.cir
EX1 VS 2 IS 0 G 0 R1 1 R2 1 R3 3 .op .END 3 1 3 0 2 0 DC DC 1 10 10 10 1 0.2 0 0.2

2. 打开终端 开始 -> 运行 -> 输入“ cmd” -> 确定

18

例程1—静态工作点分析(续)
3. 在终端输入以下命令, 进入目录E:\spice E: cd spice 4. 使用 ngspice 的批处理模式仿真ex1.cir,命令: ngspice -b -o ex1.log ex1.cir ngspice表示调用ngspice程序,-b 表示采用批处理 模式,-o ex1.log 表示将结果输出到文件ex1.log中, ex1.cir是需要仿真的spice文件。
Node ------V(1) V(3) V(2) Voltage ------------5.000000e+000 7.000000e+000 8.000000e+000

5. 执行完后在E:\spice目录下 打开ex1.log,可以看到各 节点电压。
19

例程2—交流分析
R1 ? 0.45k? R2 ? 1k? RI ? 1M? R0 ? 100? R3 ? 500? R4 ? 1k? C1 ? C2 ? 4μF VCVS的增益 A ? 5 ? 105 输入正弦电压 ui 的幅值为2V,频率可变。
电路如下图所示,其中

要求在1Hz~10kHz范围内,按每个数量级去20个频率 点,绘制输出电压 u4 的幅频特性。

20

例程2—交流分析(续)
1. 电路描述: 用记事本或其他编辑软件列出电路的SPICE网表,并保存 到目录E:\spice,文件名为ex2.cir
EX2 VIN 1 0 AC 2V R1 1 2 0.45K R2 2 0 1K RI 3 0 1MEG R0 5 4 100 R3 3 4 500 R4 4 0 1K C1 2 3 4U C2 2 4 4U E1 5 0 0 3 500K .END
21

例程2—交流分析(续)
2. 用 ngspice 的命令行交互模式进行仿真: 打开 Windows 的 cmd 终端,进入到目录E:\spice,输入命 令:ngspice ex2.cir 此命令将运行ngspice程序的命令行交互模式,并导入SPICE 网表ex2.cir。

22

例程2—交流分析(续)
3. 运行交流分析 在ngspice的命令行输入框中输入: ac dec 20 1 10k 回车 命令中ac表示执行交流分析,dec表示按数量级变化,20表 示在一个数量级内取20个点,最后2个数字表示起始频率和终 止频率。注意在前面提到网表中不区分大小写,但ngspice的 命令行是区分大小写的,因此命令ac和dec都必须是小写字母。

23

例程2—交流分析(续)
4. 运行正确后输入如下图

5. 绘制幅频响应曲线,输入命令: plot vm(4) 回车 plot是绘制曲线命令,v表示电压,m表示幅值,括号内的 “4” 表示该电压是结点4的结点电压。
24

例程2—交流分析(续)
6. 幅频响应曲线如下图

25

例程2—交流分析(续)
7. 读取图上幅值最大点的坐标 用鼠标在图中幅值最大值出单击,ngspice的输出框会输出 该点的坐标值。如下图所示。 幅值最大频点在100Hz,输出为1.11321V。

26

例程3—瞬态分析
R1 ? R2 ? 20? R3 ? 4k? L ? 0.2H C ? 0.5μF u S (t ) ? 10? (t )V uC (0) ? 2V iL (0) ? 0.2A 绘制 uC (t ) 的波形,时间区间为0~30ms,打印时间间
电路如下图所示,其中

隔为0.1ms。

27

例程3—瞬态分析(续)
1. 电路描述: 用记事本或其他编辑软件列出电路的SPICE网表,并保存 到目录E:\spice,文件名为ex3.cir
EX3 VS 1 0 10 R1 1 2 20 R2 2 0 20 R3 3 0 4K L 2 3 0.2 IC=0.2 C 3 0 0.5U IC=2 .END

注意,电容和电感的 初始值都用IC参数来表示。
28

例程3—瞬态分析(续)
2. 用 ngspice 的命令行交互模式进行仿真 打开cmd终端并进入目录E:\spice。输入命令: ngspice ex3.cir 3. 在ngspice的命令行输入框输入命令: tran 0.1m 30m uic tran定义瞬态分析,0.1m表示计算点的时间间隔为0.1ms, 30m表示打印的终止时间,uic表示使用用户定义的初始条件 来进行瞬态分析。

29

例程3—瞬态分析(续)
4. 绘制瞬态响应曲线 plot v(3)

30

例程3—瞬态分析(续)
5. 如果要绘制电感两端的电压,可以用以下命令 plot v(2,3) 或者以下命令 plot v(2)-v(3)

31

例程4—三极管放大电路分析
电路及各元件参数如下图所示

32

例程4 —三极管放大电路分析(续)
1. 电路SPICE描述,保存为文件E:\spice\ex4.cir
Common emitter amplifier .model 2n3904 NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 Bf=416.4 Ne=1.259 + Ise=6.734f Ikf=66.78m Xtb=1.5 Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1 + Cjc=3.638p Mjc=.3085 Vjc=.75 Fc=.5 Cje=4.493p Mje=.2593 + Vje=.75 Tr=239.5n Tf=301.2p Itf=.4 Vtf=4 Xtf=2 Rb=10) V1 Vcc 0 DC 12V Q1 vc vb ve 2n3904 Rc Vcc vc 2k Re ve 0 500 R1 vb 0 7k R2 Vcc vb 33k C1 Vin vb 0.1u C2 vc Vout 0.1u RL Vout 0 100k Vsig Vin 0 ac 10mV sin(0 10mV 1kHz) .end
33

例程4 —三极管放大电路分析(续)
2. 用ngspice的命令行交互模式导入电路网表: ngspice ex4.cir 3. 瞬态分析,在ngspice的命令行输入框输入: tran 1u 5m plot vout vin

34

例程4 —三极管放大电路分析(续)
4. 交流分析,研究电路输入输出的增益: ac oct 5 100 100Meg plot -vout/vin

35

? 背景介绍

? SPICE 语法 ? SPICE 仿真 ? SPB, Multisim 实例

36

? 本节通过两个实例分别介绍SPB和Multisim中的 SPICE仿真 ? SPB是Cadence公司的高端电路板设计EDA工具。 能够给电路板设计流程的各个步骤提供EDA 辅助,包括原理图输入、封装制作、SPICE仿真、 PCB布局布线,Gerber文件导出等。 ? Multisim是NI公司推出的Windows平台的仿真 工具,使用于板级的模拟/数字电路板设计工作。 包含了原理图输入、电路硬件描述语言输入等, 具有丰富的仿真分析能力。
37

例程5—作业3-21
3-21 用结点电压法求解题3-21图所示电路中电压U

38

例程5—作业3-21(续)
1. 打开 SPB 套件的 Design Entry CIS 程序,然后选择 OrCAD Capture 作为原理图输入工具。

2. 在打开 OrCAD Capture 中 新建工程,工程类型选择 Analog or Mixed A/D 3. 在弹出的对话框中选择 PSpice A/D 作为仿真工具
39

例程5—作业3-21(续)
4. 在原理图输入页中输入原理图

40

例程5—作业3-21(续)
5. 在PSpice菜单中选择 New Simulation Profile,新建 一个仿真文件。 6. 在弹出的 Simulation Settings 对话框中选中 Analysis 标签。其中的 Analysis type 选择 Bias Point,Options 选择框选中 General Settings。最后选择确定关闭对话框

41

例程5—作业3-21(续)
7. 在PSpice菜单中选择 run,运行仿真。 8. 仿真结束后打开工具栏上的 Enable Bias Voltage Display, 及按钮 ,这时原理图中显示出了各结点的偏置电压。

42

例程6—作业7-12
7-12 题7-12图所示电路中开关闭合前电容无初始储能, t=0时开关s闭合,求t>0时的电容电压 uC (t )

43

例程6—作业7-12(续)
1. 打开 Multisim,默认已经打开了一页原理图,直接在图 中输入如下电路,然后保存工程,这里工程命名7-12。

44

例程6—作业7-12(续)
2. 因为要进行瞬态分析,因此要设定电容的初始值。 右击电容C1,选择 Properties,在弹出的 Capacitor 对话框中选择 Value 标签,勾选 Initial Conditions, 并将初始值设定为 0V。

45

例程6—作业7-12(续)
3. 在菜单 Transfer 中选择 Export Netlist,导出SPICE网表。 网表名称为7-12.cir。 4. 用记事本或其他编辑器将网表文件7-12.cir打开,可以看 到各个元器件引脚所连接的结点。例如电容C1的SPICE 描述如下:
*## Multisim Component C1 ##* cC1 6 0 3e-006 IC=0 此自动生成的网表和我们手动编辑的网表是一样的,我们可以 用 ngspice 软件仿真此网表文件。这就是我们第一节介绍的用原理图 工具自动生成网表的方法。

46

例程6—作业7-12(续)
5. 下面开始进行仿真设置。打开 Simulate 菜单,在Analysis 中选择 Transient Analysis,然后选择 Analysis Parameters 标签,设置如下参数:
Initial Conditions: User-defined Start time: 0 End time: 0.0001 Maximum time step: 1e-006

47

例程6—作业7-12(续)
6. 选择 Output 标签,设置输出变量。因为电容C1连接的结点 是6和0,因此需要把变量 V(6) 添加到 Selected variables for analysis 列表中。

7. 在 Transisent Analysis 对话框中按 Simulate 按钮,开始 仿真。
48

例程6—作业7-12(续)
8. 瞬态响应结果:

49

例程6—作业7-12(续)
9. 为了更好地理解SPICE网表在仿真过程中的作用,下面 用 ngspice 对网表 7-12.cir 进行仿真。
① 将网表 7-12.cir 复制到目录 E:\spice 中 ② 打开cmd终端并进入目录 E:\spice,输入命令 ngspice 7-12.cir ③ 在 ngspice 的命令行输入框输入命令: tran 1u 100u uic plot v(6)

10. 仿真结果如右图

50

参考文献
1. 邱关源,“电路”,第五版,附录B 2. PSPICE A brief primer,
http://www.seas.upenn.edu/~jan/spice/PSpicePrimer.pdf

3. Ngspice Users Manual Version 22 plus
http://ngspice.sourceforge.net/docs/ngspice-manual.pdf

4. Circuit simulation using gEDA and SPICE HOWTO
http://www.brorson.com/gEDA/HOWTO/gEDA_Spice_HOWTO-20050103.pdf

51


相关文章:
SPICE仿真实验报告
SPICE 仿真软件的仿真设计实验报告二极管、稳压管的仿真模型与正反向特性测试 负反馈放大电路参数的仿真分析 姓名:张梦瑶 学号:11122295 学院:机自院自动化系 二极管...
共基极放大电路spice仿真_图文
共基极放大电路spice仿真_电子/电路_工程科技_专业资料。集成电路课程设计报告——共基极放大电路 hspice 模拟 学专班学姓 院:机械与电子工程学院 业:电子科学与...
集成电路_Spice,Spectre仿真总结
集成电路_Spice,Spectre 仿真总结 Designers-Guide to Spice and Spectre 1995 USA Designers-Guide to Spice a nd Spectre — Ken Kundert 11.1 绪论 1. ...
最好用的电路仿真multisim与proteus比拼
完善的电路仿真功能 ProSPICE 混合仿真:基于工业标准 SPICE3F5,实现数字/模拟电路的混合仿真; 超过 27000 个仿真器件: 可以通过内部原型或使用厂家的 SPICE 文件自行...
电路仿真分析模块LSpice
电路仿真分析模块 LSpice LSpice 基于 SPICE3f5 仿真引擎。SPICE 是多用途的电路仿真程序,它可以用于非线性 DC 分析、非线性瞬态分析和非线性 AC 分析。电路可以...
SPICE模型的导入及仿真_图文
ADS SPICE 模型的导入及仿真一、 SPICE 模型的导入 1、打开一个新的原理图...原理图系统默认的电路符号如下: 这里我们为 BFP640 创建一个新的 NPN 电路...
Altium Designer中添加Spice仿真器件模型的方法
Altium Designer 6.9 软件中添加 Spice 仿真器件模型的方法在电子设计辅助软件中,...新版本的 Altium Designer 6.9 软件增加了电路仿真功能,能够对设计的电路进行模拟...
Spice仿真在CMOS反相器电路教学中的应用
Spice 仿真在 CMOS 反相器电路教学中的应用 摘要:讨论静态负载的 cmos 反相器及其衍生电路,介绍其结构 以及设计考虑,并用 hspice 仿真软件对各种电路在不同工作...
电源旁路SPICE仿真与现实的差距
电源旁路SPICE仿真与现实的差距_电子/电路_工程科技_专业资料。电源旁路SPICE仿真与现实的差距.docx 电源旁路——SPICE 仿真与现实的差距电源旁路——SPICE 仿真与...
Spice仿真在CMOS反相器电路教学中的应用
龙源期刊网 http://www.qikan.com.cn Spice 仿真在 CMOS 反相器电路教学中的应 用 作者:陈珠英 来源:《新课程· 上旬》2013 年第 03 期 摘要:讨论静态...
更多相关标签: