Sunteți pe pagina 1din 100

Circuite Logice Combinaionale

143

Cap.3 CLASE DE CIRCUITE LOGICE COMBINAIONALE

Circuitele integrate digitale cu complexitate mare, numite i sisteme digitale, conin n structura lor un numr foarte mare de tranzistoare. Proiectarea unui circuit format din sute de mii sau milioane de tranzistoare este posibil numai printr-o abordare funcional i structural ierarhic. Astfel, un sistem se obine prin interconectarea mai multor pri sau subsisteme, bine definite funcional i structural; la rndul lor subsistemele sunt obinute prin interconectarea unor blocuri .a.m.d. Aceast partiionare se continu pn cnd se obin componente cu dimensiuni rezonabile, care pot fi eficient modelate, sintetizate, optimizate, analizate etc. n acest capitol sunt prezentate blocuri combinaionale care stau la baza construirii structurilor ierarhice.

3.1 Convertoare de cod


Informaiile pot fi reprezentate binar n diferite coduri. Reprezentarea dintr-un anumit cod poate fi prelucrat astfel nct s se obin o reprezentare ntr-un alt cod. Circuitele care realizeaz acest tip de operaie se numesc convertoare de cod; dou exemple sunt prezentate n acest paragraf. n fig.3.1 este descris funcionarea circuitului care face conversia de la codul 8421 la codul 84-2-1.

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

144

Cap.3 Clase de circuite logice combinaionale

Convertorul de cod 8421/84-2-1 este un circuit combinaional care implementeaz un sistem de 4 funcii incomplet definite x, y, v i w care depind de variabilele a, b, c i d. Minimizarea acestui sistem de funcii este prezentat n fig.3.2.

Figura 3.2 Gruprile efectuate n aceste tabele determin urmtoarele expresii logice: G1 G2 x = (a + c + d)(a + b) G3 G4 G5 y = (a + c + b d )(a + c + b d )(b + ) = (c + b d ) bc c G6 G7 v = d + cd = c d c G8 w=d Sistemul de funcii 3.1 este implementat de circuitul din fig.3.3. (3.1)

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

Circuite Logice Combinaionale

145

n fig.3.4 este descris funcionarea circuitului care face conversia de la codul 2 din 5 la codul exces 3.

Fig.3.4 Convertor de cod 2-din-5/exces 3 Minimizarea sistemului de funcii incomplet definite x, y, v, w este prezentat n fig.3.5. Spaiile libere din tabelele de adevr conin valori indiferente.

Figura 3.5 Convertorul de cod 2-din-5/exces 3 este descris de relaiile 3.2 i este

146

Cap.3 Clase de circuite logice combinaionale

implementat de circuitul din fig.3.6. G1 G2 x =d + e + a G3 G4 y = bc + bc = bc + a + b + c a G5 G6 G7 v = ac + be + d c G8 G9 a w =ab d + d = a + b + d + d a (3.2)

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

3.2 Codificatoare-decodificatoare
Codificatoarele sunt circuite combinaionale care au 2n intrri (sau mai puine) i n ieiri; dac o singur intrare a circuitului este activ la un moment dat atunci aceast intrare este indicat prin intermediul unei combinaii de n bii de ieire numit adres. O intrare este considerat activ dac are o anumit

Circuite Logice Combinaionale

147

valoare logic valid v 0 {0, 1} i inactiv dac are valoarea v . n fig.3.7a, b sunt desenate simbolurile grafice pentru codificatoarele cu intrri active pe nivelul 1 logic i respectiv cu intrri active pe 0 logic.

Fig.3.7 Simboluri pentru codificatoare de adres Tabela de funcionare a unui codificator de adres cu intrri active pe nivelul 0 logic este reprezentat n fig.3.8; echivalentul zecimal al adresei A1A0 este egal cu indicele intrrii active. Funciile A1 i A0 sunt incomplet specificate. I3 1 1 1 0 I2 1 1 0 1 I1 1 0 1 1 I0 A1 A0 0 0 0 1 0 1 1 1 0 1 1 1 Figura 3.8 Expresiile ieirilor 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. n funcionarea acestui codificator exist ambiguiti; indicaia A1A0 nu este corect dac nici o intrare nu este activ sau dac sunt active simultan mai multe intrri. De exemplu, cnd toate cele 4 intrri sunt inactive rezult A1A0 = 00; dac sunt active simultan intrrile I2 i I1 rezult A1A0 = 11. O funcionare fr ambiguiti se obine n cazul codificatorului de adres cu prioritate. Circuitul are o ieire suplimentar prin care se indic dac este activ cel puin o intrare sau dac toate intrrile sunt inactive. Cnd mai multe intrri sunt active simultan circuitul genereaz adresa intrrii active care are prioritatea cea mai mare; se consider c prioritatea unei intrri este egal cu indicele acesteia. Tabela de funcionare i simbolul unui codificator de adres cu prioritate, cu 4 intrri active pe nivelul 0, sunt reprezentate n figura 3.9.

A1 = I3 + I2 A0 = I3 + I1

148

Cap.3 Clase de circuite logice combinaionale

Funcionarea codificatorului poate fi blocat sau validat cu ajutorul intrrii de autorizare notat Enable; blocarea este determinat de Enable = 0 i n aceast situaie toate ieirile circuitului sunt deconectate, adic sunt puse n starea de nalt impedan notat Z4. Ieirea notat AI (Active Input) indic existena sau absena intrrilor active atunci cnd este autorizat funcionarea codificatorului.

Fig.3.9 Codificator de adres cu prioritate Deconectarea ieirilor poate fi realizat cu pori de transmisie. Expresiile logice care descriu funcionarea codificatorului din fig.3.9 cnd Enable = 1 sunt:

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.

(3.3)

Figura 3.10

Circuite Logice Combinaionale

149

Decodificatoarele sunt circuite combinaionale care activeaz una sau mai multe ieiri n funcie de codul aplicat la intrri. Sunt prezentate n continuare trei 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 ieire. Aceste circuite realizeaz funcia invers codificatoarelor de adres. Valorile logice aplicate la cele n intrri, marcate cu cifrele zecimale 0, 1, 2, ..., n - 1, constituie adresa care este decodificat; adresa An-1...A1A0 determin activarea ieirii marcate cu cifra k, n conformitate cu relaia k(10) = An-1...A1A0(2).

Figura 3.11 Decodificatorul din fig.3.11a genereaz toi mintermenii de n variabile Y0 = An-1...A1A0, Y1 = An-1...A1A0, ..., Y2n 1 = An-1...A1A0 iar decodificatorul din figura 3.11b genereaz toi maxtermenii de n variabile Y0 = An-1 +... + A1 + A0, Y0 = An-1 +... + A1 + A0, ..., Y2n 1 = An-1 +...+ A1 + A0. Tabela de funcionare a unui decodificator 1-din-4 cu ieiri active pe nivelul logic 1 i cu intrare de autorizare activ pe nivelul 0 este prezentat n fig.3.12.

Figura 3.12

150

Cap.3 Clase de circuite logice combinaionale

Cnd Enable = 1 funcionarea decodificatorului este blocat; n aceast situaie toate ieirile sunt inactive. Structura circuitului la nivel de poart logic este reprezentat n fig.3.13.

Fig.3.13 Implementare a decodificatorului 1-din-4 Decodificatorul 1-din-4 cu intrare de autorizare poate fi expandat adic dou sau mai multe astfel de circuite pot fi conectate astfel nct s se obin un decodificator 1-din-2n, cu sau fr intrare de autorizare. n fig.3.14 i 3.15 sunt desenate schemele de expandare a decodificatorului 1-din-4 pentru a obine un decodificator 1-din-8 fr intrare de autorizare i respectiv cu intrare de autorizare.

Figura 3.14 Blocul CLC din fig.3.14 este descris de relaiile a = A2, b = A2, c = A1, d = A1, e = A0 i f = A0, deduse n mod direct prin comparaii n tabelele de adevr.

Circuite Logice Combinaionale

151

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 poate fi privit ca decodificator de adres modificat (decodificator 1-din-10) sau convertor de cod BCD/zecimal. Tabela de funcionare i simbolul grafic al unui decodificator BCD-zecimal cu ieiri active pe nivelul logic 0 sunt prezentate n fig.3.16.

Fig.3.16 Decodificator BCD-zecimal Intrarea cea mai semnificativ este D iar cea mai puin semnificativ este A. Pentru oricare din cele 6 combinaii de intrare care nu reprezint coduri BCD (1010, 1011, 1100, 1101, 1110, 1111) toate ieirile decodificatorului sunt inactive; datele de intrare false sunt rejectate. Un decodificator care activeaz simultan mai multe ieiri este decodificatorul BCD-7 segmente, utilizat pentru comanda celulelor de afiare

152

Cap.3 Clase de circuite logice combinaionale

cu 7 segmente. Aceste celule pot fi de tip LED (Light Emitting Diode) sau LCD (Liquid Crystal Display); segmentele sunt notate i poziionate dup cum se arat n fig.3.17.

Fig.3.17 Celul de afiare cu 7 segmente Funcionarea unui decodificator BCD-7 segmente cu ieiri active pe nivelul logic 1 este descris de tabela din fig.3.18. Circuitul are dou intrri de test notate LT (Lamp Test) i BL (Blanking). Combinaiile de intrare care nu sunt coduri BCD pot fi rejectate sau li se pot atribui alte semnificaii dect cifre ale bazei 10: -, E, b, c, d, , h, n, o, u, A, C, F, H, L, P.

Figura 3.18

3.3 Multiplexoare-demultiplexoare
Multiplexoarele sunt circuite combinaionale care selecteaz una dintre intrrile de date i o direcioneaz ctre singura ieire; selecia se realizeaz prin intermediul unor intrri de control. Aceste circuite mai sunt numite i selectoare. Demultiplexoarele realizeaz funcia invers a multiplexoarelor; singura intrare de date este direcionat ctre una dintre ieirile circuitului,

Circuite Logice Combinaionale

153

ieire care este selectat cu ajutorul unor intrri de control sau de selecie. Demultiplexoarele mai sunt numite i distribuitoare. Simbolurile multiplexoarelor i demultiplexoarelor sunt desenate n fig.3.19. Intrarea de autorizare Enable este opional.

Figura 3.19 Selecia intrrii de date Ik n cazul multiplexoarelor i respectiv a ieirii Yk n cazul demultiplexoarelor se realizeaz dup regula k(10) = Sn-1...S1S0(2). Dac circuitele sunt autorizate s funcioneze atunci Y = Ik i respectiv Yk = I; altfel, toate ieirile sunt fie blocate pe un nivel logic, fie sunt puse n starea de nalt impedan Z4. Tabela de adevr, ecuaia de funcionare i structura unui MUX de 4 ci sunt prezentate n fig.3.20. Blocarea funcionrii circuitului, utiliznd o comand suplimentar de autorizare, se poate obine fie prin blocarea porii OR fie prin blocarea porilor AND. Expresia ieirii Y reprezint o funcie logic arbitrar, de variabile S1, S0 i ale crei valori sunt I0, I1, I2 i I3. Orice funcie

Figura 3.20

154

Cap.3 Clase de circuite logice combinaionale

logic de dou variabile poate fi implementat utiliznd numai un MUX de 4 ci. Un exemplu de implementare a unei funcii logice utiliznd un MUX de 8 ci este ilustrat n fig.3.21.

Fig.3.21 Implementare a unei funcii logice cu MUX Multiplexoarele pot fi expandate; o schem de conectare a 3 MUX-uri de 2 ci care este echivalent cu un MUX de 4 ci este desenat n fig.3.22.

Fig.3.22 Expandare MUX de la 2 ci la 4 ci Structura demultiplexorului de 2 ci este reprezentat n fig.3.23.

Fig.3.23 Demultiplexoare de 2 ci

Circuite Logice Combinaionale

155

Se poate observa din fig.3.23b c intrarea de date I i intrarea de autorizare Enable sunt echivalente funcional; acest lucru este independent de dimensiunile demultiplexorului. O schem de expandare a demultiplexorului de la 2 ci la 4 ci este desenat n fig.3.24.

Fig.3.24 Expandare DEMUX Observaie: Demultiplexoarele pot fi utilizate ca decodificatoare de adres. n funcie de structur, intrarea de date se fixeaz fie la 0, fie la 1 logic i are semnificaie de intrare de autorizare; adresa care va fi decodificat se aplic la intrrile de selecie. De asemenea, decodificatoarele de adres cu intrare de autorizare pot fi utilizate ca demultiplexoare; intrarea de autorizare devine intrare de date. Multiplexoarele i demultiplexoarele prezentate pn acum sunt circuite unidirecionale i proceseaz numai semnale digitale. Cu ajutorul porilor de transmisie se pot obine circuite bidirecionale, care proceseaz i semnale analogice. Mai mult, structura multiplexorului devine identic cu aceea a demultiplexorului; un astfel de MUX sau DEMUX este numit MUX/DEMUX analogic i are structura reprezentat n fig.3.25.

Fig.3.25 MUX/DEMUX analogic

156

Cap.3 Clase de circuite logice combinaionale

Dac funcionarea decodificatorului de adres din structura MUX/DEMUX este blocat atunci toate cele 2n-1 pori de transmisie sunt ntreruperi iar ieirile de date ale circuitului sunt n starea de nalt impedan Z4; dac decodificatorul este autorizat s funcioneze, atunci o singur poart de transmisie este n stare de conducie.

3.4 Generatoare-detectoare de paritate


Paritatea unui pachet de bii, care n general are semnificaie de numr binar sau de cuvnt al unui cod oarecare, este egal cu suma modulo 2 a biilor; paritatea are valoarea 0(1) dac numrul de bii din pachet este par(impar). Detectorul elementar de paritate este poarta XOR sau XNOR. Structura detectorului de paritate este identic cu aceea a generatorului de paritate i const dintr-o reea de pori XOR-XNOR. Un generator-detector de paritate de 4 bii este reprezentat n fig.3.26.

Fig.3.26 Generator-detector de paritate Intrarea P (paritate) se fixeaz la 0 cnd circuitul este utilizat ca detector de paritate a unui pachet de 4 bii, Y = C3rC2rC1rC0. Circuitul poate fi utilizat i pentru detecia paritii cuvintelor de 5 bii, Y = C4rC3rC2rC1rC0, aplicnd la intrarea P bitul C4; ordinea de aplicare a biilor unui cuvnt de cod la intrrile detectorului de paritate este arbitrar deoarece operaia logic SAU EXCLUSIV este comutativ i asociativ. De asemenea, intrarea P poate fi utilizat i pentru expandarea circuitului. Combinaiile de 4 bii C3C2C1C0 pot fi codificate prin adugarea unui bit de control Y, obinut la ieirea circuitului din fig.3.26 utilizat ca generator de paritate; toate cuvintele de cod YC3C2C1C0 au aceeai paritate P: YrC3rC2rC1rC0 = (C3rC2rC1rC0rP)rC3rC2rC1rC0 = P. Codurile formate numai din cuvinte care au aceeai paritate, 0 sau 1, sunt coduri detectoare de erori. Dac la transmisia unor astfel de cuvinte de cod (fie

Circuite Logice Combinaionale

157

la distan, fie local ntre circuite care fac parte din acelai sistem digital) se produc erori logice care afecteaz un numr impar de bii din cadrul aceluiai cuvnt, atunci la recepie erorile pot fi detectate; erorile care afecteaz un numr par de bii ai aceluiai cuvnt de cod YC3C2C1C0 nu sunt detectate. O schem de principiu a codificrii informaiei C3C2C1C0, transmisiei i controlului paritii la recepie este reprezentat n fig.3.27.

Figura 3.27 Dac la ieirea detectorului de paritate se obine valoarea logic v atunci n cuvntul recepionat YC3C2C1C0 exist 1, 3 sau 5 bii eronai; dac detectorul de paritate indic Y = v atunci cuvntul recepionat este identic cu cel transmis ori conine 2 sau 4 erori.

3.5 Circuite de deplasare


Deplasrile sunt utilizate n special n cadrul operaiilor aritmetice; deplasarea unui numr binar cu r ranguri spre stnga (spre cifra cea mai semnificativ) este echivalent cu nmulirea cu 2r iar deplasarea cu r ranguri spre dreapta (spre cifra cea mai puin semnificativ) este echivalent cu mprirea prin 2r. De exemplu, prin deplasarea numrului 101,1(2) (= 5,5(10)) spre stnga cu 2 ranguri se obine 10110 (= 22(10)) iar prin deplasarea spre dreapta cu 1 rang se obine 10,11 (= 2,75(10)); dac deplasarea implic un format de reprezentare mai mare, atunci noile cifre care sunt introduse n rangurile cele mai semnificative sau n rangurile cele mai puin semnificative au valoarea 0(L). Circuitele de deplasare (shifters) combinaionale sunt mult mai rapide dect cele secveniale i pot s realizeze ntr-un singur pas deplasri cu un numr arbitrar de ranguri. Un circuit de deplasare are de obicei 2n intrri de date D2n-1...D1D0, n+1 intrri de control a deplasrii Shift0, Shift1, ..., Shiftn i n ieiri Yn-1...Y1Y0,

