Sunteți pe pagina 1din 18

PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

III. Sumator pe 8 biţi

III.1. Scopul lucrării

Să se prezinte, implementeze şi simuleze un circuit


sumator care adună doi vectori de câte 8 biţi fiecare.

III.2. Descriere teoretică a lucrării

Însumarea cifrelor binare este cea mai frecventă


operaţie de prelucrare a datelor. Respectând algoritmul
general de însumare a oricăror două numere (în binar sau în
altă bază), operaţia se execută în mod repetat pentru fiecare
pereche de cifre, pornind de la poziţia cea mai puţin
semnificativă înspre cea mai semnificativă (altfel spus de la
dreapta spre stânga, considerând sistemul de numeraţie
arab), ţinând cont de transportul generat pe fiecare poziţie.
Pe baza acestei funcţionări, putem defini
semisumatorul elementar ca fiind un circuit logic combinaţional
care adună două numere de un bit A şi B, generând suma lor
S şi transportul T către rangul următor.
Obţinem astfel următorul tabel de adevăr:

A B S T
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Din tabelul anterior, putem scrie ecuaţiile logice pentru


semisumator:
S = AB + AB = A �B
T = AB

33
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

Schema pentru semisumatorul elementar arată în


modul următor:

Fig. 3.1. Schema logică a semisumatorului elementar

Se poate observa că semisumatorul prezintă un


dezavantaj critic: nu putem efectua însumarea ţinând cont de
transportul de pe rangul anterior, chiar dacă el a fost generat.
Astfel, este necesară construirea unei logici în care să ţinem
cont şi de transportul anterior, rezultând circuitul sumator
pentru un rang. Acesta adună două numere binare pe un bit
împreună cu un bit transport de intrare generează suma şi
transportul spre rangul următor.
Având 3 biţi de intrare, vom avea 23=8 linii în tabelul de
adevăr, cuprinzând toate posibilităţile. Notăm cu A şi B cei doi
biţi de însumat, cu Tin transportul de pe rangul anterior (de
intrare) şi cu Tout transportul generat pentru rangul următor (de
ieşire).

A B Tin S Tout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

34
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

Din tabelul de adevăr rezultă forma canonică ale expresiei


sumei:
S = ABTin + ABTin + ABTin + ABTin

Această ecuaţie se poate aduce prin factorizare la o


formă mai simplă, realizabilă cu mai puţine elemente de
circuit. Menţinerea unui număr minim de niveluri logice este
foarte importantă deoarece timpul efectuării operaţiei sumă
trebuie să fie cât mai mic. Astfel, timpul de efectuare a
operaţiei are prioritate asupra numărului de porţi utilizate,
preferându-se implementarea cu întârzierea cea mai mică. În
urma factorizării, obţinem o formă foarte des utilizată:

S = A �( B �Tin ) = ( A �B ) �Tin

Implementarea ecuaţiei de mai sus are următoarea schemă:

Fig. 3.2. Schema logică a sumei folosind porţi SAU-EXCLUSIV

Timpul de întârziere pentru o poartă SAU-EXCLUSIV


este de 18 ns, astfel timpul de răspuns al circuitului va fi de 36
ns. Dacă realizăm circuitul cu porţi ŞI-NU, atunci timpul de
răspuns va fi de 24 ns, deci implementarea folosind porţi ŞI-
NU este mai avantajoasă ca timp de răspuns. Într-adevăr,
poarta ŞI-NU este considerată „poartă universală”, orice altă
poartă putând fi construită din astfel de elemente. În cazul
porţii SAU-EXCLUSIV, avem următoarea schemă echivalentă:

35
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

Fig. 3.3. Schema logică a sumei folosind porţi ŞI-NU

Pentru implementarea cu porţi ŞI-NU se porneşte de la


forma canonică disjunctivă a expresiei sumei şi se neagă de
două ori, calculând o negaţie cu teoremele lui De Morgan.
Obţinem astfel:

S = ( ABTin ) �
( ABTin ) �( ABTin ) �( ABTin )
Observăm că pentru a păstra 2 nivele logice sunt
necesare atât variabilele de intrare directe, cât şi cele negate.
Dacă am folosi inversoare pentru a nega variabilele, acestea
ar introduce la rândul lor întârzieri diminuând sau anulând
avantajul construirii circuitului numai pe logică ŞI-NU. Astfel,
obţinem o schemă de complexitate mai mare dar care prezintă
un timp de răspuns mai mic:

Fig. 3.4. Schema logică a sumei cut timp de răspuns minim

36
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

Propagarea transportului are o importanţă majoră, de


asemenea. Transportul pe un rang are expresia:

Tout = ABTin + ABTin + ABTin + ABTin

Putem aduce expresia transportului la o formă mai


simplă fie prin factorizare, fie utilizând diagrame Veitch –
Karnaugh:

Se observă imediat grupările care se pot realiza pe


diagramă cu scopul minimizării funcţiei:

În urma minimizării obţinem expresia:

Tout = AB + ATin + BTin

Ecuaţia de mai sus de poate implementa cu porţi ŞI


respectiv SAU după cum urmează:

37
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

Fig. 3.5. Schema logică a transportului

Pentru sinteza cu porţi ŞI-NU, vom utiliza ecuaţia:

Tout = ( AB ) �
( ATin ) �
( BTin )
Schema pentru ecuaţia de mai sus este următoarea:

Fig. 3.6. Schema logică a transportului folosind porţi SI-NU

În cazul unui sumator de 8 biţi, cea mai simplă


abordare a problemei o reprezintă punerea în serie a 8
sumatoare pe 1 bit. Astfel, vom executa operaţia de sumă
asupra fiecărei perechi de biţi, iar transportul se propagă în
cascadă sau în serie.
Schema constă în amplasarea de 8 ori a sumatorului
descris mai sus, numit sumator complet pentru un rang.
Transportul generat pe fiecare rang devine transport de intrare
pentru rangul următor. Din acest motiv, însumarea într-un rang
superior se poate face doar după primirea transportului din

38
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

rangul inferior. Cazul cel mai dezavantajos este acela când


transportul se propagă de la un capăt la celălalt al sumatorului.
Timpul de efectuare al adunării tad şi timpul de propagare al
transportului tpT sunt date de relaţiile:

tad = ( n - 1) tT + tS
t pT = n �
tT

Am notat cu tS timpul de efectuare al adunării şi t T


timpul necesar obţinerii transportului într-un rang, n fiind rangul
maxim (8 în cazul nostru). Schema-bloc pentru sumatorul
serie este:

Fig. 3.7. Schema bloc a sumatorului serie

O altă modalitate de a implementa un sumator pe mai


multe ranguri o reprezintă sumatorul paralel. Acesta este un
circuit logic combinaţional care însumează doi operanzi binari
aplicaţi în paralel la intrările Ai şi Bi (i=1..8 în cazul de faţă) şi
un bit de transport Ti, generând la ieşire suma Si şi transportul
T0. Circuitul este compus din sumatoare elementare pentru
însumarea biţilor Ai şi Bi. Fiecare sumator elementar primeşte
de la rangul inferior transportul Ti şi generează spre blocul de
rang următor Ti-1.
Funcţiile transport trebuie realizate pentru acelaşi rang
practic în acelaşi timp şi pentru toate valorile variabilei de
intrare de rang inferior.

Ti -1 = Ai Bi + AT
i i + BiTi � Ti -1 = f ( Ai , Bi , Ti )

Pentru transportul simultan trebuie să avem:

39
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

Ti -1 = f ( Ai , Bi , Ai +1 , Bi +1 ,K , A8 , B8 , T8 )

O schemă ca rezultat al unei astfel de funcţii devine


foarte laborioasă. Crescând numărul de poziţii binare devine
imposibil de realizat pe 2 niveluri logice, astfel propagarea nu
mai este simultană pentru toate rangurile.
Cunoscând T4, pentru patru ranguri binare câteva din
expresiile transportului sunt:

T3 = A4 B4 + A4T4 + B4T4
T2 = A3 B3 + A3 A4 B4 + A3 A4T4 + A3 B4T4 + B3 A4 B4 + B3 A4T4 + B3 B4T4

Continuând în acest fel, expresiile devin foarte


