Sunteți pe pagina 1din 13

Facultatea de Electronica, Telecomunicatiisi TehnologiaInformatiei

Specializarea Tehnologiisi SistemedeTelecomunicatii

TEMA NR. 10:


SDFFS - NUMARATOR BINAR REVERSIBIL CU INCARCARE
PARALELA
CMOS_HP_05_T49G.txt

Anul universitar: 2009-2010


Student: TIRIPLIC DIANA
Anul III
Grupa 5304
Prof. indrumator: BURDIA DANUT
Tema nr.10
Partea I – Proiectarea şi analiza dinamică în SPICE a circuitului SDFFS

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:

Tehnologie
0.13 μm 0.18μm 0.25μm 0.35μm 0.50μm
CMOS

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:

tptotal = tpintrinsec + Kload*CL

determinaţi pe baza graficelor obţinute valorile pentru tp intrinsec şi Kload şi completaţi un tabel de
felul următor (tpintrinsec corespunde valorii CL=0pF):

tpLH tpHL
Descriere
tpLHintrinsec Kload tpHLintrinsec Kload

CK → Q

CK → QN

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:
Durata interval
Pin intrare Parametru constrângere
[ns]

SETUP_TIME_LH → CK

SETUP_TIME_HL → CK
D
HOLD_TIME_LH → CK

HOLD_TIME_HL → CK

MINPW_HIGH
CK
MINPW_LOW

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: Numărător binar reversibil cu încărcare paralelă

Descriere: Numărătorul este pe widh biţi (valoare declarată generic) şi are 2n stări, de la 00...00
la 11...11, nr. de stări depinzând de valoare lui width. Circuitul este activ la frontul crescător al
semnalului de clock.

Porturile circuitului

Pin Name Size Type Function

up_dn 1 Input Count up (up_dn = 1)


or count down
(up_dn = 0)

Counter load enable,


load 1 Input
active low

data width Input Input data bus

cen 1 Input Counter enable,


active high

clk 1 Input Clock

Asynchronous
reset 1 Input counter reset, active
low

count width Output Output count bus

tercnt 1 Output Terminal count flag

În plus, circuitul mai are un pin de intrare OEB (output enable), activ pe ‘0’ logic, care are
rol de activare a porturilor de ieşire. Dacă OE=’0’, atunci la ieşiri pot fi furnizate rezultatele,
altfel semnalele de la ieşire sunt în starea de înaltă impedanţă.

Tabela de adevăr

reset load cen up_dn Operation

0 X X X Reset

1 0 X X Load

1 1 0 X Standby

1 1 1 0 Count down

1 1 1 1 Count up

Cerinţe:

• modelarea comportamentală în VHDL a circuitului.

• realizarea unui program de test (testbench) pentru simularea şi verificarea circuitului


pentru cazul width=8. Programul de test va fi construit astfel încât să fie puse în
evidenţă acţiunea (efectul) fiecărei intrări.

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

Functionarea SDFFS:
Daca intrarea SN este in 1 logic (inactiva) atunci avem: daca SE este 0, atunci intrarile de
pe intrarea D se transmit la iesirea Q pe front pozitiv de ceas, indiferent de ce avem pe intrarea
SI; daca SE este 1, atunci intrarile de pe intrarea SI se transmit pe front pozitiv de ceas la iesirea
Q, indiferent de valoarea pe intrarea D.
Daca SN este in 0 logic (activ), iesirea Q se seteaza asincron.
Descrierea subcircuitului inversor in tehnologie de 0.5u este:
.subckt NOT 1 2 3
MP 3 1 2 2 CMOSP L=0.5u W=1.5u
MN 3 1 0 0 CMOSN L=0.5u W=0.75u
.ends
Am considerat ordinea terminalelor: IN, VDD, OUT.
Descrierea subcircuitului NAND2 este:
.subckt NAND 1 2 3 4
MP1 4 1 3 3 CMOSP L=0.5u W=0.75u
MP2 4 2 3 3 CMOSP L=0.5u W=0.75u
MN1 5 1 0 0 CMOSN L=0.5u W=0.75u
MN2 4 2 5 0 CMOSN L=0.5u W=0.75u
.ends
Aici ordinea terminalelor este: IN1, IN2, VDD, OUT. Din NAND2 obtinem AND2 prin
inserierea unui inversor astfel:
.subckt AND 1 2 4 5
X1 1 2 4 3 NAND
X2 3 4 5 NOT
.ends
Descrierea subcircuitului NOR2 este:
.subckt NOR 1 2 3 4
MP1 5 1 3 3 CMOSP L=0.5u W=3u
MP2 4 2 5 3 CMOSP L=0.5u W=3u
MN1 4 1 0 0 CMOSN L=0.5u W=0.75u
MN2 4 2 0 0 CMOSN L=0.5u W=0.75u
.ends
Ordinea terminalelor este aceeasi ca la NAND2, iar poarta OR2 se obtine de asemenea
prin inserierea unui inversor astfel:
.subckt OR 1 2 4 5
X1 1 2 4 3 NOR
X2 3 4 5 NOT
.ends
Descrierea circuitului inversor comandat este:
.subckt INV3S 1 2 3 6 7
MP1 4 6 2 2 CMOSP L=0.5u W=1.5u
MP2 3 1 4 2 CMOSP L=0.5u W=1.5u
MN1 3 1 5 0 CMOSN L=0.5u W=0.75u
MN2 5 7 0 0 CMOSN L=0.5u W=0.75u
.ends
Ordinea terminalelor este: IN, VDD, OUT, C, CN.
Circuitul principal este alcatuit din doua porti AND2, doua porti NAND2, una OR, sase
inversoare si patru inversoare comandate. Descrierea lui este urmatoarea:
.subckt SDFFS 1 2 3 4 5 19 15 16
*plasarea portilor AND :
XAND1 1 2 19 6 AND
XAND2 7 3 19 8 AND
*plasarea portilor NAND :
XNAND1 10 4 19 11 NAND
XNAND2 12 4 19 13 NAND
*plasarea portii OR :
XOR1 6 8 19 9 OR
*plasarea inversoarelor :
XINV1 2 19 7 NOT
XINV2 13 19 14 NOT
XINV3 14 19 15 NOT
XINV4 13 19 16 NOT
XINV5 5 19 17 NOT
XINV6 17 19 18 NOT
*plasarea inversoarelor comandate :
XINV3S1 9 19 10 17 18 INV3S
XINV3S2 11 19 18 17 10 INV3S
XINV3S3 11 19 12 17 18 INV3S
XINV3S4 13 19 12 17 18 INV3S
.ends
Ordinea terminalelor este : SI, SE, D, SN, CK, VDD, Q, QN.
Pentru analiza tranzitorie am folosit circuitul de test:
*ANALIZA TRANZITORIE
XBISTABIL 1 2 3 4 5 6 7 8 SDFFS
VDD 6 0 5
VSN 4 0 PULSE(5 0 0 0.4n 0.4n 5n 70n)
VSI 1 0 PULSE(0 5 25n 0.4n 0.4n 10n 20n)
VSE 2 0 PULSE(0 5 0 0.4n 0.4n 15n 30n)
VD 3 0 PULSE(0 5 0 0.4n 0.4n 10n 15n)
VCK 5 0 PULSE(0 5 7n 0.4n 0.4n 10n 20n)
CQ 7 0 0.1p
CQN 8 0 0.1p
.LIB NOM.LIB
.INC "SUBCIRCUITE.TXT"
.INC "CMOS_HP_05_T49G.TXT"
.tran 0.1n 75n
.probe
.end
S-au obtinut formele de unda :
Formele de unda pentru CK, SE, SI, D SI SN

