cap.3 clase de circuite logice...

100
Circuite Logice Combinaţionale 143 Fig.3.1 Convertor de cod 8421/84-2-1 Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALE Circuitele integrate digitale cu complexitate mare, numite şi sisteme digitale, conţin în structura lor un număr foarte mare de tranzistoare. Proiectarea unui circuit format din sute de mii sau milioane de tranzistoare este posibilă numai printr-o abordare funcţională şi structurală ierarhică. Astfel, un sistem se obţine prin interconectarea mai multor părţi sau subsisteme, bine definite funcţional şi structural; la rândul lor subsistemele sunt obţinute prin interconectarea unor blocuri ş.a.m.d. Această partiţionare se continuă până când se obţin “componente” cu dimensiuni rezonabile, care pot fi eficient modelate, sintetizate, optimizate, analizate etc. În acest capitol sunt prezentate blocuri combinaţionale care stau la baza construirii structurilor ierarhice. 3.1 Convertoare de cod Informaţiile pot fi reprezentate binar în diferite coduri. Reprezentarea dintr-un anumit cod poate fi prelucrată astfel încât să se obţină o reprezentare într-un alt cod. Circuitele care realizează acest tip de operaţie se numesc convertoare de cod; două exemple sunt prezentate în acest paragraf. În fig.3.1 este descrisă funcţionarea circuitului care face conversia de la codul 8421 la codul 84-2-1.

Upload: others

Post on 22-Jan-2020

21 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 143

Fig.3.1 Convertor de cod 8421/84-2-1

Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALE

Circuitele integrate digitale cu complexitate mare, numite şi sistemedigitale, conţin în structura lor un număr foarte mare de tranzistoare. Proiectareaunui circuit format din sute de mii sau milioane de tranzistoare este posibilănumai printr-o abordare funcţională şi structurală ierarhică. Astfel, un sistem seobţine prin interconectarea mai multor părţi sau subsisteme, bine definitefuncţional şi structural; la rândul lor subsistemele sunt obţinute prininterconectarea unor blocuri ş.a.m.d. Această partiţionare se continuă pânăcând se obţin “componente” cu dimensiuni rezonabile, care pot fi eficientmodelate, sintetizate, optimizate, analizate etc. În acest capitol sunt prezentateblocuri combinaţionale care stau la baza construirii structurilor ierarhice.

3.1 Convertoare de cod

Informaţiile pot fi reprezentate binar în diferite coduri. Reprezentareadintr-un anumit cod poate fi prelucrată astfel încât să se obţină o reprezentareîntr-un alt cod. Circuitele care realizează acest tip de operaţie se numescconvertoare de cod; două exemple sunt prezentate în acest paragraf.

În fig.3.1 este descrisă funcţionarea circuitului care face conversia de lacodul 8421 la codul 84-2-1.

Page 2: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

144 Cap.3 Clase de circuite logice combinaţionale

Figura 3.2

Fig.3.3 Implementarea convertorului 8421/84-2-1

Convertorul de cod 8421/84-2-1 este un circuit combinaţional careimplementează un sistem de 4 funcţii incomplet definite x, y, v şi w care depindde variabilele a, b, c şi d. Minimizarea acestui sistem de funcţii este prezentatăîn fig.3.2.

Grupările efectuate în aceste tabele determină următoarele expresii logice:

G1 G2x = (a + c + d)(a + b)

G3 G4 G5y = (a + c + )(a + c + )(b + c) = (c + )· (3.1)b d⊕ b d⊕ b d⊕ bc

G6 G7v = cd + cd = c d⊕

G8w = d

Sistemul de funcţii 3.1 este implementat de circuitul din fig.3.3.

Page 3: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 145

Fig.3.4 Convertor de cod 2-din-5/exces 3

Figura 3.5

În fig.3.4 este descrisă funcţionarea circuitului care face conversia de lacodul “2 din 5” la codul “exces 3”.

Minimizarea sistemului de funcţii incomplet definite x, y, v, w este prezentatăîn fig.3.5. Spaţiile libere din tabelele de adevăr conţin valori indiferente.

Convertorul de cod 2-din-5/exces 3 este descris de relaţiile 3.2 şi este

Page 4: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

146 Cap.3 Clase de circuite logice combinaţionale

Fig.3.6 Implementarea convertorului 2-din-5/exces 3

implementat de circuitul din fig.3.6.

G1 G2x = + ad e+

G3 G4y = bc + a bc = bc + a b c+ +

G5 G6 G7 (3.2)v = ac + be + cd

G8 G9w =ab d + ad = + ada b d+ +

3.2 Codificatoare-decodificatoare

Codificatoarele sunt circuite combinaţionale care au 2n intrări (sau maipuţine) şi n ieşiri; dacă o singură intrare a circuitului este activă la un momentdat atunci această intrare este “indicată” prin intermediul unei combinaţii de nbiţi de ieşire numită adresă. O intrare este considerată activă dacă are o anumită

Page 5: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 147

Fig.3.7 Simboluri pentru codificatoare de adresă

valoare logică validă v 0 {0, 1} şi inactivă dacă are valoarea v. În fig.3.7a, bsunt desenate simbolurile grafice pentru codificatoarele cu intrări active penivelul 1 logic şi respectiv cu intrări active pe 0 logic.

Tabela de funcţionare a unui codificator de adresă cu intrări active pe nivelul0 logic este reprezentată în fig.3.8; echivalentul zecimal al adresei A1A0 esteegal cu indicele intrării active. Funcţiile A1 şi A0 sunt incomplet specificate.

I3 I2 I1 I0 A1 A0 1 1 1 0 0 0 A1 = I3 + I2 1 1 0 1 0 1 1 0 1 1 1 0 A0 = I3 + I1 0 1 1 1 1 1

Figura 3.8

Expresiile ieşirilor A1 şi A0 au fost determinate în mod direct pe baza tabelei;astfel, A1 are valoarea 1 numai dacă este activă fie intrarea I3 fie intrarea I2. Înfuncţionarea acestui codificator există ambiguităţi; indicaţia A1A0 nu estecorectă dacă nici o intrare nu este activă sau dacă sunt active simultan maimulte intrări. De exemplu, când toate cele 4 intrări sunt inactive rezultă A1A0= 00; dacă sunt active simultan intrările I2 şi I1 rezultă A1A0 = 11.

O funcţionare fără ambiguităţi se obţine în cazul codificatorului de adresăcu prioritate. Circuitul are o ieşire suplimentară prin care se indică dacă esteactivă cel puţin o intrare sau dacă toate intrările sunt inactive. Când mai multeintrări sunt active simultan circuitul generează adresa intrării active care areprioritatea cea mai mare; se consideră că prioritatea unei intrări este egală cuindicele acesteia. Tabela de funcţionare şi simbolul unui codificator de adresăcu prioritate, cu 4 intrări active pe nivelul 0, sunt reprezentate în figura 3.9.

Page 6: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

148 Cap.3 Clase de circuite logice combinaţionale

Fig.3.9 Codificator de adresă cu prioritate

Figura 3.10

Funcţionarea codificatorului poate fi blocată sau validată cu ajutorul intrării deautorizare notată Enable; blocarea este determinată de Enable = 0 şi în aceastăsituaţie toate ieşirile circuitului sunt deconectate, adică sunt puse în starea deînaltă impedanţă notată Z4. Ieşirea notată AI (Active Input) indică existenţa sauabsenţa intrărilor active atunci când este autorizată funcţionarea codificatorului.

Deconectarea ieşirilor poate fi realizată cu porţi de transmisie. Expresiile logicecare descriu funcţionarea codificatorului din fig.3.9 când Enable = 1 sunt:

(3.3)

AI = ⋅ ⋅ ⋅

+ ⋅ = +

+ ⋅ ⋅ = + ⋅

I3 I2 I1 I0

A1 = I3 I3 I2 I3 I2

A0 = I3 I3 I2 I1 I3 I2 I1

O implementare a acestui codificator este reprezentată în fig.3.10.

Page 7: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 149

Figura 3.11

Figura 3.12

Decodificatoarele sunt circuite combinaţionale care activează una sau maimulte ieşiri în funcţie de codul aplicat la intrări. Sunt prezentate în continuaretrei tipuri de decodificatoare.

Decodificatoarele de adresă reprezentate prin simbolurile din fig.3.11a,b sunt numite şi decodificatoare 1-din-2n deoarece activează o singură ieşire.Aceste circuite realizează funcţia inversă codificatoarelor de adresă. Valorilelogice aplicate la cele n intrări, marcate cu cifrele zecimale 0, 1, 2, ..., n - 1,constituie adresa care este decodificată; adresa An-1...A1A0 determină activareaieşirii marcate cu cifra k, în conformitate cu relaţia k(10) = An-1...A1A0(2).

Decodificatorul din fig.3.11a “generează” toţi mintermenii de n variabile

Y0 = An-1·...·A1·A0, Y1 = An-1·...·A1·A0, ..., = An-1·...·A1·A0Y2n −1

iar decodificatorul din figura 3.11b “generează” toţi maxtermenii de n variabile

Y0 = An-1 +... + A1 + A0, Y0 = An-1 +... + A1 + A0, ..., = An-1 +...+ A1 + A0.Y2n −1

Tabela de funcţionare a unui decodificator 1-din-4 cu ieşiri active pe nivelullogic 1 şi cu intrare de autorizare activă pe nivelul 0 este prezentată în fig.3.12.

Page 8: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

150 Cap.3 Clase de circuite logice combinaţionale

Fig.3.13 Implementare a decodificatorului 1-din-4

Figura 3.14

Când Enable = 1 funcţionarea decodificatorului este blocată; în această situaţietoate ieşirile sunt inactive. Structura circuitului la nivel de poartă logică estereprezentată în fig.3.13.

Decodificatorul 1-din-4 cu intrare de autorizare poate fi expandat adicădouă sau mai multe astfel de circuite pot fi conectate astfel încât să se obţină undecodificator 1-din-2n, cu sau fără intrare de autorizare. În fig.3.14 şi 3.15 suntdesenate schemele de expandare a decodificatorului 1-din-4 pentru a obţine undecodificator 1-din-8 fără intrare de autorizare şi respectiv cu intrare deautorizare.

Blocul CLC din fig.3.14 este descris de relaţiile a = A2, b = A2, c = A1, d = A1,e = A0 şi f = A0, deduse în mod direct prin comparaţii în tabelele de adevăr.

Page 9: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 151

Fig.3.16 Decodificator BCD-zecimal

Figura 3.15

Decodificatoarele 1-din-2n pot fi considerate convertoare de cod binar/zecimal.

Un alt tip de decodificator este decodificatorul BCD-zecimal; acesta poatefi privit ca decodificator de adresă modificat (decodificator 1-din-10) sauconvertor de cod BCD/zecimal. Tabela de funcţionare şi simbolul grafic al unuidecodificator BCD-zecimal cu ieşiri active pe nivelul logic 0 sunt prezentate înfig.3.16.

Intrarea cea mai semnificativă este D iar cea mai puţin semnificativă este A.Pentru oricare din cele 6 combinaţii de intrare care nu reprezintă coduri BCD(1010, 1011, 1100, 1101, 1110, 1111) toate ieşirile decodificatorului suntinactive; datele de intrare “false” sunt rejectate.

Un decodificator care activează simultan mai multe ieşiri estedecodificatorul BCD-7 segmente, utilizat pentru comanda celulelor de afişare

Page 10: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

152 Cap.3 Clase de circuite logice combinaţionale

Figura 3.18

Fig.3.17 Celulă de afişare cu 7 segmente

cu 7 segmente. Aceste celule pot fi de tip LED (Light Emitting Diode) sau LCD(Liquid Crystal Display); segmentele sunt notate şi poziţionate după cum searată în fig.3.17.

Funcţionarea unui decodificator BCD-7 segmente cu ieşiri active pe nivelullogic 1 este descrisă de tabela din fig.3.18. Circuitul are două intrări de testnotate (Lamp Test) şi (Blanking). Combinaţiile de intrare care nu suntLT BLcoduri BCD pot fi rejectate sau li se pot atribui alte semnificaţii decât cifre alebazei 10: -, E, b, c, d, ε, h, n, o, u, A, C, F, H, L, P.

3.3 Multiplexoare-demultiplexoare

Multiplexoarele sunt circuite combinaţionale care selectează una dintreintrările de date şi o direcţionează către singura ieşire; selecţia se realizeazăprin intermediul unor intrări de control. Aceste circuite mai sunt numite şiselectoare. Demultiplexoarele realizează funcţia inversă a multiplexoarelor;singura intrare de date este direcţionată către una dintre ieşirile circuitului,

Page 11: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 153

Figura 3.19

Figura 3.20

ieşire care este selectată cu ajutorul unor intrări de control sau de selecţie.Demultiplexoarele mai sunt numite şi distribuitoare. Simbolurilemultiplexoarelor şi demultiplexoarelor sunt desenate în fig.3.19. Intrarea deautorizare Enable este opţională.

Selecţia intrării de date Ik în cazul multiplexoarelor şi respectiv a ieşirii Yk încazul demultiplexoarelor se realizează după regula k(10) = Sn-1...S1S0(2). Dacăcircuitele sunt autorizate să funcţioneze atunci Y = Ik şi respectiv Yk = I; altfel,toate ieşirile sunt fie blocate pe un nivel logic, fie sunt puse în starea de înaltăimpedanţă Z4.

Tabela de adevăr, ecuaţia de funcţionare şi structura unui MUX de 4 căisunt prezentate în fig.3.20. Blocarea funcţionării circuitului, utilizând ocomandă suplimentară de autorizare, se poate obţine fie prin blocarea porţii ORfie prin blocarea porţilor AND. Expresia ieşirii Y reprezintă o funcţie logicăarbitrară, de variabile S1, S0 şi ale cărei valori sunt I0, I1, I2 şi I3. Orice funcţie

Page 12: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

154 Cap.3 Clase de circuite logice combinaţionale

Fig.3.21 Implementare a unei funcţii logice cu MUX

Fig.3.22 Expandare MUX de la 2 căi la 4 căi

Fig.3.23 Demultiplexoare de 2 căi

logică de două variabile poate fi implementată utilizând numai un MUX de 4căi.Un exemplu de implementare a unei funcţii logice utilizând un MUX de 8 căieste ilustrat în fig.3.21.

Multiplexoarele pot fi expandate; o schemă de conectare a 3 MUX-uri de2 căi care este echivalentă cu un MUX de 4 căi este desenată în fig.3.22.

Structura demultiplexorului de 2 căi este reprezentată în fig.3.23.

Page 13: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 155

Fig.3.24 Expandare DEMUX

Fig.3.25 MUX/DEMUX analogic

Se poate observa din fig.3.23b că intrarea de date I şi intrarea de autorizareEnable sunt echivalente funcţional; acest lucru este independent dedimensiunile demultiplexorului. O schemă de expandare a demultiplexoruluide la 2 căi la 4 căi este desenată în fig.3.24.

Observaţie: Demultiplexoarele pot fi utilizate ca decodificatoare de adresă. Înfuncţie de structură, intrarea de date se fixează fie la 0, fie la 1 logic şi aresemnificaţie de intrare de autorizare; adresa care va fi decodificată se aplică laintrările de selecţie. De asemenea, decodificatoarele de adresă cu intrare deautorizare pot fi utilizate ca demultiplexoare; intrarea de autorizare devineintrare de date.

Multiplexoarele şi demultiplexoarele prezentate până acum sunt circuiteunidirecţionale şi procesează numai semnale digitale. Cu ajutorul porţilor detransmisie se pot obţine circuite bidirecţionale, care procesează şi semnaleanalogice. Mai mult, structura multiplexorului devine identică cu aceea ademultiplexorului; un astfel de MUX sau DEMUX este numit MUX/DEMUXanalogic şi are structura reprezentată în fig.3.25.

Page 14: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

156 Cap.3 Clase de circuite logice combinaţionale

Fig.3.26 Generator-detector de paritate

Dacă funcţionarea decodificatorului de adresă din structura MUX/DEMUX esteblocată atunci toate cele 2n-1 porţi de transmisie sunt “întreruperi” iar ieşirilede date ale circuitului sunt în starea de înaltă impedanţă Z4; dacădecodificatorul este autorizat să funcţioneze, atunci o singură poartă detransmisie este în stare de conducţie.

3.4 Generatoare-detectoare de paritate

Paritatea unui “pachet” de biţi, care în general are semnificaţie de numărbinar sau de cuvânt al unui cod oarecare, este egală cu suma modulo 2 a biţilor;paritatea are valoarea 0(1) dacă numărul de biţi din pachet este par(impar).Detectorul “elementar” de paritate este poarta XOR sau XNOR. Structuradetectorului de paritate este identică cu aceea a generatorului de paritate şiconstă dintr-o reţea de porţi XOR-XNOR. Un generator-detector de paritate de4 biţi este reprezentat în fig.3.26.

Intrarea P (paritate) se fixează la 0 când circuitul este utilizat ca detector deparitate a unui pachet de 4 biţi, Y = C3rC2rC1rC0. Circuitul poate fi utilizat şipentru detecţia parităţii cuvintelor de 5 biţi, Y = C4rC3rC2rC1rC0, aplicând laintrarea P bitul C4; ordinea de aplicare a biţilor unui cuvânt de cod la intrăriledetectorului de paritate este arbitrară deoarece operaţia logică SAU EXCLUSIVeste comutativă şi asociativă. De asemenea, intrarea P poate fi utilizată şi pentruexpandarea circuitului.Combinaţiile de 4 biţi C3C2C1C0 pot fi “codificate” prin adăugarea unui bit decontrol Y, obţinut la ieşirea circuitului din fig.3.26 utilizat ca generator deparitate; toate cuvintele de cod YC3C2C1C0 au aceeaşi paritate P:

YrC3rC2rC1rC0 = (C3rC2rC1rC0rP)rC3rC2rC1rC0 = P.

Codurile formate numai din cuvinte care au aceeaşi paritate, 0 sau 1, suntcoduri detectoare de erori. Dacă la transmisia unor astfel de cuvinte de cod (fie

Page 15: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 157

Figura 3.27

la distanţă, fie local între circuite care fac parte din acelaşi sistem digital) seproduc erori logice care afectează un număr impar de biţi din cadrul aceluiaşicuvânt, atunci la recepţie erorile pot fi detectate; erorile care afectează unnumăr par de biţi ai aceluiaşi cuvânt de cod YC3C2C1C0 nu sunt detectate. Oschemă de principiu a codificării informaţiei C3C2C1C0, transmisiei şicontrolului parităţii la recepţie este reprezentată în fig.3.27.

Dacă la ieşirea detectorului de paritate se obţine valoarea logică v atunci încuvântul recepţionat YC3C2C1C0 există 1, 3 sau 5 biţi eronaţi; dacă detectorulde paritate indică Y = v atunci cuvântul recepţionat este identic cu cel transmisori conţine 2 sau 4 erori.

3.5 Circuite de deplasare

Deplasările sunt utilizate în special în cadrul operaţiilor aritmetice;deplasarea unui număr binar cu r ranguri spre stânga (spre cifra cea maisemnificativă) este echivalentă cu înmulţirea cu 2r iar deplasarea cu r rangurispre dreapta (spre cifra cea mai puţin semnificativă) este echivalentă cuîmpărţirea prin 2r. De exemplu, prin deplasarea numărului 101,1(2) (= 5,5(10))spre stânga cu 2 ranguri se obţine 10110 (= 22(10)) iar prin deplasarea spredreapta cu 1 rang se obţine 10,11 (= 2,75(10)); dacă deplasarea implică un formatde reprezentare mai mare, atunci noile cifre care sunt introduse în rangurile celemai semnificative sau în rangurile cele mai puţin semnificative au valoarea0(L).Circuitele de deplasare (shifters) combinaţionale sunt mult mai rapide decât celesecvenţiale şi pot să realizeze într-un singur pas deplasări cu un număr arbitrarde ranguri. Un circuit de deplasare are de obicei 2n intrări de date D2n-1...D1D0,n+1 intrări de control a deplasării Shift0, Shift1, ..., Shiftn şi n ieşiri Yn-1...Y1Y0,

