Professional Documents
Culture Documents
Hspice Tutorial Examples PDF
Hspice Tutorial Examples PDF
Define parameters
with .param
Can define parameter
based on other parameters
or expressions.
Use + to continue long
lines on the proceeding
line.
.subckt nand
x
y
Mp1
out
x
vdd
+
PD='Wp + 6*Lmin'
+
AD='3*Wp*Lmin'
Mp2
out
y
vdd
+
PD='Wp + 6*Lmin'
+
AD='3*Wp*Lmin'
Mn1
out
x
node1
+
PD='Wn + 6*Lmin'
+
AD='3*Wn*Lmin'
Mn2
node1 y
0
+
PD='Wn + 6*Lmin'
+
AD='3*Wn*Lmin'
.ends
out
vdd
P
W=Wp
PS='Wp + 6*Lmin'
AS='3*Wp*Lmin'
vdd
P
W=Wp
PS='Wp + 6*Lmin'
AS='3*Wp*Lmin'
0
N
W=Wn
PS='Lmin'
AS='Wn*Lmin'
0
N
W=Wn
PS='Wn + 6*Lmin'
AS='3*Wn*Lmin'
L=Lmin
L=Lmin
L=Lmin
L=Lmin
.subckt inverter
in
out
strength=Wn
ratio='Wp/Wn'
Mn1
out
in
0
0
N
W=strength
+
PD='strength + 6*Lmin' PS='strength * 2 + Lmin'
+
AD='3*strength*Lmin' AS='3*strength * Lmin'
Mp1
out
in
vdd
vdd
P
W='strength*ratio'
+
PD='strength*ratio + 6*Lmin' PS='ratio*strength + 6*Lmin'
+
AD='3*ratio*strength*Lmin'
AS='3*ratio*strength*Lmin'
.ends
L=Lmin
***** A buffer
.subckt buffer
Xinv1 in
Xinv2 mid
.ends
Instantiate
modules like so.
(Xnand1: doesnt
uses default
parameter values).
module
in
mid
out
circuit
buffer
buffer
out
******************
strength='Wn' ratio=1
strength='Wn' ratio=1
nand
0.1p
Measure propagation
delays accurately
using the .meas
statement.
Outputs are written
to .mtn files, where
n=0,1, (alteration
number)
.ALTER statements
allows us to modify
the circuit and run
again.
They must be before
the final .end
statement.
Note: ALTER blocks
are incremental!!!
.meas
+
.meas
+
.meas
+
.meas
+
v(b)
v(out)
v(b)
v(out)
v(a)
v(out)
td=30ns
td=30ns
td=50ns
td=50ns
td=60ns
td=60ns
.meas
.meas
power
power
from=1ns to=80ns
from=1ns to=80ns
val='vdd/2'
val='vdd/2'
val='vdd/2'
val='vdd/2'
val='vdd/2'
val='vdd/2'
cross=1
cross=1
cross=1
cross=1
cross=1
cross=1
Power measurements
Temperature may be
altered as well.
Voltages (lin)
3.5
3
2.5
2
1.5
1
500m
0
Voltages (lin)
3.5
3
2.5
2
1.5
1
500m
0
Voltages (lin)
3.5
3
2.5
2
1.5
500m
1
0
20n
40n
60n
80n
Type
Wave
D0: NAND
Transient
D0:tr0:v(a)
D0: NAND
Transient
D0:tr0:v(b)
D0: NAND
Transient
D0:tr0:v(out)
Symbol