158

Cap.3 Clase de circuite logice combinaionale

dup cum se arat n fig.3.28. O singur intrare de control Shiftk, k = 0, 1, ..., n este activ la un moment dat, adic are valoarea logic 1; aceast comand determin selectarea intrrilor consecutive Dn+k-1...Dk+1Dk i conectarea lor la ieirile circuitului: Yn-1...Y2Y1Y0 = Dn+k-1...Dk+2Dk+1Dk .

Fig.3.28 Circuit de deplasare combinaional Informaia care va fi procesat de ctre circuitul de deplasare este un numr sau un cuvnt format din n bii. Acest numr se aplic fie la intrrile Dn-1...D1D0, fie la intrrile D2n-1...Dn+1Dn; la celelalte n intrri ale circuitului se atribuie numai valori logice 0 sau numai valori logice 1. Circuitul de deplasare din fig.3.28 poate fi utilizat i pentru efectuarea operaiilor de rotire sau de permutare circular a unui numr reprezentat ntrun format de n bii A = An-1...A1A0; pentru aceasta numrul A se aplic att la intrrile mai puin semnificative ct i la intrrile 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 obine Yn-1Yn-2 ...Y1Y0 = An-1An-2...A1A0. Dac Shift1 = 1 se obine Yn-1Yn-2 ...Y1Y0 = A0An1...A2A1, adic o rotire la stnga cu un rang iar dac Shiftn-1 = 1 se obine Yn-1Yn-2 ...Y1Y0 = An-2An-3...A0An-1, adic o rotire la dreapta cu un rang; Shift2 = 1 determin o rotire la stnga cu dou ranguri iar Shiftn-2 = 1 determin o rotire la dreapta cu dou ranguri .a.m.d. n fig.3.29 este reprezentat implementarea cu pori de transmisie a unui circuit de deplasare cu dimensiunea n = 3; implementarea se poate extinde cu uurin la orice dimensiune. Pe baza acestei structuri se poate observa c, independent de dimensiunea n, semnalele aplicate la intrrile de date D traverseaz numai un singur nivel de pori de transmisie pn la ieirile Y; viteza maxim de operare a circuitului este determinat n principal de routingul acestuia, adic de capacitile parazite ale conexiunilor.

Circuite Logice Combinaionale

159

Figura 3.29

3.6 Comparatoare
Aceste circuite combinaionale determin valoarea relativ a dou numere binare: mai mic, egal sau mai mare. Fie dou numere binare ntregi i fr semn A = An-1An-2...A1A0 i B = Bn-1Bn-2...B1B0. Compararea acestor numere se efectueaz prin comparaii succesive ale cifrelor care au acelai rang, Ak i Bk, ncepnd de la cifrele cele mai semnificative i continund ctre cifrele cu rangul 0; dac An-1 Bn-1 atunci comparaia se ncheie deoarece fie A > B, fie A < B iar dac An-1 = Bn-1 atunci se continu comparaia cu cifrele din rangul n2. Compararea biilor cu rangul k este necesar numai dac toate comparaiile anterioare au ca rezultat valoarea egal. Compararea a dou numere binare cu parte ntreag i parte fracionar, cu acelai format, se efectueaz ca n cazul numerelor binare ntregi indiferent de poziia virgulei. Acest algoritm de comparare se poate extinde i pentru numerele binare sau codurile binare cu semn; deoarece semnul + se codific de obicei cu 0 iar semnul - se codific cu 1 i ocup rangul cel mai semnificativ,

160

Cap.3 Clase de circuite logice combinaionale

trebuie ca rezultatul comparrii semnelor s fie modificat din mai mic n mai mare i reciproc sau s se recodifice semnele prin complementarea acestora. Simbolul grafic i tabelele care descriu funcionarea unui comparator numeric de 1 bit, cu ieiri active pe nivelul logic 1 i cu intrare de autorizare a funcionrii, sunt reprezentate n fig.3.30.

Figura 3.30 Ecuaiile de funcionare ale celulei de comparare de 1 bit, determinate direct din tabelele de mai sus, sunt reprezentate de sistemul 3.4 iar implementarea este desenat n fig.3.31 x = EnableAkBk y = Enable ( A k B k + A k Bk ) z = EnableAkBk (3.4)

Figura 3.31 Celula de comparare de 1 bit, cu sau fr intrare de autorizare, poate fi utilizat la construirea comparatoarelor de mai muli bii. O schem de

Circuite Logice Combinaionale

161

expandare general, n care sunt conectate dou comparatoare fr intrare de autorizare, este prezentat n fig.3.32. Comparatorul COMP1 compar cei mai semnificativi n1 bii iar comparatorul COMP2 compar cei mai puin semnificativi n2 bii. Circuitul obinut prin aceast interconectare este un comparator de n = n1 + n2 bii, fr intrare de autorizare; autorizarea se poate face prin condiionarea ieirilor de ctre un semnal digital, ca n fig.3.31.

Fig.3.32 Schem de expandare a comparatoarelor Ieirile comparatorului de n bii din figura de mai sus sunt active pe nivelul 1 logic: - ieirea A < B se activeaz dac COMP1 indic mai mic (adic < = 1) sau dac COMP1 indic egal i COMP2 indic mai mic; - ieirea A = B se activeaz dac ambele comparatoare indic egal; - ieirea A > B se activeaz dac COMP1 indic mai mare sau dac COMP1 indic egal i COMP2 indic mai mare. Dac din schema desenat n fig.3.32 se elimin comparatorul COMP2 i se consider c cele 5 pori logice fac parte din structura comparatorului COMP1 atunci se obine un comparator care nu mai necesit componente exterioare pentru expandare; acest nou comparator are 3 intrri de expandare, notate tot cu simbolurile <, = i >, la care se conecteaz ieirile cu aceleai semnificaii din comparatorul biilor 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 intrrile de expandare ale comparatorului biilor care au rangurile cele mai puin semnificative trebuie aplicate valorile < = 0, = = 1 i > = 0.

162

Cap.3 Clase de circuite logice combinaionale

Figura 3.33

3.7 Sumatoare-scztoare
Sumatorul este unul dintre cele mai studiate circuite digitale. Exist mai multe posibiliti de efectuare a adunrii numerelor binare, fiecare soluie avnd propriul compromis arie-vitez. Scderea numerelor binare se poate efectua fie utiliznd scztoare (aceste circuite se deosebesc de sumatoare din punct de vedere funcional i structural), fie utiliznd sumatoare; n acest din urm caz scderea se realizeaz prin intermediul adunrii codurilor complementare, dup cum s-a artat n cap.1. Subcircuitul de baz n construirea sumatoarelor este sumatorul elementar (full adder) prezentat n fig.3.34.

Fig.3.34 Sumator elementar Sumatorul elementar are ca intrri biii din rangul k ai operanzilor X i Y (xk i respectiv yk) i bitul de transport (carry) ck care reprezint o depire a formatului de 1 bit la adunarea efectuat n rangul k - 1; cele dou ieiri ale sumatorului sunt bitul din rangul k al rezultatului adunrii (sk) i un bit de transport ck+1 care reprezint o depire de format i care trebuie luat n

Circuite Logice Combinaionale

163

considerare la adunarea din rangul k + 1. Operaia efectuat de sumatorul elementar poate fi reprezentat sub forma xk + yk + ck = ck+1sk n care + reprezint adunarea algebric n baza 2 iar rezultatul adunrii este un numr binar format din dou cifre (MSB = ck+1, LSB = sk). Expresiile logice care descriu funcionarea sumatorului elementar, n conformitate cu gruprile efectuate n tabelele de adevr din fig.3.34, sunt: sk = xkr ykr ck 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-a utilizat expresia x k y k = x k y k + x k + y k ). (3.5)

Fig.3.35 Structura sumatorului elementar Tabelele de adevr care descriu funcionarea unui scztor elementar (full subtractor) sunt reprezentate n fig.3.36. Scztorul elementar are ca intrri biii din rangul k ai operanzilor X i Y (xk i respectiv yk) i bitul de mprumut (borrow) bk care reprezint o depire a formatului de 1 bit la scderea efectuat

164

Cap.3 Clase de circuite logice combinaionale

n rangul k - 1; cele dou ieiri ale scztorului sunt bitul din rangul k al rezultatului scderii (dk) i un bit de mprumut bk+1 care reprezint o depire de format i care trebuie luat n considerare la scderea din rangul k + 1. Operaia efectuat de scztorul elementar poate fi reprezentat sub forma xk - yk - bk = bk+1dk n care - reprezint scderea algebric n baza 2 iar rezultatul scderii este un numr binar format din dou cifre (MSB = bk+1, LSB = dk).

Fig.3.36 Scztor elementar Expresiile logice care descriu funcionarea scztorului elementar, n conformitate cu gruprile efectuate n tabelele de adevr din fig.3.36, sunt: dk = xkr ykr bk x x bk+1 = k yk + kbk + yk bk = x k yk + (x k + yk )bk Structura scztorului elementar este asemntoare cu aceea a sumatorului elementar; funciile sk i dk sunt identice iar expresia logic a mprumutului bk+1 se poate obine din expresia transportului ck+1 prin complementarea variabilei xk. Sistemul 3.6 poate fi rescris sub urmtoarea form echivalent: dk = (x kr yk)r bk x x bk+1 = k yk + kbk + yk bk = x k yk + (x k + yk )bk Aceste relaii indic una dintre posibilitile de modificare a structurii reprezentate n fig.3.35 pentru a obine o structur de scztor elementar; circuitul modificat este desenat n fig.3.37. (3.7) (3.6)

Circuite Logice Combinaionale

165

Fig.3.37 Structura scztorului elementar O celul mixt sumator/scztor elementar este prezentat n fig.3.38; operaia este selectat cu ajutorul intrrii de control notat op (adunare dac op = 0 i scdere dac op = 1).

Fig.3.38 Sumator/scztor elementar Funcia logic realizat la ieirea de transport/mprumut a circuitului poate fi reprezentat sub forma: vk+1 = yk (xkr ukr op) + uk (xkr op) (3.8)

166

Cap.3 Clase de circuite logice combinaionale

O implementare a celulei sumator/scztor elementar pe baza relaiei 3.8 este reprezentat n fig.3.39.

Fig.3.39 Implementare a celulei sumator/scztor elementar O alt variant de implementare a celulei sumator/scztor este desenat n fig.3.40 i reprezint o combinare a schemelor de sumator i de scztor din figurile 3.35 i 3.37. Porile 1 i 2 au inversiunea controlat de variabila op.

Fig.3.40 Sumator/scztor elementar

Circuite Logice Combinaionale

167

3.7.1 Sumatoare-scztoare binare cu transport-mprumut succesiv Sumatoare, scztoare sau sumatoare-scztoare de n bii se pot obine printr-o simpl interconectare a n celule elementare dup cum se arat n fig.3.41. Denumirea de transport/mprumut succesiv reflect modul de propagare a transportului sau mprumutului prin toate celulele circuitului, de la celula 0 la celula n - 1; considernd c operanzii X, Y i transportul (mprumutul) de intrare

Figura 3.41

168

Cap.3 Clase de circuite logice combinaionale

c0 (b0) se aplic simultan la intrrile circuitelor din fig.3.41, atunci la ieirile celulelor sunt disponibile rezultatele dup un regim tranzitoriu care crete n durat proporional cu rangul celulelor. Fie un sumator de n bii compus din celule elementare identice cu aceea reprezentat n fig.3.35; se consider c toate porile din structura acestei celule au ntrzierea tp cu excepia porii XOR a crei ntrziere este 2tp. n tabela din fig.3.42 sunt calculate valorile ntrzierilor (n raport cu momentul de aplicare a operanzilor X, Y i transportului de intrare c0) dup care sunt disponibile rezultatele de la ieirile celulelor. ieire s0 c1 s1 c2 s2 c3 s3 c4 s4 c5 . . . sn-1 cn ntrziere 5tp 3tp 5tp 5tp 7tp 7tp 9tp 9tp 11tp 11tp . . . [5 + 2(n-2)]tp, n > 1 [3 + 2(n-1)]tp, n > 0

Fig.3.42 ntrzierile sumatorului cu transport succesiv Calea critic din punct de vedere a vitezei de operare este calea de propagare a transportului c0-c1-c2-c3-...-cn. Rezultate asemntoare cu acelea din fig.3.42 se obin i n cazurile scztorului cu mprumut succesiv i circuitului mixt sumator-scztor cu transport-mprumut succesiv, pentru orice implementare a celulelor elementare de baz. Dezavantajul major al circuitelor din fig.3.41 const n reducerea vitezei de operare odat cu creterea dimensiunilor acestora (adic cu mrirea numrului de celule elementare care compun circuitele). Avantajele circuitelor

Circuite Logice Combinaionale

169

din fig.3.41 sunt urmtoarele: - proiectarea implic un efort redus de calcul; - aria ocupat este mic n raport cu alte arhitecturi de sumatoare, scztoare sau sumatoare-scztoare; - testarea sau verificarea funcionrii este simpl i eficient (aceast proprietate va fi demonstrat n cap.5). Creterea vitezei de operare a sumatoarelor/scztoarelor se poate realiza prin modificarea modului de propagare a transportului/mprumutului, adic de interconectare a celulelor elementare; prin aceasta se mrete aria ocupat pe chip. Trei tipuri de sumatoare binare, mai rapide dect cel cu transport succesiv, sunt prezentate n paragrafele urmtoare (aceste tehnici de cretere a vitezei se aplic i scztoarelor sau circuitelor mixte sumator-scztor). 3.7.2 Sumatoare binare cu transport anticipat La adunarea xk + yk + ck efectuat n rangul k apare transport ctre rangul k + 1 (adic ck+1 = 1) n urmtoarele dou situaii: 1) xk = yk = 1; n acest caz transportul ck+1 = 1 este generat local, de ctre 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 propagrii transportului ck = 1 prin sumatorul elementar de rangul k. Fie Gk = xk yk i Pk = xk + yk funcia de generare i respectiv funcia de propagare a transportului corespunztoare celulei cu rangul k. Sistemul 3.5 care descrie funcionarea sumatorului elementar poate fi rescris sub forma: sk = xkr ykr ck ck+1 = Gk + Pk ck Structura unui sumator de n bii cu transport anticipat este desenat n fig.3.43. (3.9)

Fig.3.43 Sumator cu transport anticipat

170

Cap.3 Clase de circuite logice combinaionale

Fiecare celul elementar din structura sumatorului de n bii cu transport anticipat calculeaz valorile a trei funcii logice i anume bitul sum cu rangul corespunztor poziiei celulei sk, funcia de generare a transportului Gk i funcia de propagare a transportului Pk. Cu excepia celulei de rang 0, toate celulele sumatorului au la intrarea lor de transport valori determinate de ctre blocul GTA; acesta trebuie s determine simultan toate transporturile c1, c2, ..., cn-1, cn, sarcin posibil de realizat deoarece toate celulele furnizeaz simultan valorile Gk , Pk. Structura unei celule elementare din cadrul sumatorului cu transport anticipat este mai simpl dect a celei din fig.3.35 i este desenat n fig.3.44.