Page 16: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

158 Cap.3 Clase de circuite logice combinaţionale

Fig.3.28 Circuit de deplasare combinaţional

după cum se arată în fig.3.28. O singură intrare de control Shiftk, k = 0, 1, ..., neste activă la un moment dat, adică are valoarea logică 1; această comandădetermină selectarea intrărilor consecutive Dn+k-1...Dk+1Dk şi conectarea lor laieşirile circuitului:

Yn-1...Y2Y1Y0 = Dn+k-1...Dk+2Dk+1Dk .

“Informaţia” care va fi procesată de către circuitul de deplasare este un numărsau un cuvânt format din n biţi. Acest număr se aplică fie la intrările Dn-1...D1D0,fie la intrările D2n-1...Dn+1Dn; la celelalte n intrări ale circuitului se atribuie numaivalori logice 0 sau numai valori logice 1.

Circuitul de deplasare din fig.3.28 poate fi utilizat şi pentru efectuareaoperaţiilor de rotire sau de permutare circulară a unui număr reprezentat într-un format de n biţi A = An-1...A1A0; pentru aceasta numărul A se aplică atât laintrările mai puţin semnificative cât şi la intrările mai semnificative, adică

D2n-1...Dn+1Dn = An-1...A1A0 şi Dn-1...D1D0 = An-1...A1A0 .

Dacă se activează una dintre comenzile Shift0 sau Shiftn se obţine Yn-1Yn-2...Y1Y0 = An-1An-2...A1A0. Dacă Shift1 = 1 se obţine Yn-1Yn-2 ...Y1Y0 = A0An-

1...A2A1, adică o rotire la stânga cu un rang iar dacă Shiftn-1 = 1 se obţine Yn-1Yn-2...Y1Y0 = An-2An-3...A0An-1, adică o rotire la dreapta cu un rang; Shift2 = 1determină o rotire la stânga cu două ranguri iar Shiftn-2 = 1 determină o rotire ladreapta cu două ranguri ş.a.m.d.

În fig.3.29 este reprezentată implementarea cu porţi de transmisie a unuicircuit de deplasare cu dimensiunea n = 3; implementarea se poate extinde cuuşurinţă la orice dimensiune. Pe baza acestei structuri se poate observa că,independent de dimensiunea n, semnalele aplicate la intrările de date Dtraversează numai un singur nivel de porţi de transmisie până la ieşirile Y;viteza maximă de operare a circuitului este determinată în principal de routing-ul acestuia, adică de capacităţile parazite ale conexiunilor.

Page 17: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 159

Figura 3.29

3.6 Comparatoare

Aceste circuite combinaţionale determină valoarea relativă a două numerebinare: “mai mic”, “egal” sau “mai mare”. Fie două numere binare întregi şifără semn A = An-1An-2...A1A0 şi B = Bn-1Bn-2...B1B0. Compararea acestor numerese efectuează prin comparaţii succesive ale cifrelor care au acelaşi rang, Ak şiBk, începând de la cifrele cele mai semnificative şi continuând către cifrele curangul 0; dacă An-1 … Bn-1 atunci comparaţia se încheie deoarece fie A > B, fieA < B iar dacă An-1 = Bn-1 atunci se continuă comparaţia cu cifrele din rangul n-2. Compararea biţilor cu rangul k este necesară numai dacă toate comparaţiileanterioare au ca rezultat valoarea “egal”.Compararea a două numere binare cu parte întreagă şi parte fracţionară, cuacelaşi format, se efectuează ca în cazul numerelor binare întregi indiferent depoziţia virgulei. Acest algoritm de comparare se poate extinde şi pentrunumerele binare sau codurile binare cu semn; deoarece semnul + se codifică deobicei cu 0 iar semnul - se codifică cu 1 şi ocupă rangul cel mai semnificativ,

Page 18: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

160 Cap.3 Clase de circuite logice combinaţionale

Figura 3.30

Figura 3.31

trebuie ca rezultatul comparării semnelor să fie modificat din “mai mic” în “maimare” şi reciproc sau să se recodifice semnele prin complementarea acestora.

Simbolul grafic şi tabelele care descriu funcţionarea unui comparatornumeric de 1 bit, cu ieşiri active pe nivelul logic 1 şi cu intrare de autorizare afuncţionării, sunt reprezentate în fig.3.30.

Ecuaţiile de funcţionare ale celulei de comparare de 1 bit, determinate direct dintabelele de mai sus, sunt reprezentate de sistemul 3.4 iar implementarea estedesenată în fig.3.31 x = Enable·Ak·Bk

y = Enable· (3.4)( )A B A Bk k k k+

z = Enable·Ak·Bk

Celula de comparare de 1 bit, cu sau fără intrare de autorizare, poate fiutilizată la construirea comparatoarelor de mai mulţi biţi. O schemă de

Page 19: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 161

Fig.3.32 Schemă de expandare a comparatoarelor

expandare generală, în care sunt conectate două comparatoare fără intrare deautorizare, este prezentată în fig.3.32. Comparatorul COMP1 compară cei maisemnificativi n1 biţi iar comparatorul COMP2 compară cei mai puţinsemnificativi n2 biţi. Circuitul obţinut prin această interconectare este uncomparator de n = n1 + n2 biţi, fără intrare de autorizare; autorizarea se poateface prin “condiţionarea” ieşirilor de către un semnal digital, ca în fig.3.31.

Ieşirile comparatorului de n biţi din figura de mai sus sunt active pe nivelul 1logic:- ieşirea A < B se activează dacă COMP1 indică “mai mic” (adică “<” = 1) saudacă COMP1 indică “egal” şi COMP2 indică “mai mic”;- ieşirea A = B se activează dacă ambele comparatoare indică “egal”;- ieşirea A > B se activează dacă COMP1 indică “mai mare” sau dacă COMP1indică “egal” şi COMP2 indică “mai mare”.

Dacă din schema desenată în fig.3.32 se elimină comparatorul COMP2şi se consideră că cele 5 porţi logice fac parte din structura comparatoruluiCOMP1 atunci se obţine un comparator care nu mai necesită componenteexterioare pentru expandare; acest nou comparator are 3 intrări de expandare,notate tot cu simbolurile <, = şi >, la care se conectează ieşirile cu aceleaşisemnificaţii din comparatorul biţilor cu rangurile imediat inferioare. O schemăde expandare a mai multor comparatoare de acest fel este desenată în fig.3.33;comparatoarele pot fi identice ca “dimensiune” sau diferite. La intrările deexpandare ale comparatorului biţilor care au rangurile cele mai puţinsemnificative trebuie aplicate valorile “<” = 0, “=” = 1 şi “>” = 0.

Page 20: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

162 Cap.3 Clase de circuite logice combinaţionale

Figura 3.33

Fig.3.34 Sumator elementar

3.7 Sumatoare-scăzătoare

Sumatorul este unul dintre cele mai studiate circuite digitale. Există maimulte posibilităţi de efectuare a adunării numerelor binare, fiecare soluţie avândpropriul compromis arie-viteză. Scăderea numerelor binare se poate efectua fieutilizând scăzătoare (aceste circuite se deosebesc de sumatoare din punct devedere funcţional şi structural), fie utilizând sumatoare; în acest din urmă cazscăderea se realizează prin intermediul adunării codurilor complementare, dupăcum s-a arătat în cap.1.

Subcircuitul de bază în construirea sumatoarelor este sumatorul elementar(full adder) prezentat în fig.3.34.

Sumatorul elementar are ca intrări biţii din rangul k ai operanzilor X şi Y (xk şirespectiv yk) şi bitul de transport (carry) ck care reprezintă o depăşire aformatului de 1 bit la adunarea efectuată în rangul k - 1; cele două ieşiri alesumatorului sunt bitul din rangul k al rezultatului adunării (sk) şi un bit detransport ck+1 care reprezintă o depăşire de format şi care trebuie luat în

Page 21: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 163

Fig.3.35 Structura sumatorului elementar

considerare la adunarea din rangul k + 1. Operaţia efectuată de sumatorulelementar poate fi reprezentată sub forma xk + yk + ck = ck+1sk în care “+” reprezintă adunarea algebrică în baza 2 iar rezultatul adunării esteun număr binar format din două cifre (MSB = ck+1, LSB = sk). Expresiile logicecare descriu funcţionarea sumatorului elementar, în conformitate cu grupărileefectuate în tabelele de adevăr din fig.3.34, sunt:

sk = xkr ykr ck (3.5)

ck+1 = xk yk + xk ck + yk ck = xk yk + (xk + yk )ck

O implementare a sumatorului elementar este reprezentată în fig.3.35 (s-autilizat expresia ).x y x y x yk k k k k k⊕ = + +

Tabelele de adevăr care descriu funcţionarea unui scăzător elementar (fullsubtractor) sunt reprezentate în fig.3.36. Scăzătorul elementar are ca intrări biţiidin rangul k ai operanzilor X şi Y (xk şi respectiv yk) şi bitul de împrumut(borrow) bk care reprezintă o depăşire a formatului de 1 bit la scăderea efectuată

Page 22: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

164 Cap.3 Clase de circuite logice combinaţionale

Fig.3.36 Scăzător elementar

în rangul k - 1; cele două ieşiri ale scăzătorului sunt bitul din rangul k alrezultatului scăderii (dk) şi un bit de împrumut bk+1 care reprezintă o depăşire deformat şi care trebuie luat în considerare la scăderea din rangul k + 1. Operaţiaefectuată de scăzătorul elementar poate fi reprezentată sub forma xk - yk - bk = bk+1dk

în care “-” reprezintă scăderea algebrică în baza 2 iar rezultatul scăderii este unnumăr binar format din două cifre (MSB = bk+1, LSB = dk).

Expresiile logice care descriu funcţionarea scăzătorului elementar, înconformitate cu grupările efectuate în tabelele de adevăr din fig.3.36, sunt:

dk = xkr ykr bk (3.6)

bk+1 = xk yk + xkbk + yk bk = xk yk + (xk + yk )bk

Structura scăzătorului elementar este asemănătoare cu aceea a sumatoruluielementar; funcţiile sk şi dk sunt identice iar expresia logică a împrumutului bk+1se poate obţine din expresia transportului ck+1 prin complementarea variabileixk. Sistemul 3.6 poate fi rescris sub următoarea formă echivalentă:

dk = (xkr yk)r bk (3.7)

bk+1 = xk yk + xkbk + yk bk = xk yk + (xk + yk )bk

Aceste relaţii indică una dintre posibilităţile de modificare a structuriireprezentate în fig.3.35 pentru a obţine o structură de scăzător elementar;circuitul modificat este desenat în fig.3.37.

Page 23: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 165

Fig.3.37 Structura scăzătorului elementar

Fig.3.38 Sumator/scăzător elementar

O celulă mixtă sumator/scăzător elementar este prezentată în fig.3.38;operaţia este selectată cu ajutorul intrării de control notată op (adunare dacă op= 0 şi scădere dacă op = 1).

Funcţia logică realizată la ieşirea de transport/împrumut a circuitului poate fireprezentată sub forma:

vk+1 = yk ·(xkr ukr op) + uk ·(xkr op) (3.8)

Page 24: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

166 Cap.3 Clase de circuite logice combinaţionale

Fig.3.39 Implementare a celulei sumator/scăzător elementar

Fig.3.40 Sumator/scăzător elementar

O implementare a celulei sumator/scăzător elementar pe baza relaţiei 3.8 estereprezentată în fig.3.39.

O altă variantă de implementare a celulei sumator/scăzător este desenată înfig.3.40 şi reprezintă o “combinare” a schemelor de sumator şi de scăzător dinfigurile 3.35 şi 3.37. Porţile 1 şi 2 au inversiunea controlată de variabila op.

Page 25: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 167

Figura 3.41

3.7.1 Sumatoare-scăzătoare binare cu transport-împrumut succesiv

Sumatoare, scăzătoare sau sumatoare-scăzătoare de n biţi se pot obţineprintr-o simplă interconectare a n celule elementare după cum se arată înfig.3.41. Denumirea de transport/împrumut succesiv reflectă modul depropagare a transportului sau împrumutului prin toate celulele circuitului, de lacelula 0 la celula n - 1; considerând că operanzii X, Y şi transportul(împrumutul) de intrare

Page 26: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

168 Cap.3 Clase de circuite logice combinaţionale

c0 (b0) se aplică simultan la intrările circuitelor din fig.3.41, atunci la ieşirilecelulelor sunt disponibile rezultatele după un regim tranzitoriu care creşte îndurată proporţional cu rangul celulelor.Fie un sumator de n biţi compus din celule elementare identice cu aceeareprezentată în fig.3.35; se consideră că toate porţile din structura acestei celuleau întârzierea tp cu excepţia porţii XOR a cărei întârziere este 2tp. În tabela dinfig.3.42 sunt calculate valorile întârzierilor (în raport cu momentul de aplicarea operanzilor X, Y şi transportului de intrare c0) după care sunt disponibilerezultatele de la ieşirile celulelor.

ieşire întârziere s0 5tp

c1 3tp

s1 5tp

c2 5tp

s2 7tp

c3 7tp

s3 9tp

c4 9tp

s4 11tp

c5 11tp

. . . . . . sn-1 [5 + 2(n-2)]tp, n > 1 cn [3 + 2(n-1)]tp, n > 0

Fig.3.42 Întârzierile sumatorului cu transport succesiv Calea critică din punct de vedere a vitezei de operare este calea de propagarea transportului c0-c1-c2-c3-...-cn.

Rezultate asemănătoare cu acelea din fig.3.42 se obţin şi în cazurilescăzătorului cu împrumut succesiv şi circuitului mixt sumator-scăzător cutransport-împrumut succesiv, pentru orice implementare a celulelor elementarede bază.

Dezavantajul major al circuitelor din fig.3.41 constă în reducerea vitezeide operare odată cu creşterea dimensiunilor acestora (adică cu mărireanumărului de celule elementare care compun circuitele). Avantajele circuitelor

Page 27: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 169

Fig.3.43 Sumator cu transport anticipat

din fig.3.41 sunt următoarele:- proiectarea implică un efort redus de calcul;- aria ocupată este mică în raport cu alte arhitecturi de sumatoare, scăzătoare sausumatoare-scăzătoare;- testarea sau verificarea funcţionării este simplă şi eficientă (aceastăproprietate va fi “demonstrată” în cap.5).

Creşterea vitezei de operare a sumatoarelor/scăzătoarelor se poate realizaprin modificarea modului de propagare a transportului/împrumutului, adică deinterconectare a celulelor elementare; prin aceasta se măreşte aria ocupată pechip. Trei tipuri de sumatoare binare, mai rapide decât cel cu transport succesiv,sunt prezentate în paragrafele următoare (aceste tehnici de creştere a vitezei seaplică şi scăzătoarelor sau circuitelor mixte sumator-scăzător).

3.7.2 Sumatoare binare cu transport anticipat

La adunarea xk + yk + ck efectuată în rangul k apare transport către rangulk + 1 (adică ck+1 = 1) în următoarele două situaţii: 1) xk = yk = 1;În acest caz transportul ck+1 = 1 este generat local, de către celula de rangul k,indiferent de valoarea transportului ck de la intrarea acesteia. 2) xk … yk şi ck = 1 (sau xk + yk = 1 şi ck = 1).În acest caz transportul ck+1 = 1 apare datorită propagării transportului ck = 1prin sumatorul elementar de rangul k.

Fie Gk = xk yk şi Pk = xk + yk funcţia de generare şi respectiv funcţia depropagare a transportului corespunzătoare celulei cu rangul k. Sistemul 3.5 caredescrie funcţionarea sumatorului elementar poate fi rescris sub forma: sk = xkr ykr ck (3.9)

ck+1 = Gk + Pk ck

Structura unui sumator de n biţi cu transport anticipat este desenată în fig.3.43.

Page 28: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

170 Cap.3 Clase de circuite logice combinaţionale

Figura 3.44

Fiecare celulă elementară din structura sumatorului de n biţi cu transportanticipat “calculează” valorile a trei funcţii logice şi anume bitul sumă curangul corespunzător poziţiei celulei sk, funcţia de generare a transportului Gkşi funcţia de propagare a transportului Pk. Cu excepţia celulei de rang 0, toatecelulele sumatorului au la intrarea lor de transport valori determinate de cătreblocul GTA; acesta trebuie să determine simultan toate transporturile c1, c2, ...,cn-1, cn, sarcină posibilă de realizat deoarece toate celulele furnizează simultanvalorile Gk , Pk. Structura unei celule elementare din cadrul sumatorului cutransport anticipat este mai simplă decât a celei din fig.3.35 şi este desenată înfig.3.44.

Structura blocului GTA se determină cu ajutorul relaţiei ck+1 = Gk + Pk ck (adoua din sistemul 3.9) astfel:

c1 = G0 + P0c0 c2 = G1 + P1(G0 + P0c0) = G1 + P1G0 + P1P0c0 (3.10) c3 = G2 + P2(G1 + P1G0 + P1P0c0) = G2 + P2G1 + P2P1G0 + P2P1P0c0 c4 = G3 + P3(G2 + P2G1 + P2P1G0 + P2P1P0c0) = G3 + P3G2 + P3P2G1 + + P3P2P1G0 + P3P2P1P0c0 etc.

Page 29: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 171

Fig.3.45 Expandarea “serie” a sumatorului de 4 biţi cu transport anticipat

Cele 4 expresii logice calculate în sistemul 3.10 pot fi realizate cu subcircuitecompuse din două nivele de porţi elementare, dacă se acceptă faptul că o poartălogică AND sau OR cu 5 intrări mai este încă elementară (noţiunea de poartălogică elementară implică o limitare asupra numărului de intrări după cum seva arăta în cap.4). În ipoteza simplificatoare că toate porţile elementare auîntârzierea de propagare egală cu tp, transporturile c1 ÷ c4 au valorile disponibiledupă o întârziere egală cu 3tp faţă de momentul de aplicare la intrărilesumatorului a operanzilor X, Y şi transportului c0 (o întârziere egală cu tp esteintrodusă de celulele elementare care determină valorile G, P şi o întârziereegală cu 2tp este introdusă de GTA). Dacă întârzierea porţii XOR este 2tp atuncifiecare dintre rezultatele s0 ÷ s3 sunt disponibile la ieşirile sumatorului după oîntârziere egală cu 5tp. Transporturile c5, c6, c7, ... nu pot fi determinate cusubcircuite compuse numai din două nivele de porţi elementare; aceastaînseamnă ca rezultatele s4, s5, s6, ... vor fi disponibile după întârzieri mai maridecât 5tp.

De obicei se realizează sumatoare cu transport anticipat de 4 biţi. Acesteapot fi interconectate la rândul lor în două moduri pentru a obţine sumatoare cudimensiuni mai mari; ambele tipuri de sumatoare sunt mai rapide decât cele cutransport succesiv.Cea mai simplă schemă de expandare este prezentată în fig.3.45. Acest mod deinterconectare este identic cu acela utilizat pentru obţinerea sumatoarelor cu

Page 30: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

172 Cap.3 Clase de circuite logice combinaţionale

Fig.3.46 Sumator de 16 biţi cu două nivele de anticipare a transportului

transport succesiv şi este cel mai folosit deoarece reţeaua de interconexiuni estemai simplă de proiectat şi ocupă arie mai mică.Al doilea mod de expandare a sumatorului cu transport anticipat constă înutilizarea mai multor nivele de anticipare a transportului; interconectareasumatoarelor de 4 biţi se face după principiul ilustrat în fig.3.43 pentrusumatoare elementare. O schemă de expandare cu două nivele de anticipare atransportului este desenată în fig.3.46; cele 5 blocuri GTA sunt identice.

