Sunteți pe pagina 1din 18

Limbaje de descriere hardware

Proiect: Tema_nr_16
TITLU : ,,CIRCUITUL DFFNS’’

TEHNOLOGIE: CMOS_TSMC_018_T49P.txt

Anul: III
Student: Popa Ciprian
Grupa: 5313
Tema de proiect nr. 16

Partea I – Proiectarea şi analiza dinamică în SPICE a circuitului DFFNS


1. Să se dimensioneze tranzistoarele MOS corespunzător 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ţă funcţionarea sa. La
fiecare ieşire a circuitului se va considera cîte o capacitate de sarcină. Valorile pentru
tensiunea de alimentare VDD, timpii de tranziţie TR ai formelor de undă de la intrări şi,
respectiv, capacităţile de sarcină CL se vor adopta în funcţie de tehnologia impusă conform
tabelului următor:

0.13
Tehnologie CMOS 0.18µm 0.25µm 0.35µm 0.50µm
µm
VDD 1.2V 1.8V 2.5V 3.3V 5V
TR 0.1ns 0.15ns 0.2ns 0.3ns 0.4n
CL 0.06pF 0.07pF 0.08pF 0.09pF 0.1pF

3. Determinaţi prin simulare parametrică şi folosind funcţii ţintă în Probe dependenţa timpilor
de propagare a circuitului (de la intrarea de clock la ieşiri) în funcţie de capacitatea de
sarcină (CL), respectiv în funcţie de timpul de tranziţie (TR) al formei de undă al intrării de
clock. În ambele analize parametrice variaţia parametrilor se va face în intervalul (0.5 ...
1.5)* val. adoptată conform tehnologiei. Determinaţi şi notaţi pe graficele obţinute valorile
întârzierilor de propagare corespunzătoare valorilor adoptate pentru CL şi TR.
Considerând că dependenţa timpilor de propagare în funcţie de CL este de forma:
tp = tp +K *CL
total intrinsec load

determinaţi pe baza graficelor obţinute valorile pentru tp şi K şi completaţi


intrinsec load
un tabel de felul următor (tp corespunde valorii CL=0pF):
intrinsec
4. Determinaţi prin simulare parametrii de constrângere SETUP_TIME, HOLD_TIME şi durata
minimă a pulsului MINPW pentru pinii de intrare specificaţi în tabelul următor:

Pentru simulările efectuate la fiecare din punctele 2, 3 şi 4 se vor prezenta schema de test, fişierul
SPICE (.cir) şi formele de undă sau caracteristicile reprezentative pe baza cărora s-au determinat
parametrii ceruţi în tabele.
Mai jos sunt prezentate descrierea, schema bloc şi tabelul de funcţionare al circuitului.
Partea II – VHDL
A. i) Să se implementeze în VHDL un model comportamental pentru circuitul proiectat şi
analizat dinamic în Partea I. În cadrul modelului se vor defini si utiliza constante generice pentru
parametrii dinamici determinaţi prin simulare (timpi de propagare clock→ieşire, setup_time şi
hold_time).
ii) Să se implementeze o entitate de test şi să se simuleze modelul de la punctul i)
B. Denumirea circuitului: decodor binar

Descriere: Decodorul identifică un cod de intrare de width biţi de la portul de intrare A,


width
activând o ieşire din cele 2 ale portului de ieşire B, în conformitate cu valoarea cuvântului
de la intrare.

În plus, circuitul va mai conţine următoarele porturi:


– un port de intrare EN (enable), activ pe ‘1’ logic care are rol de activare a circuitului.
Dacă EN=’0’, atunci circuitul nu decodează iar pinii ieşirii sunt în starea de ‘0’ logic.
– un port de intrare CLK (clock). Circuitul va efectua decodarea intrării A existentă la
apariţia unui front pozitiv al semnalului de clock.

Cerinţe:
• modelarea comportamentală în VHDL a circuitului, considerând width ca parametru
generic.
• în cadrul modelului se va lua în consideraţie şi un parametru generic de constrângere
clk_pmin referitor la intrarea CLK. Astfel, dacă durata palierului semnalului de clock din
faţa sau după frontul pozitiv este mai mică decât clk_pmin, atunci circuitul rămâne în
starea anterioară.
• realizarea unui program de test pentru width=4 şi clk_pmin = 5 ns.
Partea I
Proiectarea şi analiza dinamică în SPICE a circuitului DFFNS