Formele de unda pentru CK, D, Q si QN

Simularea parametrica a lui CL am realizat-o cu urmatorul circuit de test:


*SIMULARE PARAMETRICA CL
XBISTABIL 1 2 3 4 5 6 7 8 SDFFS
VDD 6 0 5
VSN 4 0 PULSE(5 0 0 0.4n 0.4n 5n 70n)
VSI 1 0 PULSE(0 5 25n 0.4n 0.4n 10n 20n)
VSE 2 0 PULSE(0 5 0 0.4n 0.4n 15n 30n)
VD 3 0 PULSE(0 5 0 0.4n 0.4n 10n 15n)
VCK 5 0 PULSE(0 5 7n 0.4n 0.4n 10n 20n) CQ 7 0 {CL}
CQN 8 0 {CL}
.PARAM CL=0.1p
.STEP PARAM CL 0p 0.15p 0.01p
.LIB NOM.LIB
.INC "SUBCIRCUITE.TXT"
.INC "CMOS_HP_05_T49G.TXT"
.tran 0.1n 70n
.probe
.end
S-au obtinut formele de unda:

Formele de unda pentru CK si Q

Formele de unda pentru CK si QN

Pentru analiza de performanta am folosit functiile tinta:


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

S-au obtinut formele de unda:


tpLH_intrinsec(Q)=16.892n

tpHL_intrinsec(Q)=1.238n

tpLH_intrinsec(QN)=11.736n
tpHL_intrinsec(QN)=6.6282n

tpLH tpHL
Descriere
tpLHintrinsec Kload tpHLintrinsec Kload

CK → Q 16.892n 7400 1.238n 10424

CK → QN 11.736n 8530 6.6282n 10942

Simularea parametrica a lui TR am realizat-o cu circuitul:


*SIMULARE PARAMETRICA TR
XBISTABIL 1 2 3 4 5 6 7 8 SDFFS
VDD 6 0 5
VSN 4 0 PULSE(5 0 0 0.4n 0.4n 5n 70n)
VSI 1 0 PULSE(0 5 25n 0.4n 0.4n 10n 20n)
VSE 2 0 PULSE(0 5 0 0.4n 0.4n 15n 30n)
VD 3 0 PULSE(0 5 0 0.4n 0.4n 10n 15n)
VCK 5 0 PULSE(0 5 7n {TR} {TR} 10n 20n)
CQ 7 0 0.1p
CQN 8 0 0.1p
.PARAM TR=0.4n
.STEP PARAM TR 0n 0.6n 0.01n
.LIB NOM.LIB
.INC "SUBCIRCUITE.TXT"
.INC "CMOS_HP_05_T49G.TXT"
.tran 0.1n 55n
.probe
.end
S-au obtinut formele de unda:

Formele de unda pentru CK si Q

Formele de unda pentru CK si QN

Pentru analiza parametrica am folosit aceleasi functii tinta ca in cazul anterior si s-au
obtinut formele de unda:

Dependenta tpLH_Q fata de CK la variatia TR a CK


Dependenta timpilor de propagare tpHL_Q la variatia TR a CK.

Dependenta timpilor de propagare tpLH_QN la variatia TR a CK.

Dependenta timpilor de propagare tpHL_QN la variatia TR a CK.

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