Page 31: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 173

În locul transportului c4 blocurile GTA din fig.3.46 calculează funcţiile

G4 = G3 + P3G2 + P3P2G1 + P3P2P1G0 (3.11)

P4 = P3P2P1P0

În schema de expandare din fig.3.45 transporturile c1 ÷ c4 au valoriledisponibile după o întârziere egală cu 3tp (faţă de momentul de aplicare laintrările sumatorului a operanzilor X, Y şi transportului c0) iar transporturile c5,c6, c7, cout au valorile disponibile după o întârziere egală cu 5tp; întârzierilerezultatelor s0 ÷ s4 sunt egale cu 5tp iar cele ale rezultatelor s5, s6, s7 sunt egalecu 7tp. Dacă un al treilea sumator de 4 biţi cu transport anticipat se adăugă în“lanţul” din fig.3.45 atunci rezultatul s8 se obţine după 7tp iar s9, s10, s11 se obţincu întârzierea 9tp; fiecare nou sumator de 4 biţi adăugat determină o creştere aîntârzierii cu 2tp. Un sumator de 4n biţi construit după modelul din fig.3.45calculează cei mai semnificativi 3 biţi cu întârzierea (5 + 2n)tp şi este deaproximativ 4 ori mai rapid decât un sumator de 4n biţi cu transport succesiv;cei mai semnificativi 2 biţi ai acestuia din urmă sunt disponibili după (1 + 8n)tp.

Rezultatele s0 ÷ s3 ale sumatorului din fig.3.46 se obţin după 5tp iar s4 ÷s15 se obţin după 7tp. Fiecare nivel de anticipare a transportului introduce oîntârziere a rezultatelor egală cu 2tp însă dimensiunile sumatorului se măresc de4 ori cu fiecare nou nivel de anticipare. Un sumator cu 3 nivele de anticipare atransportului (sau 3 nivele de GTA) este un sumator de 64 de biţi şi se obţineprin conectarea a 4 sumatoare identice cu acela din fig.3.46 la un nou GTA;viteza de operare a acestuia este de aproximativ 14 ori mai mare decât aceea asumatorului de 64 de biţi cu transport succesiv (129tp/9tp – 14,33).

Sumatorul cu transport anticipat de 4 biţi reprezentat în fig.3.43 şisumatoarele obţinute prin expandarea acestuia după schemele din fig.3.45 şi3.46 au căi critice diferite şi mai scurte faţă de cele ale sumatoarelor cutransport succesiv corespondente ca dimensiuni.

3.7.3 Sumatoare binare cu transport în salt

Un sumator cu transport în salt se obţine prin partiţionarea unui sumatorcu transport succesiv în sumatoare cu dimensiuni mai mici (nu neapărat egaleîntre ele) şi adăugarea unor subcircuite care să determine, atunci când esteposibil, valorile de la ieşirile de transport ale acestor sumatoare mult maidevreme în comparaţie cu propagarea succesivă. Pentru aceasta fiecare sumatorelementar trebuie să implementeze funcţiile sk , ck+1 şi funcţia de propagare atransportului Pk = xkr yk; această ultimă funcţie este realizată implicit de cătreorice sumator elementar şi nu necesită decât adăugarea unei singure conexiuniîntr-o structură ca aceea desenată în fig.3.35 sau chiar în blocul descrisfuncţional în fig.3.34, indiferent de implementare. Sumatorul elementar dinfig.3.47 este obţinut din cel reprezentat în fig.3.35.

Page 32: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

174 Cap.3 Clase de circuite logice combinaţionale

Figura 3.47

Observaţie: Pentru celula din rangul k a unui sumator cu transport anticipat,sistemele de funcţii

Gk = xk yk şi Gk = xk yk

Pk = xk + yk Pk = xkr yk

sunt echivalente deoarece ck+1 = xk yk + (xk + yk )ck = xk yk + (xkr yk )ck. Funcţiade propagare Pk = xk + yk nu exclude generarea locală a transportului, adicădacă Pk = 1 atunci este posibil ca Gk = 1. Funcţia de propagare Pk = xkr ykexclude generarea locală a transportului, adică dacă Pk = 1 atunci Gk = 0.

Structura unui sumator cu transport în salt este desenată în fig.3.48.Sumatorul “iniţial”, cu transport succesiv, este împărţit în sumatoare de m biţi.Dacă toate ieşirile Pk ale unui sumator Σj au valoarea logică 1, situaţie careapare numai când xk … yk œk = jm,..., (j+1)m-1, atunci c(j+1) m = cjm . În acest cazchiar dacă sumatorul Σj determină valoarea c(j+1)m prin propagare succesivă atransportului cjm, operaţie care durează 2mtp, la intrarea de transport asumatorului Σj+1 se aplică valoarea corectă cjm mai repede, prin conexiunea debypass care leagă intrările de transport ale sumatoarelor Σj şi Σj+1 prin MUXj;legătura dintre ieşirea de transport din Σj şi intrarea de transport în Σj+1 seîntrerupe la nivelul multiplexorului MUXj.

Page 33: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 175

Fig.3.48 Sumator cu transport în salt

Dacă porţile AND din fig.3.48 sunt elementare şi au timpul de propagare egal cu tp iar multiplexoarele sunt construite din porţi de transmisie şi inversoare,atunci toate conexiunile de bypass sunt realizate simultan după o întârziereegală cu 5tp faţă de momentul de aplicare a operanzilor X, Y şi transportului cin(sunt realizate conexiuni de bypass numai acolo unde sunt îndeplinite condiţiile,adică unde o poartă AND are la ieşire nivelul 1 logic).Calea de propagare a transportului care traversează toate sumatoareleelementare din structura circuitului din fig.3.48 nu mai este o cale critică dinpunct de vedere a vitezei de operare; această cale este numită cale de propagarefalsă. Cea mai lungă cale de propagare din structura sumatorului cu transportîn salt porneşte de la intrările x0, y0, traversează succesiv celulele sumatoruluiΣ0, apoi toate multiplexoarele şi conexiunile de bypass care “şuntează”sumatoarele intermediare şi în final traversează toate celulele ultimului sumator;ieşirea acestei căi este sn-1. Calea cea mai lungă (x0, y0)-MUX0-MUX1-...-sn-1menţionată mai sus este o cale de propagare efectivă atunci când operanzii X şiY îndeplinesc următoarele condiţii:1) x0 = y0 = 1;2) xk … yk œk = 1, 2, 3, ..., (n-2);3) xn-1 = yn-1.

Page 34: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

176 Cap.3 Clase de circuite logice combinaţionale

Dacă se aproximează cu 2tp întârzierea fiecărei conexiuni de bypass, care leagăprintr-un MUX de două căi intrările de transport a două sumatoare consecutivede m biţi, atunci întârzierea aproximativă a căii critice (x0, y0) ... sn-1 este Tp(m) = 4mtp + 2(n/m - 2)tp. (3.12)

Întârzierea prin sumatorul Σ0 este egală cu 2mtp; dacă m > 2 atunci la momentul2mtp toate căile de bypass sunt deja “activate” sau realizate. Viteza de operarea sumatorului cu transport în salt depinde de modul de partiţionare asumatorului de n biţi cu transport succesiv în sumatoare cu dimensiuni maimici; numărul m poate să aibă valorile 1, 2, ..., n. Se poate determina o valoareoptimă pentru m din punct de vedere a vitezei de operare, pe baza relaţiei 3.12.Valoarea minimă a timpului de propagare Tp este dată de soluţia ecuaţiei Tp’(m)= 0 (Tp’(m) este derivata de ordinul 1 a funcţiei Tp(m)):

Tp’(m) = (4 - 2n/m2)tp = 0 Y mopt = (n/2)0,5 (3.13)

Înlocuind valoarea mopt în relaţia 3.12 se obţine:

Tp min = tp (3.14)4 2 1( )n −

În cazul particular n = 32 se obţin valorile mopt = 4 şi Tp min = 28tp. Timpul depropagarea corespunzător căii critice a sumatorului cu transport succesiv de 32de biţi are valoarea 65tp (conform tabelei din fig.3.42), ceea ce înseamnă că printehnica de şuntare utilizată la construirea sumatoarelor cu transport în salt s-amărit viteza de operare de aproximativ 65/28 – 2,32 ori.

3.7.4 Sumatoare binare cu transport selectat

Tehnica de selecţie a transportului constă în partiţionarea unui sumatorde n biţi cu transport succesiv în sumatoare de m biţi şi efectuarea adunării înfiecare grup de m biţi (cu excepţia grupului cel mai puţin semnificativ) în douăvariante paralele: cu valoarea transportului de intrare egală cu 0 şi respectivegală cu 1; aceasta implică o creştere de cel puţin două ori a complexităţii unuisumator cu transport selectat de n biţi faţă de cel “iniţial” cu transport succesivde n biţi. Toate sumatoarele de m biţi cu transport succesiv care alcătuiescsumatorul de n biţi cu transport selectat operează simultan. La nivelul tuturorgrupurilor de m biţi sunt disponibile atât rezultatele “corecte” cât şi cele“greşite” cu aceeaşi întârziere, egală cu (2m+1)tp în raport cu momentul deaplicare a operanzilor X, Y şi transportului de intrare cin. Selectarea rezultatelorcorecte se face succesiv, începând de la sumatorul cel mai puţin semnificativ şicontinuând către perechea de sumatoare cea mai semnificativă; valoarea corectăa transportului de la ieşirea unei perechi de sumatoare Σj “decide” care suntrezultatele corecte dintre acelea calculate de perechea de sumatoare Σj+1.

Page 35: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 177

Fig.3.49 Sumator cu transport selectat

Structura unui sumator cu transport selectat este desenată în fig.3.49.

Blocurile MUX jS sunt compuse din m multiplexoare de două căi, a cărorintrări de selecţie sunt conectate împreună şi comandate de ieşirea de transporta unuia dintre sumatoarele perechii Σj-1, prin calea selectată în multiplexorul dedouă căi MUX (j-1)C; face o excepţie intrarea de selecţie a blocului MUX 1S,care este controlată direct de către ieşirea de transport a sumatorului Σ0. Pentrua reduce fanout-ul ieşirilor de transport ale sumatoarelor de m biţi din fig.3.49şi implicit pentru a micşora întârzierile de propagare cauzate de fanout, înaintede intrările Sel ale blocurilor MUX jS trebuie introduse buffere de putere (porţineinversoare); acestea nu sunt reprezentate în fig.3.49. Calea critică în structurasumatorului cu transport selectat traversează succesiv toate celulele sumatorului

Page 36: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

178 Cap.3 Clase de circuite logice combinaţionale

Σ0, de la intrările (x0, y0) la ieşirea de transport cm şi continuă cu linia de selecţiea transporturilor compusă din multiplexoarele MUX 1C, MUX 2C, MUX 3C,..., MUX (n/m-1)C. Dacă se aproximează cu 2tp întârzierea adăugată de fiecaredintre aceste multiplexoare, ca în cazul sumatorului cu transport în salt, atunciîntârzierea aproximativă a căii critice este Tp(m) = (2m+1)tp + 2(n/m - 1)tp. (3.15)

Valoarea optimă a numărului m 0 {1, 2, 3, ..., n} este soluţia ecuaţiei

Tp’(m) = (2 - 2n/m2)tp = 0 Y mopt = n0,5 (3.16)

iar timpul de propagare pe calea critică are valoarea minimă

Tp min = tp (3.17)( )4 1n −

În cazul particular n = 64 se obţin valorile mopt = 8 şi Tp min = 33tp. Calea depropagare critică a unui sumator cu transport succesiv de 64 biţi are o întârziereegală cu 129tp, ceea ce înseamnă că prin tehnica de selecţie a transportului s-amărit viteza de operare de aproximativ 129/33 – 3,9 ori.

Aprecierile cantitative prezentate pentru sumatoarele descrise înparagrafele anterioare (cu transport succesiv, anticipat, în salt şi respectivselectat) au un grad mare de aproximare şi sunt mai mult orientative; evaluareavitezei de operare este pesimistă în cazul sumatoarelor cu transport în salt şi cutransport selectat şi foarte optimistă în cazul sumatorului cu transport anticipat(nu s-au luat în considerare fanout-ul şi întârzierile reţelelor de interconexiuni).

Există două posibilităţi de creştere a vitezei sumatoarelor cu transport însalt sau selectat. O modalitate constă în reducerea întârzierilor conexiunilor şimultiplexoarelor situate pe căile critice de propagare; aceasta se poate obţineprin creşterea dimensiunilor acestor componente de circuit şi poziţionarea loradecvată. Astfel, dacă întârzierile multiplexoarelor şi conexiunilor asociate sereduc de la 2tp la tp atunci relaţiile 3.12, 3.13, 3.14 şi respectiv 3.15, 3.16, 3.17devin:

Tp(m) = 4mtp + (n/m - 2)tp

Tp’(m) = (4 - n/m2)tp = 0 Y mopt = n0,5/2 (3.18)

Tp min = tp( )4 2n −

Tp(m) = (2m+1)tp + (n/m - 1)tp

Tp’(m) = (2 - n/m2)tp = 0 Y mopt = (n/2)0,5 (3.19)

Tp min = tp2 2n

Page 37: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 179

În cazul particular n = 32 întârzierea pe calea critică a sumatorului cu transportîn salt este Tp min – 21tp iar viteza de operare creşte faţă de sumatorul de 32 biţicu transport succesiv de 65/21 – 3,1 ori (faţă de 2,32 ori, cât a fost înainte dereducerea întârzierii căii critice).În cazul particular n = 64 întârzierea pe calea critică a sumatorului cu transportselectat este Tp min – 23tp iar viteza de operare creşte faţă de sumatorul de 64 biţicu transport succesiv de 129/23 – 5,6 ori (faţă de 3,9 ori, cât a fost înainte dereducerea întârzierii căii critice).

O altă metodă de creştere a vitezei de operare a sumatoarelor cu transportîn salt sau selectat este partiţionarea neuniformă a unui sumator de n biţi cutransport succesiv (şi aplicarea tehnicilor de şuntare sau de selecţie atransportului). O cale de propagare a transportului într-un sumator de n biţi cu transport însalt traversează succesiv celulele din cel mult două sumatoare componente. Opartiţionare mai eficientă decât cea uniformă este una în care primul şi ultimulsumator au dimensiuni mai mici iar sumatoarele intermediare cresc progresivîn dimensiune pe măsură ce se “depărtează” de extremităţile lanţului desumatoare. Dacă se consideră că întârzierea unei conexiuni de bypass este egalăcu 2tp atunci partiţionarea Σ0(3biţi), Σ1(4biţi), Σ2(5biţi), Σ3(6biţi), Σ4(5biţi),Σ5(4biţi), Σ6(3biţi), Σ7(2biţi) a unui sumator de 32 de biţi determină în structurasumatorului cu transport în salt mai multe căi care au întârziere maximă egalăcu 22tp. Aceste căi sunt critice şi traversează toate celulele sumatoarelor (Σ0,Σ7), sau (Σ0, Σ6), sau (Σ0, Σ5), sau (Σ0, Σ4), sau (Σ0, Σ3), sau (Σ1, Σ7), sau (Σ1, Σ6),sau (Σ1, Σ5), sau (Σ1, Σ4), sau (Σ1, Σ3), sau (Σ2, Σ7), sau (Σ2, Σ6), sau (Σ2, Σ5), sau(Σ2, Σ4), sau (Σ2, Σ3), sau (Σ3, Σ7), sau (Σ3, Σ6), sau (Σ3, Σ5), sau (Σ3, Σ4); intrărileşi ieşirile căilor critice sunt intrările xk , yk în celula cea mai puţin semnificativăa primului sumator şi respectiv ieşirea sk din celula cea mai semnificativă a celuide-al doilea sumator. O cale critică este o cale de propagare efectivă dacă:- xk = yk = 1 (intrările în celula cea mai puţin semnificativă a primului sumator);- xq = yq (intrările în celula cea mai semnificativă a celui de-al doilea sumator);- xr … yr œr = (k+1), (k+2), ..., (q-1).Partiţionarea menţionată mai sus determină o creştere a vitezei de operare faţăde sumatorul de 32 biţi cu transport succesiv de 65/22 – 2,95 ori, aproximativegală cu creşterea obţinută prin reducerea întârzierilor conexiunilor de bypassde la 2tp la tp. Partiţionarea cea mai eficientă a unui sumator de n biţi în vederea creşteriivitezei de operare prin tehnica de selecţie a transportului se poate deduce pebaza schemei cu partiţionare uniformă reprezentată în fig.3.49. Se consideră căîntârzierea introdusă de un multiplexor de două căi MUX jC din linia de selecţiea transportului este egală cu 2tp. Dacă Σ0 este un sumator de m biţi atunciselecţia căii corecte prin MUX 1C este realizată cu întârzierea (2m + 3)tp faţăde momentul de aplicare a operanzilor X, Y şi transportului de intrare cin. La

Page 38: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

180 Cap.3 Clase de circuite logice combinaţionale

acest moment de timp, nu mai devreme, sunt disponibile şi transporturile c2m laieşirile sumatoarelor Σ1 dacă acestea au dimensiunea m + 1. Calea corectă prinmultiplexorul MUX 2C este realizată la momentul (2m + 5)tp, ceea ce înseamnăcă dimensiunea sumatoarelor Σ2 poate fi m + 2. Continuând acest raţionamentrezultă ca sumatoarele Σj trebuie să aibă dimensiunea m + j. Calea critică înstructura circuitului traversează succesiv toate celulele sumatorului Σ0, de laintrările (x0, y0) la ieşirea de transport cm şi continuă cu linia de selecţie atransporturilor până la ieşirea ultimului multiplexor de două căi. Viteza deoperare a acestui sumator cu transport selectat este egală cu viteza sumatoarelorcu transport succesiv care sumează biţii cei mai semnificativi şi care audimensiunea cea mai mare. Partiţionarea Σ0(2biţi), Σ1(3biţi), ...., Σ9(11biţi) esteoptimă pentru un sumator de 65 de biţi; întârzierea căii critice este 23tp iarcreşterea vitezei de operare este egală cu aceea obţinută prin reducerea de la 2tpla tp a întârzierilor conexiunilor şi multiplexoarelor situate pe calea critică asumatorului cu partiţionare uniformă.

Evaluările vitezelor de operare bazate pe întârzierile reale ale conexiunilorşi componentelor de circuit precum şi măsurătorile efectuate pe circuitele fizicearată că cele mai rapide sumatoare sunt cele cu transport selectat, urmate (înaceastă ordine) de sumatoarele cu transport anticipat şi cu transport în salt.

3.7.5 Sumatoare BCD

Un sumator BCD “elementar” efectuează adunarea a două cifre zecimalecodificate binar (codul 8421). La fel ca în cazul sumatorului binar elementar,o celulă BCD trebuie să ia în considerare şi un eventual transport de la rangulimediat inferior; un singur bit este suficient pentru reprezentarea sau codificareaacestui transport deoarece la adunarea a două numere zecimale, indiferent deformat, transportul între ranguri consecutive este fie 0, fie 1. Rezultatul adunăriia două cifre zecimale şi a unui transport (egal cu 0 sau 1) efectuate de unsumator BCD elementar este o cifră zecimală reprezentată în cod 8421 şi untransport care are valoarea 1 în cazul depăşirii formatului. Simbolul grafic alunui sumator BCD elementar este desenat în fig.3.50. Funcţionarea acestuicircuit poate fi descrisă în zecimal printr-o tabelă cu 200 de linii sau prinecuaţia

Xk (10) + Yk (10) + ck = Sk (10) + 10ck+1 = ck+1Sk (10) (3.20)