1. Dimensionarea tranzistoarelor MOS corespunzător tehnologiei


date şi netlist-ul SPICE al circuitului.

Inversor
Structura la nivel de tranzistor a portii inversoare:

Q 1

2 VDD

3 O UT
in 1

Q 2

Pentru dimensionare se pleaca de la relatia : d R =R


u . Cunoscând formulele de calcul
pentru rezistenţele tranzistoarelor în funcţie de parametrii tehnologici şi înlocuind în
relaţia de egalitate atunci se obtine :

¿ R P=R N

¿ RP =

¿ RN =
LP

LN
W N ⋅ KN
}
LP LN
N
K N LN W P
WP⋅KP ⇒ W ⋅K =W ⋅K ⇔ K = L ⋅ W
P P N P P N

k n  n  C ox  n
 
Raportul coeficienţilor k este dat de relatia
k p  p  C ox  p
in care
μn si μ p sunt
k n 270,971
cunoscuti din fisierul tehnologic deci = ≅ 2.60 . Se face convenţia ca parametrii
k p 103,995
L sa fie egali între ei şi de valoarea tehnologiei în care se lucrează :

LN W P
¿ ⋅
LP W N
≅ 2. 60

¿ LN =LP =0. 18 μm }
⇒W P=2.60 ⋅W N

Lăţimea minima a tranzistoarelor se va adopta la alegere din intervalul (1.5 ... 4)*L :
W N =2⋅ L N ⇒W N =0.36 μm ⇒W P=0.93 μm

Implementarea in Spice a inversorului simplu este:

*Inversor
.subckt inversor 1 2 3
MN1 2 1 0 0 CMOSN L=0.18u W=0.36u
MP1 2 1 3 3 CMOSP L=0.18u W=0.93u
.ends

Implementarea in Spice a inversorului comandat este :

*Inversor comandat
.subckt invcom 1 2 3 7 6
MN1 7 1 4 0 CMOSN L=0.18u W=0.36u
MN2 4 2 0 0 CMOSN L=0.18u W=0.36u
MP1 5 3 6 6 CMOSP L=0.18u W=0.93u
MP2 7 1 5 6 CMOSP L=0.18u W=0.93u
.ends

NAND2
Structura la nivel de tranzistor a porţii NAND2:

4 O UT

Q 3 Q 4

3 VDD

Q 1
in 2 2

Q 2
in 1 1

0
Pentru dimensionare se pleaca de la relatia :
R =R
d u . Cunoscând formulele de calcul
pentru rezistenţele tranzistoarelor în funcţie de parametrii tehnologici şi înlocuind în
relaţia de egalitate atunci se obtine :

1
¿ RP= RN

}
2
LP 2 LP LN K L WP
¿ RP = ⇒ = ⇔ N= N ⋅
WP⋅KP W P ⋅ KP W N ⋅ KN KP LP 2 W N
LN
¿ RN =
W N ⋅ KN

LN W P
¿ ⋅
L P 2 ⋅W N
≅1.30

¿ LN =LP =0. 18 μm }
⇒ W P=1.44 W N ; W N =0. 36 μm⇒ W P=0.46 μm

Implementarea in Spice a subcircuitului pentru poarta NAND2 este:


*poarta NAND2
.subckt pnand2 1 2 5 4
MN1 4 2 3 0 CMOSN L=0.18u W=0.36u
MN2 3 1 0 0 CMOSN L=0.18u W=0.36u
MP1 4 1 5 5 CMOSP L=0.18u W=0.46u
MP2 4 2 5 5 CMOSP L=0.18u W=0.46u
.ends

Structura bistabilului DFFNS:

.subckt bistabil 1 2 3 4 5 6
*porti inversoare simple
X1 10 11 6 INV
X2 11 4 6 INV
X3 10 5 6 INV
X4 3 16 6 INV
X5 16 17 6 INV
*inversoare comandate
X6 1 17 16 7 6 INVC
X7 8 16 17 9 6 INVC
X8 8 16 17 7 6 INVC
X 10 17 16 9 6 INVC
*porti nand2
X10 7 2 8 6 NAND
X11 9 2 10 6 NAND
.ends
2. Analiza tranzitorie a circuitului.

Din tabel observăm că pentru tehnologia 0.18u avem:


 VDD = 1.8V
 TR=0.15ns
 CL=0.07pF