Figura 3.44 Structura blocului GTA se determin cu ajutorul relaiei ck+1 = Gk + Pk ck (a doua 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.

Circuite Logice Combinaionale

171

Cele 4 expresii logice calculate n sistemul 3.10 pot fi realizate cu subcircuite compuse din dou nivele de pori elementare, dac se accept faptul c o poart logic AND sau OR cu 5 intrri mai este nc elementar (noiunea de poart logic elementar implic o limitare asupra numrului de intrri dup cum se va arta n cap.4). n ipoteza simplificatoare c toate porile elementare au ntrzierea de propagare egal cu tp, transporturile c1 c4 au valorile disponibile dup o ntrziere egal cu 3tp fa de momentul de aplicare la intrrile sumatorului a operanzilor X, Y i transportului c0 (o ntrziere egal cu tp este introdus de celulele elementare care determin valorile G, P i o ntrziere egal cu 2tp este introdus de GTA). Dac ntrzierea porii XOR este 2tp atunci fiecare dintre rezultatele s0 s3 sunt disponibile la ieirile sumatorului dup o ntrziere egal cu 5tp. Transporturile c5, c6, c7, ... nu pot fi determinate cu subcircuite compuse numai din dou nivele de pori elementare; aceasta nseamn ca rezultatele s4, s5, s6, ... vor fi disponibile dup ntrzieri mai mari dect 5tp. De obicei se realizeaz sumatoare cu transport anticipat de 4 bii. Acestea pot fi interconectate la rndul lor n dou moduri pentru a obine sumatoare cu dimensiuni mai mari; ambele tipuri de sumatoare sunt mai rapide dect cele cu transport succesiv. Cea mai simpl schem de expandare este prezentat n fig.3.45. Acest mod de interconectare este identic cu acela utilizat pentru obinerea sumatoarelor cu

Fig.3.45 Expandarea serie a sumatorului de 4 bii cu transport anticipat

172

Cap.3 Clase de circuite logice combinaionale

transport succesiv i este cel mai folosit deoarece reeaua de interconexiuni este mai simpl de proiectat i ocup arie mai mic. Al doilea mod de expandare a sumatorului cu transport anticipat const n utilizarea mai multor nivele de anticipare a transportului; interconectarea sumatoarelor de 4 bii se face dup principiul ilustrat n fig.3.43 pentru sumatoare elementare. O schem de expandare cu dou nivele de anticipare a transportului este desenat n fig.3.46; cele 5 blocuri GTA sunt identice.

Fig.3.46 Sumator de 16 bii cu dou nivele de anticipare a transportului

Circuite Logice Combinaionale

173

n locul transportului c4 blocurile GTA din fig.3.46 calculeaz funciile G4 = G3 + P3G2 + P3P2G1 + P3P2P1G0 P4 = P3P2P1P0 (3.11)

n schema de expandare din fig.3.45 transporturile c1 c4 au valorile disponibile dup o ntrziere egal cu 3tp (fa de momentul de aplicare la intrrile sumatorului a operanzilor X, Y i transportului c0) iar transporturile c5, c6, c7, cout au valorile disponibile dup o ntrziere egal cu 5tp; ntrzierile rezultatelor s0 s4 sunt egale cu 5tp iar cele ale rezultatelor s5, s6, s7 sunt egale cu 7tp. Dac un al treilea sumator de 4 bii cu transport anticipat se adug n lanul din fig.3.45 atunci rezultatul s8 se obine dup 7tp iar s9, s10, s11 se obin cu ntrzierea 9tp; fiecare nou sumator de 4 bii adugat determin o cretere a ntrzierii cu 2tp. Un sumator de 4n bii construit dup modelul din fig.3.45 calculeaz cei mai semnificativi 3 bii cu ntrzierea (5 + 2n)tp i este de aproximativ 4 ori mai rapid dect un sumator de 4n bii cu transport succesiv; cei mai semnificativi 2 bii ai acestuia din urm sunt disponibili dup (1 + 8n)tp. Rezultatele s0 s3 ale sumatorului din fig.3.46 se obin dup 5tp iar s4 s15 se obin dup 7tp. Fiecare nivel de anticipare a transportului introduce o ntrziere a rezultatelor egal cu 2tp ns dimensiunile sumatorului se mresc de 4 ori cu fiecare nou nivel de anticipare. Un sumator cu 3 nivele de anticipare a transportului (sau 3 nivele de GTA) este un sumator de 64 de bii i se obine prin 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 dect aceea a sumatorului de 64 de bii cu transport succesiv (129tp/9tp 14,33). Sumatorul cu transport anticipat de 4 bii reprezentat n fig.3.43 i sumatoarele obinute prin expandarea acestuia dup schemele din fig.3.45 i 3.46 au ci critice diferite i mai scurte fa de cele ale sumatoarelor cu transport succesiv corespondente ca dimensiuni. 3.7.3 Sumatoare binare cu transport n salt Un sumator cu transport n salt se obine prin partiionarea unui sumator cu transport succesiv n sumatoare cu dimensiuni mai mici (nu neaprat egale ntre ele) i adugarea unor subcircuite care s determine, atunci cnd este posibil, valorile de la ieirile de transport ale acestor sumatoare mult mai devreme n comparaie cu propagarea succesiv. Pentru aceasta fiecare sumator elementar trebuie s implementeze funciile sk , ck+1 i funcia de propagare a transportului Pk = xkr yk; aceast ultim funcie este realizat implicit de ctre orice sumator elementar i nu necesit dect adugarea unei singure conexiuni ntr-o structur ca aceea desenat n fig.3.35 sau chiar n blocul descris funcional n fig.3.34, indiferent de implementare. Sumatorul elementar din fig.3.47 este obinut din cel reprezentat n fig.3.35.

174

Cap.3 Clase de circuite logice combinaionale

Figura 3.47 Observaie: Pentru celula din rangul k a unui sumator cu transport anticipat, sistemele de funcii i Gk = xk yk Gk = xk yk Pk = xk + yk Pk = xkr yk sunt echivalente deoarece ck+1 = xk yk + (xk + yk )ck = xk yk + (xkr yk )ck. Funcia de propagare Pk = xk + yk nu exclude generarea local a transportului, adic dac Pk = 1 atunci este posibil ca Gk = 1. Funcia de propagare Pk = xkr yk exclude 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 iniial, cu transport succesiv, este mprit n sumatoare de m bii. Dac toate ieirile Pk ale unui sumator j au valoarea logic 1, situaie care apare numai cnd xk yk k = jm,..., (j+1)m-1, atunci c(j+1) m = cjm . n acest caz chiar dac sumatorul j determin valoarea c(j+1)m prin propagare succesiv a transportului cjm, operaie care dureaz 2mtp, la intrarea de transport a sumatorului j+1 se aplic valoarea corect cjm mai repede, prin conexiunea de bypass care leag intrrile de transport ale sumatoarelor j i j+1 prin MUXj; legtura dintre ieirea de transport din j i intrarea de transport n j+1 se ntrerupe la nivelul multiplexorului MUXj.

Circuite Logice Combinaionale

175

Fig.3.48 Sumator cu transport n salt Dac porile AND din fig.3.48 sunt elementare i au timpul de propagare egal cu tp iar multiplexoarele sunt construite din pori de transmisie i inversoare, atunci toate conexiunile de bypass sunt realizate simultan dup o ntrziere egal cu 5tp fa de momentul de aplicare a operanzilor X, Y i transportului cin (sunt realizate conexiuni de bypass numai acolo unde sunt ndeplinite condiiile, adic unde o poart AND are la ieire nivelul 1 logic). Calea de propagare a transportului care traverseaz toate sumatoarele elementare din structura circuitului din fig.3.48 nu mai este o cale critic din punct de vedere a vitezei de operare; aceast cale este numit cale de propagare fals. Cea mai lung cale de propagare din structura sumatorului cu transport n salt pornete de la intrrile 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; ieirea acestei ci este sn-1. Calea cea mai lung (x0, y0)-MUX0-MUX1-...-sn-1 menionat mai sus este o cale de propagare efectiv atunci cnd operanzii X i Y ndeplinesc urmtoarele condiii: 1) x0 = y0 = 1; 2) xk yk k = 1, 2, 3, ..., (n-2); 3) xn-1 = yn-1.

176

Cap.3 Clase de circuite logice combinaionale

Dac se aproximeaz cu 2tp ntrzierea fiecrei conexiuni de bypass, care leag printr-un MUX de dou ci intrrile de transport a dou sumatoare consecutive de m bii, atunci ntrzierea aproximativ a cii critice (x0, y0) ... sn-1 este Tp(m) = 4mtp + 2(n/m - 2)tp. (3.12) ntrzierea prin sumatorul 0 este egal cu 2mtp; dac m > 2 atunci la momentul 2mtp toate cile de bypass sunt deja activate sau realizate. Viteza de operare a sumatorului cu transport n salt depinde de modul de partiionare a sumatorului de n bii cu transport succesiv n sumatoare cu dimensiuni mai mici; numrul m poate s aib valorile 1, 2, ..., n. Se poate determina o valoare optim pentru m din punct de vedere a vitezei de operare, pe baza relaiei 3.12. Valoarea minim a timpului de propagare Tp este dat de soluia ecuaiei Tp(m) = 0 (Tp(m) este derivata de ordinul 1 a funciei Tp(m)): Tp(m) = (4 - 2n/m2)tp = 0 Y mopt = (n/2)0,5 nlocuind valoarea mopt n relaia 3.12 se obine: Tp min = 4( 2n 1) tp (3.14) (3.13)

n cazul particular n = 32 se obin valorile mopt = 4 i Tp min = 28tp. Timpul de propagarea corespunztor cii critice a sumatorului cu transport succesiv de 32 de bii are valoarea 65tp (conform tabelei din fig.3.42), ceea ce nseamn c prin tehnica de untare utilizat la construirea sumatoarelor cu transport n salt s-a mrit viteza de operare de aproximativ 65/28 2,32 ori.

3.7.4 Sumatoare binare cu transport selectat Tehnica de selecie a transportului const n partiionarea unui sumator de n bii cu transport succesiv n sumatoare de m bii i efectuarea adunrii n fiecare grup de m bii (cu excepia grupului cel mai puin semnificativ) n dou variante paralele: cu valoarea transportului de intrare egal cu 0 i respectiv egal cu 1; aceasta implic o cretere de cel puin dou ori a complexitii unui sumator cu transport selectat de n bii fa de cel iniial cu transport succesiv de n bii. Toate sumatoarele de m bii cu transport succesiv care alctuiesc sumatorul de n bii cu transport selectat opereaz simultan. La nivelul tuturor grupurilor de m bii sunt disponibile att rezultatele corecte ct i cele greite cu aceeai ntrziere, egal cu (2m+1)tp n raport cu momentul de aplicare a operanzilor X, Y i transportului de intrare cin. Selectarea rezultatelor corecte se face succesiv, ncepnd de la sumatorul cel mai puin semnificativ i continund ctre perechea de sumatoare cea mai semnificativ; valoarea corect a transportului de la ieirea unei perechi de sumatoare j decide care sunt rezultatele corecte dintre acelea calculate de perechea de sumatoare j+1.

Circuite Logice Combinaionale

177

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

Fig.3.49 Sumator cu transport selectat Blocurile MUX jS sunt compuse din m multiplexoare de dou ci, a cror intrri de selecie sunt conectate mpreun i comandate de ieirea de transport a unuia dintre sumatoarele perechii j-1, prin calea selectat n multiplexorul de dou ci MUX (j-1)C; face o excepie intrarea de selecie a blocului MUX 1S, care este controlat direct de ctre ieirea de transport a sumatorului 0. Pentru a reduce fanout-ul ieirilor de transport ale sumatoarelor de m bii din fig.3.49 i implicit pentru a micora ntrzierile de propagare cauzate de fanout, nainte de intrrile Sel ale blocurilor MUX jS trebuie introduse buffere de putere (pori neinversoare); acestea nu sunt reprezentate n fig.3.49. Calea critic n structura sumatorului cu transport selectat traverseaz succesiv toate celulele sumatorului

178

Cap.3 Clase de circuite logice combinaionale

0, de la intrrile (x0, y0) la ieirea de transport cm i continu cu linia de selecie a transporturilor compus din multiplexoarele MUX 1C, MUX 2C, MUX 3C, ..., MUX (n/m-1)C. Dac se aproximeaz cu 2tp ntrzierea adugat de fiecare dintre aceste multiplexoare, ca n cazul sumatorului cu transport n salt, atunci ntrzierea aproximativ a cii critice este
Tp(m) = (2m+1)tp + 2(n/m - 1)tp. Valoarea optim a numrului m 0 {1, 2, 3, ..., n} este soluia ecuaiei Tp(m) = (2 - 2n/m2)tp = 0 Y mopt = n0,5 iar timpul de propagare pe calea critic are valoarea minim Tp min = ( 4 n 1) tp (3.17) (3.16) (3.15)

n cazul particular n = 64 se obin valorile mopt = 8 i Tp min = 33tp. Calea de propagare critic a unui sumator cu transport succesiv de 64 bii are o ntrziere egal cu 129tp, ceea ce nseamn c prin tehnica de selecie a transportului s-a mrit viteza de operare de aproximativ 129/33 3,9 ori. Aprecierile cantitative prezentate pentru sumatoarele descrise n paragrafele anterioare (cu transport succesiv, anticipat, n salt i respectiv selectat) au un grad mare de aproximare i sunt mai mult orientative; evaluarea vitezei de operare este pesimist n cazul sumatoarelor cu transport n salt i cu transport selectat i foarte optimist n cazul sumatorului cu transport anticipat (nu s-au luat n considerare fanout-ul i ntrzierile reelelor de interconexiuni). Exist dou posibiliti de cretere a vitezei sumatoarelor cu transport n salt sau selectat. O modalitate const n reducerea ntrzierilor conexiunilor i multiplexoarelor situate pe cile critice de propagare; aceasta se poate obine prin creterea dimensiunilor acestor componente de circuit i poziionarea lor adecvat. Astfel, dac ntrzierile multiplexoarelor i conexiunilor asociate se reduc de la 2tp la tp atunci relaiile 3.12, 3.13, 3.14 i respectiv 3.15, 3.16, 3.17 devin: Tp(m) = 4mtp + (n/m - 2)tp Tp(m) = (4 - n/m2)tp = 0 Y mopt = n0,5/2 Tp min = ( 4 n 2) tp Tp(m) = (2m+1)tp + (n/m - 1)tp Tp(m) = (2 - n/m2)tp = 0 Y mopt = (n/2)0,5 Tp min = 2 2n tp (3.19) (3.18)

Circuite Logice Combinaionale

179

n cazul particular n = 32 ntrzierea pe calea critic a sumatorului cu transport n salt este Tp min 21tp iar viteza de operare crete fa de sumatorul de 32 bii cu transport succesiv de 65/21 3,1 ori (fa de 2,32 ori, ct a fost nainte de reducerea ntrzierii cii critice). n cazul particular n = 64 ntrzierea pe calea critic a sumatorului cu transport selectat este Tp min 23tp iar viteza de operare crete fa de sumatorul de 64 bii cu transport succesiv de 129/23 5,6 ori (fa de 3,9 ori, ct a fost nainte de reducerea ntrzierii cii critice). O alt metod de cretere a vitezei de operare a sumatoarelor cu transport n salt sau selectat este partiionarea neuniform a unui sumator de n bii cu transport succesiv (i aplicarea tehnicilor de untare sau de selecie a transportului). O cale de propagare a transportului ntr-un sumator de n bii cu transport n salt traverseaz succesiv celulele din cel mult dou sumatoare componente. O partiionare mai eficient dect cea uniform este una n care primul i ultimul sumator au dimensiuni mai mici iar sumatoarele intermediare cresc progresiv n dimensiune pe msur ce se deprteaz de extremitile lanului de sumatoare. Dac se consider c ntrzierea unei conexiuni de bypass este egal cu 2tp atunci partiionarea 0(3bii), 1(4bii), 2(5bii), 3(6bii), 4(5bii), 5(4bii), 6(3bii), 7(2bii) a unui sumator de 32 de bii determin n structura sumatorului cu transport n salt mai multe ci care au ntrziere maxim egal cu 22tp. Aceste ci 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); intrrile i ieirile cilor critice sunt intrrile xk , yk n celula cea mai puin semnificativ a primului sumator i respectiv ieirea sk din celula cea mai semnificativ a celui de-al doilea sumator. O cale critic este o cale de propagare efectiv dac: - xk = yk = 1 (intrrile n celula cea mai puin semnificativ a primului sumator); - xq = yq (intrrile n celula cea mai semnificativ a celui de-al doilea sumator); - xr yr r = (k+1), (k+2), ..., (q-1). Partiionarea menionat mai sus determin o cretere a vitezei de operare fa de sumatorul de 32 bii cu transport succesiv de 65/22 2,95 ori, aproximativ egal cu creterea obinut prin reducerea ntrzierilor conexiunilor de bypass de la 2tp la tp. Partiionarea cea mai eficient a unui sumator de n bii n vederea creterii vitezei de operare prin tehnica de selecie a transportului se poate deduce pe baza schemei cu partiionare uniform reprezentat n fig.3.49. Se consider c ntrzierea introdus de un multiplexor de dou ci MUX jC din linia de selecie a transportului este egal cu 2tp. Dac 0 este un sumator de m bii atunci selecia cii corecte prin MUX 1C este realizat cu ntrzierea (2m + 3)tp fa de momentul de aplicare a operanzilor X, Y i transportului de intrare cin. La

180

Cap.3 Clase de circuite logice combinaionale