în care “+” desemnează adunarea algebrică în baza 10 (adunarea modulo 10) iarXk , Yk şi Sk sunt cifre ale bazei 10 (codificate binar).

Structura sumatorului BCD elementar poate fi determinată prin sintezălogică; circuitul implementează un sistem de 5 funcţii logice care depind de 9

Page 39: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 181

Fig.3.50 Sumator BCD elementar

Fig.3.51 Structura sumatorului BCD elementar

variabile. Această abordare implică un efort de calcul considerabil. O soluţiemai simplă constă în construirea sumatorului BCD elementar din sumatoarebinare de 4 biţi. După cum s-a arătat în cap.1, când rezultatul adunării a douăcoduri BCD (naturale) nu este un cod BCD sau depăşeşte formatul de 4 cifre,acesta trebuie corectat printr-o adunare suplimentară utilizând termenul decorecţie 0110 ( = 6(10)). Rezultă că un sumator BCD elementar se poate construiutilizând două sumatoare binare de 4 biţi interconectate ca în fig.3.51.

În figura de mai sus poarta 1 detectează combinaţiile 1010, 1011, 1110 şi 1111(10, 11, 14 şi 15 în zecimal) iar poarta 2 detectează combinaţiile 1100, 1101,1110 şi 1111 (12, 13, 14 şi 15 în zecimal).

Page 40: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

182 Cap.3 Clase de circuite logice combinaţionale

Fig.3.52 Structura simplificată a sumatorului BCD elementar

Circuitul din fig.3.51 poate fi simplificat, indiferent de tipul sumatoarelorbinare de 4 biţi utilizate; în continuare se consideră că Σ1 şi Σ2 sunt sumatoarecu transport succesiv. Deoarece ieşirea de transport c4 din sumatorul Σ1 esteieşirea unei porţi OR cu două intrări (fig.3.35), această poartă poate fi eliminată;intrările ei devin intrări ale porţii 3 care trebuie înlocuită cu o poartă OR cu 4intrări. Simplificări mai importante pot fi făcute în structura sumatorului Σ2.Datorită faptului că trei dintre intrările acestuia sunt permanent conectate lavaloarea logică 0 iar ieşirea de transport c4 nu este utilizată, Σ2 este un circuitlogic redundant adică conţine în structura lui componente care nu suntnecesare. Înlocuind k = 0, c0 = 0 şi y0 = 0 în sistemul 3.5 care descriefuncţionarea sumatorului elementar, se obţine s0 = x0 şi c1 = 0, adică celula curangul 0 din Σ2 nu este necesară. Transportul cu valoare constantă c1 = 0determină simplificarea celulei cu rangul 1 şi anume s1 = x1r y1, c2 = x1 y1.Celula cu rangul 3 trebuie să implementeze numai funcţia s3 = x3r c3. Structurasumatorului BCD elementar cu Σ2 simplificat este desenată în fig.3.52.

Page 41: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 183

Fig.3.53 ALU de 4 biţi

Scăzătoare BCD elementare pot fi construite utilizând scăzătoare binarede 4 biţi şi scheme de conectare asemănătoare cu cele prezentate anterior pentrusumatoarele BCD elementare.

Sumatoarele (scăzătoarele) BCD de n digiţi cu transport (împrumut)succesiv se obţin prin conectarea directă sau “în cascadă” a n celule BCDelementare. Pentru mărirea vitezei de operare se poate aplica tehnica de selecţiea transportului (împrumutului) sau tehnicile de şuntare şi de anticipare; acesteadin urmă se aplică la nivelul sumatoarelor binare Σ1 (scăzătoarelor binare ∆1)din structura celulelor BCD elementare.

3.8 Unităţi aritmetice-logice (ALU)

Unităţile aritmetice-logice (ALU - Arithmetic Logic Unit) sunt circuitecombinaţionale multifuncţionale care pot să efectueze operaţii aritmetice şioperaţii logice. O unitate aritmetică-logică este construită pe o structură desumator binar. Se pot defini multe tipuri de ALU; acestea se deosebesc între eleîn principal prin seturile de operaţii pe care le implementează. Un simbol graficpentru o unitate aritmetică-logică de 4 biţi este prezentat în fig.3.53.

Operanzii cu formatul de 4 biţi procesaţi de ALU sunt X şi Y. Tipul operaţiei,aritmetică sau logică, este stabilit de valoarea logică aplicată la intrarea M (deexemplu M = 0 Y mod aritmetic iar M = 1 Y mod logic). Pentru operaţiilearitmetice c0 reprezintă o intrare de transport. Rezultatele operaţiilor efectuatesunt valorile de la ieşirile F; în modul aritmetic c4 reprezintă ieşirea de transportiar G şi P funcţiile de generare şi respectiv de propagare a transportului. IeşireaX = Y indică egalitatea operanzilor. Prin intermediul combinaţiilor de 4 biţiaplicate la intrările S se pot selecta până la 16 operaţii distincte, atât în modullogic cât şi în cel aritmetic. În următoarele exemple de operaţii, “+” şi “w” au

Page 42: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

184 Cap.3 Clase de circuite logice combinaţionale

semnificaţiile de adunare algebrică şi respectiv de adunare logică (OR):

- operaţii logiceF = X, Y, XY, XwY, Xr Y, XY, XY, X, Y, 1, 0, XY, XwY, Xr Y, XwY, XwY;

- operaţii aritmeticeF = X + Y + c0, X - Y - c0, XY - 1, XwY + X, X + XY, XwY + XY etc.

Structura unei unităţi aritmetice-logice conţine un sumator binar, ungenerator de transport anticipat, reţele XOR şi circuite de comparare,multiplexoare etc. Mai multe ALU pot fi conectate în paralel pentru a obţine unALU care să proceseze operanzi cu dimensiuni mai mari. Operaţiile aritmeticeefectuate de către circuitul expandat pot fi cu transport succesiv, dacă ieşirea detransport a fiecărei unităţi se conectează la intrarea de transport a unităţii derang imediat superior, sau cu transport anticipat, dacă ieşirile de generare şipropagare G, P a tuturor unităţilor se conectează la un GTA extern care săfurnizeze transporturile de intrare. Ca şi în cazul sumatoarelor cu transportanticipat, schemele de expandare ale ALU pot fi organizate pe mai multe nivelede anticipare a transportului.

3.9 Multiplicatoare

Multiplicatoarele combinaţionale efectuează înmulţirea a două numerebinare (întregi sau fracţionare, cu semn sau fără semn) cu viteză mare încomparaţie cu circuitele de multiplicare secvenţiale.

Algoritmul elementar de înmulţire a numerelor binare este cel deînmulţire “manuală” a numerelor zecimale, cu următoarele două particularităţi:- înmulţirea a două cifre binare este echivalentă cu operaţia logică AND;- în comparaţie cu înmulţirea a două cifre zecimale, înmulţirea a două cifrebinare nu este generatoare de transport (adică rezultatul nu depăşeşte formatulde 1 bit).Fie numerele binare întregi fără semn X = x3x2x1x0 şi Y = y3y2y1y0. Paşii de bazăai algoritmului elementar de înmulţire X × Y = P sunt prezentaţi în fig.3.54. Pasul 1: după specificarea operanzilor X şi Y, 8 porţi AND2 determinăprodusele logice x3y0, x2y0, x1y0, x0y0 şi x3y1, x2y1, x1y1, x0y1, adică produseleparţiale X·y0 şi X·y1, iar un sumator de 4 biţi calculează rezultatul parţial RP1 = X·y0 + X·y121;

Pasul 2: se determină produsul parţial X·y2 = x3y223 + x2y222 + x1y221 + x0y2utilizând 4 porţi AND2, iar un al doilea sumator de 4 biţi calculează rezultatulparţial

RP2 = RP1 + X·y222;

Page 43: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 185

Figura 3.55

Pasul 3: se determină produsul parţial X·y3 = x3y323 + x2y322 + x1y321 + x0y3utilizând 4 porţi AND2, iar un al treilea sumator de 4 biţi calculează rezultatulfinal P = RP2 + X·y323.

x3 x2 x1 x0 × (X)y3 y2 y1 y0 (Y)

x3y0 x2y0 x1y0 x0y0 + x3y1 x2y1 x1y1 x0y1

z4 z3 z2 z1 p1 p0 + (RP1)

x3y2 x2y2 x1y2 x0y2

z8 z7 z6 z5 p2 p1 p0 + (RP2)

x3y3 x2y3 x1y3 x0y3

p7 p6 p5 p4 p3 p2 p1 p0 (P)

Fig.3.54 Algoritmul elementar de înmulţire a numerelor binare

Nu toate celulele sumatoarelor de 4 biţi utilizate în algoritmul de înmulţire demai sus sunt sumatoare elementare. Unele celule trebuie să efectueze adunareaa 2 biţi în loc de 3 biţi şi au o structură mai simplă decât cea de sumatorelementar; aceste celule sunt numite semisumatoare elementare (half adder).Simbolul şi structura unui semisumator elementar sunt desenate în fig.3.55.

Page 44: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

186 Cap.3 Clase de circuite logice combinaţionale

Fig.3.56 Multiplicator combinaţional de 4 biţi

Structura unui circuit care efectuează înmulţirea a două numere binare de 4 biţi,determinată pe baza algoritmului din fig.3.54, este reprezentată în fig.3.56.

Această structură este o reţea celulară bidimensională formată din celuleidentice care sunt conectate între ele după reguli relativ simple. Fiecare celulăeste compusă dintr-un sumator elementar şi o poartă AND2, cu excepţia unorcelule de frontieră în care sumatorul elementar este înlocuit cu un semisumator.O astfel de structură regulată are următoarele avantaje:- expandarea la n biţi (formatul operanzilor) se realizează uşor;- proiectarea implică un efort de calcul redus şi se concentrează în principalasupra unei singure celule şi a conexiunilor de legătură ale acesteia cu celulelevecine;- costurile asociate cu testarea sunt relativ mici.Conexiunile desenate cu linii mai groase în fig.3.56 şi componentele traversatede către acestea formează căile de propagare critice; aceste căi traversează un

Page 45: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 187

Fig.3.57 Simbol grafic de multiplicator de n biţi

nivel de porţi AND2, un semisumator şi 7 nivele de sumatoare elementare.Cifrele din interiorul simbolurilor de (semi)sumatoare elementare indică ordineaîn care sunt disponibile rezultatele la ieşirile acestor componente dupămomentul specificării sau aplicării operanzilor X şi Y.

Indiferent de algoritmul de înmulţire utilizat, ecuaţia de funcţionare amultiplicatorului combinaţional de 4 biţi poate fi scrisă în forma P = (x0 + x121 + x222 + x323)×(y0 + y121 + y222 + y323) =

= x0y0 + (x1y0 + x0y1)21 + (x2y0 + x1y1 + x0y2)22 + (x3y0 + x2y1 + x1y2 + x0y3)23 +

+ (x3y1 + x2y2 + x1y3)24 + (x3y2 + x2y3)25 + x3y326 =

= p0 + p121 + p222 + p323 + p424 + p525 + p626 + p727 (3.21)

în care “+” desemnează adunarea algebrică.Această relaţie se generalizează pentru operanzi X, Y de n biţi în forma:

P = (3.22)( ) ( ) ( )x y x y pii

i

n

jj

j

n

k

n

i jk

kk

k

n

i j k

2 2 2 20

1

0

1

0

2 2

0

2 1

=

=

=

=

+ =∑ ∑ ∑ ∑∑× = ⋅ =

Formatul necesar şi suficient pentru reprezentarea în baza 2 a produsului P estede 2n biţi, lucru care se justifică astfel: Pmax = Xmax×Ymax = (2n - 1)(2n - 1) = 22n - 2n+1 + 1;

22n-1 - 1< 22n - 2n+1 + 1< 22n - 1, œn > 1.

În schemele bloc de reprezentare a sistemelor digitale se poate utiliza un simbolgrafic pentru multiplicatorul combinaţional de n biţi ca acela desenat înfig.3.57.

Algoritmii de înmulţire combinaţionali, inclusiv cel elementar, constau

dintr-o succesiune de operaţii AND, deplasări şi adunări/scăderi; deplasările nusunt realizate cu circuite speciale ci prin intermediul conexiunilor de legăturădintre celule. O reţea celulară care implementează un algoritm de înmulţirereprezintă o “arhitectură” de multiplicator. Arhitectura este definită de structuracelulei de bază şi de regulile de conectare a celulelor adiacente. De obicei

Page 46: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

188 Cap.3 Clase de circuite logice combinaţionale

Figura 3.58

celulele multiplicatoarelor sunt construite din porţi AND, sumatoareelementare, sumatoare-scăzătoare elementare, multiplexoare.

Fiecărei arhitecturi îi corespunde o viteză maximă de operare specifică.Această viteză se poate exprima în mod indirect prin numărul de celule caresunt traversate de căile de propagare critice. De exemplu, căile critice alearhitecturii care implementează algoritmul elementar de înmulţire a douănumere binare de n biţi traversează 3n-4 celule (1 semisumator şi 3n-5sumatoare elementare). Justificarea se face cu ajutorul schemei simplificate dinfig.3.58 în care sunt reprezentate numai sumatoarele de n biţi din structuramultiplicatorului; cifrele cu care sunt marcate celulele sumatoarelor indicăordinea în care sunt disponibile rezultatele la ieşirile acestora şi suntproporţionale cu timpii de propagare.

În fig.3.59 este desenată o arhitectură de multiplicator de 4 biţi mai rapidădecât aceea reprezentată în fig.3.56. În ambele arhitecturi bitul pk al produsuluiP este ieşirea din coloana k, în care se acumulează produsele xi·yj, i + j = k şitransporturile din coloana k-1; deosebirea esenţială dintre aceste două circuitede multiplicare constă în “decalarea” cu un nivel de celule pe verticală, încadrul fiecărei coloane k, a adunării transporturilor care provin din coloana k-1.Căile de propagare critice, marcate cu linii mai groase, traversează un nivel deporţi AND, un nivel de semisumatoare elementare (celulele marcate cu cifra 1)şi 5 nivele de sumatoare elementare. Cifrele din interiorul simbolurilor de(semi)sumatoare elementare indică ordinea în care sunt disponibile rezultatelela ieşirile acestor componente după momentul aplicării operanzilor X şi Y.Multiplicatorul de n biţi obţinut prin expandarea circuitului din fig.3.59 poatefi reprezentat în mod simplificat ca în fig.3.60; sunt desenate numai cele nsumatoare de n-1 biţi din structura multiplicatorului. Căile critice ale acestuicircuit traversează 2n-2 celule, ceea ce înseamnă că viteza maximă de operare

Page 47: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 189

Figura 3.59

Figura 3.60

este de aproximativ 1,5 ori (adică 3n-4/2n-2) mai mare decât vitezamultiplicatorului de n biţi reprezentat în fig.3.58.

Page 48: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

190 Cap.3 Clase de circuite logice combinaţionale

Fig.3.61 Schemă de înmulţire a numerelor binare cu semn codificat

Viteza maximă de operare a multiplicatorului de n biţi reprezentat simplificatîn fig.3.60 poate fi crescută prin înlocuirea sumatorului cu transport succesivΣn cu unul mai rapid, de tipul “cu transport selectat” sau “cu transportanticipat”.

Înmulţirea a două numere binare cu semn codificat (“+” Y 0, “-” Y 1)poate fi realizată cu oricare dintre multiplicatoarele de n biţi prezentate anterior;multiplicatorul determină modulul sau valoarea absolută a produsului *P* iaro poartă XOR calculează semnul acestuia, după cum se arată în fig.3.61; seconsideră că cifrele cele mai semnificative (MSB) ale operanzilor X, Y şiprodusului P = X×Y sunt biţii de semn.

De asemenea, cu un multiplicator de n biţi se pot efectua şi înmulţiri de numerebinare fracţionare; înmulţirea se face la fel ca în cazul operanzilor întregi însăcei mai puţin semnificativi nP biţi ai rezultatului P reprezintă partea fracţionară(nP = nX + nY, unde nX şi nY sunt numerele de cifre de la partea fracţionară aoperanzilor X şi respectiv Y).

Structurile de multiplicator de n biţi reprezentate simplificat în figurile3.58 şi 3.60 conţin fiecare câte n(n-1) celule şi au gradul maxim deuniformitate, ceea ce implică consumuri de arie minime; în schimb, vitezele lorde operare sunt relativ mici. Creşterea vitezei se poate obţine prin modificareaalgoritmului de înmulţire; aceasta conduce de obicei la scăderea gradului deuniformitate structurală a circuitelor de multiplicare şi la consum suplimentarde arie.

Prin analizele următoare se evaluează dacă “partiţionarea” unuimultiplicator constituie o soluţie de creştere a vitezei de operare. Metoda esteilustrată în fig.3.62 pentru multiplicatorul de 4 biţi reprezentat în fig.3.56.Ecuaţia de funcţionare a circuitului poate fi scrisă în forma: P = (x0 + x121 + x222 + x323)×(y0 + y121 + y222 + y323) =

= (x0 + x121 + x222 + x323)×(y0 + y121) + (x0 + x121 + x222 + x323)×(y2 + y321)22.

Page 49: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 191

Fig.3.62 Partiţionarea multiplicatorului de 4 biţi din fig.3.56

Fig.3.63 Partiţionare a unui multiplicator de n biţi

Produsele P1 = X×(y0 + y121) şi P2 = X ×(y2 + y321) sunt calculate în paralelutilizând două multiplicatoare de tip (4, 2); prin această notaţie se indicădimensiunile operanzilor, 4 biţi şi respectiv 2 biţi. Deplasarea produsului P2 cudouă cifre spre rangul cel mai semnificativ, adică 22P2, se realizează prinintermediul conexiunilor. Rezultatul P se obţine prin adunarea P1 + 22P2.Cifrele asociate simbolurilor de (semi)sumatoare elementare indică ordinea încare sunt disponibile rezultatele la ieşirile acestor componente. Căile depropagare critice ale multiplicatorului “partiţionat” traversează 6 nivele decelule, faţă de 8 nivele în cazul multiplicatorului de 4 biţi din fig.3.56.O schemă mai generală de partiţionare a unui multiplicator este desenată înfig.3.63.

Page 50: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

192 Cap.3 Clase de circuite logice combinaţionale

Multiplicatorul de n biţi (sau de tip (n, n)) compus din două multiplicatoare cudimensiuni mai mici, de tip (n, n-k) şi respectiv (n, k), are următoarea ecuaţiede funcţionare:

P = P1 + 2kP2 = (3.23)X y X yjj

j

kk

k jj

j

n k

× + ×=

+=

− −

∑ ∑2 2 20

1

0

1

Pentru a evalua eficienţa partiţionării asupra creşterii vitezei de operare seconsideră că atât multiplicatorul de n biţi nepartiţionat cât şi cele douămultiplicatoare care calculează produsele P1 şi P2 au arhitecturi identice. Deasemenea, viteza de operare se apreciază în mod indirect prin numărul de celule(semisumatoare şi sumatoare elementare) situate pe căile de propagare critice. În cazul arhitecturii reprezentate în fig.3.58, căile critice ale multiplicatoruluide tip (n, n) traversează 3n-4 celule. Cifrele rezultatelor parţiale P1 şi 2kP2 suntdisponibile, faţă de momentul de aplicare a operanzilor X şi Y, după durateproporţionale cu numerele de celule precizate în tabela de mai jos:

Rang : Bit ( P1 , 2kP2) disponibil după:

0 0 -1 1 -2 3 -. . .. . .. . .k-1 2k-3 -k 2k-2 0k+1 2k-1 1k+2 2k 3. . .. . .. . .n-1 n+k-3 2n-2k-3n n+k-2 2n-2k-2n+1 n+k-1 2n-2k-1n+2 n+k 2n-2k. . .. . .. . .n+k-3 n+2k-5 2n-k-5n+k-2 n+2k-4 2n-k-4n+k-1 n+2k-4 2n-k-3n+k - 2n-k-2. . .. . .. . .2n-3 - 3n-2k-52n-2 - 3n-2k-42n-1 - 3n-2k-4