Astfel avem următoarea analiză tranzitorie:

.param tr=0.15n
.param Vdd=1.8
.param CL=0.07p
Vdd 6 0 {VDD}
.lib C:\orcad\CMOS_TSMC_018_T49P.txt
.inc C:\orcad\subcircuite.cir
V_data 1 0 PULSE(0 {VDD} 0 {tr} {tr} 8n 20n)
V_set 2 0 PULSE(0 {VDD} 2n {tr} {tr} 15n 25n)
V_clock 3 0 PULSE(0 {VDD} 0 {tr} {tr} 3n 6n)
C1 4 0 {CL}
C2 5 0 {CL}
X1 1 2 3 4 5 6 bistabil
.tran 0.1n 20n 0n 0.1n
.probe V(1) V(2) V(3) V(4) V(5)
.end

figura.1
Semnalele de interes pe care le-am luat în considerare sunt:
 V(1) – semnalul D (Data)
 V(2) – semnalul SN (Set)
 V(3) – semnalul CLK
 V(4) – semnalul Q
 V(5) – semnalul QN

3. Determinaţi prin simulare parametrică şi folosind funcţii ţintă în Probe dependenţa


timpilor de propagare a circuitului (de la intrarea de clock la ieşiri) în funcţie de capacitatea
de sarcină (CL), respectiv în funcţie de timpul de tranziţie (TR) al formei de undă al intrării
de clock. În ambele analize parametrice variaţia parametrilor se va face în intervalul (0.5 ...
1.5)* val. adoptată conform tehnologiei.

Mai întâi vom verifica dependența de timp în funcție de timpul de tranziție (TR): D,SN,CKN:

.param tr=0.15n
.param Vdd=1.8
.param CL=0.07p
Vdd 6 0 {VDD}
.inc CMOS_TSMC_018_T49P.TXT
.inc subcircuite.cir
V_data 1 0 PULSE(0 {VDD} 0 {tr} {tr} 8n 20n)
V_set 2 0 PULSE(0 {VDD} 2n {tr} {tr} 15n 25n)
V_clock 3 0 PULSE(0 {VDD} 0 {tr} {tr} 3n 6n)
C1 4 0 {CL}
C2 5 0 {CL}
X1 1 2 3 4 5 6 bistabil
.tran 0.1n 20n 0n 0.1n
.step param tr 0.1n 0.3n 0.03n
.probe V(1) V(2) V(3)
.end

Figura.2
Dependența de timp în funcție de capacitatea de sarcină (CL):

.param tr=0.15n
.param Vdd=1.8
.param CL=0.07p
Vdd 6 0 {VDD}
.inc CMOS_TSMC_018_T49P.TXT
.inc subcircuite.cir
V_data 1 0 PULSE(0 {VDD} 0 {tr} {tr} 8n 20n)
V_set 2 0 PULSE(0 {VDD} 2n {tr} {tr} 15n 25n)
V_clock 3 0 PULSE(0 {VDD} 0 {tr} {tr} 3n 6n)
C1 4 0 {CL}
C2 5 0 {CL}
X1 1 2 3 4 5 6 bistabil
.tran 0.1n 20n 0n 0.1n
.step param CL 0.04p 0.12p 0.01p
.probe V(1) V(2) V(3)
.end

Figura.3

Timpul de propagare (tp) reprezintă diferenţa dintre momentele de timp când formele de undă
de la intrare şi ieşire traversează nivelul de tensiune situat la jumătatea gamei dinamice. Uzual acest
nivel este situat la jumătatea tensiunii de alimentare (VDD/2).
În general, timpul de propagare se defineşte separat în funcţie de sensul tranziţiei formei de
undă de la ieşire. Astfel, se definesc 2 timpi de propagare:
- tpLH - timpul de propagare cînd ieşirea trece din starea “low” în starea
“high”;
- tpHL - timpul de propagare cînd ieşirea trece din starea “high” în starea
“low”;
În proiectarea porţilor logice este de dorit ca să nu existe diferenţe mari între cei doi
timpi. Acest lucru poate fi obţinut prin dimensionarea adecvată a tranzistoarelor NMOS şi
PMOS. Pentru simplitate, de multe ori, pentru timpul de propagare se consideră o singură
valoare, ca medie între tpLH şi tpHL: tp = (tpLH + tpHL)/2.
Principalii parametri externi care influenţează timpii de propagare ai unei porţi logice
sunt capacitatea de sarcină şi timpul de tranziţie al formei de undă de la intrare.
Pentru calcularea tpLH și tpHL se utilizează:

