null Tanner软件介绍 Tanner软件介绍Spice语言简介Spice语言简介一、概述
二、spice软件简介一 概述一 概述我们介绍一套集成电路设计软件——Tanner的应
用,它包括S-edit, T-spice, L-edit, W-edit 和LVS
等几部分组成,各部分的主要功能如下:
S-edit --编辑电路图
T-spice --电路分析与模拟
W-edit --显示T-spice的模拟结果
L-edit --编辑布局图、自动配置与绕线、
截面观察、电路转化
LVS --电路图与布局图结果比较null用S-edit编辑电路图输出成Spice文件W-spice模拟分析用L-edit绘制布局图设计规则检查生成Spice文件用T-spice模拟分析利用LVS将电路图的输出文件与布局图转化的文件进行对比Tanner的设计流程如图1所示二、spice软件简介二、spice软件简介1、spice语言
2、电路描述
3、电路元件描述
4、保留名称
5、电源描述
6、注解
7、参数
null1、spice语言
Spice(Simulation Program with integrated circuit Emphasis)是一种通用的电路分析程序,能够分析和模拟一般条件下的各种电路特性。
Spice的发展已经有30多年的历史,美国加州大学伯克利分校于1972年推出了Spice程序。
nullSpice语言可分为:
IS-spice
I-spice
P spice
D-spice
T-spice
H-spice ,
各spice语言,语法大同小异,稍加修改即可通用。这里我们主要学习T-spice语言。nullSpice程序能够代替面包板、示波器等电子实验室的功能,对复杂的电路与系统进行设计,这主要是由于spice语言含有高精度的元器件模型。
Spice程序具有庞大的器件库,其中包括:
无源器件模型,如电阻、电容、电感、传感线等
半导体器件模型,如二极管、双极型晶体管、结型场效应管(JFET)、MOS场效应管(MOSFET)等
各种电源,包括线性和非线性的受控源,如独立电压源、电流源,受控电压源、电流源等。null模/数(A/D)、数/模(D/A)转换器接口电路以及数字电路器件库。
另外,Spice程序还可以进行多种电路分析,包括:
非线性直流分析(.DC),计算电路的直流工作点
线性小信号分析(.AC),分析电路的频率响应
瞬态分析(.TRAN),确定电路的时域响应
小信号电路直流传输特性分析(.TF)
直流小信号灵敏度分析(.SENS)
噪声分析(.NOISE)(伴随交流分析),计算特定输出与输入节点的等效输出、输入噪声
null输出变量的傅立叶分析(.FOUR)(与瞬态分析同时完成)
温度分析(.TEMP)
数字电路分析,包括电路的逻辑运算和延迟时间的计算
A/D、D/A转换电路的分析.null二、spice软件简介1、spice语言
2、电路描述
3、电路元件描述
4、保留名称
5、电源描述
6、注解
7、参数
null2、电路描述
Spice程序对需分析的电路用特定的格式和电路描述语言进行分析,编辑电路的输入文件扩展名为“.sp”。
电路输入文件的格式可以分为5个部分:null1)标
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
行: 用“*”号开始,后面是电路名称或说明文件,程序自动将第一行默认为标题行,标题行不能省略。
如: * A POWER AMPLIFIER CIRCUIT
2)电路描述:定义电路元器件和设置模型参
数
3)分析指令:定义分析类型
4)输出指令:定义输出的方法
5)结束标志(.END):电路输入文件结束标志。
(T-Spice 此项可选,加上是为了与其他spice语言兼容)null注:输入文件的第一行可以是任意说明文本,但不能省略,最后一行必须是.END 命令。其它各行的顺序是任意的,对分析结果没有影响。描述语句中,空格的数量没有要求,逗号、TAB符号和空格等同。“*”或“;”号后面可以加说明文字,不参与程序执行。
如:R1 7 5 2 ;2Ω电阻
null一行描述语句未完,用“+”号连接,要紧跟前一行。
如:.MODEL QMOD NPN ( IS=14.34F
+XIT=3 EG=1.11 VAF=74.03
+BF=255.9
+NE=1.037 CJC=9.393P RB=10) null电路描述语句:
(1)、节点
我们以简单的RLC电路来说明节点的规则。RLC电路如图2所示。
R1 7 5 2
C1 3 0 10u
L1 5 3 1.5m
Vi 7 0 5图2 RLC电路null 每个元器件必须连接在两个或两个以上节点之间,节点序号可以不连续,0节点指定为地节点。节点号必须在0~999之间的整数。每个节点要连接两个以上元件,即要在输入文件中至少出现两次。描述语句中文件名后紧跟连接节点序号,一般按电流流入元件方向排列节点顺序。
特别要注意,所有节点对地要有直流通路,否则程序提示语句错误。null(2)、元件单位名称
元件节点后跟元件值。元件值有两个后缀,前一个为数量级后缀,后一个为单位后缀。
数量级后缀不区分大小写,spice规定了以下10种比例因子:
F=1×10-15 P=1×10-12 N=1×10-9
U=1×10-6 M=1×10-3 K=1×103
MEG=1×106 G=1×109 T=1×1012null如果不加数量级后缀,spice可以识别下面情形。
5. 5.0 5E+3 5.0E+3 5.E3
对于单位后缀,spice规定如下:
V=volt A =amp HZ = hertz OHM= ohm
H= henry F= farad DEG=degree
单位后缀也可以忽略。如:电感值是15μH,可以写成“15u”或“15UH”。null二、spice软件简介1、spice语言
2、电路描述
3、电路元件描述
4、保留名称
5、电源描述
6、注解
7、参数
null3、 电路元件描述
电路元件和电源用名称的第一个字母作为标志(关键字),元件名字长可以有8位字母,关键字母按顺序排列如下:
B GaAs MES场效应管
C 电容
D 二极管
E 电压控制电压源
F 电流控制电流源nullG 电压控制电流源
H 电流控制电压源
I 独立电流源
J JFET结型场效应管
K 互感
L 电感
M MOS场效应管
N 数字输入信号
O 数字输出信号nullQ 双极型三极管
R 电阻
S 电压控制开关
T 传输线
U 数字器件
V 独立电压源
元器件描述语句格式为:
<元件名> <正节点> <负节点> <元件值> <元件模型或参数>null如: 假设定如从正节点流向负节点,图2电路中元件描述语句如下:
R1 7 5 2 ;2Ω电阻
L1 5 3 1.5MH ;1.5mH电感
C1 3 0 10UF ;10μf电容图2 RLC电路null二、spice软件简介1、spice语言
2、电路描述
3、电路元件描述
4、保留名称
5、电源描述
6、注解
7、参数
null4、 保留名称
T-spice使用gnd、GND,Gnd和0(零)为默认系统的保留节点名称。这些节点的所有例化体都连接在一起,被看作相同的节点,该节点的电位为0.0伏特。以下关键字(任意的大写和小写字母的组合)不能用作名称:
Ac bit biti bus busi dc exp inosie
Off onoise params pie piei pwl poly
Pulse r repeat round rounding sffm
Sin sini transfernull二、spice软件简介1、spice语言
2、电路描述
3、电路元件描述
4、保留名称
5、电源描述
6、注解
7、参数
null5、 电源描述
Spice将电源分为两大类:独立源和受控源。
独立源描述语句的格式为:
<电源名称> N+ N- [DC <直流值>] [AC< <幅值> <相位> >] 和 [<瞬时值>] [模型名和参数]
其中,N+为电压正节点,N-为电压负节点,N+电位必须高于N-,正电流从N+流向N-。
语句中DC,AC的瞬态值的默认值为0。
直流分析时,要设置DC值;
交流分析时,要设定AC值,其相位值如省略则为0;
时域分析时,可以设置随时间变化的电源,如脉冲源、指数源、正弦波等。null将电压源数值设为0,可以作为电流表接入电路中,用以测量支路电流。这是因为零值电压源相当于短路,对电路工作没有影响。
典型电源描述语句举例如下:
VIN 20 40 DC 20 SIN(0 2V 10KHZ)
VPULSE 10 0 PULSE ( 0 1 2NS 2NS 2NS 50US 100US)
IIN 20 10 AC 1A 45DEG
IPULSE 10 0 PULSE ( 0 1 2N 2N 2N 50N 100N)null Pulse(Vi Vp [D [Tr [Tf [Pw [Pp]]]]]) [ROUND=R]
Vi—— 初始电压。(单位;伏特)
Vp—— 峰值电压。(单位:伏特)
D—— 初始延迟。(单位:秒;默认:0)
Tr—— 上升时问。(单位:秒;默认:在.tran命令 中的时问步距)
Tf—— 下降时间。(单位:秒;默认:在.tran命令中的时间步距)
Pw—— 脉冲宽度。(单位:秒;默认:在.tran命令中的停止时间)
Pp—— 脉冲周期。(单位:秒:默认:在.tran命令中的停止时间)
R—— 圆化半区间。在时间T初的拐角用区间(T-R,T+R)中的
平滑可微分多项式代 替。最大的R是最近的相邻拐角间的
距离 的一半。(默认:0,不圆化)脉冲波形null* SPICE netlist written by S-Edit Win32 7.03
.probe
.options probefilename="File0.dat“ probesdbfile="File0.sdb"
+ probetopmodule="Module0"
.include ml2_125.md
M1 Out In Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
M2 Out In Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
v3 In Gnd pulse(0.0 5.0 0 10n 10n 100n 200n)
Vs Vdd Gnd 5
.tran 2n 600n
.print tran in out脉冲电压源,驱动的CMOS反相器nullSin (Vo Vp [Fr [De Ida[Ph] ] ] ] }
Vo—— 偏移电压。(单位:伏特)
Vp—— 峰值电压。(单位:伏特)
Fr —— 频率。(单位:赫兹;默认:1/T,T为.tran
命令中的停止时间)
De —— 延迟时间。(单位:秒)
Da —— 阻尼因子。(单位:1/秒)
Ph —— 相角超前。(单位:度)正弦波形正弦电压源,驱动的CMOS反相器正弦电压源,驱动的CMOS反相器* SPICE netlist written by S-Edit Win32 7.03
.options probefilename="File1.dat"
+ probesdbfile="D:\tanner\S-Edit\tutorial\schematic\File1.sdb"
+ probetopmodule="Module0"
.include ml2_125.md
M1 Out N1 Gnd Gnd NMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
M2 Out In Vdd Vdd PMOS L=2u W=22u AD=66p PD=24u AS=66p PS=24u
v3 In N1 sin 2.5 0.5 10MEG 0.0 0.0 0.0
.tran 2n 600n
.print tran in outnull 4种受控源模型如图所示。其中,NC+,NC-为受控电压、控制电流正负节点,N+,N-为受控源输出节点。
受控源描述语句的格式为:
<源名称> N+ N- NC+ NC- <增益值>
其中“增益值”为电压、电流增益或转移阻抗、转移导纳。null 4种受控源模型null二、spice软件简介1、spice语言
2、电路描述
3、电路元件描述
4、保留名称
5、电源描述
6、注解
7、参数
null6、 注解
注解提供电路的信息,但是并不作为正式电路描述的一部分来处理。注解通常用成为注解定义符的特殊字符来表示。
但是,即使没有注解定义符,T-spice总是把输入文件的第一行看作注解。
其它的注释可以放在电路描述的任何地方。
为了与其他的spice兼容,允许使用几种注解式样:
在任一行的第一列加星号(*),美元符号($)或分号(;),表示整行为注解。
在任意一行第一列以外的地方加美元号或分号,但不是星号,表示该行的余下的是注解。nullC语言式样的注解,用定义符(/*)和 (*/) 包围,可以用在任何地方,但不能用于多字词命令(如.print tran)或变量的中间。一个TSPICE语言式样注解不局限于一行。
例如:下面的例子中注解用绿色表示
*Lines beginning with asterisks,
$ or dollar signs,
;or semicolons are ignoroed.
Ri node1 node2 4k $ this comment can follow a commandnullC2 node3 node4 100f ; this is like a ‘$’ command
V1 node5 GND /*this is a C-style comment */ 3volt
插在命令或变量中的C-样注解会引起错误信息。但是,注解可以出现在两个变量的中间。下面例子种的前两行会引起错误信息,第三行是正确的:
.print /* wrong */ tran v(1) 因为 print语句不能分开
.options prtdel /* wrong */ =0.01 变量值不能分开
.options abstol=1e-8 /* ok*/ reltol=1e-4 相当于后一个参数被省略了null二、spice软件简介1、spice语言
2、电路描述
3、电路元件描述
4、保留名称
5、电源描述
6、注解
7、参数
null7、参数
可以用.param命令对参数进行说明和赋值。在输入文件中参数不能重新赋值。
参数名称可以包括除制表符、空格符、逗号、花括号、括号、单引号、方括号、等号、以及代数运算符(+、-、*、/,^)外的其它任何字符。