Page 51: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 193

Valorile logice cu ranguri egale, aplicate la intrările cele mai puţinsemnificative ale sumatorului de 2n - k biţi din fig.3.63 nu sunt calculate la felde repede; biţii rezultatului parţial P1 apar mai târziu decât biţii rezultatuluiparţial 2kP2. Dacă se impune

n + k - 3 = 2n - 2k - 3, adică k = n/3

atunci, începând de la rangul n-k-1 = 2n/3-1 şi până la rangul n-1 alsumatorului, se operează cu valori de intrare întârziate la fel. Celulele dinrangurile cele mai semnificative ale sumatorului de 2n - k biţi, de la n la 2n-k-1= 5n/3-1, pot fi înlocuite cu semisumatoare elementare.Cele mai semnificative două cifre ale produsului P sunt disponibile dupăpropagarea prin (3n-2k-3 =) 7n/3-3 sumatoare elementare. Creşterea de vitezăobţinută prin partiţionarea multiplicatorului este de (3n-4)/(7n/3-3) ori sau cu[(2n-3)/(7n-9)]×100%; în cazurile particulare n = 8, n = 16 şi n = 32 rezultăcreşteri ale vitezei de operare cu 33,3%, cu 28,1% şi respectiv cu 28,3%. În cazul arhitecturii reprezentate în fig.3.60, căile critice ale multiplicatoruluide tip (n, n) traversează 2n-2 celule. Cifrele rezultatelor parţiale P1 şi 2kP2 suntdisponibile, faţă de momentul de aplicare a operanzilor X şi Y, după durateproporţionale cu numerele de celule precizate în tabela de mai jos:

Rang: Bit ( P1 , 2kP2) disponibil după:

0 0 -1 1 -. . .. . .. . .k-1 k-1 -k k 0k+1 k+1 1. . .. . .. . .n n n-k. . .. . .. . .n+k-3 n+k-3 n-3n+k-2 n+k-2 n-2n+k-1 n+k-2 n-1n+k - n. . .. . .. . .2n-3 - 2n-k-32n-2 - 2n-k-22n-1 - 2n-k-2

Page 52: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

194 Cap.3 Clase de circuite logice combinaţionale

Fig.3.64 Structură de GPP utilizat în algoritmul de înmulţire elementar

Dacă se alege k$2, atunci întârzierile cu care sunt furnizate rezultatele la ieşirilesumatorului de 2n-k biţi din fig.3.63 sunt determinate de întârzierile cifrelorrezultatului parţial P1. Cele mai semnificative două cifre ale produsului P suntdisponibile după propagarea prin (n+k-1) + (n-k-2) = 2n-3 sumatoareelementare, ceea ce înseamnă că partiţionarea arhitecturii din fig.3.60 dupămodelul din fig.3.63 nu poate să conducă la creşterea vitezei de operare.Se poate spune că schema de partiţionare analizată mai sus nu poate ficonsiderată o metodă de creştere a vitezei de operare a multiplicatoarelor.

Cele mai eficiente şi mai utilizate metode de creştere a vitezei de operarea multiplicatoarelor combinaţionale (cât şi a celor secvenţiale) au la bazăalgoritmul Booth sau algoritmi derivaţi din acesta.Fie X şi Y două numere binare de n biţi; fără a pierde din generalitate seconsideră că aceste numere sunt întregi şi fără semn. Cu algoritmul de înmulţireelementar, produsul P = X×Y se calculează printr-o succesiune de n-1 adunări-deplasări de produse parţiale X·yj :

pas1 pas2 pas3 ... pas(n-1) P = (X·y0 + X·y121) +X·y222 + X·y323 +...+ X·yn-12n-1 (3.24)

În structura multiplicatorului care implementează relaţia 3.24 există n-1sumatoare de n biţi, câte unul pentru fiecare pas al algoritmului; deplasările suntrealizate prin intermediul reţelei de conexiuni. Valorile unui produs parţial X·yjse determină cu ajutorul unui generator de produse parţiale (GPP), care în acestcaz nu este altceva decât o simplă reţea de n porţi AND2 ca aceea desenată înfig.3.64: X·yj = 0 (număr de n biţi) dacă yj = 0 şi X·yj = X dacă yj = 1.

Valorile produselor parţiale X·y0, X·y1, X·y2, ..., X·yn-1 sunt calculate în paralel,utilizând n GPP-uri.Algoritmul Booth utilizează următorul artificiu de calcul, cu scopul de a reducela jumătate numărul de paşi şi de a mări în acest fel viteza de operare a

Page 53: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 195

circuitului de multiplicare: P = X×(2Y - Y) =

= X×[(0-y0) + (y0-y1)21 + (y1-y2)22 + (y2-y3)23 +...+ (yn-2-yn-1)2n-1 + (yn-1-0)2n] =

pas1 pas2= {X×[(0-y0) + (y0-y1)21] + X×[(y1-y2) + (y2-y3)21]22} + X×[(y3-y4) + (y4-y5)21]24+

pas3 pas4 ... + X×[(y5-y6) + (y6-y7)21]26 + X×[(y7-y8) + (y8-y9)21]28 + ... (3.25)

Cu algoritmul de înmulţire Booth, produsul P = X×Y se calculează printr-osuccesiune de n/2 adunări-deplasări de produse parţiale X×[(yj-yj+1)+(yj+1-yj+2)21]. Calcularea valorilor acestor produse parţiale necesită GPP-uri maicomplicate funcţional şi implicit structural decât în cazul algoritmului deînmulţire elementar.Valorile produsului parţial X×[(yj - yj+1) + (yj+1 - yj+2)21], precizate în tabela dinfig.3.65, se obţin prin “decodificarea” a trei cifre consecutive yj, yj+1, yj+2 aleoperandului Y.

yj yj+1 yj+2 = X×[(yj - yj+1) + (yj+1 - yj+2)21] =

000 sau 111 0 100 sau 010 +X 011 sau 101 -X

110 +2X 001 -2X

Fig.3.65 Valorile produselor parţiale procesate în algoritmul Booth

Valorile negative -X şi -2X pot fi “tratate” în două moduri, rezultând douăarhitecturi distincte de multiplicator Booth. Aceste arhitecturi sunt denumite peparcursul acestui paragraf “Booth-Σ” şi “Booth-Σ∆”. Arhitectura Booth-Σcalculează produsul P = X×Y numai prin adunare(-deplasare) de produseparţiale, lucru care este posibil dacă toate produsele parţiale sunt reprezentateîn codul complementar faţă de 2 (C2); conversia “binar Y binar cu semn Y C2"este o sarcină a generatoarelor de produse parţiale, numite în continuare GPP-Σ.Arhitectura Booth-Σ∆ calculează produsul P = X×Y atât prin adunare(-deplasare) cât şi prin scădere(-deplasare) de produse parţiale, utilizându-se înacest scop sumatoare-scăzătoare binare. Generatoarele de produse parţiale,

Page 54: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

196 Cap.3 Clase de circuite logice combinaţionale

numite în continuare GPP-Σ∆, au complexitate mai mică faţă de GPP-Σ.Anumite detalii din structura multiplicatoarelor Booth sunt puse în

evidenţă printr-un exemplu de calcul. Fie X = x6x5x4x3x2x1x0 şi Y = 1011011. Înconformitate cu relaţia 3.25, produsul P = X×Y se calculează în trei paşi:

pas1 pas2 pas3P = [(-X) + (-X)22] + (+2X)24 + (+X)26 (3.26)

Calcularea produsului P numai prin operaţii de adunare (arhitecturaBooth-Σ) se poate realiza astfel:

1 1 1 1 1 1 1 1 x6 x5 x4 x3 x2 x1 x0 +1 (-X)

+ [pas1]1 1 1 1 1 1 x6 x5 x4 x3 x2 x1 x0 1 1

+1 (-X)22

r e z u l t a t p a r ţ i a l + [pas2]0 0 0 x6 x5 x4 x3 x2 x1 x0 0 0 0 0 0

+0 (+2X)24

r e z u l t a t p a r ţ i a l + [pas3]0 0 x6 x5 x4 x3 x2 x1 x0 0 0 0 0 0 0

+0 (+X)26

0 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 = P semn (r e z u l t a t f i n a l).

Figura 3.66

Implementarea “directă” a multiplicatorului de 7 biţi după această schemă decalcul nu aduce avantaje faţă de implementarea algoritmului de înmulţireelementar ci dezavantaje:- aria ocupată creşte deoarece pe de o parte sunt necesare 3 sumatoare de 15 biţi(3×15 = 45 celule elementare) în loc de 6 sumatoare de 7 biţi (6×7 = 42 celuleelementare), iar pe de altă parte structura de GPP-Σ este mai complexă decâtstructura de GPP utilizat în algoritmul elementar;- viteza de operare scade deoarece căile critice de propagare cresc în lungimede la 12 celule la 17 celule, luându-se ca referinţă arhitectura din fig.3.60.În schema de calcul din fig.3.66 se pot face însă simplificări care să determinereducerea ariei ocupate de circuitul de multiplicare şi creşterea vitezei deoperare:- deoarece P este un număr binar fără semn, rezultatul final obţinut mai sus esteîntotdeauna pozitiv şi ca urmare se poate utiliza formatul de 14 biţi în loc de 15biţi, eliminând bitul de semn şi neglijând toate transporturile către acesta;

Page 55: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 197

- valoarea 1 sau 0 care este adunată în rangul 0 în conformitate cu regulile deconversie în codul C2, poate fi adunată direct în rangul LSB al fiecărui produsparţial (adică în rangurile 0, 2, 4 şi respectiv 6 ale produsului P în schema dinfig.3.66) cu avantajul eliminării tuturor cifrele din rangurile inferioare ranguluiLSB; rangul LSB al unui produs parţial este egal cu puterea lui 2 cu care semultiplică valoarea acestuia în dezvoltarea produsului P după relaţia 3.25.Efectuând aceste două simplificări se obţine următoarea schemă de calcul alprodusului P (în locul cifrelor rezultatelor parţiale s-a utilizat simbolul !):

1 1 1 1 1 1 1 x6 x5 x4 x3 x2 x1 x0 +1

+ [pas1]1 1 1 1 1 x6 x5 x4 x3 x2 x1 x0

+1 ! ! ! ! ! ! ! ! ! ! ! ! ! ! + [pas2]

0 0 x6 x5 x4 x3 x2 x1 x0 0 +0

! ! ! ! ! ! ! ! ! ! ! ! ! ! + [pas3] 0 x6 x5 x4 x3 x2 x1 x0

+0 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 = P

Figura 3.67

O “transformare” echivalentă a schemei de mai sus este prezentată în fig.3.68.

0 0 0 0 0 0 1 x6 x5 x4 x3 x2 x1 x0 (-1) +1

+ [pas1]0 0 0 0 1 x6 x5 x4 x3 x2 x1 x0

(-1) +1 ! ! ! ! ! ! ! ! ! ! ! ! ! ! + [pas2]

0 0 x6 x5 x4 x3 x2 x1 x0 0 (-0) +0

! ! ! ! ! ! ! ! ! ! ! ! ! ! + [pas3] 0 x6 x5 x4 x3 x2 x1 x0

+0 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 = P

Figura 3.68

Page 56: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

198 Cap.3 Clase de circuite logice combinaţionale

Cifrele cu semnul “-” scrise în paranteze trebuie scăzute în rangurile 8, 10 şirespectiv 12 ale produsului P. Toate cifrele care nu sunt încadrate, situate înrangurile cele mai semnificative ale primelor trei produse parţiale, au valoarea0 (indiferent de semnele produselor parţiale, adică indiferent de valorileoperandului Y) şi pot fi eliminate.Schema de calcul din fig.3.68 poate fi modificată în continuare după cum searată în figurile 3.69 şi 3.70.

1 1 1 1 1 1 1 x6 x5 x4 x3 x2 x1 x0 (-1) +1 +1 + [pas1]

1 x6 x5 x4 x3 x2 x1 x0 (-1) +1

! ! ! ! ! ! ! ! ! ! ! ! ! ! + [pas2] x6 x5 x4 x3 x2 x1 x0 0 (-0) +0

! ! ! ! ! ! ! ! ! ! ! ! ! ! + [pas3] 0 x6 x5 x4 x3 x2 x1 x0

+0 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 = P

Figura 3.69

1 0 1 x6 x5 x4 x3 x2 x1 x0 (+1) +1

+ [pas1] 1 0 1 x6 x5 x4 x3 x2 x1 x0

+1 ! ! ! ! ! ! ! ! ! ! ! ! + [pas2]

1 1 x6 x5 x4 x3 x2 x1 x0 0 +0

! ! ! ! ! ! ! ! ! ! ! ! ! ! + [pas3] 0 x6 x5 x4 x3 x2 x1 x0

+0 p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 = P

Figura 3.70

Arhitectura multiplicatorului Booth-Σ se determină pe baza schemei de calcul

Page 57: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 199

Figura 3.71

din fig.3.70. Fiecare produs parţial are o deplasare “fixă”, cu 0, 2, 4 sau 6ranguri spre dreapta, independentă de valoarea operandului Y şi o deplasare“potenţială” cu 1 rang spre dreapta care depinde de biţii lui Y. Deplasările fixesunt uşor de realizat prin intermediul reţelei de conexiuni; deplasăriledependente de valorile operandului Y trebuie realizate în structurageneratoarelor de produse parţiale.În fig.3.71 este reprezentat la nivel de blocuri funcţionale un ansambludecodificator Booth - GPP-Σ cu ajutorul căruia se calculează produsele parţiale;cei mai semnificativi 2 biţi lipsesc în cazul ultimului produs parţial. Unmultiplicator Booth de 7 biţi conţine 4 subcircuite de tip “decodificator-GPP”şi 3 sumatoare binare (vezi fig.3.58) sau 4 sumatoare binare (vezi fig.3.60).

Funcţionarea decodificatorului Booth cu ieşirile active pe nivelul 1 logic estedescrisă de tabela din fig.3.65:- ieşirea Zero se activează când yj yj+1 yj+2 = 000 sau 111 Zero = yj y j+1 y j+2 + yj yj+1 yj+2;

- ieşirea Shift (deplasare cu 1 rang) se activează când yj yj+1 yj+2 = 001 sau 110

Shift = yj y j+1 yj+2 + yj yj+1 y j+2;

- ieşirea Comp2 (complement faţă de 2) se activează când yj yj+1 yj+2 = 001, 011sau 101

Comp2 = y j y j+1 yj+2 + y j yj+1 yj+2 + yj yj+1 yj+2 = y j yj+2 + yj+1 yj+2.

Nici una dintre ieşirile decodificatorului Booth nu se activează dacă yj yj+1 yj+2= 010 sau 100. Sunt active simultan ieşirile Shift şi Comp2 dacă yj yj+1 yj+2 =001. Structura blocului GPP-Σ din fig.3.71 este desenată în fig.3.72.

Page 58: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

200 Cap.3 Clase de circuite logice combinaţionale

Fig.3.72 Structura GPP-Σ

O schemă simplificată a multiplicatorului Booth-Σ de 7 biţi în care suntreprezentate numai sumatoarele este desenată în fig.3.73a. Adunarea produselorparţiale se efectuează după principiul ilustrat în fig.3.60; cifrele celor 4 produseparţiale sunt notate astfel: PP1 = 1a8a7a6a5a4a3a2a1a0a0*, a8 = a0*;

PP2 = 1b8b7b6b5b4b3b2b1b0b0*, b8 = b0*;

PP3 = 1c8c7c6c5c4c3c2c1c0c0*, c8 = c0*;

PP4 = d7d6d5d4d3d2d1d0d0*.

Fiecare produs parţial are 2 biţi în rangul cel mai puţin semnificativ după cumse observă atât în schema de calcul din fig.3.70 cât şi în reprezentareaansamblului decodificator-GPP din fig.3.71.Celulele care au valori logice constante la intrări pot fi simplificate structural;de exemplu, semisumatoarele elementare care efectuează operaţiile (1 + d7),(1 + c7) şi (1 + b7) pot fi înlocuite cu simple inversoare: 1 + d7 = d7,

1 + c7 = c721 + c7,

1 + b7 = b721 + b7.

Schema multiplicatorului reprezentată în fig.3.73b include aceste treisimplificări. Sumatorul elementar care efectuează operaţia (a8 + b6 + 1) poatefi simplificat structural la nivelul unui semisumator elementar:

a8 + b6 + 1 = uv(2), v = a8r b6 = a8b6 + a8 + b6, u = a8 + b6.

Page 59: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 201

Fig.3.73 Multiplicator Booth-Σ de 7 biţi

Page 60: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

202 Cap.3 Clase de circuite logice combinaţionale

Figura 3.74

Valorile aplicate la intrările sumatorului de 14 biţi din figura de mai sus nu suntdisponibile simultan; cele mai întârziate valori, obţinute după propagarea printrei celule elementare, sunt aplicate la intrările cu rangurile 6 ÷ 11. Dacăsumatorul de 14 biţi este cu transport selectat, selecţia aplicându-se partiţiilorde 3 biţi, atunci căile de propagare critice din structura multiplicatorului Booth-Σ de 7 biţi traversează 6 celule elementare. Căile critice ale unui multiplicatorde 7 biţi construit după principiul din fig.3.60 în care sumatorul Σn este deasemenea cu transport selectat (şi partiţionat tot în sumatoare de 3 biţi)traversează 9 celule elementare. Raportul 9/6 = 1,5 reprezintă creşterea vitezeide operare determinată de arhitectura Booth-Σ în comparaţie cu arhitecturareprezentată în fig.3.60; această creştere de viteză (de 1,5ori sau cu 50%) sepăstrează şi în cazul general al multiplicatoarelor de n biţi. Produsul P determinat cu relaţia 3.26 poate fi calculat utilizând atâtoperaţii de adunare cât şi operaţii de scădere (arhitectura Booth-Σ∆). Relaţia3.26 poate fi scrisă în forma următoare: pas3 pas2 pas1 *PP4* *PP3* *PP2* *PP1*

P = (X) · 26 + [(2X) · 24 - (X · 22 + X)] (3.27)

Un multiplicator Booth-Σ∆ de 7 biţi conţine 4 subcircuite de tip “decodificator-GPP” şi 3 sumatoare-scăzătoare binare. În fig.3.74 este reprezentat la nivel deblocuri funcţionale un ansamblu decodificator Booth - GPP-Σ∆ cu ajutorulcăruia se calculează produsele parţiale.

Decodificatorul Booth din fig.3.74 este identic cu acela din fig.3.71; ieşireaComp2 este redenumită Semn şi indică semnul produsului parţial, utilizându-seconvenţia 0 Y “+” şi 1 Y “-”. Semnul atribuit produselor parţiale cu valoarea

Page 61: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 203

Fig.3.75 Structura GPP-Σ∆

0 este +. Cu ajutorul variabilelor logice Semn se determină operaţia (adunaresau scădere) care trebuie efectuată în fiecare pas al algoritmului.Structura unui GPP-Σ∆ este desenată în fig. 3.75. Cu acest circuit se determinămodulul oricărui produs parţial. Deplasările fixe cu 0, 2, 4 şi respectiv 6 ranguriale modulelor produselor parţiale se realizează prin intermediul reţelei deconexiuni.