tpHL(1, 2) = x2-x1
{
1| search forward leve(50%,p) !1;
2| search forward leve(50%,n) !2;
}
tpLH(1,2) =x2-x1
{
1| Search forward level (50%,n) !1;
2| Search forward level (50%,p) !2;
}

Obținem următoarele grafice:


a) Pentru variația lui TR:

Dependența tpHL(CLK,Q) în funcție de TR:


Dependența tpLH(CLK,Q) în funcție de TR:

Dependența tpHL(CLK,QN) în funcție de TR:

Dependența tpLH(CLK,QN) în funcție de TR:


a) Pentru variația lui CL:

Dependența tpHL(CLK,Q) în funcție de CL:

Dependența tpLH(CLK,Q) în funcție de CL:

Dependența tpHL(CLK,QN) în funcție de CL:


Dependența tpLH(CLK,QN) în funcție de CL:

Din figurile de mai sus ne putem da seama că atât timpul de propagare tpLH, cât și tpHL
variază liniar cu abscisa, adică cu CL.

Timpii totali de propagare îi vom determina de pe urmatoarele grafice :

tpHLtotal(CK,Q)= 9.12n-6.00n=3.12n
tpLHtotal(CK,Q)= 6.16n-3.30n=2.85n
tpHLtotal(CK,QN)=9.14n-6.00n=3.14n

tpLHtotal(CK,QN)=6.17n-3.31n=2.85n

Pentru determinarea timpilor intrinseci vom folosi urmatoarele grafice :

tpHLintrinsec(CK,Q)=9.62n-6.84n=2.78
tpLHintrinsec(CK,Q)=6.84n-5.12n=1.71
tpHLintrinsec(CK,QN)=9.63n-6.88n=2.75n
tpLHintrinsec(CK,QN)=6.77n-5.18n=1.59n

Se completează tabelul de mai jos folosind formula:


tp total−tp int rin sec
tp total =tp int rin sec + K load⋅C L ⇔ K load=
CL

Descriere tpLH tpHL


tpLHintrinse Kload tpHLintrinse Kload

c c
CKN → Q 1.71 1628.5 2.78 485.7
CKN → QN 1.59 1800 2.75n 557.1
4. Determinarea HOLD_TIME_LH->CKN și HOLD_TIME_HL->CKN

Timpul minim de după frontul activ de ceas în care este


obligatoriu ca semnalul de intrare să fie stabil se numeste
hold_time. Pentru determinarea acestui timp se va face o
analiza parametrică tot asupra componentei td a
semnalului pulse de pe intrarea D. Valorile lui td vor fi
momente de timp de dupa frontul activ, apropiate de
acesta.

Circuitul care descrie aceasta analiza este :

*Circuitul de test al bistabilului DFFNS


.param tr=0.15n
.param VDD=1.8
.param CL=0.07p
.param td=5n
Vdd 6 0 {VDD}
.inc CMOS_TSMC_018_T49P.txt
.inc subcircuite.cir
V_data 1 0 PULSE(0 {VDD} 0 {tr} {tr} 2.5n 8.5n)
V_set 2 0 {VDD}
V_clock 3 0 PULSE(0 {VDD} 0 {tr} {tr} 1n 2n)
C1 4 0 {CL}
C2 5 0 {CL}
X1 1 2 3 4 5 6 bistabil
.step param td 5.9n 6n 0.01n
.tran 1n 25n 7n
*.tran 1n 12n 5n
.probe V(1) V(4) V(3)
.end

Măsurăm timpul corespunzator frontului de ceas la jumătatea frontului pozitiv. Timpii


HOLD_TIME_LHCKN și HOLD_TIME_HLCKN se obțin ca diferență dintre cei doi
timpi.
Q (V(4)), Data (V(1)) și CKN (V(3))funcție de parametrul td pentru calculul HOLD_TIME_LH.
HOLD_TIME_LH=11.312ns-11.310ns=2.04p

Q (V(4)), Data (V(1)) și CKN (V(3)) funcție de parametrul td pentru calculul HOLD_TIME_HL.
HOLD_TIME_HL= 11.304-11.302=1.47p

S-ar putea să vă placă și