Professional Documents
Culture Documents
SEL 4743 Basic Digital VLSI: Project: IC Number Generator (Complete Report)
SEL 4743 Basic Digital VLSI: Project: IC Number Generator (Complete Report)
PS NS Output, O
PS3 PS2 PS1 PS0 NS3 NS2 NS1 NS0 O3 O2 O1 O0
0 0 0 0 0 0 0 1 1 0 0 0 =8
0 0 0 1 0 0 1 0 1 0 0 0 =8
0 0 1 0 0 0 1 1 0 0 0 0 =0
0 0 1 1 0 1 0 0 0 1 0 0 =4
0 1 0 0 0 1 0 1 0 0 0 1 =1
0 1 0 1 0 1 1 0 0 1 1 1 =7
0 1 1 0 0 1 1 1 0 0 1 1 =3
0 1 1 1 1 0 0 0 0 1 0 1 =5
1 0 0 0 1 0 0 1 0 1 0 1 =5
1 0 0 1 1 0 1 0 0 0 0 1 =1
1 0 1 0 1 0 1 1 0 1 1 1 =7
1 0 1 1 0 0 0 0 0 0 1 0 =2
1 1 0 0 X X X X X X X X
1 1 0 1 X X X X X X X X
1 1 1 0 X X X X X X X X
1 1 1 1 X X X X X X X X
0 4
8 1
8 7
2 3
7 5
1 5
QUARTUS II Simulation
Next state logic:
= (PS0+PS1)PS3+PS0PS1PS2 = (PS0+PS1)PS2+PS0PS1PS2PS3
= PS0 + PS1
Output Logic:
= PS0(PS1PS3+PS2)+PS0PS3
= PS0PS1PS2+PS1(PS0PS2+PS3) = PS2+(PS0+PS1)PS3
S-edit Simulation
NS3 = (PS0+PS1)PS3+PS0PS1PS2
NS2 = (PS0+PS1)PS2+PS0PS1PS2PS3
NS1 = PS0PS1+PS0PS1 NS0 = PS0
NS_logic
********* Simulation Settings - General section *********
.include "C:\Users\YeeHui\Documents\micron_25.txt"
*************** Subcircuits *****************
.subckt NS0 NS0 PS0 Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
MNMOS_1 NS0 PS0 Gnd 0 NMOS W=375n L=250n AS=337.5f PS=2.55u AD=337.5f PD=2.55u
MPMOS_1 NS0 PS0 Vdd Vdd PMOS W=1.125u L=250n AS=1.0125p PS=4.05u AD=1.0125p PD=4.05u
.ends
.subckt NS1 NS1 PS0 PS1 PS0bar PS1bar Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
MNMOS_1 N_1 PS0bar Gnd 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_2 N_1 PS1 Gnd 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_3 NS1 PS1bar N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_4 NS1 PS0 N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MPMOS_1 N_3 PS0 Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_2 N_2 PS0bar Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_3 NS1 PS1 N_2 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_4 NS1 PS1bar N_3 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
.ends
.subckt NS2 NS2 PS0 PS1 PS2 PS3 PS0bar PS1bar PS2bar Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
MNMOS_1 NS2 PS0bar N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_2 NS2 PS1bar N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_3 NS2 PS2 N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_4 NS2 PS3 N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_5 N_1 PS2bar Gnd 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
Simulation
MNMOS_6 N_1 waveform(Next StateL=250n
PS1 N_2 0 NMOS W=1.5u Logic):
AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_7 N_2 PS0 Gnd 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MPMOS_1 N_3 PS2bar Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_2 NS2 PS0 N_3 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_3 NS2 PS1 N_3 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_4 NS2 PS3 N_4 Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
MPMOS_5 N_4 PS2 N_5 Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
MPMOS_6 N_5 PS1bar N_6 Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
MPMOS_7 N_6 PS0bar Vdd Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
.ends
.subckt NS3 NS3 PS0 PS1 PS0bar PS1bar PS2bar PS3bar Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
MNMOS_1 NS3 PS0bar N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_2 NS3 PS1bar N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_3 NS3 PS2bar N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_4 N_1 PS1 N_2 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_5 N_2 PS0 Gnd 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_6 N_1 PS3bar Gnd 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MPMOS_1 NS3 PS2bar N_3 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_2 N_3 PS1bar N_4 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_3 N_4 PS0bar Vdd Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_4 N_5 PS0 Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_5 N_5 PS1 Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_6 NS3 PS3bar N_5 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
.ends
********* Simulation Settings - Parameters and SPICE Options *********
XNS3_1 NS3 PS0 PS1 PS0bar PS1bar PS2bar PS3bar Gnd Vdd NS3
XNS0_1 NS0 PS0 Gnd Vdd NS0
XNS1_1 NS1 PS0 PS1 PS0bar PS1bar Gnd Vdd NS1
XNS2_1 NS2 PS0 PS1 PS2 PS3 PS0bar PS1bar PS2bar Gnd Vdd NS2
Output Logic
Simulation waveform (Output Logic):
.include "C:\Users\YeeHui\Documents\micron_25.txt"
*************** Subcircuits *****************
.subckt O0 O0 PS0 PS1 PS2bar PS3bar Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
MNMOS_1 O0 PS2bar N_1 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_2 N_1 PS3bar Gnd 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_3 N_1 PS0 N_2 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_4 N_2 PS1 Gnd 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MPMOS_1 O0 PS2bar Vdd Vdd PMOS W=1.125u L=250n AS=1.0125p PS=4.05u AD=1.0125p PD=4.05u
MPMOS_2 N_3 PS0 Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_3 N_3 PS1 Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_4 O0 PS3bar N_3 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
.ends
.subckt O1 O1 PS0 PS1 PS0bar PS1bar PS2bar PS3bar Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
MNMOS_1 O1 PS0bar N_3 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_2 O1 PS1 N_3 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_3 O1 PS2bar N_3 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_4 N_3 PS1bar Gnd 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_5 N_1 PS3bar Gnd 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_6 N_3 PS0 N_1 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_7 N_3 PS2bar N_1 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MPMOS_1 O1 PS2bar N_11 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_2 N_11 PS1 N_13 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_3 N_13 PS0bar Vdd Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_4 N_17 PS0 Vdd Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
MPMOS_5 N_19 PS2bar N_17 Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
MPMOS_6 N_19 PS3bar Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_7 O1 PS1bar N_19 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
.ends
.subckt O2 O2 PS0 PS3 PS0bar PS1bar PS2bar PS3bar Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
1000 1000 0000 0100 0001 0111 0011 0101 0101 0001 0111 0010
MNMOS_1 O2 PS0 N_2 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
8
MNMOS_2 0 N_240 NMOS
8O2 PS3bar 1 W=750n 7 L=250n
3 AS=675f
5 PS=3.3u
5 AD=675f
1 7
PD=3.3u2
MNMOS_3 N_2 PS0bar Gnd 0 NMOS W=750n L=250n AS=675f PS=3.3u AD=675f PD=3.3u
MNMOS_4 N_2 PS2bar N_6 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_5 N_6 PS1bar Gnd 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MNMOS_6 N_6 PS3 Gnd 0 NMOS W=1.5u L=250n AS=1.35p PS=4.8u AD=1.35p PD=4.8u
MPMOS_1 N_10 PS1bar Vdd Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
MPMOS_2 N_12 PS3 N_10 Vdd PMOS W=4.5u L=250n AS=4.05p PS=10.8u AD=4.05p PD=10.8u
MPMOS_3 O2 PS0bar N_12 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_4 N_12 PS2bar Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_5 N_1 PS0 Vdd Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
MPMOS_6 O2 PS3bar N_1 Vdd PMOS W=2.25u L=250n AS=2.025p PS=6.3u AD=2.025p PD=6.3u
.ends
.subckt O3 O3 PS1 PS2 PS3 Gnd Vdd
*-------- Devices: SPICE.ORDER > 0 --------
MNMOS_1 O3 PS3 Gnd 0 NMOS W=375n L=250n AS=337.5f PS=2.55u AD=337.5f PD=2.55u
MNMOS_2 O3 PS2 Gnd 0 NMOS W=375n L=250n AS=337.5f PS=2.55u AD=337.5f PD=2.55u
MNMOS_3 O3 PS1 Gnd 0 NMOS W=375n L=250n AS=337.5f PS=2.55u AD=337.5f PD=2.55u
MPMOS_1 N_1 PS1 Vdd Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_2 N_2 PS2 N_1 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_3 O3 PS3 N_2 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
.ends
********* Simulation Settings - Parameters and SPICE Options *********
XO0_1 O0 PS0 PS1 PS2bar PS3bar Gnd Vdd O0
XO1_1 O1 PS0 PS1 PS0bar PS1bar PS2bar PS3bar Gnd Vdd O1
XO2_1 O2 PS0 PS3 PS0bar PS1bar PS2bar PS3bar Gnd Vdd O2
XO3_1 O3 PS1 PS2 PS3 Gnd Vdd O3
VVdd Vdd Gnd DC 2.5
VPS0 PS0 GND pulse (0 2.5 23n 2n 2n 23n 50n)
VPS0bar PS0bar GND pulse (2.5 0 23n 2n 2n 23n 50n)
VPS1 PS1 GND pulse (0 2.5 48n 2n 2n 48n 100n)
VPS1bar PS1bar GND pulse (2.5 0 48n 2n 2n 48n 100n)
VPS2 PS2 GND pulse (0 2.5 98n 2n 2n 98n 200n)
VPS2bar PS2bar GND pulse (2.5 0 98n 2n 2n 98n 200n)
VPS3 PS3 GND pulse (0 2.5 198n 2n 2n 198n 400n)
VPS3bar PS3bar GND pulse (2.5 0 198n 2n 2n 198n 400n)
.tran 1n 400n
.probe
.print tran v(O0) v(O1) v(O2) v(O3) v(PS0) v(PS1) v(PS2) v(PS3)
.end
Calculation and Simulation Result (O3)
O3 = PS1PS2PS3
VDD
R1
PS1
R2 C1
PS2
R3
C2
PS3
CL
R4 R5 R6
Manual Calculation:
PMOS NMOS
Cox 6.14 x 10-3 6.14 x 10-3
Co 0.27 0.31
Cjo 1.9 2
Cjswo 0.22 0.28
Keq (H→L) 0.79 ; (L→H) 0.59 (H→L) 0.57 ; (L→H) 0.79
Keqsw (H→L) 0.86 ; (L→H) 0.7 (H→L) 0.61 ; (L→H) 0.81
MNMOS_1 O3 PS3 Gnd 0 NMOS W=375n L=250n AS=337.5f PS=2.55u AD=337.5f PD=2.55u
MNMOS_2 O3 PS2 Gnd 0 NMOS W=375n L=250n AS=337.5f PS=2.55u AD=337.5f PD=2.55u
MNMOS_3 O3 PS1 Gnd 0 NMOS W=375n L=250n AS=337.5f PS=2.55u AD=337.5f PD=2.55u
MPMOS_1 N_1 PS1 Vdd Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_2 N_2 PS2 N_1 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
MPMOS_3 O3 PS3 N_2 Vdd PMOS W=3.375u L=250n AS=3.0375p PS=8.55u AD=3.0375p PD=8.55u
(H→L):
1.62 + 1.62 + 1.82 + 1.82 = 6.88fF
C2 Cd2 + Cs3 + Cgd2 + Cgs3 (L→H):
1.32 + 1.32 + 1.82 + 1.82 = 6.28fF
(H→L):
1.62 + 1.62 + 1.82 + 1.82 = 6.88fF
CL Cd3 + 2*Cgd3 + Cd4 + Cd5 + Cd6 + Cgd4 + (L→H):
Cgd5 + Cgd6 1.32 + 1.82 + 3*0.58 + 3*0.23 = 5.57fF
= Cd3 + Cgd3 + 3*Cd4 + 3*Cgd5
(H→L):
1.62 + 1.82 + 3*0.44 + 3*0.23 = 5.45fF
For worse case (input {PS1 PS2 PS3} transition from 111 → 000),
= 56.327ps
For worse case (input {PS1 PS2 PS3} transition from 000 → 001),
= 0.69*(13kΩ/1.5)(5.45fF)+0.69[(10.96kΩ)*6.88fF + (13.26kΩ)*6.88fF]
= 147.568ps
tp = (tpHL + tpLH) / 2
= (56.327 + 147.568) / 2
= 101.948ps
Simulation:
tpHL = 436.859ps
tpLH = 291.238ps
tp = (tpHL + tpLH) / 2
= (436.859 + 291.238) / 2
= 364.049ps
Comparison between simulation result and calculation result:
Simulation : tp = 364.049ps
Calculation : tp = 101.948ps
It can be observed that the propagation delay obtain from simulation result and
calculation are slightly different. This may due to the sensitivity of the W-edit where we
are not able to set the cursors of the graph to the exact point we want. Other than that, the
calculation method is using the formula to approximate the propagation delay which will
cause inaccuracy of the result obtained.
Following shows the minimum pulse change period can be used to for simulation that
could produce the correct output waveforms.
VVdd Vdd Gnd DC 2.5
VPS0 PS0 GND pulse (0 2.5 0.9n 0.1n 0.1n 0.9n 2n)
VPS0bar PS0bar GND pulse (2.5 0 0.9n 0.1n 0.1n 0.9n 2n)
VPS1 PS1 GND pulse (0 2.5 1.9n 0.1n 0.1n 1.9n 4n)
VPS1bar PS1bar GND pulse (2.5 0 1.9n 0.1n 0.1n 1.9n 4n)
VPS2 PS2 GND pulse (0 2.5 3.9n 0.1n 0.1n 3.9n 8n)
VPS2bar PS2bar GND pulse (2.5 0 3.9n 0.1n 0.1n 3.9n 8n)
VPS3 PS3 GND pulse (0 2.5 7.9n 0.1n 0.1n 7.9n 16n)
VPS3bar PS3bar GND pulse (2.5 0 7.9n 0.1n 0.1n 7.9n 16n)
.tran 0.1n 16n
.probe
.print tran v(O0) v(O1) v(O2) v(O3) v(PS0) v(PS1) v(PS2) v(PS3)
L-edit & LVS Simulation
O3:
O3
GND
VDD
O3
O2
PS3bar PS0
PS2bar
O2 VDD
PS0bar
PS3
PS1bar
GND
VDD
O2
O1
O1 VDD
PS0
PS1bar PS2bar
PS3bar
GND
VDD
O1
O0
PS2bar
O0 VDD
PS0
PS3bar
PS1
GND
VDD
PS0 PS1
GND
NS3:
NS3
PS1bar
PS2bar PS0bar
NS3 VDD
PS1
PS3bar
PS0
GND VDD
NS3