acest moment de timp, nu mai devreme, sunt disponibile i transporturile c2m la ieirile sumatoarelor 1 dac acestea au dimensiunea m + 1. Calea corect prin multiplexorul MUX 2C este realizat la momentul (2m + 5)tp, ceea ce nseamn c dimensiunea sumatoarelor 2 poate fi m + 2. Continund acest raionament rezult ca sumatoarele j trebuie s aib dimensiunea m + j. Calea critic n structura circuitului traverseaz succesiv toate celulele sumatorului 0, de la intrrile (x0, y0) la ieirea de transport cm i continu cu linia de selecie a transporturilor pn la ieirea ultimului multiplexor de dou ci. Viteza de operare a acestui sumator cu transport selectat este egal cu viteza sumatoarelor cu transport succesiv care sumeaz biii cei mai semnificativi i care au dimensiunea cea mai mare. Partiionarea 0(2bii), 1(3bii), ...., 9(11bii) este optim pentru un sumator de 65 de bii; ntrzierea cii critice este 23tp iar creterea vitezei de operare este egal cu aceea obinut prin reducerea de la 2tp la tp a ntrzierilor conexiunilor i multiplexoarelor situate pe calea critic a sumatorului cu partiionare uniform. Evalurile vitezelor de operare bazate pe ntrzierile reale ale conexiunilor i componentelor de circuit precum i msurtorile efectuate pe circuitele fizice arat c cele mai rapide sumatoare sunt cele cu transport selectat, urmate (n aceast 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 zecimale codificate 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 rangul imediat inferior; un singur bit este suficient pentru reprezentarea sau codificarea acestui transport deoarece la adunarea a dou numere zecimale, indiferent de format, transportul ntre ranguri consecutive este fie 0, fie 1. Rezultatul adunrii a dou cifre zecimale i a unui transport (egal cu 0 sau 1) efectuate de un sumator BCD elementar este o cifr zecimal reprezentat n cod 8421 i un transport care are valoarea 1 n cazul depirii formatului. Simbolul grafic al unui sumator BCD elementar este desenat n fig.3.50. Funcionarea acestui circuit poate fi descris n zecimal printr-o tabel cu 200 de linii sau prin ecuaia 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) iar Xk , 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 funcii logice care depind de 9

Circuite Logice Combinaionale

181

Fig.3.50 Sumator BCD elementar variabile. Aceast abordare implic un efort de calcul considerabil. O soluie mai simpl const n construirea sumatorului BCD elementar din sumatoare binare de 4 bii. Dup cum s-a artat n cap.1, cnd rezultatul adunrii a dou coduri BCD (naturale) nu este un cod BCD sau depete formatul de 4 cifre, acesta trebuie corectat printr-o adunare suplimentar utiliznd termenul de corecie 0110 ( = 6(10)). Rezult c un sumator BCD elementar se poate construi utiliznd dou sumatoare binare de 4 bii interconectate ca n fig.3.51.

Fig.3.51 Structura sumatorului BCD elementar n figura de mai sus poarta 1 detecteaz combinaiile 1010, 1011, 1110 i 1111 (10, 11, 14 i 15 n zecimal) iar poarta 2 detecteaz combinaiile 1100, 1101, 1110 i 1111 (12, 13, 14 i 15 n zecimal).

182

Cap.3 Clase de circuite logice combinaionale

Circuitul din fig.3.51 poate fi simplificat, indiferent de tipul sumatoarelor binare de 4 bii utilizate; n continuare se consider c 1 i 2 sunt sumatoare cu transport succesiv. Deoarece ieirea de transport c4 din sumatorul 1 este ieirea unei pori OR cu dou intrri (fig.3.35), aceast poart poate fi eliminat; intrrile ei devin intrri ale porii 3 care trebuie nlocuit cu o poart OR cu 4 intrri. Simplificri mai importante pot fi fcute n structura sumatorului 2. Datorit faptului c trei dintre intrrile acestuia sunt permanent conectate la valoarea logic 0 iar ieirea de transport c4 nu este utilizat, 2 este un circuit logic redundant adic conine n structura lui componente care nu sunt necesare. nlocuind k = 0, c0 = 0 i y0 = 0 n sistemul 3.5 care descrie funcionarea sumatorului elementar, se obine s0 = x0 i c1 = 0, adic celula cu rangul 0 din 2 nu este necesar. Transportul cu valoare constant c1 = 0 determin simplificarea celulei cu rangul 1 i anume s1 = x1r y1, c2 = x1 y1. Celula cu rangul 3 trebuie s implementeze numai funcia s3 = x3r c3. Structura sumatorului BCD elementar cu 2 simplificat este desenat n fig.3.52.

Fig.3.52 Structura simplificat a sumatorului BCD elementar

Circuite Logice Combinaionale

183

Scztoare BCD elementare pot fi construite utiliznd scztoare binare de 4 bii i scheme de conectare asemntoare cu cele prezentate anterior pentru sumatoarele BCD elementare. Sumatoarele (scztoarele) BCD de n digii cu transport (mprumut) succesiv se obin prin conectarea direct sau n cascad a n celule BCD elementare. Pentru mrirea vitezei de operare se poate aplica tehnica de selecie a transportului (mprumutului) sau tehnicile de untare i de anticipare; acestea din urm se aplic la nivelul sumatoarelor binare 1 (scztoarelor binare 1) din structura celulelor BCD elementare.

3.8 Uniti aritmetice-logice (ALU)


Unitile aritmetice-logice (ALU - Arithmetic Logic Unit) sunt circuite combinaionale multifuncionale care pot s efectueze operaii aritmetice i operaii logice. O unitate aritmetic-logic este construit pe o structur de sumator binar. Se pot defini multe tipuri de ALU; acestea se deosebesc ntre ele n principal prin seturile de operaii pe care le implementeaz. Un simbol grafic pentru o unitate aritmetic-logic de 4 bii este prezentat n fig.3.53.

Fig.3.53 ALU de 4 bii Operanzii cu formatul de 4 bii procesai de ALU sunt X i Y. Tipul operaiei, aritmetic sau logic, este stabilit de valoarea logic aplicat la intrarea M (de exemplu M = 0 Y mod aritmetic iar M = 1 Y mod logic). Pentru operaiile aritmetice c0 reprezint o intrare de transport. Rezultatele operaiilor efectuate sunt valorile de la ieirile F; n modul aritmetic c4 reprezint ieirea de transport iar G i P funciile de generare i respectiv de propagare a transportului. Ieirea X = Y indic egalitatea operanzilor. Prin intermediul combinaiilor de 4 bii aplicate la intrrile S se pot selecta pn la 16 operaii distincte, att n modul logic ct i n cel aritmetic. n urmtoarele exemple de operaii, + i w au

184

Cap.3 Clase de circuite logice combinaionale

semnificaiile de adunare algebric i respectiv de adunare logic (OR): - operaii logice F = X, Y, XY, XwY, Xr Y, XY, XY, X, Y, 1, 0, XY, XwY, Xr Y, XwY, XwY; - operaii aritmetice F = X + Y + c0, X - Y - c0, XY - 1, XwY + X, X + XY, XwY + XY etc. Structura unei uniti aritmetice-logice conine un sumator binar, un generator de transport anticipat, reele XOR i circuite de comparare, multiplexoare etc. Mai multe ALU pot fi conectate n paralel pentru a obine un ALU care s proceseze operanzi cu dimensiuni mai mari. Operaiile aritmetice efectuate de ctre circuitul expandat pot fi cu transport succesiv, dac ieirea de transport a fiecrei uniti se conecteaz la intrarea de transport a unitii de rang imediat superior, sau cu transport anticipat, dac ieirile de generare i propagare G, P a tuturor unitilor se conecteaz la un GTA extern care s furnizeze transporturile de intrare. Ca i n cazul sumatoarelor cu transport anticipat, schemele de expandare ale ALU pot fi organizate pe mai multe nivele de anticipare a transportului.

3.9 Multiplicatoare
Multiplicatoarele combinaionale efectueaz nmulirea a dou numere binare (ntregi sau fracionare, cu semn sau fr semn) cu vitez mare n comparaie cu circuitele de multiplicare secveniale. Algoritmul elementar de nmulire a numerelor binare este cel de nmulire manual a numerelor zecimale, cu urmtoarele dou particulariti: - nmulirea a dou cifre binare este echivalent cu operaia logic AND; - n comparaie cu nmulirea a dou cifre zecimale, nmulirea a dou cifre binare nu este generatoare de transport (adic rezultatul nu depete formatul de 1 bit). Fie numerele binare ntregi fr semn X = x3x2x1x0 i Y = y3y2y1y0. Paii de baz ai algoritmului elementar de nmulire X Y = P sunt prezentai n fig.3.54. Pasul 1: dup specificarea operanzilor X i Y, 8 pori AND2 determin produsele logice x3y0, x2y0, x1y0, x0y0 i x3y1, x2y1, x1y1, x0y1, adic produsele pariale Xy0 i Xy1, iar un sumator de 4 bii calculeaz rezultatul parial RP1 = Xy0 + Xy121; Pasul 2: se determin produsul parial Xy2 = x3y223 + x2y222 + x1y221 + x0y2 utiliznd 4 pori AND2, iar un al doilea sumator de 4 bii calculeaz rezultatul parial RP2 = RP1 + Xy222;

Circuite Logice Combinaionale

185

Pasul 3: se determin produsul parial Xy3 = x3y323 + x2y322 + x1y321 + x0y3 utiliznd 4 pori AND2, iar un al treilea sumator de 4 bii calculeaz rezultatul final P = RP2 + Xy323. x3 y3 x3y0 x3y1 z4 x3y2 z8 x3y3 p7 p6 z7 x2y3 p5 z3 x2y2 z6 x1y3 p4 x2y1 z2 x1y2 z5 x0y3 p3 p2 p1 p0 (P) x2 y2 x2y0 x1y1 z1 x0y2 p2 p1 p0 + (RP2) x1 y1 x1y0 x0y1 p1 p0 + (RP1) x0 y0 x0y0 + (X) (Y)

Fig.3.54 Algoritmul elementar de nmulire a numerelor binare Nu toate celulele sumatoarelor de 4 bii utilizate n algoritmul de nmulire de mai sus sunt sumatoare elementare. Unele celule trebuie s efectueze adunarea a 2 bii n loc de 3 bii i au o structur mai simpl dect cea de sumator elementar; aceste celule sunt numite semisumatoare elementare (half adder). Simbolul i structura unui semisumator elementar sunt desenate n fig.3.55.

Figura 3.55

186

Cap.3 Clase de circuite logice combinaionale

Structura unui circuit care efectueaz nmulirea a dou numere binare de 4 bii, determinat pe baza algoritmului din fig.3.54, este reprezentat n fig.3.56.

Fig.3.56 Multiplicator combinaional de 4 bii Aceast structur este o reea celular bidimensional format din celule identice care sunt conectate ntre ele dup reguli relativ simple. Fiecare celul este compus dintr-un sumator elementar i o poart AND2, cu excepia unor celule de frontier n care sumatorul elementar este nlocuit cu un semisumator. O astfel de structur regulat are urmtoarele avantaje: - expandarea la n bii (formatul operanzilor) se realizeaz uor; - proiectarea implic un efort de calcul redus i se concentreaz n principal asupra unei singure celule i a conexiunilor de legtur ale acesteia cu celulele vecine; - costurile asociate cu testarea sunt relativ mici. Conexiunile desenate cu linii mai groase n fig.3.56 i componentele traversate de ctre acestea formeaz cile de propagare critice; aceste ci traverseaz un

Circuite Logice Combinaionale

187

nivel de pori 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 ieirile acestor componente dup momentul specificrii sau aplicrii operanzilor X i Y. Indiferent de algoritmul de nmulire utilizat, ecuaia de funcionare a multiplicatorului combinaional de 4 bii 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 relaie se generalizeaz pentru operanzi X, Y de n bii n forma: P = ( xi 2i ) ( y j 2 j ) = ( xi y j ) 2 k =
i= 0 j= 0 k = 0 i+ j = k n 1 n 1 2 n 2 2 n 1 k= 0

2k

(3.22)