complicate. Pentru simplificare, obţinând totodată şi o
propagare mai rapidă decât la propagarea serie şi mai
economică decât la cea simultană, în practică este folosit
principiul anticipării transportului pentru toate poziţiile binare
ale sumatorului sau pentru anumite părţi ale acestuia.
Anticiparea este realizată utilizând mai multe niveluri
de circuite logice ale transportului simultan. În vederea
realizării schemei considerăm formele factorizate ale
transportului pentru un rang, din cazul sumatorului cu
propagarea în serie a transportului. Forma canonică este:

Ti -1 = Ai BiTi + Ai BiTi + Ai BiTi + Ai BiTi

Forma minimă disjunctivă este:

Ti -1 = Ai Bi + AT
i i + Bi Ti

Relaţia mai poate fi scrisă astfel:

Ti -1 = Ai Bi + Ti ( Ai Bi + Ai Bi )

Relaţia se mai poate scrie:

40
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

Ti -1 = Ai Bi + Ti ( Bi + Ai )

Se poate constata că transportul pentru rangul superior are


două componente: prima Gi = Ai Bi ce reprezintă condiţia de
producere a transportului în rangul i şi a doua Pi = Ai Bi + Ai Bi
*
respectiv Pi = Bi + Ai care reprezintă condiţia de propagare
pentru rangul i. Poate fi folosită oricare din cele două expresii
pentru condiţia de propagare.
Dacă în expresiile şi înlocuim succesiv transportul Ti,
se ajunge la forma generală a transportului anticipat. Notăm
cu Pi funcţia de propagare.

Ti -1 = Gi + Gi +1 Pi + Gi + 2 Pi +1 Pi + Gi +3 Pi + 2 Pi +1 Pi + K + Tn Pn -1Pn -2 K Pi + 2 Pi +1Pi
Se poate observa că şi această expresie devine
complicată atunci când numărul de poziţii binare este mai
mare. În practică se aplică principiul anticipării transportului
pentru patru sau mai multe poziţii binare.
Pentru 4 poziţii binare notate 1, 2, 3, 4 expresiile vor
avea următoarea formă:

T4 cunoscut
T3 = G4 + T4 P4
T2 = G3 + G4 P3 + T4 P4 P3
T1 = G2 + G3 P2 + G4 P3 P2 + T4 P4 P3 P2
T0 = G1 + G2 P1 + G3 P2 P1 + G4 P3 P2 P1 + T4 P4 P3 P2 P1

Cu această formă realizăm un circuit integrat pentru


anticiparea transportului.
Schema-bloc pentru un sumator paralel cu 4 ranguri
construit după acest principiu arată ca în schema următoare:

41
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

Fig. 3.8. Schema bloc pentru un sumator paralel cu 4 ranguri

La nivel de porţi logice, schema pentru un rang arată în


felul următor:

Fig. 3.9. Schema logică pentru un sumator paralel cu 4 ranguri

42
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

Pentru a elimina timpul de inversare se realizează în


paralel atât funcţiile directe cât şi cele negate. În cazul cel mai
avantajos am putea obţine un timp de întârziere echivalent cu
*
cel pentru 6 niveluri logice. Trebuie să remarcăm că funcţia Pi
este mai avantajoasă deoarece poate fi realizată pe un singur
nivel logic. Dacă se foloseşte condiţia de propagare a
*
transportului sub forma Pi = Bi + Ai , expresia sumei trebuie
scrisă folosind ecuaţia Si = Ai BiTi + Ai BiTi + Ai BiTi + Ai BiTi .
Dorim să scriem Si în funcţie de Gi = Ai �
Bi şi Pi * = Bi + Ai .
Avem:
Gi = Ai + Bi �
� *
*
�� Pi = Pi �Gi
Pi = Ai �Bi �
Deci:

Si = PT *
( *
) *
(*
i i + Ti Pi = Pi GiTi + Pi Gi Ti = Pi GiTi + Pi + Gi Ti)
Atunci când numărul de poziţii binare este mai mare ca 4, se
pune problema transportului între grupe. Există 2 alternative:

a) se consideră transportul obţinut în grupa inferioară, ca