Fie *PP1* = a7a6a5a4a3a2a1a0, *PP2* = b7b6b5b4b3b2b1b0, *PP3* = c7c6c5c4c3c2c1c0,*PP4* = d7d6d5d4d3d2d1d0 modulele celor 4 produse parţiale generate într-oarhitectură Booth-Σ∆ de 7 biţi, Semn1, Semn2, Semn3, Semn4 şi Zero1, Zero2,Zero3, Zero4 semnele şi respectiv informaţiile despre valorile acestor produseparţiale (Zero = 1 Y PP = 0). Se notează cu *RP1*, *RP2* modulele rezultatelorparţiale obţinute în primii doi paşi şi cu Sgn1, Sgn2 semnele acestora; deoarecerezultatul final P este pozitiv, nu este necesar să se determine semnul acestuia.Operaţia adunare/scădere şi controlul acesteia în cei trei paşi ai algoritmului deînmulţire se realizează astfel (op = 0 Y adunare, op = 1 Y scădere):

Pas1op1 = Semn2r Semn1;

(op1 = 0 Y *RP1* = *PP2*·22 + *PP1*, op1 = 1 Y *RP1* = *PP2*·22 - *PP1*);Sgn1 = Semn2 + Zero2·Semn1;Pas2op2 = Semn3r Sgn1;

(op2 = 0 Y *RP2* = *PP3*·24 + *RP1*, op2 = 1 Y *RP2* = *PP3*·24 - *RP1*);

Page 62: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

204 Cap.3 Clase de circuite logice combinaţionale

Fig.3.76 Multiplicator Booth-Σ∆ de 7 biţi

Sgn2 = Semn3 + Zero3·Sgn1;

Pas3

op3 = Semn4r Sgn2 = Sgn2;

(op3 = 0 Y P = *PP4*·26 + *RP2*, op3 = 1 Y P = *PP4*·26 - *RP2*).

Cel mai semnificativ produs parţial (PP4 în acest caz) nu poate fi negativdeoarece produsul P = X×Y este un modul, adică un număr binar fără semn. Oschemă simplificată a multiplicatorului Booth-Σ∆ de 7 biţi, în care suntreprezentate numai sumatoarele-scăzătoarele (cu transport-împrumut succesiv)şi logica de selecţie a operaţiilor, este desenată în fig.3.76.

Ieşirile notate cu 10 şi 12 din primul şi respectiv din al doilea sumator-scăzătorau semnificaţii de transport/împrumut. Celulele din rangurile cele mai puţinsemnificative ale celor trei sumatoare-scăzătoare care au aplicate la una dintreintrări valoarea logică constantă 0 pot fi simplificate după cum se arată înfig.3.77 (nu s-a mai desenat logica de selecţie a operaţiilor); mai pot fisimplificate încă 4 celule elementare sumator-scăzător situate în rangurile cele

Page 63: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 205

Figura 3.77

mai semnificative. Intrările sumatoarelor-scăzătoarelor de 8 biţi notate cu -1 ausemnificaţii de transport/împrumut.

O altă structură de multiplicator Booth-Σ∆ de 7 biţi se poate obţine dacă seinversează ordinea de procesare a celor 4 produse parţiale şi anume:

pas1 pas2 pas3 *PP4* *PP3* *PP2* *PP1*

P = [(X · 26 + (2X) · 24) - X · 22] - X (3.28)

Operaţia adunare/scădere şi controlul acesteia în cei trei paşi ai algoritmului de

Page 64: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

206 Cap.3 Clase de circuite logice combinaţionale

Fig.3.78 Multiplicator Booth-Σ∆ de 7 biţi

înmulţire se realizează astfel:Pas1op1 = Semn3;

(op1 = 0 Y RP1 = *PP4*·26 + *PP3*·24, op1 = 1 Y RP1 = *PP4*·26 - *PP3*·24);Dacă PP4 = 0 atunci PP3 nu poate fi negativ, ceea ce înseamnă că RP1 $ 0.

Pas2op2 = Semn2;

(op2 = 0 Y RP2 = RP1 + *PP2*·22, op2 = 1 Y RP2 = RP1 - *PP2*·22);

Dacă RP1 = 0 atunci PP2 nu poate fi negativ, ceea ce înseamnă că RP2 $ 0.

Pas3

op3 = Semn1;

(op3 = 0 Y P = RP2 + *PP1*, op3 = 1 Y P = RP2 - *PP1*).

Dacă RP2 = 0 atunci PP1 nu poate fi negativ. Structura simplificată amultiplicatorului Booth-Σ∆ determinată pe baza relaţiei 3.28 este reprezentatăîn fig.3.78.

Page 65: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 207

Transporturile/împrumuturile de ieşire din cele trei sumatoare-scăzătoare dinfig.3.78 se neglijează şi nu trebuie implementate. Celulele din rangurile celemai semnificative care au o intrare cu valoare logică constantă 0 pot fi înlocuitecu semi(sumatoare-scăzătoare) elementare; structura unei astfel de celule seobţine prin simplificarea circuitului desenat în fig.3.39 sau în fig.3.40.Subcircuitele formate din celulele cu rangurile 0 şi 1 ale celor trei sumatoare-scăzătoare din fig.3.78 pot fi înlocuite fiecare cu un subcircuit mai simplu(compus dintr-un MUX2, o poartă XOR, o poartă OR2 şi o poartă AND2), caacela încadrat cu linie întreruptă în fig.3.77.Costurile multiplicatoarelor Booth-Σ∆ reprezentate simplificat în figurile 3.76şi 3.78 sunt aproximativ egale însă ultimul are o viteză de operare mai mare.

Comparând arhitecturile Booth-Σ şi Booth-Σ∆ de 7 biţi prezentate în acestparagraf, se poate afirma că arhitectura Booth-Σ este mai rapidă; pe de o partecăile de propagare critice ale multiplicatorului Booth-Σ conţin un număr maimic de celule iar pe de altă parte timpii de propagare printr-un sumatorelementar sunt mai mici decât timpii de propagare printr-un sumator-scăzătorelementar. Algoritmul Booth-Σ poate fi utilizat şi pentru efectuarea “directă” aînmulţirii numerelor binare cu semn reprezentate în cod complementar faţă de2 (C2), fără a trata separat modulele şi semnele operanzilor.Fie X = xnxn-1xn-2...x1x0, Y = ynyn-1yn-2...y1y0 două numere binare întregi cu semncodificat (biţii de semn sunt xn şi yn) şi codurile complementare faţă de 2 aleacestora C2(X) = xnxn-1*xn-2*...x1*x0* şi respectiv C2(Y) = ynyn-1*yn-2*...y1*y0*.Considerând că sunt disponibile C2(X) şi C2(Y), se poate calcula C2(P) astfel:

C2(P) = C2(X)×[-yn·2n + yn-1*·2n-1 + yn-2*·2n-2 + ... + y1*·21 + y0*] (3.29)

Expresia scrisă în paranteze drepte este echivalentul zecimal al numărului Y:

- dacă yn = 0 atunci Y = C2(Y) = (yn-1*·2n-1 + yn-2*·2n-2 + ... + y1*·21 + y0*)(10);

- dacă yn = 1 atunci C2(Y) = 2n+1 - (yn-1·2n-1 + yn-2·2n-2 + ... + y1·21 + y0)(10) =

= (2n + yn-1*·2n-1 + yn-2*·2n-2 + ... + y1*·21 + y0*)(10),

de unde rezultă Y = - (yn-1·2n-1 + yn-2·2n-2 + ... + y1·21 + y0)(10) =

= (-2n + yn-1*·2n-1 + yn-2*·2n-2 + ... + y1*·21 + y0*)(10).

Relaţia 3.29 este adevărată în condiţiile următoare:- produsul parţial [±C2(X)]·2k se obţine prin deplasarea cu k ranguri spre stângaa numărului [±C2(X)] şi repetarea bitului de semn al acestuia în rangurile celemai semnificative, până la 2n +1 inclusiv;- produsul parţial -C2(X) se “calculează” astfel:

dacă xn = 0 atunci -C2(X) = C2(-X) = C2(1xn-1xn-2...x1x0),

Page 66: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

208 Cap.3 Clase de circuite logice combinaţionale

dacă xn = 1 atunci -C2(X) = -X = 0xn-1xn-2...x1x0.

Calcularea produsului parţial -C2(X) constă în determinarea unei reprezentăribinare echivalente în care să nu se utilizeze în mod explicit semnul “-”; aceastăconversie trebuie realizată de către generatoarele de produse parţiale şi estespecifică multiplicatoarelor bazate numai pe operaţii de adunare.Se poate demonstra că, indiferent de valoarea bitului de semn xn, este adevăratărelaţia:

-C2(X) = xnxn-1*xn-2*...x1*x0* +1 (3.30)

În cazul xn = 0 numerele X şi C2(X) sunt identice, astfel că

-C2(X) = C2(1xn-1xn-2...x1x0) = C2(1xn-1*xn-2*...x1*x0*) =

= 1xn-1*xn-2*...x1*x0* +1 = xnxn-1*xn-2*...x1*x0* +1.

În cazul xn = 1,

C2(X) = 1xn-1*xn-2*...x1*x0* = 2n + xn-1*xn-2*...x1*x0* = 2n+1 - xn-1xn-2...x1x0,

xn-1xn-2...x1x0 = 2n - xn-1*xn-2*...x1*x0* = xn-1*xn-2*...x1*x0* +1,

-X = 0xn-1xn-2...x1x0 = 0xn-1*xn-2*...x1*x0* +1 = xnxn-1*xn-2*...x1*x0* +1.

Un exemplu de calcul al produsului C2(P) utilizând relaţia 3.29 este ilustrat înfig.3.79.

1 0 1 0 × (-6(10))1 1 0 1 (-3(10))

1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0

0 1 0 1 relaţia 3.301

1 0 0 0 1 0 0 1 0 (+18(10)) se neglijează semn (rangul 7)

Figura 3.79

Cifrele din rangurile cele mai semnificative ale produselor parţiale, generateprin repetarea biţilor de semn, pot fi reduse ca număr utilizând “artificiile” decalcul prezentate succesiv în figurile 3.68, 3.69 şi 3.70.

Page 67: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 209

Determinarea produsului C2(P) utilizând relaţia 3.29 implică efectuareaa n-1 adunări de produse parţiale deplasate corespunzător (n-1 paşi); numărulproduselor parţiale este n iar dintre acestea doar cel mai semnificativ trebuiemodificat în conformitate cu relaţia 3.30.Utilizând algoritmul de înmulţire Booth, numărul de produse parţiale şiimplicit numărul de paşi necesari pentru determinarea produsului C2(P) sereduce la jumătate în comparaţie cu calculul bazat pe relaţia 3.29. Produseleparţiale şi paşii algoritmului Booth sunt indicaţi în relaţia 3.31; această relaţiese obţine utilizând artificiul de calcul yj* = 2yj* - yj* în relaţia 3.29.

C2(P) = C2(X)×[-yn·2n + yn-1*·2n-1 + yn-2*·2n-2 + ... + y1*·21 + y0*] =

= C2(X)×[(yn-1*-yn)21+(yn-2*-yn-1*)]2n-1 + C2(X)×[(yn-3*-yn-2*)21+(yn-4*-yn-3*)]2n-3

+ C2(X)×[(yn-5*-yn-4*)21+(yn-6*-yn-5*)]2n-5 + ... (3.31)

Valorile produselor parţiale se obţin prin decodificarea a 3 biţi consecutivi aioperandului C2(Y) şi sunt precizate în tabela din fig.3.80.

yj*yj-1*yj-2* = C2(X)×[(yj-1* - yj*)21+(yj-2*-yj-1*)] =

000 sau 111 0 001 sau 010 C2(X) 101 sau 110 -C2(X)

011 2C2(X) 100 -2C2(X)

Figura 3.80

Decodificatorul Booth implementează sistemul de funcţii logice:

Zero = yj*yj-1*y j-2* + yj*yj-1*yj-2*Shift = yj*yj-1*yj-2* + yj*y j-1*y j-2* (3.32)Negativ = yj*y j-1* + yj*y j-2*

Structura generatorului de produse parţiale se determină cu ajutorul unuiexemplu de calcul. Fie C2(X) = x5 x4*x3*x2*x1*x0* (x5 este bitul de semn) şiC2(Y) = 110010 (-13(10)). Produsul C2(P) se calculează în doi paşi (y-1* = 0): PP1 PP2 PP3

C2(P) = -C2(X)·24 + {C2(X)·22 + [-2C2(X)]} (3.33) pas2 pas1

Page 68: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

210 Cap.3 Clase de circuite logice combinaţionale

Schema de calcul corespunzătoare relaţiei 3.33 este prezentată în fig.3.81.

x5 x5 x5 x5 x5 x4* x3* x2* x1* x0* 1 + [PP3] +1

x5 x5 x5 x5 x4* x3* x2* x1* x0* [22·PP2] +0

x5 x5 x4* x3* x2* x1* x0* [24·PP1] +1

p10 p9* p8* p7* p6* p5* p4* p3* p2* p1* p0* C2(P)

Figura 3.81

Această schemă de calcul poate fi simplificată succesiv după cum se arată înfigurile 3.82 şi 3.83.

0 x4* x3* x2* x1* x0* 1 + [PP3] +(x5-1) +1

0 x5 x4* x3* x2* x1* x0* [22·PP2] -x5 +0

0 x5 x4* x3* x2* x1* x0* [24·PP1] +(x5-1) +1

p10 p9* p8* p7* p6* p5* p4* p3* p2* p1* p0* C2(P)

Figura 3.82

1 x5 x4* x3* x2* x1* x0* 1 + [PP3] (+1) +1

1 x5 x5 x4* x3* x2* x1* x0* [22·PP2] +0

x5 x5 x4* x3* x2* x1* x0* [24·PP1] +1

p10 p9* p8* p7* p6* p5* p4* p3* p2* p1* p0* C2(P)

Figura 3.83

Structura GPP şi arhitectura multiplicatorului Booth se determină cu ajutorulschemei de calcul din fig.3.83. În fig.3.84 este reprezentat generatorul de

Page 69: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 211

Fig.3.84 Structura GPP

produse parţiale. Arhitectura multiplicatorului este asemănătoare cu aceeareprezentată în fig.3.73b.

3.10 Probleme rezolvate

1. Să se sintetizeze convertorul de cod Binar-Gray de 4 biţi.R e z o l v a r e:Funcţionarea convertorului Binar-Gray de 4 biţi este descrisă prin tabelele deadevăr de mai jos:

Page 70: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

212 Cap.3 Clase de circuite logice combinaţionale

Se observă că valorile ieşirii G3 sunt identice cu valorile intrării B3, adică G3 =B3. De asemenea, G2 = B2 dacă B3 = 0 şi G2 = B2 dacă B3 = 1 ceea ce înseamnăG2 = B3r B2. Se pot deduce expresii logice într-o manieră asemănătoare (bazatăpe comparaţii) şi pentru ieşirile G1, G0 sau se poate utiliza în acest scop ometodă de minimizare. Minimizarea funcţiilor G1, G0 prin metoda Karnaugheste prezentată în tabelele următoare.

2. Să se determine o structură de convertor de 4 biţi de la codul binar cusemn codificat la codul complementar faţă de 2 (C2).R e z o l v a r e:Fie X = x3x2x1x0 un număr binar întreg şi C2(X) = x3x2*x1*x0*; semnul estecodificat cu bitul x3 (0 Y +, 1 Y -). În conformitate cu definiţia codului C2

x2*x1*x0* = x2x1x0 dacă x3 = 0 şi x2*x1*x0* = x2x1x0 + 1 dacă x3 = 1.

Complementarea biţilor din rangurile 0, 1, 2 este condiţionată de bitul de semnşi se poate obţine cu ajutorul a 3 porţi XOR:

Page 71: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 213

Circuitul din figura de mai sus este un convertor de 4 biţi de la codul binar cusemn codificat la codul complementar faţă de 1 (C1). De obicei conversia încodul C2 se utilizează în cadrul blocurilor aritmetice, C2(X) fiind unul dintrecei doi operanzi aplicaţi la intrările unui sumator binar. Nu este necesară oconversie propriuzisă în C2 ci o conversie în C1, mai simplu de realizat, şiaplicarea bitului de semn (x3 în acest caz) la intrarea de transport a sumatoruluirespectiv.Dacă este necesară conversia în codul C2, într-un context diferit de cel aloperaţiilor aritmetice, atunci structura convertorului se determină cu ajutorultabelelor de adevăr următoare. Combinaţiile x3x2x1x0 = 0000 şi x3x2x1x0 = 1000reprezintă numărul zecimal 0 (+0 şi respectiv -0).

x2* = x3x2 + x2x1x0 + x3x2x1 + x3x2x0 = x2·(x3x1 + x3x0) + x2·(x3x1 + x3x0);

x1* = x3x1 + x1x0 + x3x1x0 = x1·x3x0 + x1·x3x0;

x0* = x0.

Page 72: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

214 Cap.3 Clase de circuite logice combinaţionale

3. Să se sintetizeze convertorul de cod BCD-C9 (complement faţă de 9).R e z o l v a r e:Fie D = d3d2d1d0 codul binar al unei cifre zecimale şi C9(D) = d3*d2*d1*d0*codul complementar faţă de 9 al digitului D. Funcţionarea unei celule carerealizează conversia D Y C9(D) este descrisă de relaţia

C9(D) = 9 - D,

pe baza căreia sunt completate tabelele de adevăr următoare.

Se obţin expresiile logice d3* = d3d2d1; d2* = d2d1 + d2d1; d1* = d1; d0* = d0.

Structura covertorului este desenată în figura de mai jos.

Page 73: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 215

4. Fie numărul binar întreg şi fără semn b7b6b5b4b3b2b1b0. Să se determineo structură de circuit logic combinaţional care să efectueze conversia acestuinumăr în codul BCD (codul 8421).R e z o l v a r e:

b7b6b5b4b3b2b1b0 max = 11111111(2) = 255(10)

Convertorul de cod Binar-BCD trebuie să aibă 10 ieşiri, după cum se arată înfigura de mai jos:

Descrierea funcţionării acestui circuit şi determinarea expresiilor logice aleieşirilor cu ajutorul tabelelor de adevăr necesită un efort de calcul considerabil.Structura circuitului poate fi obţinută fără a determina în mod explicit expresiilogice pentru cele 10 ieşiri în funcţie de cele 8 variabile de intrare şi are la bazăcalculul următor. Semnul “+” reprezintă adunarea algebrică.

b7b6b5b4b3b2b1b0 = b7·27 + b6·26 + b5·25 + b4·24 + b3b2b1b0 =

= b7·(100 + 20 + 8) + b6·(60 + 4) + b5·(30 + 2) + b4·(10 + 6) + b3b2b1b0 =

= 100(10)×(000b7)(2) + 10(10)×(00b70 + 0b6b60 + 00b5b5 + 000b4)(2) +

+ (b7000 + 0b600 + 00b50 + 0b4b40 + b3b2b1b0)(2) =

= 100(10)×b7 + 10(10)×(0b7b4 + b6b60 + 0b5b5)(2) + (b7b6b50 + 0b4b40 + b3b2b1b0)(2)

Convertorul Binar-BCD poate fi construit cu sumatoare binare şi porţi logice.Digitul cel mai puţin semnificativ (“unităţi”) se calculează astfel:

u0 = b0;

u3u2u1 + 10(10)×(transport)(2) = b7b6b5 + 0b4b4 + b3b2b1 + corecţie BCD(U).

Page 74: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

216 Cap.3 Clase de circuite logice combinaţionale

Numărul binar u3u2u1 poate să aibă numai valorile 000, 001, 010, 011 sau 100.Schema unui circuit care determină valorile cifrelor binare u3, u2, u1 şitransporturile către digitul “zeci” este desenată în figura de mai jos. Circuitulare o funcţionare asemănătoare cu a unui sumator modulo 5.

