SPICE电路仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字表示
数字表示可以用整数、浮点数和指数 如:3, 5, 1.62, 2.47, 1.45E-12, 1.25E+4 比例因子
10
其他约定
网表文件不区分大小写 网表文件以行为单位,如果一行数据没有写完 需要另起一行时,续行的第一个字符必须是“+” 数据之间的分隔符可以采用空格或者逗号 电路中必须含有节点0,表示参考地 电路中任意节点必须有到节点0的直流连接 电路不能含有由电压源和电感构成的回路 电路不能含有由电流源和电容构成的割集(cut-set)
传统电路板设计流程
前期准备 (系统框图、器件 选型、多种方案) 手工步骤 原理图输入 计算机程序 生成 仿真网表 更改设计 网表
(SPICE, Verilog, VHDL)
生成 布板网表 网表
文件格式
仿真
PCB布板
Gerber文件
PCB制造
焊板
测试
5
SPICE仿真流程 1. 获取描述电路的网表文件
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
3
各种版本的SPICE
伯克利原始版SPICE,最新版为SPICE3f5, 采用BSD许可证,源码地址:
http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm
NGSPICE,采用BSD许可证,源码地址:
http://ngspice.sourceforge.net/
11
其他约定(续)
注释符“*”,在一行的开头注释一整行 .model 开头的行定义具体的模型,例如定义一种 阻值为1K的电阻 .model 模型名称 元件类型 (参数1 参数2 …) 例: .model MOD1 npn (bf =50 is=1e-13 vbf=50) 网表的第一行为标题行,不管其是否以 “*” 开头
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,打印时间间
电路如下图所示,其中
隔为பைடு நூலகம்.1ms。
21
例程2—交流分析(续)
2. 用 ngspice 的命令行交互模式进行仿真: 打开 Windows 的 cmd 终端,进入到目录E:\spice,输入命 令:ngspice ex2.cir 此命令将运行ngspice程序的命令行交互模式,并导入SPICE 网表ex2.cir。
22
例程2—交流分析(续)
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,直流小信号传递函数分析
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
不同仿真器支持的分析类型集不一定相同,有的支持更多类型 的分析,有的只支持上述类型的一部分。
15
SPICE仿真器的功能
导入网表文件 根据分析类型指令运行相应的仿真分析 支持命令行交互(CLI)模式和批处理(batch)模式
在批处理模式下,各种控制指令都以“.”开头; 在命令行交互模式下,各种控制指令不需要“.”
3. 运行交流分析 在ngspice的命令行输入框中输入: ac dec 20 1 10k 回车 命令中ac表示执行交流分析,dec表示按数量级变化,20表 示在一个数量级内取20个点,最后2个数字表示起始频率和终 止频率。注意在前面提到网表中不区分大小写,但ngspice的 命令行是区分大小写的,因此命令ac和dec都必须是小写字母。
电路如下图所示,其中
要求在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
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,频率可变。
29
例程3—瞬态分析(续)
4. 绘制瞬态响应曲线 plot v(3)
30
例程3—瞬态分析(续)
5. 如果要绘制电感两端的电压,可以用以下命令 plot v(2,3) 或者以下命令 plot v(2)-v(3)
31
例程4—三极管放大电路分析
电路及各元件参数如下图所示
32
例程4 —三极管放大电路分析(续)
1. 首先是元件名:元件名的第一个字符表示元件类型, 如R表示电阻,C表示电容,L表示电感。 2. 第二部分是引脚连接:将元件的各个引脚连接到电路 的节点中。 3. 最后是元件参数,用于描述元件的特性。 例: R1 1 2 1K C1 0 1 33p
元件行 (Element Line)
结束行 (End Line)
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文件。
注意,电容和电感的 初始值都用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表示使用用户定义的初始条件 来进行瞬态分析。
直接手工编辑网表文件 画出电路原理图,用软件自动生成网表文件
2. 将网表文件输入SPICE软件进行仿真 3. 输出或打印仿真结果
6
背景介绍
SPICE 语法 SPICE 仿真 SPB, Multisim 实例
7
SPICE网表基本结构
标题行 (Title Line)
网表中唯一不需以特殊字符开头的行 一行描述一个元件 每行元件包括三个部分
提供打印输出命令(print) 提供绘制曲线命令(plot)
16
SPICE仿真器
为了更好地关注SPICE仿真,本节使用NGSPICE作为 演示工具。附件的 software 目录下带有此软件。 Windows 用户将 ngspice.zip 解压缩到D盘,然后将 路径 D:\ngspice\bin 添加到 PATH 环境变量,即可完成 安装。 Linux 和 Mac OS 用户则使用源码进行编译安装, 源码包: ngspice-22.tar.gz。
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
最后一行必须为结束行:.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
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” 既指电路网表,也指仿真器
23
例程2—交流分析(续)
4. 运行正确后输入如下图
5. 绘制幅频响应曲线,输入命令: plot vm(4) 回车 plot是绘制曲线命令,v表示电压,m表示幅值,括号内的 “4” 表示该电压是结点4的结点电压。
24
例程2—交流分析(续)
6. 幅频响应曲线如下图
25
例程2—交流分析(续)
7. 读取图上幅值最大点的坐标 用鼠标在图中幅值最大值出单击,ngspice的输出框会输出 该点的坐标值。如下图所示。 幅值最大频点在100Hz,输出为1.11321V。
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