transport iniţial pentru grupa de rang imediat superior.
În acest caz sumatorul deveni un sumator paralel cu
propagarea transportului în serie între grupe. Timpul de
adunare va fi determinat de timpul de propagare a
transportului până la ultima grupă ( m - 1) tTG plus
timpul de efectuare al sumei pe grupă t SG , m fiind
numărul de grupe:
tad = ( m - 1) tTG + t SG
b) cu anticiparea transporturilor între grupe. În acest caz
transportul iniţial pentru fiecare grupă, cu excepţia celei

43
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

dintâi, se obţine printr-o schemă de anticipare a


transportului, similară cu cea din cadrul grupei.

III.3. Implementarea practică a sumatorului serie pe 8 biţi

Pentru implementare vom considera 8 sumatoare de 1


bit conectate în serie. Executăm implementarea în Xilinx ISE
8.1i, utilizând editorul de schemă. În vederea eficientizării
lucrului, vom proiecta iniţial sumatorul pe un rang, urmând
apoi a-l defini ca simbol în Xilinx pentru a putea fi utilizat pe
scară largă, astfel putând utiliza 8 simboluri conectate mai
departe la nivel de schemă-bloc între ele.

Pasul 1: Ca un prim pas, trasăm segmente mici de fire,


neconectate, la capetele cărora plasăm pinii de intrare şi de
ieşire, redenumindu-i apoi corespunzător:

44
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

Pasul 2: Implementăm sumatorul cu porţi ŞI, SAU respectiv


SAU-EXCLUSIV. Plasăm porţile pe cele 2 nivele logice, ca în
imagine:

Pasul 3: Conectăm porţile la intrări şi ieşiri conform ecuaţiilor


logice, astfel obţinând sumatorul pe un rang:

45
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

Pasul 4: Utilizăm comanda „Implement Top Module” pentru a


implementa proiectul nostru. În urma efectuării unor operaţii,
Xilinx ISE ne va genera următorul raport:

Pasul 5: Bazându-ne pe schema sumatorului pe un rang, vom


crea un simbol-bloc pe care îl vom înseria ulterior:

46
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

Pasul 6: Simbolul-bloc creat, denumit sumator arată astfel:

Pasul 7: Odată creat simbolul, aşezăm cele 8 sumatoare câte


4 pe două coloane, ca în imaginea de mai jos:

47
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

Pasul 8: Legăm cu fire cele 8 sumatoare, astfel încât


transportul de ieşire Cout al unui sumator să fie transport de
intrare Cin pentru sumatorul de pe rangul următor. De
asemenea, trasăm firele la care vom conecta în final pinii de
intrare şi de ieşire ale schemei:

Pasul 9: În final plasăm pinii, aranjându-i (opţional) într-un


mod sugestiv:

48
PROIECTAREA LOGICĂ A CIRCUITELOR COMBINAŢIONALE. APLICAŢII.

Pasul 10: Implementăm schema de ansamblu utilizând


comanda „Implement Top Module” din meniul Process. Xilinx
ISE ne furnizează următorul raport:

Pasul 11: Pentru simulare am folosit simulatorul ModelSim de


la Xilinx, încorporat în Xilinx ISE. Simularea s-a efectuat pe
schema sumatorului pe 8 biţi şi schema sumatorului pe un
rang. În cazul sumatorului pe un rang, introducem valorile de
intrare conform tabelului de adevăr. La schema de ansamblu
introducem aleator valori logice pentru cele 8 perechi de
intrări, deoarece un tabel de adevăr exhaustiv pentru toate
cazurile generate de numărul intrărilor ar presupune o
cantitate mare de muncă ce nu ne demonstrează acurateţea
dispozitivului într-o măsură mai mare.

Rezultatele simulărilor sunt după cum urmează:

49
ERICA MANG, IOAN MANG, CONSTANTIN POPESCU

 Sumator pe un rang

 Sumator pe 8 biţi

III.4. Teme propuse

a) Să se implementeze şi apoi simuleze cicuitul


sumator serie pe 16 biţi.
b) Să se implementeze şi apoi simuleze cicuitul
sumator paralel pe 8 biţi.

50

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