Sumatorul de 3 biţi efectuează adunarea b7b6b5 + 00b4 + b3b2b1 = αΣ2Σ1Σ0. Toatecele 16 combinaţii de 4 biţi sunt posibile pentru acest rezultat deoarecevariabilele b7, b6, b5, b4, b3, b2 şi b1 sunt independente. Blocul de corecţie BCDdetermină cifrele binare u3, u2, u1 şi transporturile β, δ. Toate cele treitransporturi (α, β şi δ) către digitul “zeci” au ponderi egale cu 20 fiecare.Tabelele de adevăr următoare descriu funcţionarea blocului de corecţieBCD(U). Aceste tabele se completează pe baza relaţiilor

u3u2u1 = (αΣ2Σ1Σ0 + 00b40)mod5

α + β + δ = câtul împărţirii [(αΣ2Σ1Σ0 + 00b40)/5]

în care “+” reprezintă adunarea algebrică.Combinaţiile αΣ2Σ1Σ0b4 = 00001, 11110 nu sunt posibile; în aceste două situaţiivalorile funcţiilor u3, u2, u1, β, δ pot fi considerate indiferente. În conformitatecu grupările efectuate în tabelele de adevăr se obţin expresiile logice:

u3 = αΣ1b4·Σ2r Σ0 + Σ2Σ1Σ0·αrb4 + αΣ2Σ1b4 + αΣ2Σ1Σ0b4;u2 = αΣ1Σ0·Σ2rb4 + αΣ0·(Σ1r b4) + αΣ2Σ0·Σ1rb4 + αΣ1Σ0b4 + αΣ2Σ1b4;u1 = α Σ2Σ1Σ0 + Σ2Σ1Σ0b4 + αΣ2Σ0b4 + αΣ2Σ0b4 + αΣ2Σ1Σ0 + αΣ2Σ0b4 +

+ Σ2Σ1Σ0b4 + αΣ2Σ1Σ0b4;β = (α + Σ2 + Σ1)(α + Σ2 + b4)(α + Σ2 + Σ0)(Σ2 + Σ1 + b4)(α + Σ1 + Σ0 + b4);δ = αΣ2b4(Σ1 + Σ0).

Page 75: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 217

Digitul “zeci” se calculează astfel:

z3z2z1z0 + 10(10)×(transport)(2) = 0b7b4+b6b60+0b5b5+α+β+δ+corecţie BCD(Z).

Schema unui circuit de calcul al digitului “zeci” este desenată în figura de maijos.

Ieşirea θ din blocul de corecţie BCD(Z) este transportul către digitul “sute”.Numărul binar z3z2z1 poate să aibă numai valorile 000, 001, 010, 011 sau 100.

Page 76: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

218 Cap.3 Clase de circuite logice combinaţionale

Considerând că variabilele logice f, g şi h sunt independente, funcţionareablocului de corecţie BCD(Z) poate fi descrisă cu ajutorul tabelelor de adevărurmătoare (dacă există dependenţe între variabilele f, g, h atunci acestea pot fiutilizate pentru simplificarea blocului de corecţie), completate pe baza relaţiilor

z3z2z1 = (fgh)modulo5θ = câtul împărţirii[fgh/5]

în care f este bitul cel mai semnificativ iar h este bitul cel mai puţinsemnificativ.

Se obţin expresiile logice

z3 = f g h, z2 = f g + g h, z1 = f h + f g h, θ = f g + f h.

Cifrele digitului “sute” se pot determina cu ajutorul unui semisumatorelementar, după cum se arată în figura de mai jos.

5. Să se deseneze o schemă de expandare pentru codificatorul de adresăcu prioritate reprezentat în fig.3.9.R e z o l v a r e:Două sau mai multe ieşiri din circuite diferite pot fi conectate împreună dacăîn orice moment cel mult una dintre acestea se află fie într-o stare logică validă(HIGH, LOW) fie invalidă (tensiune intermediară nivelelor H, L) iar celelalte

Page 77: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 219

se află în starea de înaltă impedanţă. Această proprietate poate fi utilizată pentruexpandarea codificatorului de adresă cu prioritate reprezentat în fig.3.9. Oschemă de expandare este desenată în figura de mai jos.

Dacă Enable = 0 atunci nici unul dintre cele două codificatoare nu este autorizatsă funcţioneze şi ieşirile AI, A2, A1, A0 sunt în starea de înaltă impedanţă.Dacă Enable = 1 atunci este autorizat să funcţioneze un singur codificator.Autorizarea se realizează cu ajutorul intrărilor care au prioritatea cea mai mare:- când este activă cel puţin una dintre intrările I7, I6, I5 sau I4, este validatcodificatorul 2 şi rezultă A2 = 1, AI = 1;

Page 78: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

220 Cap.3 Clase de circuite logice combinaţionale

- când nici una dintre intrările I7, I6, I5 şi I4 nu este activă se autorizeazăfuncţionarea codificatorului 1 şi rezultă A2 = 0; în acest caz AI = 1 dacă esteactivă cel puţin una dintre intrările I3, I2, I1 sau I0 (altfel AI = 0).

6. Utilizând un singur decodificator 1-din-16 cu ieşiri active pe nivelul 0logic şi porţi logice, să se implementeze funcţiile f şi g (de variabile a, b, c, d,e) definite astfel:

f = abc + bcde + a c d + abcd ,

R e z o l v a r e:Dacă la intrările decodificatorului se aplică variabilele a, b, c, d în aceastăordine, de la intrarea MSB la intrarea LSB, atunci la ieşirile 0 ÷15 alecircuitului se “generează” maxtermenii a + b + c + d, a + b + c + d, a + b + c+ d,..., şi respectiv a + b + c + d.Funcţia f trebuie reprezentată într-o formă echivalentă mai convenabilă (produsde maxtermeni):

f = (a + b + c)(b + c + d + e)(a + c + d)(a + b + c + d) .

Fiecare maxtermen de 3 variabile poate fi scris ca produs de doi maxtermeni de4 variabile: a + b + c = (a + b + c + d)(a + b + c + d) = 11·10;

b + c + d = (a + b + c + d)(a + b + c + d) = 7·15;

a + c + d = (a + b + c + d)(a + b + c + d) = 0· 4.

Variabila e trebuie tratată în mod diferit faţă de variabilele a, b, c, d care suntaplicate la intrările decodificatorului. Se obţine expresia f = 11·10·(7·15 + e)·0· 4·5.

Expresia logică cea mai convenabilă pentru reprezentarea funcţiei g este formacanonică cu maxtermeni (valorile indiferente sunt considerate 1 logic): g = (a + b + c + d)(a + b + c + d + e)(a + b + c + d)(a + b + c + d)·

·(a + b + c + d)(a + b + c + d) = 0·(3 + e)·5·6·12·10.

Circuitul care implementează funcţiile f şi g, compus dintr-un decodificator de

Page 79: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 221

adresă (1-din-16 cu ieşiri active pe nivelul 0 logic) şi porţi logice, estereprezentat în figura următoare.

7. Să se implementeze, utilizând numai MUX2 (multiplexoare de 2 căi)şi inversoare, funcţia f(a, b, c, d, e) = a b c e + a b d e + a b d e + a c d e + a b ce.R e z o l v a r e:Fie X o mulţime de variabile logice, y o variabilă logică care nu aparţinemulţimii X şi H(X, y) o expresie care defineşte o funcţie logică. Aceastăexpresie logică poate fi “expandată” astfel: H(X, y) = y ·H(X, 0) + y ·H(X, 1).

Dacă funcţiile logice H(X, 0) = H0(X) şi H(X, 1) = H1(X) sunt implementate decătre două blocuri combinaţionale B0 şi respectiv B1, atunci pentruimplementarea funcţiei H(X, y) mai este necesar doar un MUX2. Schema deinterconectare a blocurilor B0, B1 cu multiplexorul este desenată în figuraurmătoare. La rândul lor funcţiile H0(X) şi H1(X) pot fi expandate, adică pot fidescompuse în funcţii mai simple care trebuie multiplexate. Această procedurade expandare se poate aplica recursiv până când funcţia iniţială se obţine prinmultiplexarea variabilelor de intrare.

Page 80: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

222 Cap.3 Clase de circuite logice combinaţionale

Expandarea unei funcţii logice de n variabile se poate realiza în n! moduri, însăanumite expandări sunt mai avantajoase din punct de vedere al costuluiimplementării (adică al numărului de multiplexoare şi inversoare necesare).O expandare avantajoasă pentru funcţia din enunţul problemei este următoarea:

f(a, b, c, d, e) = a(b c e + b d e) + a( b d e + c d e + b c e) =

= a·[e·(b d + b c) + e·(c d)] + a·[e·(b d) + e·(b c)].

Implementarea acestei expresii logice cu MUX2 şi inversoare este reprezentatăîn figura de mai jos. Multiplexoarele care au o intrare fixată la o valoare logicăconstantă pot fi simplificate din punct de vedere structural.

Page 81: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 223

8. Să se implementeze funcţia logică f(a, b, c) definită prin tabela deadevăr următoare, utilizând un MUX de 4 căi şi un inversor.

a b c f0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 01 0 1 ~1 1 0 11 1 1 1

R e z o l v a r e:La intrările de selecţie S1, S0 ale multiplexorului se pot aplica oricare două dincele trei variabile a, b, c şi în orice ordine. Dacă S1 = a şi S0 = b atunci ecuaţiacare descrie funcţionarea MUX4 este

Y = f = a b·I0 + ab·I1 + ab·I2 + ab·I3.

Din tabela de adevăr se determină valorile logice care trebuie aplicate laintrările de date ale multiplexorului, comparându-se coloanele c şi f; deexemplu, în primele două linii din tabela de adevăr (linii ce corespundcombinaţiei ab = 00) se observă că c = f, ceea ce înseamnă I0 = c. La celelaltetrei intrări de date se obţin valorile I1 = c, I2 = 0 sau c, I3 = 1. Implementareafuncţiei f este reprezentată în figura de mai jos.

9. Să se implementeze funcţia logică

G(a, b, c, d, e, f) = ab + abc + abc d + abcdf + abcde

Page 82: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

224 Cap.3 Clase de circuite logice combinaţionale

utilizând (strict) două multiplexoare de 4 căi.R e z o l v a r e:Expresia logică ce defineşte funcţia G poate fi scrisă în forma

G = a b·0 + ab·1 + ab·c + ab·(c d·1 + cd·f + cd·0 + cd·e).

Variabilele care trebuie aplicate la intrările de selecţie ale celor douămultiplexoare sunt a, b şi respectiv c, d. Circuitul care implementează funcţiaG este desenat în figura următoare.

10. Să se construiască un comparator combinaţional de n biţi pentrunumere reprezentate în codul complementar faţă de 2.R e z o l v a r e:De obicei comparatoarele numerice determină valoarea relativă (mai mare, egal,mai mic) a două numere binare fără semn. În cazul numerelor reprezentate înC2 comparaţia trebuie să includă şi bitul de semn.Fie X = xn-1xn-2...x1x0, Y = yn-1yn-2...y1y0 două numere binare cu semn codificat(biţii de semn sunt xn-1, yn-1 şi se respectă convenţia de codificare a semnului0Y“+”, 1Y“-”) şi C2(X) = xn-1xn-2*...x1*x0*, C2(Y) = yn-1yn-2*...y1*y0* codurilecomplementare faţă de 2 ale acestora.Circuitul care compară numerele C2(X) şi C2(Y), în această ordine, trebuie săgenereze unul dintre rezultatele X > Y, X = Y sau X < Y fără a determina în modexplicit numerele X şi Y. Dacă se compară numerele C2(X) şi C2(Y) ca şi cumacestea ar fi numere de n biţi, întregi şi fără semn, atunci rezultatele obţinutetrebuie “corectate” pentru ca ele să coincidă cu rezultatele comparaţiei dintreX şi Y. Prin analiza care urmează se determină cazurile în care sunt necesarecorecţii şi în ce constau aceste corecţii.

Page 83: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 225

Cazul 1:Dacă xn-1 = yn-1 = 0 atunci rezultatul comparaţiei dintre C2(X) şi C2(Y) esteidentic cu rezultatul comparaţiei dintre X şi Y deoarece C2(X) = X, C2(Y) = Yiar corecţia nu este necesară. Cazul 2:Dacă xn-1 = 0 şi yn-1 = 1 atunci comparatorul indică C2(X) < C2(Y) adică seactivează ieşirea “mai mic”; rezultatul comparaţiei trebuie să fie X > Y deoareceX $ 0 iar Y < 0, adică trebuie să se activeze ieşirea “mai mare”. Corecţia estenecesară. Cazul 3:Dacă xn-1 = 1 şi yn-1 = 0 atunci comparatorul indică C2(X) > C2(Y) adică seactivează ieşirea “mai mare”; rezultatul comparaţiei trebuie să fie X < Ydeoarece X < 0 iar Y $ 0, adică trebuie să se activeze ieşirea “mai mic”. Corecţiaeste necesară. Cazul 4:Dacă xn-1 = yn-1 = 1 sunt posibile două situaţii.(a) C2(X) = C2(Y) Y X = Y; se activează ieşirea “egal” şi nu este necesarăcorecţia rezultatului.(b) C2(X) … C2(Y) Y X … Y; C2(X) = 2n - *X*, C2(Y) = 2n - *Y* şi în aceastăsituaţie C2(X) > C2(Y) Y X < Y, C2(X) < C2(Y) Y X > Y adică este necesarăcorecţia rezultatului.

Din această analiză rezultă că numai ieşirile “mai mare” şi “mai mic” potfi afectate de “erori”. Erorile apar în cazurile 2, 3 şi 4(b) iar corecţia se poaterealiza prin interschimbarea ieşirilor “<” şi “>” atunci când cel puţin unul dintrebiţii xn-1, yn-1 are valoarea logică 1; rezultatul corespunzător cazului 4(a) nu semodifică deoarece nu este sensibil la corecţia menţionată. Schema de compararea numerelor reprezentate în C2 este desenată în figura de mai jos.

Page 84: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

226 Cap.3 Clase de circuite logice combinaţionale

11. Circuitul din figura următoare este un “numărător” combinaţional;acesta trebuie să indice numărul de intrări care au valoarea logică 1 în formăbinară n2n1n0(2). Să se determine structura numărătorului şi să se deseneze oschemă de expandare a acestuia.

R e z o l v a r e:Circuitul implementează sistemul de funcţii n2, n1, n0. Aceste funcţii depindfiecare de 7 variabile şi pot fi reprezentate prin tabele de adevăr (cudimensiunea 27) cu ajutorul cărora se obţin expresii logice cu costuri minimeşi implicit structura circuitului la nivel de poartă logică. Această abordareimplică un efort relativ mare de calcul; o soluţie mai simplă este construireanumărătorului din sumatoare şi semisumatoare elementare. Funcţionareanumărătorului este descrisă de relaţia n2n1n0(2) = a + b + c + d + e + f + g

în care “+” reprezintă adunarea algebrică. Circuitul poate fi inclus în categoriacelulelor elementare de adunare deoarece efectuează adunarea a 7 biţi(variabile) cu ponderi egale între ele. În comparaţie cu un sumator elementarcare efectuează adunarea a 3 biţi cu ponderi egale şi care realizează o“compresie” de tip (3, 2), unde 3 şi 2 reprezintă numărul de intrări şi respectivnumărul de ieşiri, numărătorul prezentat în enunţul aceastei probleme realizeazăo compresie de tip (7, 3). În cazul general, o celulă elementară de adunaredetermină suma a (2k-1) biţi cu ponderi egale, rezultatul fiind furnizat sub formaunui număr binar de k cifre. Relaţia de mai sus poate fi prelucrată astfel:

n2n1n0(2) = (a + b + c) + (d + e + f) + g = s1s0(2) + u1u0(2) + g =

= (s1 + u1)·21 + (s0 + u0 + g) = (s1 + u1)·21 + v1v0(2) = (s1 + u1 + v1)·21 + v0 =

= w1w0(2)·21 + v0 = w1w0v0(2).

Sunt necesare 4 sumatoare elementare pentru a construi numărătorul; schema

Page 85: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 227

de interconectare a acestor componente este desenată în figura următoare.

Ieşirea n0 are rangul egal cu rangul fiecăreia dintre intrările a, b, c, d, e, f, g.Ieşirile n1 şi n2 au ranguri mai mari cu 1 şi respectiv cu 2; prin analogie cusumatorul elementar sau celula de tip (3, 2), aceste ieşiri au semnificaţie de“transporturi”.

Cu ajutorul unui sumator compus din n celule elementare de tip (7, 3) sepoate efectua într-un singur pas adunarea a 5 numere binare de n biţi;arhitecturile de acest fel reprezintă soluţii de creştere a vitezei de operare şi potfi combinate cu tehnicile de anticipare, de salt sau de selecţie a transporturilor.Structura unui sumator cu transporturi succesive între celule este desenatăsimplificat în figura de mai jos.

Page 86: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

228 Cap.3 Clase de circuite logice combinaţionale

12. Fie X = xn-1xn-2...x1x0 şi Y = yn-1yn-2...y1y0 două numere binare întregi şifără semn. Utilizând un scăzător binar de n biţi, să se construiască un circuitlogic combinaţional care să efectueze operaţia Z = *X-Y*.R e z o l v a r e:Rezultatul operaţiei specificate în enunţul problemei este un număr binar întregşi fără semn; formatul necesar şi suficient pentru reprezentarea acestuia este den cifre, adică Z = zn-1zn-2...z1z0.

La ieşirile scăzătorului de n biţi se obţine Z numai dacă se scade dinoperandul mai mare pe cel mai mic, adică:- dacă X $ Y atunci trebuie efectuată operaţia X-Y;- dacă X < Y atunci trebuie efectuată operaţia Y-X.Comparaţia operanzilor trebuie făcută în mod explicit, cu ajutorul unuicomparator numeric de n biţi. Rezultatul furnizat de comparator (valoarearelativă a numerelor X şi Y) stabileşte care dintre operanzi este descăzutul şicare este scăzătorul. Schema simplificată a circuitului logic care implementeazăacest algoritm de calcul este reprezentată în figura următoare.

Numai ieşirea “<” a comparatorului este utilizată; structura comparatoruluipoate fi simplificată prin eliminarea conexiunilor şi porţilor logice care nuinfluenţează valorile de la ieşirea “<”.Blocurile notate nMUX2 conţin n multiplexoare de 2 căi. Prin intermediulacestor blocuri de comutatoare se aplică operandul mai mare (descăzutul) laintrarea circuitului de scădere notată cu A şi operandul mai mic (scăzătorul) laintrarea notată cu B.Circuitul de scădere efectuează operaţia A-B; împrumutul de intrare borrowineste conectat la 0 logic iar împrumutul de ieşire borrowout nu este utilizat.Viteza de operare a circuitului este invers proporţională cu timpul de propagarecumulat al comparatorului, al unui bloc de multiplexoare şi al scăzătorului.

Page 87: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 229

Operaţia Z = *X-Y* poate fi efectuată mai avantajos în comparaţie cuschema de calcul anterioară, atât din punct de vedere al vitezei de operare câtşi al complexităţii structurale, dacă se aplică numerele X şi Y direct la intrărileA şi respectiv B ale scăzătorului de n biţi iar rezultatul X-Y = A-B se“corectează” atunci când X < Y. Fie D = dn-1dn-2...d1d0 rezultatul obţinut laieşirile notate cu 0, 1, ..., n-1 ale scăzătorului de n biţi. Valoarea relativă anumerelor X, Y şi implicit relaţia dintre Z şi D sunt indicate de către valoarealogică obţinută la ieşirea de împrumut borrowout astfel:- dacă borrowout = 0 atunci X $ Y şi Z = D;- dacă borrowout = 1 atunci X < Y şi X-Y = -2n + D = -Z; în acest caz numărulbinar 1dn-1dn-2...d1d0 reprezintă complementul faţă de 2 al numărului negativ -Z: Z = zn-1zn-2...z1z0 = 2n - D = dn-1dn-2...d1d0 + 1.