Formatul necesar i suficient pentru reprezentarea n baza 2 a produsului P este de 2n bii, lucru care se justific astfel: Pmax = XmaxYmax = (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 simbol grafic pentru multiplicatorul combinaional de n bii ca acela desenat n fig.3.57.

Fig.3.57 Simbol grafic de multiplicator de n bii Algoritmii de nmulire combinaionali, inclusiv cel elementar, constau dintr-o succesiune de operaii AND, deplasri i adunri/scderi; deplasrile nu sunt realizate cu circuite speciale ci prin intermediul conexiunilor de legtur dintre celule. O reea celular care implementeaz un algoritm de nmulire reprezint o arhitectur de multiplicator. Arhitectura este definit de structura celulei de baz i de regulile de conectare a celulelor adiacente. De obicei

188

Cap.3 Clase de circuite logice combinaionale

celulele multiplicatoarelor sunt construite din pori AND, sumatoare elementare, sumatoare-scztoare elementare, multiplexoare. Fiecrei arhitecturi i corespunde o vitez maxim de operare specific. Aceast vitez se poate exprima n mod indirect prin numrul de celule care sunt traversate de cile de propagare critice. De exemplu, cile critice ale arhitecturii care implementeaz algoritmul elementar de nmulire a dou numere binare de n bii traverseaz 3n-4 celule (1 semisumator i 3n-5 sumatoare elementare). Justificarea se face cu ajutorul schemei simplificate din fig.3.58 n care sunt reprezentate numai sumatoarele de n bii din structura multiplicatorului; cifrele cu care sunt marcate celulele sumatoarelor indic ordinea n care sunt disponibile rezultatele la ieirile acestora i sunt proporionale cu timpii de propagare.

Figura 3.58 n fig.3.59 este desenat o arhitectur de multiplicator de 4 bii mai rapid dect aceea reprezentat n fig.3.56. n ambele arhitecturi bitul pk al produsului P este ieirea din coloana k, n care se acumuleaz produsele xiyj, i + j = k i transporturile din coloana k-1; deosebirea esenial dintre aceste dou circuite de multiplicare const n decalarea cu un nivel de celule pe vertical, n cadrul fiecrei coloane k, a adunrii transporturilor care provin din coloana k-1. Cile de propagare critice, marcate cu linii mai groase, traverseaz un nivel de pori 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 rezultatele la ieirile acestor componente dup momentul aplicrii operanzilor X i Y. Multiplicatorul de n bii obinut prin expandarea circuitului din fig.3.59 poate fi reprezentat n mod simplificat ca n fig.3.60; sunt desenate numai cele n sumatoare de n-1 bii din structura multiplicatorului. Cile critice ale acestui circuit traverseaz 2n-2 celule, ceea ce nseamn c viteza maxim de operare

Circuite Logice Combinaionale

189

este de aproximativ 1,5 ori (adic 3n-4/2n-2) mai mare dect viteza multiplicatorului de n bii reprezentat n fig.3.58.

Figura 3.59

Figura 3.60

190

Cap.3 Clase de circuite logice combinaionale

Viteza maxim de operare a multiplicatorului de n bii 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 transport anticipat. nmulirea a dou numere binare cu semn codificat (+ Y 0, - Y 1) poate fi realizat cu oricare dintre multiplicatoarele de n bii prezentate anterior; multiplicatorul determin modulul sau valoarea absolut a produsului *P* iar o poart XOR calculeaz semnul acestuia, dup cum se arat n fig.3.61; se consider c cifrele cele mai semnificative (MSB) ale operanzilor X, Y i produsului P = XY sunt biii de semn.

Fig.3.61 Schem de nmulire a numerelor binare cu semn codificat De asemenea, cu un multiplicator de n bii se pot efectua i nmuliri de numere binare fracionare; nmulirea se face la fel ca n cazul operanzilor ntregi ns cei mai puin semnificativi nP bii ai rezultatului P reprezint partea fracionar (nP = nX + nY, unde nX i nY sunt numerele de cifre de la partea fracionar a operanzilor X i respectiv Y). Structurile de multiplicator de n bii reprezentate simplificat n figurile 3.58 i 3.60 conin fiecare cte n(n-1) celule i au gradul maxim de uniformitate, ceea ce implic consumuri de arie minime; n schimb, vitezele lor de operare sunt relativ mici. Creterea vitezei se poate obine prin modificarea algoritmului de nmulire; aceasta conduce de obicei la scderea gradului de uniformitate structural a circuitelor de multiplicare i la consum suplimentar de arie. Prin analizele urmtoare se evalueaz dac partiionarea unui multiplicator constituie o soluie de cretere a vitezei de operare. Metoda este ilustrat n fig.3.62 pentru multiplicatorul de 4 bii reprezentat n fig.3.56. Ecuaia de funcionare 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.

Circuite Logice Combinaionale

191

Fig.3.62 Partiionarea multiplicatorului de 4 bii din fig.3.56 Produsele P1 = X(y0 + y121) i P2 = X (y2 + y321) sunt calculate n paralel utiliznd dou multiplicatoare de tip (4, 2); prin aceast notaie se indic dimensiunile operanzilor, 4 bii i respectiv 2 bii. Deplasarea produsului P2 cu dou cifre spre rangul cel mai semnificativ, adic 22P2, se realizeaz prin intermediul conexiunilor. Rezultatul P se obine prin adunarea P1 + 22P2. Cifrele asociate simbolurilor de (semi)sumatoare elementare indic ordinea n care sunt disponibile rezultatele la ieirile acestor componente. Cile de propagare critice ale multiplicatorului partiionat traverseaz 6 nivele de celule, fa de 8 nivele n cazul multiplicatorului de 4 bii din fig.3.56. O schem mai general de partiionare a unui multiplicator este desenat n fig.3.63.

Fig.3.63 Partiionare a unui multiplicator de n bii

192

Cap.3 Clase de circuite logice combinaionale

Multiplicatorul de n bii (sau de tip (n, n)) compus din dou multiplicatoare cu dimensiuni mai mici, de tip (n, n-k) i respectiv (n, k), are urmtoarea ecuaie de funcionare: P = P1 + 2 kP2 = X y j 2 j + 2 k X
j= 0 k1 n k 1 j= 0

k+ j

2j

(3.23)

Pentru a evalua eficiena partiionrii asupra creterii vitezei de operare se consider c att multiplicatorul de n bii nepartiionat ct i cele dou multiplicatoare care calculeaz produsele P1 i P2 au arhitecturi identice. De asemenea, viteza de operare se apreciaz n mod indirect prin numrul de celule (semisumatoare i sumatoare elementare) situate pe cile de propagare critice. n cazul arhitecturii reprezentate n fig.3.58, cile critice ale multiplicatorului de tip (n, n) traverseaz 3n-4 celule. Cifrele rezultatelor pariale P1 i 2kP2 sunt disponibile, fa de momentul de aplicare a operanzilor X i Y, dup durate proporionale cu numerele de celule precizate n tabela de mai jos: Rang : 0 1 2 . . . k-1 k k+1 k+2 . . . n-1 n n+1 n+2 . . . n+k-3 n+k-2 n+k-1 n+k . . . 2n-3 2n-2 2n-1 , Bit ( P1 0 1 3 . . . 2k-3 2k-2 2k-1 2k . . . n+k-3 n+k-2 n+k-1 n+k . . . n+2k-5 n+2k-4 n+2k-4 . . . 2kP2) disponibil dup: . . . 0 1 3 . . . 2n-2k-3 2n-2k-2 2n-2k-1 2n-2k . . . 2n-k-5 2n-k-4 2n-k-3 2n-k-2 . . . 3n-2k-5 3n-2k-4 3n-2k-4

Circuite Logice Combinaionale

193

Valorile logice cu ranguri egale, aplicate la intrrile cele mai puin semnificative ale sumatorului de 2n - k bii din fig.3.63 nu sunt calculate la fel de repede; biii rezultatului parial P1 apar mai trziu dect biii rezultatului parial 2kP2. Dac se impune n + k - 3 = 2n - 2k - 3, adic k = n/3 atunci, ncepnd de la rangul n-k-1 = 2n/3-1 i pn la rangul n-1 al sumatorului, se opereaz cu valori de intrare ntrziate la fel. Celulele din rangurile cele mai semnificative ale sumatorului de 2n - k bii, 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. Creterea de vitez obinut prin partiionarea 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 creteri ale vitezei de operare cu 33,3%, cu 28,1% i respectiv cu 28,3%. n cazul arhitecturii reprezentate n fig.3.60, cile critice ale multiplicatorului de tip (n, n) traverseaz 2n-2 celule. Cifrele rezultatelor pariale P1 i 2kP2 sunt disponibile, fa de momentul de aplicare a operanzilor X i Y, dup durate proporionale cu numerele de celule precizate n tabela de mai jos: Rang: 0 1 . . . k-1 k k+1 . . . n . . . n+k-3 n+k-2 n+k-1 n+k . . . 2n-3 2n-2 2n-1 Bit ( P1 0 1 . . . k-1 k k+1 . . . n . . . n+k-3 n+k-2 n+k-2 . . . , 2kP2) disponibil dup: . . . -

0 1 . . . n-k . . . n-3 n-2 n-1 n . . . 2n-k-3 2n-k-2 2n-k-2

194

Cap.3 Clase de circuite logice combinaionale

Dac se alege k$2, atunci ntrzierile cu care sunt furnizate rezultatele la ieirile sumatorului de 2n-k bii din fig.3.63 sunt determinate de ntrzierile cifrelor rezultatului parial P1. Cele mai semnificative dou cifre ale produsului P sunt disponibile dup propagarea prin (n+k-1) + (n-k-2) = 2n-3 sumatoare elementare, ceea ce nseamn c partiionarea arhitecturii din fig.3.60 dup modelul din fig.3.63 nu poate s conduc la creterea vitezei de operare. Se poate spune c schema de partiionare analizat mai sus nu poate fi considerat o metod de cretere a vitezei de operare a multiplicatoarelor. Cele mai eficiente i mai utilizate metode de cretere a vitezei de operare a multiplicatoarelor combinaionale (ct i a celor secveniale) au la baz algoritmul Booth sau algoritmi derivai din acesta. Fie X i Y dou numere binare de n bii; fr a pierde din generalitate se consider c aceste numere sunt ntregi i fr semn. Cu algoritmul de nmulire elementar, produsul P = XY se calculeaz printr-o succesiune de n-1 adunrideplasri de produse pariale Xyj : pas1 pas2 pas3 ... pas(n-1) P = (Xy0 + Xy121) +Xy222 + Xy323 +...+ Xyn-12n-1 (3.24)

n structura multiplicatorului care implementeaz relaia 3.24 exist n-1 sumatoare de n bii, cte unul pentru fiecare pas al algoritmului; deplasrile sunt realizate prin intermediul reelei de conexiuni. Valorile unui produs parial Xyj se determin cu ajutorul unui generator de produse pariale (GPP), care n acest caz nu este altceva dect o simpl reea de n pori AND2 ca aceea desenat n fig.3.64: Xyj = 0 (numr de n bii) dac yj = 0 i Xyj = X dac yj = 1.

Fig.3.64 Structur de GPP utilizat n algoritmul de nmulire elementar Valorile produselor pariale Xy0, Xy1, Xy2, ..., Xyn-1 sunt calculate n paralel, utiliznd n GPP-uri. Algoritmul Booth utilizeaz urmtorul artificiu de calcul, cu scopul de a reduce la jumtate numrul de pai i de a mri n acest fel viteza de operare a

Circuite Logice Combinaionale

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 1 1 2 = {X[(0-y0) + (y0-y1)2 ] + X[(y1-y2) + (y2-y3)2 ]2 } + 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 nmulire Booth, produsul P = XY se calculeaz printr-o succesiune de n/2 adunri-deplasri de produse pariale X[(yj-yj+1)+(yj+1yj+2)21]. Calcularea valorilor acestor produse pariale necesit GPP-uri mai complicate funcional i implicit structural dect n cazul algoritmului de nmulire elementar. Valorile produsului parial X[(yj - yj+1) + (yj+1 - yj+2)21], precizate n tabela din fig.3.65, se obin prin decodificarea a trei cifre consecutive yj, yj+1, yj+2 ale operandului Y.

yj yj+1 yj+2 = 000 sau 111 100 sau 010 011 sau 101 110 001

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

Fig.3.65 Valorile produselor pariale procesate n algoritmul Booth Valorile negative -X i -2X pot fi tratate n dou moduri, rezultnd dou arhitecturi distincte de multiplicator Booth. Aceste arhitecturi sunt denumite pe parcursul acestui paragraf Booth- i Booth-. Arhitectura Booth- calculeaz produsul P = XY numai prin adunare(-deplasare) de produse pariale, lucru care este posibil dac toate produsele pariale sunt reprezentate n codul complementar fa de 2 (C2); conversia binar Y binar cu semn Y C2" este o sarcin a generatoarelor de produse pariale, numite n continuare GPP-. Arhitectura Booth- calculeaz produsul P = XY att prin adunare(deplasare) ct i prin scdere(-deplasare) de produse pariale, utilizndu-se n acest scop sumatoare-scztoare binare. Generatoarele de produse pariale,

196

Cap.3 Clase de circuite logice combinaionale

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. n conformitate cu relaia 3.25, produsul P = XY se calculeaz n trei pai: pas1 pas2 pas3 P = [(-X) + (-X)22] + (+2X)24 + (+X)26 (3.26)

Calcularea produsului P numai prin operaii de adunare (arhitectura Booth-) se poate realiza astfel: 1 1 r 0 r 0 semn 1 1 e 0 1 1 1 1 1 1 1 1 x x x x x x x 1 6 5 4 3 2 1 0 +1 + 1 x 6 5 x 4 3 2 1 0 1 x x x x x z u l t a t p 0 x6 x5 x4 x3 x2 x1

(-X) [pas1]

e z u l t a t p 0 x6 x5 x4 x3 x2 x1 x0

0 p13 p12 p11 p10 p9 p8 p7 p6 (r e z u l t a t

1 +1 (-X)22 a r i a l + [pas2] x0 0 0 0 0 0 +0 (+2X)24 a r i a l + [pas3] 0 0 0 0 0 0 +0 (+X)26 p5 p4 p3 p2 p1 p0 = P f i n a l).

Figura 3.66 Implementarea direct a multiplicatorului de 7 bii dup aceast schem de calcul nu aduce avantaje fa de implementarea algoritmului de nmulire elementar ci dezavantaje: - aria ocupat crete deoarece pe de o parte sunt necesare 3 sumatoare de 15 bii (315 = 45 celule elementare) n loc de 6 sumatoare de 7 bii (67 = 42 celule elementare), iar pe de alt parte structura de GPP- este mai complex dect structura de GPP utilizat n algoritmul elementar; - viteza de operare scade deoarece cile critice de propagare cresc n lungime de la 12 celule la 17 celule, lundu-se ca referin arhitectura din fig.3.60. n schema de calcul din fig.3.66 se pot face ns simplificri care s determine reducerea ariei ocupate de circuitul de multiplicare i creterea vitezei de operare: - deoarece P este un numr binar fr semn, rezultatul final obinut mai sus este ntotdeauna pozitiv i ca urmare se poate utiliza formatul de 14 bii n loc de 15 bii, eliminnd bitul de semn i neglijnd toate transporturile ctre acesta;

Circuite Logice Combinaionale

197

- valoarea 1 sau 0 care este adunat n rangul 0 n conformitate cu regulile de conversie n codul C2, poate fi adunat direct n rangul LSB al fiecrui produs parial (adic n rangurile 0, 2, 4 i respectiv 6 ale produsului P n schema din fig.3.66) cu avantajul eliminrii tuturor cifrele din rangurile inferioare rangului LSB; rangul LSB al unui produs parial este egal cu puterea lui 2 cu care se multiplic valoarea acestuia n dezvoltarea produsului P dup relaia 3.25. Efectund aceste dou simplificri se obine urmtoarea schem de calcul al produsului P (n locul cifrelor rezultatelor pariale s-a utilizat simbolul !): 1 1 1 1 1 1 1 1 1 1 x x 1 6 5 x 4 x 3 x 2 x 1 x 0 +1 [pas1] [pas2] [pas3] P

+ 1 x 6 5 x 4 x 3 x 2 x 1 x 0 x +1 ! ! ! ! ! ! ! ! ! ! ! ! ! ! + 0 0 x6 x5 x4 x3 x2 x1 x0 0 +0 ! ! ! ! ! ! ! ! ! ! ! ! ! ! + 0 x6 x5 x4 x3 x2 x1 x0 +0 = p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 Figura 3.67

O transformare echivalent a schemei de mai sus este prezentat n fig.3.68. 0 0 ! 0 ! 0 0 0 0 0 0 0 x x 0 1 6 5 x 4 x 3 x 2 x 1 x 0 (-1) +1 [pas1] [pas2] [pas3] = P

0 1 x6 (-1) ! ! ! ! ! 0 x6 x5 x4 x3 (-0) ! ! ! ! ! x6 x5 x4 x3 x2

p13 p12 p11 p10

+ 5 x 4 x 3 x 2 x 1 x 0 x +1 ! ! ! ! ! ! ! ! + x2 x1 x0 0 +0 ! ! ! ! ! ! ! ! + x1 x0 +0 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 Figura 3.68

198

Cap.3 Clase de circuite logice combinaionale

Cifrele cu semnul - scrise n paranteze trebuie sczute n rangurile 8, 10 i respectiv 12 ale produsului P. Toate cifrele care nu sunt ncadrate, situate n rangurile cele mai semnificative ale primelor trei produse pariale, au valoarea 0 (indiferent de semnele produselor pariale, adic indiferent de valorile operandului Y) i pot fi eliminate. Schema de calcul din fig.3.68 poate fi modificat n continuare dup cum se arat n figurile 3.69 i 3.70.

! ! ! x6 (-0) ! ! ! 0 x6 x5

(-1) ! x5 ! x4

p13 p12 p11 p10

x x 1 1 6 5 x 4 x 3 x 2 (-1) +1 1 x 6 5 x 4 x 3 x 2 x 1 x 0 x +1 ! ! ! ! ! ! ! ! x4 x3 x2 x1 x0 0 +0 ! ! ! ! ! ! ! ! x3 x2 x1 x0 +0 p9 p8 p7 p6 p5 p4 p3 p2 1 Figura 3.69 1

x1 x0 +1 + ! ! + ! ! + p1 p0 = [pas1] [pas2] [pas3] P

0 1 6 5 x 4 x 3 x 2 x 1 x 0 x x (+1) +1 [pas1] [pas2] [pas3] P

+ 1 x 6 5 x 4 x 3 x 2 x 1 x 0 x +1 ! ! ! ! ! ! ! ! ! ! ! ! + 1 1 x6 x5 x4 x3 x2 x1 x0 0 +0 ! ! ! ! ! ! ! ! ! ! ! ! ! ! + 0 x6 x5 x4 x3 x2 x1 x0 +0 = p13 p12 p11 p10 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 1 0 Figura 3.70

Arhitectura multiplicatorului Booth- se determin pe baza schemei de calcul

Circuite Logice Combinaionale

199

din fig.3.70. Fiecare produs parial are o deplasare fix, cu 0, 2, 4 sau 6 ranguri spre dreapta, independent de valoarea operandului Y i o deplasare potenial cu 1 rang spre dreapta care depinde de biii lui Y. Deplasrile fixe sunt uor de realizat prin intermediul reelei de conexiuni; deplasrile dependente de valorile operandului Y trebuie realizate n structura generatoarelor de produse pariale. n fig.3.71 este reprezentat la nivel de blocuri funcionale un ansamblu decodificator Booth - GPP- cu ajutorul cruia se calculeaz produsele pariale; cei mai semnificativi 2 bii lipsesc n cazul ultimului produs parial. Un multiplicator Booth de 7 bii conine 4 subcircuite de tip decodificator-GPP i 3 sumatoare binare (vezi fig.3.58) sau 4 sumatoare binare (vezi fig.3.60).

Figura 3.71 Funcionarea decodificatorului Booth cu ieirile active pe nivelul 1 logic este descris de tabela din fig.3.65: - ieirea Zero se activeaz cnd yj yj+1 yj+2 = 000 sau 111 Zero = y j y j+1 y j+2 + yj yj+1 yj+2; - ieirea Shift (deplasare cu 1 rang) se activeaz cnd yj yj+1 yj+2 = 001 sau 110 Shift = y j y j+1 yj+2 + yj yj+1 y j+2; - ieirea Comp2 (complement fa de 2) se activeaz cnd yj yj+1 yj+2 = 001, 011 sau 101 y Comp2 = y j y j+1 yj+2 + y j yj+1 yj+2 + yj y j+1 yj+2 = y j yj+2 + j+1 yj+2. Nici una dintre ieirile decodificatorului Booth nu se activeaz dac yj yj+1 yj+2 = 010 sau 100. Sunt active simultan ieirile Shift i Comp2 dac yj yj+1 yj+2 = 001. Structura blocului GPP- din fig.3.71 este desenat n fig.3.72.

200

Cap.3 Clase de circuite logice combinaionale

Fig.3.72 Structura GPP- O schem simplificat a multiplicatorului Booth- de 7 bii n care sunt reprezentate numai sumatoarele este desenat n fig.3.73a. Adunarea produselor pariale se efectueaz dup principiul ilustrat n fig.3.60; cifrele celor 4 produse pariale sunt notate astfel: PP1 = 1a8a7a6a5a4a3a2a1a0a0*, a8 = a0*; PP2 = 1b8b7b6b5b4b3b2b1b0b0*, b8 = b0*; PP3 = 1c8c7c6c5c4c3c2c1c0c0*, c8 = c 0*; PP4 = d7d6d5d4d3d2d1d0d0*. Fiecare produs parial are 2 bii n rangul cel mai puin semnificativ dup cum se observ att n schema de calcul din fig.3.70 ct i n reprezentarea ansamblului decodificator-GPP din fig.3.71. Celulele care au valori logice constante la intrri pot fi simplificate structural; de exemplu, semisumatoarele elementare care efectueaz operaiile (1 + d7), (1 + c7) i (1 + b7) pot fi nlocuite cu simple inversoare: 1 + d7 = d7, 1 + c7 = c721 + c 7, 1 + b7 = b721 + b7. Schema multiplicatorului reprezentat n fig.3.73b include aceste trei simplificri. Sumatorul elementar care efectueaz operaia (a8 + b6 + 1) poate fi simplificat structural la nivelul unui semisumator elementar: a8 + b6 + 1 = uv(2), v = a8r b6 = a8b6 + a8 + b6, u = a8 + b6.

Circuite Logice Combinaionale

201

Fig.3.73 Multiplicator Booth- de 7 bii

202

Cap.3 Clase de circuite logice combinaionale

Valorile aplicate la intrrile sumatorului de 14 bii din figura de mai sus nu sunt disponibile simultan; cele mai ntrziate valori, obinute dup propagarea prin trei celule elementare, sunt aplicate la intrrile cu rangurile 6 11. Dac sumatorul de 14 bii este cu transport selectat, selecia aplicndu-se partiiilor de 3 bii, atunci cile de propagare critice din structura multiplicatorului Booth de 7 bii traverseaz 6 celule elementare. Cile critice ale unui multiplicator de 7 bii construit dup principiul din fig.3.60 n care sumatorul n este de asemenea cu transport selectat (i partiionat tot n sumatoare de 3 bii) traverseaz 9 celule elementare. Raportul 9/6 = 1,5 reprezint creterea vitezei de operare determinat de arhitectura Booth- n comparaie cu arhitectura reprezentat n fig.3.60; aceast cretere de vitez (de 1,5ori sau cu 50%) se pstreaz i n cazul general al multiplicatoarelor de n bii. Produsul P determinat cu relaia 3.26 poate fi calculat utiliznd att operaii de adunare ct i operaii de scdere (arhitectura Booth-). Relaia 3.26 poate fi scris n forma urmtoare: *PP4* P = (X) 26 pas3 *PP3* + [(2X) 24 pas2 *PP2* (X 22 pas1 *PP1* + X)] (3.27)

Un multiplicator Booth- de 7 bii conine 4 subcircuite de tip decodificatorGPP i 3 sumatoare-scztoare binare. n fig.3.74 este reprezentat la nivel de blocuri funcionale un ansamblu decodificator Booth - GPP- cu ajutorul cruia se calculeaz produsele pariale.

Figura 3.74 Decodificatorul Booth din fig.3.74 este identic cu acela din fig.3.71; ieirea Comp2 este redenumit Semn i indic semnul produsului parial, utilizndu-se convenia 0 Y + i 1 Y -. Semnul atribuit produselor pariale cu valoarea

Circuite Logice Combinaionale

203

0 este +. Cu ajutorul variabilelor logice Semn se determin operaia (adunare sau scdere) care trebuie efectuat n fiecare pas al algoritmului. Structura unui GPP- este desenat n fig. 3.75. Cu acest circuit se determin modulul oricrui produs parial. Deplasrile fixe cu 0, 2, 4 i respectiv 6 ranguri ale modulelor produselor pariale se realizeaz prin intermediul reelei de conexiuni.

Fig.3.75 Structura GPP-

Fie *PP1* = a7a6a5a4a3a2a1a0, *PP2* = b7b6b5b4b3b2b1b0, *PP3* = c7c6c5c4c3c2c1c0, *PP4* = d7d6d5d4d3d2d1d0 modulele celor 4 produse pariale generate ntr-o arhitectur Booth- de 7 bii, Semn1, Semn2, Semn3, Semn4 i Zero1, Zero2, Zero3, Zero4 semnele i respectiv informaiile despre valorile acestor produse pariale (Zero = 1 Y PP = 0). Se noteaz cu *RP1*, *RP2* modulele rezultatelor pariale obinute n primii doi pai i cu Sgn1, Sgn2 semnele acestora; deoarece rezultatul final P este pozitiv, nu este necesar s se determine semnul acestuia. Operaia adunare/scdere i controlul acesteia n cei trei pai ai algoritmului de nmulire se realizeaz astfel (op = 0 Y adunare, op = 1 Y scdere): Pas1 op1 = Semn2r Semn1; (op1 = 0 Y *RP1* = *PP2*22 + *PP1*, op1 = 1 Y *RP1* = *PP2*22 - *PP1*); Sgn1 = Semn2 + Zero2Semn1; Pas2 op2 = Semn3r Sgn1; (op2 = 0 Y *RP2* = *PP3*24 + *RP1*, op2 = 1 Y *RP2* = *PP3*24 - *RP1*);

204

Cap.3 Clase de circuite logice combinaionale

Sgn2 = Semn3 + Zero3Sgn1; Pas3 op3 = Semn4r Sgn2 = Sgn2; (op3 = 0 Y P = *PP4*26 + *RP2*, op3 = 1 Y P = *PP4*26 - *RP2*). Cel mai semnificativ produs parial (PP4 n acest caz) nu poate fi negativ deoarece produsul P = XY este un modul, adic un numr binar fr semn. O schem simplificat a multiplicatorului Booth- de 7 bii, n care sunt reprezentate numai sumatoarele-scztoarele (cu transport-mprumut succesiv) i logica de selecie a operaiilor, este desenat n fig.3.76.

Fig.3.76 Multiplicator Booth- de 7 bii Ieirile notate cu 10 i 12 din primul i respectiv din al doilea sumator-scztor au semnificaii de transport/mprumut. Celulele din rangurile cele mai puin semnificative ale celor trei sumatoare-scztoare care au aplicate la una dintre intrri valoarea logic constant 0 pot fi simplificate dup cum se arat n fig.3.77 (nu s-a mai desenat logica de selecie a operaiilor); mai pot fi simplificate nc 4 celule elementare sumator-scztor situate n rangurile cele

Circuite Logice Combinaionale

205

mai semnificative. Intrrile sumatoarelor-scztoarelor de 8 bii notate cu -1 au semnificaii de transport/mprumut.

Figura 3.77 O alt structur de multiplicator Booth- de 7 bii se poate obine dac se inverseaz ordinea de procesare a celor 4 produse pariale i anume: *PP4* P = [(X 26 pas1 *PP3* + (2X) 24) pas2 *PP2* pas3 *PP1* X (3.28)

X 22] -

Operaia adunare/scdere i controlul acesteia n cei trei pai ai algoritmului de

206
nmulire se realizeaz astfel: Pas1 op1 = Semn3;

Cap.3 Clase de circuite logice combinaionale

(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. Pas2 op2 = 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 a multiplicatorului Booth- determinat pe baza relaiei 3.28 este reprezentat n fig.3.78.

Fig.3.78 Multiplicator Booth- de 7 bii

Circuite Logice Combinaionale

207

Transporturile/mprumuturile de ieire din cele trei sumatoare-scztoare din fig.3.78 se neglijeaz i nu trebuie implementate. Celulele din rangurile cele mai semnificative care au o intrare cu valoare logic constant 0 pot fi nlocuite cu semi(sumatoare-scztoare) elementare; structura unei astfel de celule se obine 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 sumatoarescztoare 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), ca acela 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. Comparnd arhitecturile Booth- i Booth- de 7 bii prezentate n acest paragraf, se poate afirma c arhitectura Booth- este mai rapid; pe de o parte cile de propagare critice ale multiplicatorului Booth- conin un numr mai mic de celule iar pe de alt parte timpii de propagare printr-un sumator elementar sunt mai mici dect timpii de propagare printr-un sumator-scztor elementar. Algoritmul Booth- poate fi utilizat i pentru efectuarea direct a nmulirii numerelor binare cu semn reprezentate n cod complementar fa de 2 (C2), fr a trata separat modulele i semnele operanzilor. Fie X = xnxn-1xn-2...x1x0, Y = ynyn-1yn-2...y1y0 dou numere binare ntregi cu semn codificat (biii de semn sunt xn i yn) i codurile complementare fa de 2 ale acestora C2(X) = xnxn-1*xn-2*...x1*x0* i respectiv C2(Y) = ynyn-1*yn-2*...y1*y0*. Considernd c sunt disponibile C2(X) i C2(Y), se poate calcula C2(P) astfel: C2(P) = C2(X)[-yn2n + yn-1*2n-1 + yn-2*2n-2 + ... + y1*21 + y0*] (3.29) Expresia scris n paranteze drepte este echivalentul zecimal al numrului 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-12n-1 + yn-22n-2 + ... + y121 + y0)(10) = = (2n + yn-1*2n-1 + yn-2*2n-2 + ... + y1*21 + y0*)(10), de unde rezult Y = - (yn-12n-1 + yn-22n-2 + ... + y121 + y0)(10) = = (-2n + yn-1*2n-1 + yn-2*2n-2 + ... + y1*21 + y0*)(10). Relaia 3.29 este adevrat n condiiile urmtoare: - produsul parial [C2(X)]2k se obine prin deplasarea cu k ranguri spre stnga a numrului [C2(X)] i repetarea bitului de semn al acestuia n rangurile cele mai semnificative, pn la 2n +1 inclusiv; - produsul parial -C2(X) se calculeaz astfel: dac xn = 0 atunci -C2(X) = C2(-X) = C2(1xn-1xn-2...x1x0),

