SPICE基础语法

一个共源共栅放大器的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
** 第一行默认为标题,在仿真时会显示
** My CS Cascode Amplifier

* 模型库文件地址
* Model Libary
.lib "F:\Hspice_O-2018.09-SP2\Ext\model2\ms018_v1p7.lib" TT

* 器件参数
.PARAM R1=5k

.PARAM VB1=0.5
.PARAM Vo=0.8

* 全局节点设置
.GLOBAL VDD

* 器件声明
R1 VDD VOUT R1

* D G S B Device L W
M2 VOUT Vo Vx 0 N18 L=0.5U W=5U
M1 Vx VIN 0 0 N18 L=0.5U W=5U

CLOAD VOUT 0 0.75P


* Stimulate sources
VDD VDD 0 1.8
VO VO 0 Vo
VIN VIN 0 VB1 AC 100 SIN(VB1 0.01 10)

* 分析选项
* OP:直流静态工作点分析
.OP

* DC:直流扫描
.DC VIN 0 1.8 0.001

* TRAN:瞬态扫描,生成一段时间内波形
.TRAN 0.01m 1

* AC:交流频率扫描
.AC DEC 10 1K 10G

* 模拟的参数配置
.OPTION LIST NODE BRIEF=1
.OPTION POST=3


* 输出
.PRINT i(M1)
.PRINT i(M2)

.END

一个CMOS反相器的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
** 50nm CMOS Inverter

* 包含库
.INCLUDE "F:\Hspice_O-2018.09-SP2\Ext\50nm\cmosedu_models.lib"
.OPTION POST=3 NOMOD LIST NODE BRIEF=1

* 器件参数设置
.PARAM P=0p

* 定义激励源
.GLOBAL VDD
VDD VDD 0 1
* 定义脉冲源,为PULSE(V1, V2, Tdelay, Trise, Tfall, PulseWidth, Period, Nums)
VIN IN 0 PULSE(0, 1.2, 0, 0.01n, 0.01n, 5n, 10n)

* 定义电路
* D G S B
Mp OUT IN VDD VDD P_50n W=75n L=50n
Mn OUT IN 0 0 N_50n W=50u L=50n
Cload OUT 0 P

* 直流工作点分析
.OP
* 瞬态分析
.TRAN 0.001n 20n

* 可选参数项,使用修改后的参数再次扫描
* .ALTER
* .PARAM P=0.2p

* .ALTER
* .PARAM P=0.3p

考察重点

基础语法

各类分析

1
2
3
4
5
6
7
8
9
10
11
12
* 静态工作点
.OP

* 直流扫描
.DC VIN start stop pace

* 交流扫描
.AC dec nopoints_per_decade fstart fstop
.AC lin number_of_points fstart fstop

* 瞬态分析
.TRAN step endtime

脉冲激励源

1
PULSE(V1, V2, Tdelay, Trise, Tfall, PulseWidth, Period, Nums)

PWL 分段线性电压源

以前考过。必看。

1
PWL(T1 V1 T2 V2 T3 V3 ...) <r=repeat_segment> <td=delay_time>

正弦波生成

1
SIN(V_base V_amplitude freq time_delay damping_factor phase)

电路结构

CMOS反相器

1
2
3
*   D   G   S   B
Mp OUT IN VDD VDD P_50n W=75n L=50n
Mn OUT IN 0 0 N_50n W=50u L=50n

反相器链

要知道子电路如何定义。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
* Define Subckt CINV
.SUBCKT CINV IN OUT
* + lp=75n wp=2u ln=50n wn=1u
+ l=50n wp=75n wn=50n m=1
* D G S B
Mp OUT IN VDD VDD P_50n W=wp L=l M=m
Mn OUT IN 0 0 N_50n W=wn L=l M=m
* Cload OUT 0 P
.ENDS CINV

* 4 INV alpha=7.2
X1 VIN OUT1 CINV
X2 OUT1 OUT2 CINV wn=360n wp=540n
X3 OUT2 OUT3 CINV wn=2592n wp=3888n
X4 OUT3 OUT4 CINV wn=18662n wp=27993n

Cload OUT4 0 P

二输入与非门

1
2
3
4
5
6
7
8
.SUBCKT myNAND Va Vb OUT
Map OUT Va VDD VDD P_50n w=wp l=lp
Mbp OUT Vb VDD VDD P_50n w=wp l=lp
Man OUT Va Vs 0 N_50n w=wn l=ln
Mbn Vs Vb 0 0 N_50n w=wn l=ln

Cint Vs 0 P
.ENDS myNAND