Universitatea Tehnic Gh.
Asachi Iai
Facultatea de electronic ,telecomunicaii i tehnologia informaiei
Specializarea: Microelectronic, optoelectronic i nanotehnologii
Proiect LDH
Numele disciplinei: Limbaje de Descriere Hardware
Numrul temei de proiect: 4
Partea I Proiectarea i analiza dinamic n SPICE a
circuitului EDFFTR
Tehnologia CMOS: CMOS_IBM_013_T55R
Anul de studiu: III
Numele studentului: Munteanu Alexandru
Grupa: 5305A
Cadrul didactic: Roxana Amriuei
An universitar: 2016-2017
Tema nr. 4
Partea I Proiectarea i analiza dinamic n SPICE a
circuitului EDFFTR
1. S se dimensioneze tranzistoarele MOS corespunztor tehnologiei date i s se
scrie netlist-ul SPICE al circuitului. (Netlist-ul se va scrie ierarhic folosind
subcircuite).
2. S se efectueze analiza tranzitorie a circuitului pentru a pune n eviden
funcionarea sa. La fiecare ieire a circuitului se va considera cte o capacitate de
sarcin. Valorile pentru tensiunea de alimentare VDD, timpii de tranziie TR ai
formelor de und de la intrri i, respectiv, capacitile de sarcin CL se vor adopta
n funcie de tehnologia impus conform tabelului urmtor:
Tehnologi
e
CMOS
VDD
TR
CL
0.13 m
1.2V
0.1ns
0.06pF
0.18
m
0.25m
1.8V
0.15n
s
0.07pF
0.35m
0.50m
2.5V
0.2ns
3.3V
0.3ns
5V
0.4n
0.08pF
0.09pF
0.1pF
3. Determinai prin simulare parametric i folosind funcii int n Probe dependena
timpilor de propagare a circuitului (de la intrarea de clock la ieiri) n funcie de
capacitatea de sarcin (CL), respectiv n funcie de timpul de tranziie (TR) al
formei de und al intrrii de clock. n ambele analize parametrice variaia
parametrilor se va face n intervalul (0.5 ... 1.5)* val. adoptat conform
tehnologiei. Determinai i notai pe graficele obinute valorile ntrzierilor de
propagare corespunztoare valorilor adoptate pentru CL i TR.
Considernd c dependena timpilor de propagare n funcie de CL este de
forma: tptotal = tpintrinsec + Kload*CL
determinai pe baza graficelor obinute valorile pentru tpintrinsec i Kload i completai
un tabel de felul urmtor (tpintrinsec corespunde valorii CL=0pF):
Descriere
tpLH
tpLHintrinsec
tpHL
Kload
tpHLintrinsec
Kload
CK Q
CK QN
4.
Determinai prin simulare parametrii de constrngere SETUP_TIME, HOLD_TIME i
durata minim a pulsului MINPW pentru pinii de intrare specificai n tabelul
urmtor:
Pin intrare
Parametru constrngere
Durata interval
[ns]
CK
SETUP_TIME_LH CK
SETUP_TIME_HL CK
HOLD_TIME_LH CK
HOLD_TIME_HL CK
MINPW_HIGH
MINPW_LOW
Pentru simulrile efectuate la fiecare din punctele 2, 3 i 4 se vor prezenta
schema de test, fiierul SPICE (.cir) i formele de und sau caracteristicile
reprezentative pe baza crora s-au determinat parametrii cerui n tabele.
Mai jos sunt prezentate descrierea, schema bloc i tabelul de funcionare al
circuitului.
Partea I - SPICE - Proiectarea i analiza dinamic n SPICE a
circuitului EDFFTR
Simbolul logic al bistabilului:
Schema electric la nivel de poart logic:
Aceasta conine pori logice de tip: NOR3, AND2, inversoare i
inversoare comandate.
Structura intern a acestora ct i dimensionarea
tranzistoarelor se vor prezenta n continuare:
Descrierea n PSpice a porii inversoare:
*SUBCIRCUIT INVERSOR
.subckt INV 1 2 3
MN1 2 1 0 0 NMOS L=0.5U W=1U
MP1 2 1 3 3 PMOS L=0.5U W=4.28U
.ends
Descrierea n PSpice a porii NAND2:
*SUBCIRCUIT NAND2
.subckt NAND2 1 2 4 5
4
MN1 3 1 0 0 NMOS L=0.5U W=1U
MN2 4 2 3 3 NMOS L=0.5U W=1U
MP1 4 1 5 5 PMOS L=0.5U W=2.14U
MP2 4 2 5 5 PMOS L=0.5U W=2.14U
.ends
Descrierea n PSpice a porii AND2:
*SUBCIRCUIT AND2
.subckt AND2 1 2 4 5
Xnand2 1 2 3 5 NAND2
Xinv 3 4 5 INV
.ends
Descrierea n PSpice a porii NOR3:
*SUBCIRCUIT NOR3
.subckt NOR3 1 2 3 5 4
MN1 5 1 0 0 NMOS L=0.5U W=1U
MN2 5 2 0 0 NMOS L=0.5U W=1U
MN3 5 3 0 0 NMOS L=0.5U W=1U
MP1 7 1 4 4 PMOS L=0.5U W=12.84U
MP2 6 2 7 7 PMOS L=0.5U W=12.84U
MP3 5 3 6 6 PMOS L=0.5U W=12.84U
.ends
Descrierea n PSpice a porii inversoare comandate:
*SUBCIRCUIT INVERSOR COMANDAT
.subckt INVC 1 2 3 4 5
5
MN1 7 3 0 0 NMOS L=0.5U W=1U
MN2 4 1 7 7 NMOS L=0.5U W=1U
MP1 4 1 6 6 PMOS L=0.5U W=4.28U
MP2 6 2 5 5 PMOS L=0.5U W=4.28U
.ends
Descrierea PSpice a subcircuitului EDFFTR:
.subckt EDFFTR 1 2 3 16 14 15 19
X1 1 4 19 INV
X2 2 5 19 INV
X3 3 6 19 INV
X4 5 3 7 19 AND2
X5 6 12 8 19 AND2
X6 4 7 8 9 19 NOR3
X7 9 18 17 10 19 INVC
X8 10 11 19 INV
X9 11 18 17 10 19 INVC
X10 11 17 18 12 19 INVC
X11 12 13 19 INV
X12 13 18 17 12 19 INVC
X13 13 14 19 INV
X14 12 15 19 INV
X15 16 17 19 INV
X16 17 18 19 INV
.ends
Circuitul de test pentru punerea n eviden a
funcionalitii circuitului:
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(5 0 0 {tr} {tr} 2n 4n)
VRN 1 0 PULSE(5 0 0 0.4N 0.4N 5N 90N)
VD 2 0 PULSE(0 5 0 0.4N 0.4N 12N 16N)
VE 3 0 PULSE(5 0 0 0.4n 0.4N 30N 60n)
.param vdd=5
.param tr=0.4n
CL1 14 0 0.01p
CL2 15 0 0.01p
.TRAN 1n 100n
.PROBE
.END
Determinarea timpilor de propagare:
>> Determinarea timpului de propagare intrinsec CL=0
7
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(5 0 0 {tr} {tr} 2n 4n)
VRN 1 0 PULSE(5 0 0 0.4N 0.4N 5N 90N)
VD 2 0 PULSE(0 5 0 0.4N 0.4N 12N 16N)
VE 3 0 PULSE(5 0 0 0.4n 0.4N 30N 60n)
.param vdd=5
.param tr=0.4n
CL1 14 0 {CL}
CL2 15 0 {CL}
.TRAN 1n 100n
.param CL=0p
.PROBE
.END
-pentru iesirea Q:
-> t pLHintrinsecQ
t pLHintrinsecQ =40.201 ns39.427 ns=0.774 ns
-> t pHLintrinsecQ
t pHLintrinsecQ =47.200 ns46.601 ns=0,599 ns
- pentru iesirea QN
-> t pLHintrinsecQN
9
t pLHintrinsecQN =48.199 ns47.358 ns=0.841 n
-> t pHLintrinsecQN
t pHLintrinsecQN =55.636 ns54.602ns=1.034 ns
-tptotal:
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(5 0 0 {tr} {tr} 2n 4n)
VRN 1 0 PULSE(5 0 0 0.4N 0.4N 5N 90N)
VD 2 0 PULSE(0 5 0 0.4N 0.4N 12N 16N)
VE 3 0 PULSE(5 0 0 0.4n 0.4N 30N 60n)
CL1 14 0 {CL}
CL2 15 0 {CL}
10
.param vdd=5
.param tr=0.4n
.param CL=0.1p
.STEP PARAM CL 0.05p 0.15p 0.01p
.TRAN 0.1N 70n
.PROBE
.END
Functiile tinta definite:
tpLHinv(1,2)=x2-x1
{
1| search forward level(50%,n)!1;
2| search forward level(50%,p)!2;
}
tpHLinv(1,2)=x2-x1
{
1|search forward level(50%,p)!1;
2| search forward level(50%,n)!2;
}
Acestea au fost testate corespunzator pentru fiecare caz.
Ieirea QN LH param CL (0.05 0.15pF)
Ieirea Q HL param CL (0.05 0.15pF)
11
Tp
total
HL in ieirea Q pentru CL minim:
12
Tp
total
HL in ieirea Q pentru CL minim=3.4778ns-2.6005ns=0.87ns
Tp
total
HL in ieirea Q pentru CL maxim:
Tp
total
HL in ieirea Q pentru CL maxim=3.9339ns-2.6005ns=1.33ns
Din relaia: tptotal= tpintrinsic+Kload*CL
tp
Kload= CL
Tp
total
Kload=
1,330,87
0,150,05
LH in ieirea QN pentru CL minim:
13
=4.6;
Tp
total
LH in ieirea QN pentru CL minim=4.1995ns-3.5194ns=0.68ns
Tp
total
LH in ieirea QN pentru CL maxim:
Tp
total
LH in ieirea QN pentru CL maxim=4.1995ns-3.7717ns=0.42ns
Din relaia tptotal= tpintrinsic+Kload*CL
14
tp
Kload= CL
0,680,42
0,050,15
Kload=
Iesirea Q HL param TR (0.5 - 1.5n):
Iesirea QN LH param TR (0.5 - 1.5n):
15
=2.6;
Ieirea QN HL param CL (0.05 -0.15 pF)
Ieirea Q LH param CL (0.05 -0.15 pF)
16
Tptotal
LH in ieirea Q pentru CL minim:
tptotal LH in ieirea Q pentru CL minim=4.1990ns-3.5200ns=0.679ns
tptotal LH in ieirea Q pentru CL maxim:
tptotal
LH in ieirea Q pentru CL maxim=4.1990ns-3.7731ns=0.4259ns
Din relaia: tptotal= tpintrinsic+Kload*CL
tp
Kload= CL
Kload=
0.6790.4259
0.050.15
17
=2.531;
tptotal HL in ieirea QN pentru CL minim:
tptotal HL in ieirea QN pentru CL minim=3.4765ns-2.6010ns=0.8755ns
tptotal HL in ieirea QN pentru CL maxim:
tptotal HL in ieirea QN pentru CL maxim=3.9348ns-2.6010ns=1.3338ns
Din relaia tptotal= tpintrinsic+Kload*CL
tp
Kload= CL
Kload=
1.33880.8755
0.150.05
Iesirea Q LH param TR (0.2-0.6n)
18
=4.633;
Iesirea QN HL param TR (0.2-0.6n)
In urma analizelor si calculelor respective se completeaza tabelul:
tpLH
Descriere
tpLHintrinsec
CK Q
0.774 ns
CK QN
0,841 ns
tpHL
Kload
2.531
2.6
19
tpHLintrinsec
0,599 ns
1.034 ns
Kload
4.6
4.633
4.Determinarea parametrilor de constrangere
Setup_time este timpul minim dinaintea frontului activ de ceas n
care este obligatoriu ca semnalul de intrare sa fie stabil (s nu se
nregistreze tranziii).
Determinarea timpului SETUP_TIME_LH
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(0 5 0 {tr} {tr} 2n 4n)
VRN 1 0 PULSE(5 0 0 {tr} {tr} 5N 90N)
VD 2 0 PULSE(0 5 {7.495n-DL} {tr} {tr} 12N 16N)
VE 3 0 PULSE(5 0 0 {tr} {tr} 30N 60n)
.param vdd=5
.param tr=30p
CL1 14 0 {CL}
CL2 15 0 {CL}
.param CL=0.1p
.param DL=0
.step param dl 0n 0.1n 10p
.TRAN 0.0001N 14n 1n
.PROBE
.END
20
setup_time_LH=8.0150ns-7.5100ns=0.505ns
Determinarea SETUP_TIME_HL:
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(5 0 0 {tr} {tr} 2n 4n)
VRN 1 0 PULSE(5 0 0 {tr} {tr} 5N 90N)
VD 2 0 PULSE(0 5 {7.495n-DL} {tr} {tr} 12N 16N)
VE 3 0 PULSE(5 0 0 {tr} {tr} 30N 60n)
.param vdd=5
.param tr=30p
CL1 14 0 {CL}
CL2 15 0 {CL}
.param CL=0.1p
.param DL=0
21
.step param dl 0n 0.1n 10p
.TRAN 0.0001N 14n 1n
.PROBE
.END
setup_time_HL=8.0150ns-7.5100ns=0.505ns
Hold_time este timpul minim de dup frontul activ de ceas n care este
obligatoriu ca semnalul de intrare s fie stabil (s nu se nregistreze tranziii).
Determinarea timpului HOLD_TIME_LH:
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(5 0 0 {tr} {tr} 2n 4n)
VRN 1 0 PULSE(5 0 0 {tr} {tr} 5N 90N)
VD 2 0 PULSE(0 5 6.98n 30p 30p {0.92N+dl} 6.8n)
22
VE 3 0 PULSE(5 0 0 {tr} {tr} 30N 60n)
.param vdd=5
.param tr=30p
CL1 14 0 {CL}
CL2 15 0 {CL}
.param CL=0.1p
.param DL=0
.step param dl 0.n 0.09n 10p
.TRAN 0.0001N 14n 1n
.PROBE
.END
hold_time_LH=6.9945ns-6.0451ns=0.9494ns
Determinarea timpului HOLD_TIME_HL
.inc netlist.cir
23
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(5 0 0 {tr} {tr} 2n 4n)
VRN 1 0 PULSE(5 0 0 {tr} {tr} 5N 90N)
VD 2 0 PULSE(5 0 6.98n 30p 30p {0.92N+dl} 6.8n)
VE 3 0 PULSE(5 0 0 {tr} {tr} 30N 60n)
.param vdd=5
.param tr=30p
CL1 14 0 {CL}
CL2 15 0 {CL}
.param CL=0.1p
.param DL=0
*.step param dl 0.n 0.09n 10p
.TRAN 0.0001N 14n 1n
.PROBE
.END
24
hold_time_HL=6.9950ns-6.0450ns=0.95ns
Calculul MINPW_HIGH
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(0 5 0 {tr} {tr} {pw} 4n)
VRN 1 0 PULSE(5 0 0 {tr} {tr} 5N 90N)
VD 2 0 PULSE(0 5 0 30p 30p 2n 6n)
VE 3 0 PULSE(5 0 0 {tr} {tr} 30N 60n)
.param vdd=5
.param tr=30p
CL1 14 0 {CL}
CL2 15 0 {CL}
.param CL=0.1p
.param pw=0.1n
.STEP PARAM pw 0.05N 0.1N 0.01N
.TRAN 0.001N 44n 1n
.PROBE
.END
Calculul MINPW_LOW
25
.inc netlist.cir
.inc CMOS_IBM_013_T55R.txt
XEDFFTR 1 2 3 16 14 15 19 EDFFTR
VDD 19 0 {vdd}
VCK 16 0 PULSE(5 0 0 {tr} {tr} {pw} 4n)
VRN 1 0 PULSE(5 0 0 {tr} {tr} 5N 90N)
VD 2 0 PULSE(5 0 0 30p 30p 2n 6n)
VE 3 0 PULSE(5 0 0 {tr} {tr} 30N 60n)
.param vdd=5
.param tr=30p
CL1 14 0 {CL}
CL2 15 0 {CL}
.param CL=0.1p
.param pw=0.1n
.STEP PARAM pw 0.05N 0.1N 0.01N
.TRAN 0.001N 44n 1n
.PROBE
.END
Pin intrare
Parametru constrngere
Durata interval
[ns]
SETUP_TIME_LH CK
SETUP_TIME_HL CK
HOLD_TIME_LH CK
CK
HOLD_TIME_HL CK
MINPW_HIGH
MINPW_LOW
26
0.505
0.505
0.9494
0.95