208

Cap.3 Clase de circuite logice combinaionale

dac xn = 1 atunci -C2(X) = -X = 0xn-1xn-2...x1x0. Calcularea produsului parial -C2(X) const n determinarea unei reprezentri binare echivalente n care s nu se utilizeze n mod explicit semnul -; aceast conversie trebuie realizat de ctre generatoarele de produse pariale i este specific multiplicatoarelor bazate numai pe operaii de adunare. Se poate demonstra c, indiferent de valoarea bitului de semn xn, este adevrat relaia: (3.30) -C2(X) = x nx n-1*x n-2*...x 1*x 0* +1 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*) = = 1x n-1*x n-2*...x 1*x 0* +1 = x nx n-1*x n-2*...x 1*x 0* +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* = x n-1*x n-2*...x 1*x 0* +1, -X = 0xn-1xn-2...x1x0 = 0x n-1*x n-2*...x 1*x 0* +1 = x nx n-1*x n-2*...x 1*x 0* +1. Un exemplu de calcul al produsului C2(P) utiliznd relaia 3.29 este ilustrat n fig.3.79. 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 (-6(10)) (-3(10))

1 0 1 0 1 0
se neglijeaz

1 0 1 1

1 0 0 0

relaia 3.30

0 0 1

0 1 0

(+18(10))

semn (rangul 7)

Figura 3.79 Cifrele din rangurile cele mai semnificative ale produselor pariale, generate prin repetarea biilor de semn, pot fi reduse ca numr utiliznd artificiile de calcul prezentate succesiv n figurile 3.68, 3.69 i 3.70.

Circuite Logice Combinaionale

209