Determinarea numărului Z cu această relaţie nu este convenabilă datorităoperaţiei de adunare. Dezavantajul poate fi însă eliminat cu ajutorul următoruluiartificiu de calcul. X-Y-1 = -2n + D* = -Z - 1;

Z = zn-1zn-2...z1z0 = 2n - D* - 1 = dn-1*dn-2*...d1*d0*.

Noua schemă de calcul al numărului Z este desenată în figura de mai jos.

Cu toate că ieşirea de împrumut borrowout a scăzătorului şi ieşirea “<” acomparatorului au valori logice identice pentru orice pereche de numere X, Y(adică funcţiile logice realizate la aceste două ieşiri sunt echivalente), utilizareacomparatorului este necesară. Dacă la intrarea borrowin a scăzătorului se

Page 88: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

230 Cap.3 Clase de circuite logice combinaţionale

conectează ieşirea borrowout, eliminându-se comparatorul, atunci se obţine uncircuit logic cu reacţie care nu mai este combinaţional ci secvenţial asincron.Un astfel de circuit are memorie; valorile de la ieşirile “scăzătorului cu reacţie”depind nu numai de valorile curente X, Y ci şi de valoarea logică memorată,valoare care nu este întotdeauna cunoscută. De asemenea, este posibil ca unelevalori de intrare X, Y sau anumite modificări ale acestora să determine în circuitregimuri tranzitorii cu durată infinită (oscilaţii).

Determinarea numărului Z cu ajutorul scăzătorului cu reacţie (cu legăturăîntre ieşirea borrowout şi intrarea borrowin) este posibilă prin controlarea reacţieidupă cum se arată în figura următoare.

Semnalul Control reacţie trebuie menţinut la valoarea logică 0 din momentulaplicării operanzilor X, Y şi cel puţin până când toate ieşirile scăzătorului auvalori logice stabile; pe acest interval de timp T reacţia este întreruptă iarscăzătorul efectuează operaţia X-Y-0. După intervalul T, la intrarea Controlreacţie se aplică valoarea logică 1; tranziţia 0Y1 şi menţinerea valorii 1 oricâtde mult timp la această intrare de control nu determină modificarea valoriilogice existente la ieşirea borrowout deoarece:- dacă borrowout = 0 înainte de momentul T atunci borrowin = 0 după momentulT şi nu apare nici o schimbare la vreuna dintre intrările scăzătorului;- dacă borrowout = 1 înainte de momentul T atunci borrowin = 1 după momentulT iar scăzătorul începe să efectueze operaţia X-Y-1, operaţie care nu implică opropagare a valorii împrumutului borrowin până la ieşirea borrowout deoareceborrowout = 1 datorită faptului că X < Y (propagarea poate să afecteze toateieşirile scăzătorului de la rangul 0 până la rangul n-1 inclusiv).Calcularea numărului Z = *X-Y* cu ajutorul schemei din figura de mai sus aredouă faze, asociate cu duratele de menţinere a valorilor logice 0 şi respectiv 1

Page 89: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 231

la intrarea Control reacţie. Durata minimă a fiecărei faze este egală cu timpulde propagare pe căile critice ale scăzătorului.

13. Fie X = xn-1xn-2...x1x0(7) şi Y = yn-1yn-2...y1y0(7) două numere întregi şi fărăsemn scrise în baza de numeraţie 7.(a) Considerând că fiecare cifră xk şi yk este reprezentată în formă binară, să sesintetizeze celula elementară de adunare în baza 7.(b) Să se construiască un sumator modulo 7 de n cifre cu transport succesivîntre ranguri.R e z o l v a r e:(a) Cifrele bazei 7 pot fi reprezentate în baza 2 utilizând un format de 3 biţi. Oimplementare a celulei elementare de adunare în baza 7 este reprezentată înfigura următoare.

Celula elementară de adunare în baza 7 efectuează operaţia

xk + yk + ck = ck+1·71 + sk

unde simbolul “+” reprezintă adunarea algebrică, xk, yk, sk sunt cifre ale bazei7 codificate binar iar ck, ck+1 0 {0, 1} sunt transporturi. Circuitul de corecţie areca “mărime” de intrare numărul binar αβδθ(2) , a cărui valoare maximă înzecimal este 6 + 6 + 1 = 13 (adică 1101 în baza 2). Sistemul de 4 funcţii logicecare este implementat de acest circuit, şi anume ck+1, sk, 2, sk, 1 şi sk, 0 estereprezentat prin tabelele de adevăr următoare, completate pe baza relaţiei demai sus.

Page 90: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

232 Cap.3 Clase de circuite logice combinaţionale

ck+1 = α + βδθsk, 2 = βδ + βθ + αδθ = βδθ + αδθsk, 1 = δθ + α βδ + αδθ = θ(α + β)δ + αδθsk, 0 = αθ + α δθ + α βθ = αθ + (α + βδ)θ

Structura circuitului de corecţie este desenată în figura următoare.

(b) Sumatorul modulo 7 de n cifre cu transport succesiv între ranguri se obţineprin interconectarea a n celule elementare de adunare într-un şir unidimensionalşi unilateral, la fel ca în cazul sumatorului binar cu transport succesiv. Structura

Page 91: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 233

celulară a sumatorului este desenată în figura următoare.

14. Fie X = xnxn-1xn-2...x1x0(7) şi Y = ynyn-1yn-2...y1y0(7) două numere întregicu semnul codificat, scrise în baza de numeraţie 7. Fiecare cifră xk şi yk estereprezentată într-un format de 3 biţi; cifrele xn şi yn reprezintă semnelenumerelor X şi respectiv Y utilizându-se convenţia 000 Y “+”, 110 Y “-”. Să seconstruiască un circuit logic care să efectueze operaţia Z = X + Y prinintermediul adunării.R e z o l v a r e:În orice bază de numeraţie se poate efectua adunarea numerelor cu semnutilizând codurile complementare. În baza 7, operaţia Z = X + Y se poateefectua mai avantajos în forma C7(Z) = C7(X) + C7(Y), C7 fiind codulcomplementar faţă de 7; cifrele semn şi cifrele care definesc modulele sunttratate la fel. Rezultatul C7(Z) este un număr de n+1 cifre în baza 7, codificatebinar, în care cifra din rangul n este semnul. Când operanzii X şi Y au semneidentice este posibil să se depăşească formatul; aceste situaţii sunt detectateautomat în codul C7 prin “alterarea” cifrei semn (de exemplu 001, 010, 011,100, 101). Codul C7 are proprietatea de autocorecţie a erorilor cauzate dedepăşirile de format (vezi cap.1).Operaţia de adunare a codurilor C7 se efectuează cu un sumator modulo7.Conversiile X Y C7(X) şi Y Y C7(Y) trebuie realizate explicit cu ajutorulconvertoarelor de cod. Aceste convertoare au structură celulară; o celulărealizează conversia unei cifre de modul. Datorită prezenţei sumatoarelor estemai convenabil să se efectueze conversiile operanzilor în codul C6 (codulcomplementar faţă de 6). Relaţia dintre codurile C6 şi C7 este C7(A) = C6(A) + sgn(A)·70

unde A este un număr oarecare scris în baza 7 iar “+” reprezintă adunareaalgebrică. Termenul sgn(A)·70 are valoarea 0 dacă A este pozitiv şi valoarea 1dacă A este negativ; el trebuie aplicat la intrarea de transport a sumatoruluimodulo7. Când A este pozitiv C7(A) = C6(A) = A.

Page 92: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

234 Cap.3 Clase de circuite logice combinaţionale

Se poate considera sgn(A) = an, 2 adică cel mai semnificativ bit al cifrei semn an.Conversia cifrei ak în codul C6 se face pe baza relaţiei C6(ak) = an, 2·ak w an, 2·(6 - ak), k < n

cu ajutorul căreia se completează tabelele de adevăr următoare.

ak, 2* = an, 2 ak, 2 + an, 2 ak, 2 ak, 1 + an, 2 ak, 2 ak, 0

ak, 1* = an, 2 ak, 1 + ak, 1 ak, 0 + an, 2 ak, 1 ak, 0

ak, 0* = ak, 0

Convertorul de cod C6 realizează şi conversia inversă sau decodificareadeoarece C6[C6(ak)] = ak iar semnele numerelor A şi C6(A) sunt identice, adicăan = an*.

Circuitul reprezentat simplificat în figura de mai jos determină Z = X + Yprin intermediul adunării.

Page 93: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 235

Blocurile logice notate “Convertor C6” conţin fiecare câte n celule. Dacă nu seproduce depăşirea formatului atunci cifra cea mai semnificativă sn = zn generatăde sumatorul modulo7 este fie 000 fie 110. În acest caz sumatorul efectueazăoperaţia S = C6(X) + C6(Y) + sgn(X)·sgn(Y); transportul din rangul semn, adicăcout, se neglijează. Sunt posibile următoarele cazuri: 1) numerele X şi Y sunt ambele pozitive;Se obţine S = C6(X) + C6(Y) = X + Y, sn = 000 şi deci S = C6(S) = Z. 2) unul dintre numerele X şi Y este pozitiv iar celălalt este negativ;Fără a pierde din generalitate se consideră că X este pozitiv şi Y este negativ. Seobţine S = C6(X) + C6(Y) = X + C6(Y), sn = 000 sau 110. Dacă sn = 000 atunci C7(Z) = X + [C6(Y) + 1] = S + 1 = C6(S) + 1 = Z (eroare),iar dacă sn = 110 atunci

C7(Z) = X + [C6(Y) + 1] = S + 1 = C6(Z) + 1 şi rezultă C6(S) = Z. 3) numerele X şi Y sunt ambele negative;Se obţine S = C6(X) + C6(Y) + 1, sn = 110. Deoarece

C7(Z) = [C6(X) + 1] + [C6(Y) + 1] = S + 1 = C6(Z) + 1,rezultă S = C6(Z) iar C6(S) = Z.Eroarea menţionată anterior poate fi corectată prin înlocuirea porţii AND2conectată la intrarea de transport a sumatorului cu un circuit care să generezevaloarea 1 logic atunci când ambele numere X, Y sunt negative dar şi cândacestea au semne opuse iar X + Y > 0. Semnul numărului X + Y poate fideterminat cu ajutorul unui comparator de 3n biţi; se compară *X* şi *Y* ca şicum acestea ar fi numere binare. O soluţie mai economică constă în utilizareainformaţiei de semn disponibilă la ieşirea sn, 2 a sumatorului. Deoarece în acestcaz se creează o legătură de reacţie în circuit, la nivelul sumatorului modulo7,este necesar un semnal de control al reacţiei, la fel ca în problema 12. Schemacircuitului cu reacţie controlată este desenată în figura următoare. Operaţia Z =X + Y se efectuează în două faze. În prima fază variabila logică Control reacţiese menţine la valoarea 0 până când ieşirile sumatorului modulo7 au valoristabile. În faza a doua, care este o fază de corecţie a rezultatului, se aplicăControl reacţie = 1; corecţia este efectivă numai dacă X + Y > 0 iar sgn(X) …sgn(Y). Toate cifrele de la ieşirile sumatorului determinate în prima fază, cuexcepţia cifrei semn sn, pot fi modificate în faza de corecţie. De exemplu, dacăX = 000 110 000 000 (+600(7)) şi Y = 110 001 000 000 (-100(7)) atuncirezultatul furnizat de sumator în prima fază este +466(7):

000 110 000 000+ C6(X)110 101 110 110 C6(Y)000 100 110 110 S

Page 94: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

236 Cap.3 Clase de circuite logice combinaţionale

În faza a doua se efectuează operaţia

000 110 000 000+ C6(X)110 101 110 110 C6(Y)

1000 101 000 000 S = C6(S) = Z = +500(7).

Depăşirea formatului este indicată la ieşirea Overflow prin nivelul 1 logic:

Overflow = sn, 2 sn, 1 sn, 0 + sn, 2 sn, 1 sn, 0 = sn, 2r sn, 1 + sn, 0.

15. Să se construiască un ALU de 4 biţi, reprezentat ca bloc funcţional înfigura de mai jos, care să efectueze operaţiile logice XY, Xr Y, XY, XwY şioperaţiile aritmetice X + Y + c0, XY - 1, X + XY, X + Y +1. Să se expandeze acestALU la 16 biţi.

Page 95: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 237

Modul de operare, aritmetic sau logic, se fixează cu ajutorul variabilei de intrareM iar selecţia operaţiilor se realizează prin intermediul variabilelor Sel1 şi Sel0.Intrarea c0 reprezintă transportul de intrare iar G, P sunt funcţiile de generareşi de propagare a transportului.R e z o l v a r e:ALU are la bază sumatorul de 4 biţi cu transport anticipat reprezentat în figuraurmătoare. Acest circuit efectuează operaţia aritmetică A + B + cin, rezultatulfiind funcţiile de generare şi propagare a transportului G, P şi suma S = s3s2s1s0(A = a3a2a1a0, B = b3b2b1b0).

Mai multe detalii structurale ale unităţii aritmetice-logice pot fi determinate cuajutorul tabelei de funcţionare de mai jos.

În modul aritmetic toate cele 4 operaţii sunt efectuate de către sumatorul binar;mai sunt necesare blocuri logice care să determine operanzii A, B şi transportulcin. Selectarea operanzilor şi a transportului se realizează cu ajutorulmultiplexoarelor. Operaţia aritmetică F = XY - 1 (scădere) este echivalentă cuoperaţia F = XY + 1111 (adunare):

Page 96: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

238 Cap.3 Clase de circuite logice combinaţionale

F = XY - 1 = XY - 1 + 24 = XY + 1111.

Fie cout o variabilă logică a cărei semnificaţie este împrumut de ieşire în cazuloperaţiei XY - 1 şi transport de ieşire în cazul operaţiei XY + 1111. Comparaţiadintre aceste două operaţii se poate realiza cu ajutorul tabelelor de mai jos.

XY F = XY - 1 cout XY F = XY + 1111 cout

0000 1111 1 0000 1111 0 0001 0000 0 0001 0000 1 0010 0001 0 0010 0001 1 0011 0010 0 0011 0010 1 0100 0011 0 0100 0011 1 0101 0100 0 0101 0100 1 0110 0101 0 0110 0101 1 0111 0110 0 0111 0110 1 1000 0111 0 1000 0111 1 1001 1000 0 1001 1000 1 1010 1001 0 1010 1001 1 1011 1010 0 1011 1010 1 1100 1011 0 1100 1011 1 1101 1100 0 1101 1100 1 1110 1101 0 1110 1101 1 1111 1110 0 1111 1110 1

Variabila cout poate fi determinată cu ajutorul expresiei logice cout = G + P·cin,unde G şi P sunt funcţiile de generare şi respectiv de propagare a transportuluiimplementate la nivelul sumatorului. În cazul Sel1Sel0 = 01 trebuie făcută“corecţia” cout = G + P·cin ; această corecţie nu implică modificarea funcţiilor G,P şi se realizează efectiv numai atunci când ALU este prevăzut cu o ieşire detransport.În figura următoare este desenată simplificat structura unităţii aritmetice-logicede 4 biţi. Blocurile logice notate MUXA, MUXB, MUXL conţin fiecare câte4 multiplexoare de 4 căi iar blocul MUXF conţine 4 multiplexoare de 2 căi;multiplexoarelor din fiecare bloc li se atribuie ranguri de la 0 la 3. Fiecaresimbol de inversor sau de poartă AND reprezintă un bloc compus din 4 astfelde componente; de exemplu, poarta AND marcată cu cifra 2 este un circuit careefectuează operaţia XY = x3y3 x2y2 x1y1 x0y0 iar aceşti 4 biţi rezultat se aplicăla intrările multiplexoarelor marcate cu cifra 2 în grupurile MUXB şi MUXL

Page 97: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 239

după o corespondenţă biunivocă determinată de ranguri.Logica necesară pentru efectuarea operaţiei Xr Y se află în structurasumatorului de 4 biţi; când Sel1Sel0 = 00 la intrările sumatorului se aplică A =X şi B = Y.

Schema de expandare la 16 biţi a acestui ALU de 4 biţi este desenată în figurade mai jos.

Page 98: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

240 Cap.3 Clase de circuite logice combinaţionale

3.11 Probleme propuse spre rezolvare

1. Să se sintetizeze convertoarele de cod: a) Gray-Binar, de 4 biţi; b) C2-Binar cu semn codificat, de 4 biţi; c) BCD(2 digiţi)-Binar.

2. Utilizând porţi logice şi un singur decodificator 1-din-10 cu ieşiriactive pe nivelul 1, să se implementeze funcţiile logice f(a,b,c,d) = bc(a + d)(b+ c + d) şi g(a,b,c,d) = (c + ar br d)(b + c + d).

3. Să se construiască un decodificator 1-din-16 cu ieşiri active pe nivelullogic 0 utilizând decodificatoare 1-din-4 cu ieşiri active pe 0.

4. Să se deseneze o schemă de expandare a demultiplexorului cu intrarede autorizare, de la 4 căi la 16 căi.

5. Să se implementeze sistemul de funcţii f, g, h, k, j definit mai jos,utilizând un DEMUX de 16 căi şi porţi logice. Funcţiile sistemului depind devariabilele logice a, b, c, d şi e.

6. Să se deseneze o schemă de afişare cu 4 celule de tip 7 segmente (LED)

în care să fie utilizat un singur decodificator BCD-7 segmente pentru comandatuturor celulelor de afişare.Observaţie: Sunt două tipuri de celule de afişare cu 7 segmente LED: celule de

Page 99: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

Circuite Logice Combinaţionale 241

tip AC (anod comun) şi celule de tip CC (catod comun). Celulele AC (CC) suntcomandate de către decodificatoare cu ieşiri active pe nivelul logic 0 (1).Celulele AC (CC) au un pin numit anod comun (catod comun) care trebuieconectat la borna “+” (“-”) a sursei de alimentare pentru ca segmentele activatesă emită lumină; altfel, dacă acest pin este lăsat în gol sau nu este conectat laborna corespunzătoare a sursei de alimentare, nici un segment nu emite lumină.

7. Să se sintetizeze circuitul de rotire sau de permutare circulară definitîn figura următoare.

8. Să se sintetizeze o celulă de comparare de 2 biţi, care să comparenumerele binare A = a1a0, B = b1b0 şi să furnizeze unul dintre rezultatele “maimic” sau “mai mare sau egal”. Utilizând această celulă să se construiască uncomparator de 2n biţi, ca cel reprezentat în figura de mai jos.

9. Utilizând scăzătoare binare şi porţi logice, să se construiască unscăzător BCD de 1 digit.

10. a) Să se sintetizeze o celulă elementară de adunare modulo 12 şi să seconstruiască sumatoare mod12 de n cifre cu transport succesiv, cu transport în

Page 100: Cap.3 CLASE DE CIRCUITE LOGICE COMBINAŢIONALEep.etc.tuiasi.ro/files/CID/logica_combinationala.pdfFig.3.7 Simboluri pentru codificatoare de adresă valoare logică validă v 0 {0,

242 Cap.3 Clase de circuite logice combinaţionale

salt şi cu transport selectat.b) Să se completeze schema unui sumator modulo 12 cu convertoare de codadecvate pentru a efectua atât operaţii de adunare cât şi operaţii de scăderemodulo 12.

11. Să se construiască un ALU de 4 biţi, reprezentat ca bloc funcţional înfigura de mai jos, care să efectueze operaţiile logice X·Y, Xr Y, X·Y, XwY şioperaţiile aritmetice X + Y + c0, XY - 2, X + XY + c0, X + Y +1. Să se expandezeacest ALU la 16 biţi.

12. Să se descrie prin tabele de adevăr şi să se sintetizeze cu porţi logicemultiplicatorul de 2 biţi reprezentat în figura următoare. Utilizând celule demultiplicare de acest fel şi sumatoare binare, să se construiască o arhitectură demultiplicator de 8 biţi.