Determinarea produsului C2(P) utiliznd relaia 3.29 implic efectuarea a n-1 adunri de produse pariale deplasate corespunztor (n-1 pai); numrul produselor pariale este n iar dintre acestea doar cel mai semnificativ trebuie modificat n conformitate cu relaia 3.30. Utiliznd algoritmul de nmulire Booth, numrul de produse pariale i implicit numrul de pai necesari pentru determinarea produsului C2(P) se reduce la jumtate n comparaie cu calculul bazat pe relaia 3.29. Produsele pariale i paii algoritmului Booth sunt indicai n relaia 3.31; aceast relaie se obine utiliznd artificiul de calcul yj* = 2yj* - yj* n relaia 3.29. C2(P) = C2(X)[-yn2n + 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 pariale se obin prin decodificarea a 3 bii consecutivi ai operandului C2(Y) i sunt precizate n tabela din fig.3.80.

yj*yj-1*yj-2* = 000 sau 111 001 sau 010 101 sau 110 011 100

C2(X)[(yj-1* - yj*)21+(yj-2*-yj-1*)] = 0 C2(X) -C2(X) 2C2(X) -2C2(X) Figura 3.80

Decodificatorul Booth implementeaz sistemul de funcii logice: Zero = y j*y j-1*y j-2* + yj*yj-1*yj-2* Shift = y j*yj-1*yj-2* + yj*y j-1*y j-2* Negativ = yj*y j-1* + yj*y j-2* Structura generatorului de produse pariale se determin cu ajutorul unui exemplu de calcul. Fie C2(X) = x5 x4*x3*x2*x1*x0* (x5 este bitul de semn) i C2(Y) = 110010 (-13(10)). Produsul C2(P) se calculeaz n doi pai (y-1* = 0): PP1 PP2 PP3 4 2 C2(P) = -C2(X)2 + {C2(X)2 + [-2C2(X)]} pas2 pas1 (3.33) (3.32)

210

Cap.3 Clase de circuite logice combinaionale

Schema de calcul corespunztoare relaiei 3.33 este prezentat n fig.3.81. x5 x5 x5 p10 5 x x5 5 x 5 x x5 5 x x5 5 x 4* x x 3* x2* x 2* x1* x 1* x0* +0 p2* p1* p0* x 0* 1 + +1 [PP3] [22PP2] [24PP1] p3* C2(P)

x4* x3*

x 0* +1 p9* p8* p7* p6* p5* p4* Figura 3.81

x 4* x 3* x 2* x 1*

Aceast schem de calcul poate fi simplificat succesiv dup cum se arat n figurile 3.82 i 3.83. 0 4* x +(x5-1) 0 x5 -x5 x4* x3* x 3* x2* x 2* x1* x 1* x0* +0 x 0* 1 + +1 [PP3] [22PP2]

0 5 x 4* x 3* x 2* x 1* x 0* x [24PP1] +1 +(x5-1) C2(P) p10 p9* p8* p7* p6* p5* p4* p3* p2* p1* p0* Figura 3.82 1 1 x5 p10 5 x x5 x5 x5 x 4* (+1) x4* x3* x 3* x2* x 2* x1* x 1* x0* +0 x 0* 1 + +1 [PP3] [22PP2] [24PP1] p3* p2* p1* p0* C2(P)

x 0* +1 p9* p8* p7* p6* p5* p4* Figura 3.83

4* x 3* x 2* x 1* x

Structura GPP i arhitectura multiplicatorului Booth se determin cu ajutorul schemei de calcul din fig.3.83. n fig.3.84 este reprezentat generatorul de

Circuite Logice Combinaionale

211

produse pariale. Arhitectura multiplicatorului este asemntoare cu aceea reprezentat n fig.3.73b.

Fig.3.84 Structura GPP

3.10 Probleme rezolvate 1. S se sintetizeze convertorul de cod Binar-Gray de 4 bii.


R e z o l v a r e: Funcionarea convertorului Binar-Gray de 4 bii este descris prin tabelele de adevr de mai jos:

212

Cap.3 Clase de circuite logice combinaionale

Se observ c valorile ieirii G3 sunt identice cu valorile intrrii 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 asemntoare (bazat pe comparaii) i pentru ieirile G1, G0 sau se poate utiliza n acest scop o metod de minimizare. Minimizarea funciilor G1, G0 prin metoda Karnaugh este prezentat n tabelele urmtoare.

2. S se determine o structur de convertor de 4 bii de la codul binar cu semn codificat la codul complementar fa de 2 (C2). R e z o l v a r e: Fie X = x3x2x1x0 un numr binar ntreg i C2(X) = x3x2*x1*x0*; semnul este codificat cu bitul x3 (0 Y +, 1 Y -). n conformitate cu definiia codului C2
x2*x1*x0* = x2x1x0 dac x3 = 0 i x2*x1*x0* = x 2x 1x 0 + 1 dac x3 = 1. Complementarea biilor din rangurile 0, 1, 2 este condiionat de bitul de semn i se poate obine cu ajutorul a 3 pori XOR:

Circuite Logice Combinaionale

213

Circuitul din figura de mai sus este un convertor de 4 bii de la codul binar cu semn codificat la codul complementar fa de 1 (C1). De obicei conversia n codul C2 se utilizeaz n cadrul blocurilor aritmetice, C2(X) fiind unul dintre cei doi operanzi aplicai la intrrile unui sumator binar. Nu este necesar o conversie propriuzis n C2 ci o conversie n C1, mai simplu de realizat, i aplicarea bitului de semn (x3 n acest caz) la intrarea de transport a sumatorului respectiv. Dac este necesar conversia n codul C2, ntr-un context diferit de cel al operaiilor aritmetice, atunci structura convertorului se determin cu ajutorul tabelelor de adevr urmtoare. Combinaiile x3x2x1x0 = 0000 i x3x2x1x0 = 1000 reprezint numrul zecimal 0 (+0 i respectiv -0).

x2* = x 3x2 + x2x 1x 0 + x3x 2x1 + x3x 2x0 = x2(x3x1 + x3x0) + x 2(x3x1 + x3x0); x1* = x 3x1 + x1x 0 + x3x 1x0 = x1x3x0 + x 1x3x0; x0* = x0.

214

Cap.3 Clase de circuite logice combinaionale

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. Funcionarea unei celule care realizeaz conversia D Y C9(D) este descris de relaia
C9(D) = 9 - D, pe baza creia sunt completate tabelele de adevr urmtoare.

Se obin expresiile logice

d3* = d3d2d1; d2* = d2d1 + d2d1; d1* = d1; d0* = d0.

Structura covertorului este desenat n figura de mai jos.

Circuite Logice Combinaionale

215

4. Fie numrul binar ntreg i fr semn b7b6b5b4b3b2b1b0. S se determine o structur de circuit logic combinaional care s efectueze conversia acestui numr 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 ieiri, dup cum se arat n figura de mai jos:

Descrierea funcionrii acestui circuit i determinarea expresiilor logice ale ieirilor cu ajutorul tabelelor de adevr necesit un efort de calcul considerabil. Structura circuitului poate fi obinut fr a determina n mod explicit expresii logice pentru cele 10 ieiri n funcie de cele 8 variabile de intrare i are la baz calculul urmtor. Semnul + reprezint adunarea algebric. b7b6b5b4b3b2b1b0 = b727 + b626 + b525 + b424 + 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 pori logice. Digitul cel mai puin semnificativ (uniti) se calculeaz astfel: u0 = b0; u3u2u1 + 10(10)(transport)(2) = b7b6b5 + 0b4b4 + b3b2b1 + corecie BCD(U).

216

Cap.3 Clase de circuite logice combinaionale

Numrul binar u3u2u1 poate s aib numai valorile 000, 001, 010, 011 sau 100. Schema unui circuit care determin valorile cifrelor binare u3, u2, u1 i transporturile ctre digitul zeci este desenat n figura de mai jos. Circuitul are o funcionare asemntoare cu a unui sumator modulo 5.

Sumatorul de 3 bii efectueaz adunarea b7b6b5 + 00b4 + b3b2b1 = 210. Toate cele 16 combinaii de 4 bii sunt posibile pentru acest rezultat deoarece variabilele b7, b6, b5, b4, b3, b2 i b1 sunt independente. Blocul de corecie BCD determin cifrele binare u3, u2, u1 i transporturile , . Toate cele trei transporturi (, i ) ctre digitul zeci au ponderi egale cu 20 fiecare. Tabelele de adevr urmtoare descriu funcionarea blocului de corecie BCD(U). Aceste tabele se completeaz pe baza relaiilor u3u2u1 = (210 + 00b40)mod5 + + = ctul mpririi [(210 + 00b40)/5] n care + reprezint adunarea algebric. Combinaiile 210b4 = 00001, 11110 nu sunt posibile; n aceste dou situaii valorile funciilor u3, u2, u1, , pot fi considerate indiferente. n conformitate cu gruprile efectuate n tabelele de adevr se obin expresiile logice: u3 = 1b42r 0 + 210rb4 + 21b4 + 210b4; u2 = 102rb4 + 0(1r b4) + 201rb4 + 10b4 + 21b4; u1 = 210 + 210b4 + 20b4 + 20b4 + 210 + 20b4 + + 210b4 + 210b4; = ( + 2 + 1)( + 2 + b4)( + 2 + 0)(2 + 1 + b4)( + 1 + 0 + b4); = 2b4(1 + 0).

Circuite Logice Combinaionale

217

Digitul zeci se calculeaz astfel: z3z2z1z0 + 10(10)(transport)(2) = 0b7b4+b6b60+0b5b5++++corecie BCD(Z). Schema unui circuit de calcul al digitului zeci este desenat n figura de mai jos.

Ieirea din blocul de corecie BCD(Z) este transportul ctre digitul sute. Numrul binar z3z2z1 poate s aib numai valorile 000, 001, 010, 011 sau 100.

218

Cap.3 Clase de circuite logice combinaionale

Considernd c variabilele logice f, g i h sunt independente, funcionarea blocului de corecie BCD(Z) poate fi descris cu ajutorul tabelelor de adevr urmtoare (dac exist dependene ntre variabilele f, g, h atunci acestea pot fi utilizate pentru simplificarea blocului de corecie), completate pe baza relaiilor z3z2z1 = (fgh)modulo5 = ctul mpririi[fgh/5] n care f este bitul cel mai semnificativ iar h este bitul cel mai puin semnificativ.

Se obin expresiile logice z3 = f g h, z2 = g + g h, z1 = h + f g h, = f g + f h. f f Cifrele digitului sute se pot determina cu ajutorul unui semisumator elementar, 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 ieiri 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

Circuite Logice Combinaionale

219

se afl n starea de nalt impedan. Aceast proprietate poate fi utilizat pentru expandarea codificatorului de adres cu prioritate reprezentat n fig.3.9. O schem de expandare este desenat n figura de mai jos.

Dac Enable = 0 atunci nici unul dintre cele dou codificatoare nu este autorizat s funcioneze i ieirile AI, A2, A1, A0 sunt n starea de nalt impedan. Dac Enable = 1 atunci este autorizat s funcioneze un singur codificator. Autorizarea se realizeaz cu ajutorul intrrilor care au prioritatea cea mai mare: - cnd este activ cel puin una dintre intrrile I7, I6, I5 sau I4, este validat codificatorul 2 i rezult A2 = 1, AI = 1;

220

Cap.3 Clase de circuite logice combinaionale

- cnd nici una dintre intrrile I7, I6, I5 i I4 nu este activ se autorizeaz funcionarea codificatorului 1 i rezult A2 = 0; n acest caz AI = 1 dac este activ cel puin una dintre intrrile I3, I2, I1 sau I0 (altfel AI = 0).

6. Utiliznd un singur decodificator 1-din-16 cu ieiri active pe nivelul 0 logic i pori logice, s se implementeze funciile f i g (de variabile a, b, c, d, e) definite astfel:

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

R e z o l v a r e: Dac la intrrile decodificatorului se aplic variabilele a, b, c, d n aceast ordine, de la intrarea MSB la intrarea LSB, atunci la ieirile 15 ale 0 circuitului se genereaz maxtermenii a + b + c + d, a + b + c + d, a + b + c + d,..., i respectiv a + b + c + d. Funcia f trebuie reprezentat ntr-o form echivalent mai convenabil (produs de 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 de 4 variabile: a + b + c = (a + b + c + d)(a + b + c + d) = 1110; b + c + d = (a + b + c + d)(a + b + c + d) = 15; 7 a + c + d = (a + b + c + d)(a + b + c + d) = 4. 0 Variabila e trebuie tratat n mod diferit fa de variabilele a, b, c, d care sunt aplicate la intrrile decodificatorului. Se obine expresia f = 1110(715 + e)0 45. Expresia logic cea mai convenabil pentru reprezentarea funciei g este forma canonic cu maxtermeni (valorile indiferente sunt considerate 1 logic): g = (a + b + c + d)(a + b + + d + e)(a + b + c + d)(a + b + c + d) c (a + b + c + d)(a + b + c + d) = (3 + e)561210. 0 Circuitul care implementeaz funciile f i g, compus dintr-un decodificator de

Circuite Logice Combinaionale

221

adres (1-din-16 cu ieiri active pe nivelul 0 logic) i pori logice, este reprezentat n figura urmtoare.

7. S se implementeze, utiliznd numai MUX2 (multiplexoare de 2 ci) a i inversoare, funcia f(a, b, c, d, e) = a b c e + a b d e + a b d e + a c d e + b c e . R e z o l v a r e: Fie X o mulime de variabile logice, y o variabil logic care nu aparine mulimii X i H(X, y) o expresie care definete o funcie logic. Aceast expresie logic poate fi expandat astfel:
H(X, y) = y H(X, 0) + y H(X, 1). Dac funciile logice H(X, 0) = H0(X) i H(X, 1) = H1(X) sunt implementate de ctre dou blocuri combinaionale B0 i respectiv B1, atunci pentru implementarea funciei H(X, y) mai este necesar doar un MUX2. Schema de interconectare a blocurilor B0, B1 cu multiplexorul este desenat n figura urmtoare. La rndul lor funciile H0(X) i H1(X) pot fi expandate, adic pot fi descompuse n funcii mai simple care trebuie multiplexate. Aceast procedura de expandare se poate aplica recursiv pn cnd funcia iniial se obine prin multiplexarea variabilelor de intrare.

222

Cap.3 Clase de circuite logice combinaionale

Expandarea unei funcii logice de n variabile se poate realiza n n! moduri, ns anumite expandri sunt mai avantajoase din punct de vedere al costului implementrii (adic al numrului de multiplexoare i inversoare necesare). O expandare avantajoas pentru funcia din enunul problemei este urmtoarea: b f(a, b, c, d, e) = a(b c e + b d e ) + a( b d e + c d e + c e ) = = a[e (b d + c ) + e(c d)] + a[e (b d) + e(b c)]. b 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.

Circuite Logice Combinaionale

223

8. S se implementeze funcia logic f(a, b, c) definit prin tabela de adevr urmtoare, utiliznd un MUX de 4 ci i un inversor.
a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f 0 1 1 0 0 ~ 1 1

R e z o l v a r e: La intrrile de selecie S1, S0 ale multiplexorului se pot aplica oricare dou din cele trei variabile a, b, c i n orice ordine. Dac S1 = a i S0 = b atunci ecuaia care descrie funcionarea MUX4 este Y = f = a bI0 + abI1 + abI2 + abI3. Din tabela de adevr se determin valorile logice care trebuie aplicate la intrrile de date ale multiplexorului, comparndu-se coloanele c i f; de exemplu, n primele dou linii din tabela de adevr (linii ce corespund combinaiei ab = 00) se observ c c = f, ceea ce nseamn I0 = c. La celelalte trei intrri de date se obin valorile I1 = c , I2 = 0 sau c, I3 = 1. Implementarea funciei f este reprezentat n figura de mai jos.

9. S se implementeze funcia logic


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

224

Cap.3 Clase de circuite logice combinaionale

utiliznd (strict) dou multiplexoare de 4 ci. R e z o l v a r e: Expresia logic ce definete funcia G poate fi scris n forma a c G = a b0 + b1 + abc + ab(c d1 + df + cd0 + cde). Variabilele care trebuie aplicate la intrrile de selecie ale celor dou multiplexoare sunt a, b i respectiv c, d. Circuitul care implementeaz funcia G este desenat n figura urmtoare.

10. S se construiasc un comparator combinaional de n bii pentru numere 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 fr semn. n cazul numerelor reprezentate n C2 comparaia trebuie s includ i bitul de semn. Fie X = xn-1xn-2...x1x0, Y = yn-1yn-2...y1y0 dou numere binare cu semn codificat (biii de semn sunt xn-1, yn-1 i se respect convenia de codificare a semnului 0Y+, 1Y-) i C2(X) = xn-1xn-2*...x1*x0*, C2(Y) = yn-1yn-2*...y1*y0* codurile complementare 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 fr a determina n mod explicit numerele X i Y. Dac se compar numerele C2(X) i C2(Y) ca i cum acestea ar fi numere de n bii, ntregi i fr semn, atunci rezultatele obinute trebuie corectate pentru ca ele s coincid cu rezultatele comparaiei dintre X i Y. Prin analiza care urmeaz se determin cazurile n care sunt necesare corecii i n ce constau aceste corecii.

Circuite Logice Combinaionale

225

Cazul 1: Dac xn-1 = yn-1 = 0 atunci rezultatul comparaiei dintre C2(X) i C2(Y) este identic cu rezultatul comparaiei dintre X i Y deoarece C2(X) = X, C2(Y) = Y iar corecia nu este necesar. Cazul 2: Dac xn-1 = 0 i yn-1 = 1 atunci comparatorul indic C2(X) < C2(Y) adic se activeaz ieirea mai mic; rezultatul comparaiei trebuie s fie X > Y deoarece X $ 0 iar Y < 0, adic trebuie s se activeze ieirea mai mare. Corecia este necesar. Cazul 3: Dac xn-1 = 1 i yn-1 = 0 atunci comparatorul indic C2(X) > C2(Y) adic se activeaz ieirea mai mare; rezultatul comparaiei trebuie s fie X < Y deoarece X < 0 iar Y $ 0, adic trebuie s se activeze ieirea mai mic. Corecia este necesar. Cazul 4: Dac xn-1 = yn-1 = 1 sunt posibile dou situaii. (a) C2(X) = C2(Y) Y X = Y; se activeaz ieirea egal i nu este necesar corecia rezultatului. (b) C2(X) C2(Y) Y X Y; C2(X) = 2n - *X*, C2(Y) = 2n - *Y* i n aceast situaie C2(X) > C2(Y) Y X < Y, C2(X) < C2(Y) Y X > Y adic este necesar corecia rezultatului. Din aceast analiz rezult c numai ieirile mai mare i mai mic pot fi afectate de erori. Erorile apar n cazurile 2, 3 i 4(b) iar corecia se poate realiza prin interschimbarea ieirilor < i > atunci cnd cel puin unul dintre biii xn-1, yn-1 are valoarea logic 1; rezultatul corespunztor cazului 4(a) nu se modific deoarece nu este sensibil la corecia menionat. Schema de comparare a numerelor reprezentate n C2 este desenat n figura de mai jos.

226

Cap.3 Clase de circuite logice combinaionale

11. Circuitul din figura urmtoare este un numrtor combinaional; acesta trebuie s indice numrul de intrri care au valoarea logic 1 n form binar n2n1n0(2). S se determine structura numrtorului i s se deseneze o schem de expandare a acestuia.

R e z o l v a r e: Circuitul implementeaz sistemul de funcii n2, n1, n0. Aceste funcii depind fiecare de 7 variabile i pot fi reprezentate prin tabele de adevr (cu dimensiunea 27) cu ajutorul crora se obin expresii logice cu costuri minime i implicit structura circuitului la nivel de poart logic. Aceast abordare implic un efort relativ mare de calcul; o soluie mai simpl este construirea numrtorului din sumatoare i semisumatoare elementare. Funcionarea numrtorului este descris de relaia n2n1n0(2) = a + b + c + d + e + f + g n care + reprezint adunarea algebric. Circuitul poate fi inclus n categoria celulelor elementare de adunare deoarece efectueaz adunarea a 7 bii (variabile) cu ponderi egale ntre ele. n comparaie cu un sumator elementar care efectueaz adunarea a 3 bii cu ponderi egale i care realizeaz o compresie de tip (3, 2), unde 3 i 2 reprezint numrul de intrri i respectiv numrul de ieiri, numrtorul prezentat n enunul aceastei probleme realizeaz o compresie de tip (7, 3). n cazul general, o celul elementar de adunare determin suma a (2k-1) bii cu ponderi egale, rezultatul fiind furnizat sub forma unui numr binar de k cifre. Relaia 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 numrtorul; schema

Circuite Logice Combinaionale

227

de interconectare a acestor componente este desenat n figura urmtoare.

Ieirea n0 are rangul egal cu rangul fiecreia dintre intrrile a, b, c, d, e, f, g. Ieirile n1 i n2 au ranguri mai mari cu 1 i respectiv cu 2; prin analogie cu sumatorul elementar sau celula de tip (3, 2), aceste ieiri au semnificaie de transporturi. Cu ajutorul unui sumator compus din n celule elementare de tip (7, 3) se poate efectua ntr-un singur pas adunarea a 5 numere binare de n bii; arhitecturile de acest fel reprezint soluii de cretere a vitezei de operare i pot fi combinate cu tehnicile de anticipare, de salt sau de selecie a transporturilor. Structura unui sumator cu transporturi succesive ntre celule este desenat simplificat n figura de mai jos.

228

Cap.3 Clase de circuite logice combinaionale

12. Fie X = xn-1xn-2...x1x0 i Y = yn-1yn-2...y1y0 dou numere binare ntregi i fr semn. Utiliznd un scztor binar de n bii, s se construiasc un circuit logic combinaional care s efectueze operaia Z = *X-Y*. R e z o l v a r e: Rezultatul operaiei specificate n enunul problemei este un numr binar ntreg i fr semn; formatul necesar i suficient pentru reprezentarea acestuia este de n cifre, adic Z = zn-1zn-2...z1z0. La ieirile scztorului de n bii se obine Z numai dac se scade din operandul mai mare pe cel mai mic, adic: - dac X $ Y atunci trebuie efectuat operaia X-Y; - dac X < Y atunci trebuie efectuat operaia Y-X. Comparaia operanzilor trebuie fcut n mod explicit, cu ajutorul unui comparator numeric de n bii. Rezultatul furnizat de comparator (valoarea relativ a numerelor X i Y) stabilete care dintre operanzi este desczutul i care este scztorul. Schema simplificat a circuitului logic care implementeaz acest algoritm de calcul este reprezentat n figura urmtoare.

Numai ieirea < a comparatorului este utilizat; structura comparatorului poate fi simplificat prin eliminarea conexiunilor i porilor logice care nu influeneaz valorile de la ieirea <. Blocurile notate nMUX2 conin n multiplexoare de 2 ci. Prin intermediul acestor blocuri de comutatoare se aplic operandul mai mare (desczutul) la intrarea circuitului de scdere notat cu A i operandul mai mic (scztorul) la intrarea notat cu B. Circuitul de scdere efectueaz operaia A-B; mprumutul de intrare borrowin este conectat la 0 logic iar mprumutul de ieire borrowout nu este utilizat. Viteza de operare a circuitului este invers proporional cu timpul de propagare cumulat al comparatorului, al unui bloc de multiplexoare i al scztorului.

Circuite Logice Combinaionale

229

Operaia Z = *X-Y* poate fi efectuat mai avantajos n comparaie cu schema de calcul anterioar, att din punct de vedere al vitezei de operare ct i al complexitii structurale, dac se aplic numerele X i Y direct la intrrile A i respectiv B ale scztorului de n bii iar rezultatul X-Y = A-B se corecteaz atunci cnd X < Y. Fie D = dn-1dn-2...d1d0 rezultatul obinut la ieirile notate cu 0, 1, ..., n-1 ale scztorului de n bii. Valoarea relativ a numerelor X, Y i implicit relaia dintre Z i D sunt indicate de ctre valoarea logic obinut la ieirea 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 numrul binar 1dn-1dn-2...d1d0 reprezint complementul fa de 2 al numrului negativ -Z: Z = zn-1zn-2...z1z0 = 2n - D = dn-1dn-2...d1d0 + 1. Determinarea numrului Z cu aceast relaie nu este convenabil datorit operaiei de adunare. Dezavantajul poate fi ns eliminat cu ajutorul urmtorului artificiu 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 numrului Z este desenat n figura de mai jos.

Cu toate c ieirea de mprumut borrowout a scztorului i ieirea < a comparatorului au valori logice identice pentru orice pereche de numere X, Y (adic funciile logice realizate la aceste dou ieiri sunt echivalente), utilizarea comparatorului este necesar. Dac la intrarea borrowin a scztorului se

230

Cap.3 Clase de circuite logice combinaionale

conecteaz ieirea borrowout, eliminndu-se comparatorul, atunci se obine un circuit logic cu reacie care nu mai este combinaional ci secvenial asincron. Un astfel de circuit are memorie; valorile de la ieirile scztorului cu reacie 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 unele valori de intrare X, Y sau anumite modificri ale acestora s determine n circuit regimuri tranzitorii cu durat infinit (oscilaii). Determinarea numrului Z cu ajutorul scztorului cu reacie (cu legtur ntre ieirea borrowout i intrarea borrowin) este posibil prin controlarea reaciei dup cum se arat n figura urmtoare.

Semnalul Control reacie trebuie meninut la valoarea logic 0 din momentul aplicrii operanzilor X, Y i cel puin pn cnd toate ieirile scztorului au valori logice stabile; pe acest interval de timp T reacia este ntrerupt iar scztorul efectueaz operaia X-Y-0. Dup intervalul T, la intrarea Control reacie se aplic valoarea logic 1; tranziia 0Y1 i meninerea valorii 1 orict de mult timp la aceast intrare de control nu determin modificarea valorii logice existente la ieirea borrowout deoarece: - dac borrowout = 0 nainte de momentul T atunci borrowin = 0 dup momentul T i nu apare nici o schimbare la vreuna dintre intrrile scztorului; - dac borrowout = 1 nainte de momentul T atunci borrowin = 1 dup momentul T iar scztorul ncepe s efectueze operaia X-Y-1, operaie care nu implic o propagare a valorii mprumutului borrowin pn la ieirea borrowout deoarece borrowout = 1 datorit faptului c X < Y (propagarea poate s afecteze toate ieirile scztorului de la rangul 0 pn la rangul n-1 inclusiv). Calcularea numrului Z = *X-Y* cu ajutorul schemei din figura de mai sus are dou faze, asociate cu duratele de meninere a valorilor logice 0 i respectiv 1

Circuite Logice Combinaionale

231

la intrarea Control reacie. Durata minim a fiecrei faze este egal cu timpul de propagare pe cile critice ale scztorului. semn scrise n baza de numeraie 7. (a) Considernd c fiecare cifr xk i yk este reprezentat n form binar, s se sintetizeze 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 utiliznd un format de 3 bii. O implementare a celulei elementare de adunare n baza 7 este reprezentat n figura urmtoare.

13. Fie X = xn-1xn-2...x1x0(7) i Y = yn-1yn-2...y1y0(7) dou numere ntregi i fr

Celula elementar de adunare n baza 7 efectueaz operaia

xk + yk + ck = ck+171 + sk
unde simbolul + reprezint adunarea algebric, xk, yk, sk sunt cifre ale bazei 7 codificate binar iar ck, ck+1 0 {0, 1} sunt transporturi. Circuitul de corecie are ca mrime de intrare numrul binar (2) , a crui valoare maxim n zecimal este 6 + 6 + 1 = 13 (adic 1101 n baza 2). Sistemul de 4 funcii logice care este implementat de acest circuit, i anume ck+1, sk, 2, sk, 1 i sk, 0 este reprezentat prin tabelele de adevr urmtoare, completate pe baza relaiei de mai sus.

232

Cap.3 Clase de circuite logice combinaionale

ck+1 = + sk, 2 = + + = + sk, 1 = + + = ( + ) + sk, 0 = + + = + ( + )


Structura circuitului de corecie este desenat n figura urmtoare.

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

Circuite Logice Combinaionale

233

celular a sumatorului este desenat n figura urmtoare.

14. Fie X = xnxn-1xn-2...x1x0(7) i Y = ynyn-1yn-2...y1y0(7) dou numere ntregi cu semnul codificat, scrise n baza de numeraie 7. Fiecare cifr xk i yk este reprezentat ntr-un format de 3 bii; cifrele xn i yn reprezint semnele numerelor X i respectiv Y utilizndu-se convenia 000 Y +, 110 Y -. S se construiasc un circuit logic care s efectueze operaia Z = X + Y prin intermediul adunrii. R e z o l v a r e: n orice baz de numeraie se poate efectua adunarea numerelor cu semn utiliznd codurile complementare. n baza 7, operaia Z = X + Y se poate efectua mai avantajos n forma C7(Z) = C7(X) + C7(Y), C7 fiind codul complementar fa de 7; cifrele semn i cifrele care definesc modulele sunt tratate la fel. Rezultatul C7(Z) este un numr de n+1 cifre n baza 7, codificate binar, n care cifra din rangul n este semnul. Cnd operanzii X i Y au semne identice este posibil s se depeasc formatul; aceste situaii sunt detectate automat n codul C7 prin alterarea cifrei semn (de exemplu 001, 010, 011, 100, 101). Codul C7 are proprietatea de autocorecie a erorilor cauzate de depirile de format (vezi cap.1). Operaia 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 ajutorul convertoarelor de cod. Aceste convertoare au structur celular; o celul realizeaz conversia unei cifre de modul. Datorit prezenei sumatoarelor este mai convenabil s se efectueze conversiile operanzilor n codul C6 (codul complementar fa de 6). Relaia dintre codurile C6 i C7 este
C7(A) = C6(A) + sgn(A)70 unde A este un numr oarecare scris n baza 7 iar + reprezint adunarea algebric. Termenul sgn(A)70 are valoarea 0 dac A este pozitiv i valoarea 1 dac A este negativ; el trebuie aplicat la intrarea de transport a sumatorului modulo7. Cnd A este pozitiv C7(A) = C6(A) = A.

234

Cap.3 Clase de circuite logice combinaionale

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 relaiei C6(ak) = an, 2ak w an, 2(6 - ak), k < n cu ajutorul creia se completeaz tabelele de adevr urmtoare.

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 decodificarea deoarece 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 + Y prin intermediul adunrii.

Circuite Logice Combinaionale

235

Blocurile logice notate Convertor C6 conin fiecare cte n celule. Dac nu se produce depirea formatului atunci cifra cea mai semnificativ sn = zn generat de sumatorul modulo7 este fie 000 fie 110. n acest caz sumatorul efectueaz operaia S = C6(X) + C6(Y) + sgn(X)sgn(Y); transportul din rangul semn, adic cout, se neglijeaz. Sunt posibile urmtoarele cazuri: 1) numerele X i Y sunt ambele pozitive; Se obine 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 cellalt este negativ; Fr a pierde din generalitate se consider c X este pozitiv i Y este negativ. Se obine 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 obine 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 menionat anterior poate fi corectat prin nlocuirea porii AND2 conectat la intrarea de transport a sumatorului cu un circuit care s genereze valoarea 1 logic atunci cnd ambele numere X, Y sunt negative dar i cnd acestea au semne opuse iar X + Y > 0. Semnul numrului X + Y poate fi determinat cu ajutorul unui comparator de 3n bii; se compar *X* i *Y* ca i cum acestea ar fi numere binare. O soluie mai economic const n utilizarea informaiei de semn disponibil la ieirea sn, 2 a sumatorului. Deoarece n acest caz se creeaz o legtur de reacie n circuit, la nivelul sumatorului modulo7, este necesar un semnal de control al reaciei, la fel ca n problema 12. Schema circuitului cu reacie controlat este desenat n figura urmtoare. Operaia Z = X + Y se efectueaz n dou faze. n prima faz variabila logic Control reacie se menine la valoarea 0 pn cnd ieirile sumatorului modulo7 au valori stabile. n faza a doua, care este o faz de corecie a rezultatului, se aplic Control reacie = 1; corecia este efectiv numai dac X + Y > 0 iar sgn(X) sgn(Y). Toate cifrele de la ieirile sumatorului determinate n prima faz, cu excepia cifrei semn sn, pot fi modificate n faza de corecie. De exemplu, dac X = 000 110 000 000 (+600(7)) i Y = 110 001 000 000 (-100(7)) atunci rezultatul furnizat de sumator n prima faz este +466(7):

000 110 000 000+ 110 101 110 110 000 100 110 110

C6(X) C6(Y) S

236

Cap.3 Clase de circuite logice combinaionale

n faza a doua se efectueaz operaia

000 110 000 000+ 110 101 110 110 1 000 101 000 000

C6(X) C6(Y)

S = C6(S) = Z = +500(7).

Depirea formatului este indicat la ieirea Overflow prin nivelul 1 logic:

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

15. S se construiasc un ALU de 4 bii, reprezentat ca bloc funcional n figura de mai jos, care s efectueze operaiile logice XY, Xr Y, XY, XwY i operaiile aritmetice X + Y + c0, XY - 1, X + XY, X + Y +1. S se expandeze acest ALU la 16 bii.

Circuite Logice Combinaionale

237

Modul de operare, aritmetic sau logic, se fixeaz cu ajutorul variabilei de intrare M iar selecia operaiilor se realizeaz prin intermediul variabilelor Sel1 i Sel0. Intrarea c0 reprezint transportul de intrare iar G, P sunt funciile de generare i de propagare a transportului. R e z o l v a r e: ALU are la baz sumatorul de 4 bii cu transport anticipat reprezentat n figura urmtoare. Acest circuit efectueaz operaia aritmetic A + B + cin, rezultatul fiind funciile de generare i propagare a transportului G, P i suma S = s3s2s1s0 (A = a3a2a1a0, B = b3b2b1b0).

Mai multe detalii structurale ale unitii aritmetice-logice pot fi determinate cu ajutorul tabelei de funcionare de mai jos.

n modul aritmetic toate cele 4 operaii sunt efectuate de ctre sumatorul binar; mai sunt necesare blocuri logice care s determine operanzii A, B i transportul cin. Selectarea operanzilor i a transportului se realizeaz cu ajutorul multiplexoarelor. Operaia aritmetic F = XY - 1 (scdere) este echivalent cu operaia F = XY + 1111 (adunare):

238

Cap.3 Clase de circuite logice combinaionale

F = XY - 1 = XY - 1 + 24 = XY + 1111.
Fie cout o variabil logic a crei semnificaie este mprumut de ieire n cazul operaiei XY - 1 i transport de ieire n cazul operaiei XY + 1111. Comparaia dintre aceste dou operaii se poate realiza cu ajutorul tabelelor de mai jos.

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

F = XY - 1
1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110

cout
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

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

F = XY + 1111
1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110

cout
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Variabila cout poate fi determinat cu ajutorul expresiei logice cout = G + Pcin, unde G i P sunt funciile de generare i respectiv de propagare a transportului implementate la nivelul sumatorului. n cazul Sel1Sel0 = 01 trebuie fcut corecia cout = G + Pcin ; aceast corecie nu implic modificarea funciilor G, P i se realizeaz efectiv numai atunci cnd ALU este prevzut cu o ieire de transport. n figura urmtoare este desenat simplificat structura unitii aritmetice-logice de 4 bii. Blocurile logice notate MUXA, MUXB, MUXL conin fiecare cte 4 multiplexoare de 4 ci iar blocul MUXF conine 4 multiplexoare de 2 ci; multiplexoarelor din fiecare bloc li se atribuie ranguri de la 0 la 3. Fiecare simbol de inversor sau de poart AND reprezint un bloc compus din 4 astfel de componente; de exemplu, poarta AND marcat cu cifra 2 este un circuit care efectueaz operaia XY = x3y3 x2y2 x1y1 x0y0 iar aceti 4 bii rezultat se aplic la intrrile multiplexoarelor marcate cu cifra 2 n grupurile MUXB i MUXL

Circuite Logice Combinaionale

239

dup o coresponden biunivoc determinat de ranguri. Logica necesar pentru efectuarea operaiei Xr Y se afl n structura sumatorului de 4 bii; cnd Sel1Sel0 = 00 la intrrile sumatorului se aplic A = X i B = Y.

Schema de expandare la 16 bii a acestui ALU de 4 bii este desenat n figura de mai jos.

240

Cap.3 Clase de circuite logice combinaionale

3.11 Probleme propuse spre rezolvare 1. S se sintetizeze convertoarele de cod: a) Gray-Binar, de 4 bii; b) C2Binar cu semn codificat, de 4 bii; c) BCD(2 digii)-Binar. 2. Utiliznd pori logice i un singur decodificator 1-din-10 cu ieiri
active pe nivelul 1, s se implementeze funciile 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 ieiri active pe nivelul


logic 0 utiliznd decodificatoare 1-din-4 cu ieiri active pe 0.

4. S se deseneze o schem de expandare a demultiplexorului cu intrare


de autorizare, de la 4 ci la 16 ci.

5. S se implementeze sistemul de funcii f, g, h, k, j definit mai jos, utiliznd un DEMUX de 16 ci i pori logice. Funciile sistemului depind de variabilele logice a, b, c, d i e.

6. S se deseneze o schem de afiare cu 4 celule de tip 7 segmente (LED)


n care s fie utilizat un singur decodificator BCD-7 segmente pentru comanda tuturor celulelor de afiare. Observaie: Sunt dou tipuri de celule de afiare cu 7 segmente LED: celule de

Circuite Logice Combinaionale

241

tip AC (anod comun) i celule de tip CC (catod comun). Celulele AC (CC) sunt comandate de ctre decodificatoare cu ieiri active pe nivelul logic 0 (1). Celulele AC (CC) au un pin numit anod comun (catod comun) care trebuie conectat la borna + (-) a sursei de alimentare pentru ca segmentele activate s emit lumin; altfel, dac acest pin este lsat n gol sau nu este conectat la borna corespunztoare a sursei de alimentare, nici un segment nu emite lumin.

7. S se sintetizeze circuitul de rotire sau de permutare circular definit n figura urmtoare.

8. S se sintetizeze o celul de comparare de 2 bii, care s compare numerele binare A = a1a0, B = b1b0 i s furnizeze unul dintre rezultatele mai mic sau mai mare sau egal. Utiliznd aceast celul s se construiasc un comparator de 2n bii, ca cel reprezentat n figura de mai jos.

9. Utiliznd scztoare binare i pori logice, s se construiasc un scztor BCD de 1 digit. 10. a) S se sintetizeze o celul elementar de adunare modulo 12 i s se construiasc sumatoare mod12 de n cifre cu transport succesiv, cu transport n

242

Cap.3 Clase de circuite logice combinaionale

salt i cu transport selectat. b) S se completeze schema unui sumator modulo 12 cu convertoare de cod adecvate pentru a efectua att operaii de adunare ct i operaii de scdere modulo 12.

11. S se construiasc un ALU de 4 bii, reprezentat ca bloc funcional n figura de mai jos, care s efectueze operaiile logice XY, Xr Y, XY, XwY i operaiile aritmetice X + Y + c0, XY - 2, X + XY + c 0, X + Y +1. S se expandeze acest ALU la 16 bii.

12. S se descrie prin tabele de adevr i s se sintetizeze cu pori logice multiplicatorul de 2 bii reprezentat n figura urmtoare. Utiliznd celule de multiplicare de acest fel i sumatoare binare, s se construiasc o arhitectur de multiplicator de 8 bii.

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