Sunteți pe pagina 1din 21

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

CIRCUITE COMBINAIONALE UZUALE

1. Scopul lucrrii
Lucrarea prezint unele circuite combinaionale uzuale i utilizarea acestor circuite la implementarea circuitelor digitale mai complexe. Circuitele combinaionale prezentate sunt: convertoare de cod, decodificatoare, codificatoare, multiplexoare, demultiplexoare, memorii ROM i reele logice programabile.

2. Consideraii teoretice
2.1. Convertoare de cod
Convertoarele de cod au, n cazul general, n intrri i m ieiri, i se utilizeaz pentru transformarea informaiei din codul cu n bii n codul cu m bii. Pentru proiectarea unui convertor de cod se poate utiliza tabelul de corespondene ntre cuvintele binare ale celor dou coduri. Fiecare poziie din codul surs se noteaz cu o variabil, totalitatea acestora reprezentnd intrrile circuitului combinaional. Fiecare poziie din codul destinaie se noteaz cu o variabil, totalitatea acestora reprezentnd ieirile circuitului. Tabelul de corespondene se transform astfel n tabel de adevr pentru funciile realizate de circuit, care arat dependena variabilelor de ieire de cele de intrare. Se consider conversia din codul binar-zecimal 8421 (BCD) n codul binar-zecimal exces 3. Poziiile cuvntului binar din codul BCD se noteaz cu D, C, B, A, iar cele din cuvntul binar al codului exces 3 cu E3, E2, E1, E0. Rezult un tabel de adevr (Tabelul 3.1).
Tabelul 3.1. Tabelul de adevr pentru conversia din codul BCD n codul exces 3.
Zecimal 0 1 2 3 4 5 6 7 8 9 BCD DCBA 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Exces 3 E3E2E1E0 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

Deoarece pentru combinaiile variabilelor de intrare corespunztoare valorilor 10-15 codurile exces 3 nu sunt definite, i n mod normal aceste combinaii nu apar, ele pot fi considerate redundante. Variabilele de ieire se pot exprima n funcie de cele de intrare astfel:

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3. E3 = (5, 6, 7, 8, 9) + (10, 11, 12, 13, 14, 15) E2 = (1, 2, 3, 4, 9) + (10, 11, 12, 13, 14, 15) E1 = (0, 3, 4, 7, 8) + (10, 11, 12, 13, 14, 15) E0 = (0, 2, 4, 6, 8) + (10, 11, 12, 13, 14, 15) Diagramele Karnaugh corespunztoare variabilelor de ieire sunt prezentate n Figura 3.1.

(3.1)

Figura 3.1. Diagramele Karnaugh ale ieirilor convertorului de cod din BCD n exces 3.

Dup minimizare se obine: E3 = D + AC + BC = D AC BC E2 = AC + BC + A BC = ( A + B )C + ( A + B )C = ( A + B ) C E1 = A B + AB = A B E0 = A Circuitul convertor din codul BCD n codul exces 3 este prezentat n Figura 3.2. (3.2)

Figura 3.2. Schema logic a convertorului de cod din BCD n exces 3.

2.2. Decodificatoare
Decodificatorul este un circuit combinaional avnd n intrri i m ieiri, care identific un cod de intrare prin activarea unei singure linii de ieire, corespunztoare acestui cod. Numrul maxim al liniilor de ieire (numrul de ci) corespunde numrului de combinaii ale variabilelor de intrare (m 2n). Un decodificator cu 2n ci se noteaz cu DCD n:2n.

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

Decodificatorul se utilizeaz n numeroase aplicaii, ca de exemplu adresarea memoriilor, selectarea (validarea) unor circuite sau a unor periferice, afiarea datelor etc. 2.2.1. Decodificator de adres Acest decodificator activeaz linia de ieire a crei adres este prezentat la intrare. Decodificatorul cu 3 intrri de adres i 23 = 8 ieiri este prezentat n Figura 3.3, iar tabelul de adevr este prezentat n Tabelul 3.2.

Figura 3.3. Reprezentarea unui decodificator 3:8. Tabelul 3.2. Tabelul de adevr al unui decodificator 3:8.
A2A1A0 000 001 010 011 100 101 110 111 Y0Y1Y2Y3Y4Y5Y6Y7 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1

Din tabelul de adevr se pot scrie ecuaiile ieirilor: Y0 = A2 A1 A0 Y1 = A2 A1 A0 Y2 = A2 A1 A0 Y3 = A2 A1 A0 Y4 = A2 A1 A0 Y5 = A2 A1 A0 Y6 = A2 A1 A0 Y7 = A2 A1 A0 Se observ c ieirile acestui decodificator reprezint de fapt mintermii pentru o funcie de 3 variabile. Schema decodificatorului este prezentat n Figura 3.4. (3.3)

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

Figura 3.4. Schema logic a decodificatorului de adres 3:8.

2.2.2. Decodificator din cod BCD n zecimal Acest decodificator activeaz una din cele 10 ieiri corespunztoare codului BCD de la intrare. O ieire este activ pe nivelul logic 0. Decodificatorul este prezentat n Figura 3.5.

Figura 3.5. Reprezentarea decodificatorului din cod BCD n zecimal.

Pentru combinaiile corespunztoare valorilor ntre 10 i 15 ieirile se pot fora la nivelul logic 1. Toate intrrile sunt decodificate deci explicit. Se pot detecta astfel combinaiile invalide de la intrare. Tabelul de adevr este prezentat n Tabelul 3.3.
Tabelul 3.3. Tabelul de adevr al decodificatorului din cod BCD n zecimal.
BCD DCBA 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 Zecimal 0 1 2 3 4 5 6 7 8 9 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

BCD DCBA 1011 1100 1101 1110 1111

Zecimal 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Expresiile ieirilor se pot scrie sub forma urmtoare: 0 = DC B A 1 = DC B A ! 9 = DC B A Schema decodificatorului este prezentat n Figura 3.6. Primul rnd de inversoare complementeaz variabilele de intrare, iar cel de-al doilea asigur ca semnalele D, C, B, A s fie ncrcate cu o singur unitate de sarcin TTL. (3.4)

Figura 3.6. Schema logic a decodificatorului din cod BCD n zecimal.

n mod similar se poate realiza un decodificator care s nu detecteze combinaiile invalide de la intrare. n acest caz se ine cont de combinaiile interzise n diagramele Karnaugh. Apariia unei combinaii interzise la intrare poate conduce la activarea simultan a mai multor ieiri. Decodificatoarele, ca i alte circuite combinaionale uzuale, se pot sintetiza prin pori, sau sunt disponibile sub form de circuite integrate pe scar medie (MSI). Cteva tipuri de decodificatoare integrate sunt urmtoarele: 7442, 7445, 74141, 74145: DCD 4:10 (convertor de cod) din BCD n zecimal 7443: DCD (convertor de cod) din codul exces 3 n zecimal 7446, 7448: DCD (convertor de cod) din BCD pentru afiajul cu 7 segmente 74154: DCD 4:16

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3. 2.2.3. Utilizarea decodificatoarelor pentru implementarea funciilor logice

Deoarece decodificatoarele genereaz toi termenii canonici, complementai sau nu, corespunztori variabilelor de intrare, ele se pot utiliza pentru implementarea funciilor logice. Pentru aceasta, funcia se aduce la forma canonic disjunctiv sau conjunctiv, iar minimizarea funciei nu mai este necesar. Implementarea unei funcii exprimate sub forma canonic disjunctiv se realizeaz utiliznd, pe lng circuitul decodificator, o poart I-NU cu un numr de intrri egal cu numrul de termeni ai funciei. O alt soluie const n utilizarea, n locul porii I-NU, a unei pori I la care se conecteaz terminalele asociate termenilor canonici care nu intervin n expresia funciei. Considerm urmtoarea funcie: F(A, B, C)= P0 + P1 + P5 + P6 Aceasta se poate scrie sub forma: F ( A, B, C ) = P0 P P5 P6 1 iar complementul funciei se poate scrie, innd cont de mintermii care lipsesc: F ( A, B, C ) = P2 + P3 + P4 + P7 Funcia iniial are expresia: F ( A, B, C ) = F ( A, B, C ) = P2 + P3 + P4 + P7 = P2 P3 P4 P7 (3.8) (3.7) (3.6) (3.5)

Din ecuaiile (3.6) i (3.8) rezult cele dou implementri cu decodificatoare care au ieirile active pe nivelul logic 0. Aceste implementri sunt prezentate n Figura 3.7.

Figura 3.7. Dou implementri ale unei funcii booleene prin decodificatoare cu ieiri active n starea 0 logic.

2.3. Codificatoare
Realizeaz funcia invers decodificatoarelor. Un codificator are cel mult 2n intrri, fiecare intrare corespunznd unui anumit numr de ordine, i n ieiri. La aplicarea unui semnal logic pe o intrare se obine la ieire un cuvnt de n bii, care reprezint codul intrrii activate. n mod normal, la un moment dat trebuie s fie activ o singur intrare. De exemplu, codificarea cifrelor zecimale n cod BCD se poate realiza cu un codificator avnd 10 intrri i 4 ieiri. Considerm un codificator cu starea activ 0 la intrare i 1 la ieire. Dac se aplic un semnal logic 0 la intrarea corespunztoare unei cifre zecimale, la ieire se obine codul BCD al cifrei respective. Tabelul de adevr este prezentat n Tabelul 3.4.

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.


Tabelul 3.4. Tabelul de adevr al codificatorului din zecimal n cod BCD.
Zecimal 0 1 2 3 4 5 6 7 8 9 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 BCD DCBA 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Ieirea D, de exemplu, este 1 atunci cnd 8 = 0 sau 9 = 0. Ecuaiile ieirilor se pot scrie astfel: D = 8 + 9 = 8 + 9 = 89 C = 4 + 5 + 6 + 7 = 4567 B = 2 + 3 + 6 + 7 = 23 67 A = 1 + 3 + 5 + 7 + 9 = 1 3 5 7 9 Schema circuitului este prezentat n Figura 3.8. (3.9)

Figura 3.8. Schema logic a codificatorului din zecimal n cod BCD.

Similar se poate realiza un codificator cu starea activ 1 la intrare. Dezavantajul schemei precedente este c atunci cnd se activeaz simultan mai multe intrri, codul de la ieire este eronat. De exemplu, dac se activeaz simultan intrrile 3 i 5 , se obine la ieire codul 0111, care corespunde intrrii 7 , neactivate. De aceea, au fost realizate codificatoare prioritare, care genereaz la ieire codul corespunztor intrrii cu prioritatea cea mai mare. Astfel de codificatoare prioritare, disponibile sub form integrat, sunt circuitele 74147, cu 9 intrri, i 74148, cu 8 intrri.

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

Figura 3.9. Reprezentarea codificatorului 74148.

Codificatorul 74148 (Figura 3.9) dispune de intrrile 0 , 1, , 7 , i ieirile Y0 , Y1 , Y2 . Fiecare din intrri are o prioritate, care crete cu numrul intrrii. Pentru validarea circuitului s-a prevzut intrarea EI (Enable Input); dac circuitul nu este validat, ieirile sunt inactive (1 logic). Ieirea GS este activat (0 logic) dac cel puin una din intrrile de date este activat, iar ieirea EO (Enable Output) este activat atunci cnd toate intrrile de date sunt inactive. Ieirea EO este necesar atunci cnd pentru extensie se conecteaz n cascad mai multe codificatoare, pentru validarea circuitului similar avnd intrri de date cu prioritate mai mic. Funcionarea este descris n Tabelul 3.5.
Tabelul 3.5. Tabelul de funcionare al codificatorului 74148.
Intrri EI 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 x x x x x x x x 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 x 0 1 1 1 1 1 1 x x 0 1 1 1 1 1 x x x 0 1 1 1 1 x x x x 0 1 1 1 x x x x x 0 1 1 x x x x x x 0 1 x x x x x x x 0 Y 2 Y1 Y 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 Ieiri GS 1 1 0 0 0 0 0 0 0 0 EO 1 0 1 1 1 1 1 1 1 1

Ecuaiile ieirilor sunt urmtoarele: Y2 = 4 5 6 7 Y1 = 2 3 6 7 Y0 = 1 3 5 7 Codificatorul din zecimal n cod BCD prezentat n exemplul precedent poate fi realizat sub form de codificator prioritar, utiliznd circuitul 74148. Ecuaiile ieirilor se pot scrie astfel: D = 89 C = 4 5 6 7 = Y2 B = 2 3 6 7 = Y1 A = 1 3 5 7 9 = Y0 9 Schema circuitului este prezentat n Figura 3.10. (3.11) (3.10)

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

Figura 3.10. Codificator prioritar din zecimal n cod BCD realizat cu circuitul 74148.

Dac este activ intrarea 8 sau 9 ( 8 9 = 0), trebuie s se invalideze circuitul 74148, astfel nct codul de ieire s nu depind dect de cele dou intrri 8 i 9 . Trebuie s se aplice nivelul logic 1 pe intrarea EI , deci EI = 8 9 , iar ieirea D trebuie s fie 1: D = 8 9 . n acest caz, Y0 = Y1 = Y2 = 1 . Dac 9 = 1, 8 = 0, DCBA = 1000, iar dac 9 = 0, DCBA = 1001. Codificatoarele prioritare se mai utilizeaz la realizarea sistemelor de ntreruperi multiple, la care unitatea central va rspunde, din numrul de cereri de ntrerupere activate simultan, numai la cea cu prioritatea maxim.

2.4. Multiplexoare
Multiplexorul este un circuit combinaional care transmite un semnal de la o intrare selectat la o ieire unic. Se mai numete circuit selector. n general, un multiplexor are 2n intrri de date, D0 , D1 , ..., D2n 1 , n intrri de selecie S0, S1, , Sn-1, i o ieire Z. Reprezentarea simbolic este prezentat n Figura 3.11.

Figura 3.11. Reprezentarea simbolic a unui multiplexor.

Ieirea Z are expresia: Z = Dk (3.12) unde k = (Sn-1 Sn-2 S0) este echivalentul zecimal al numrului binar reprezentat de intrrile de selecie. Considerm un multiplexor cu 4 intrri de date i 2 intrri de selecie (Figura 3.12).

10

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

Figura 3.12. Reprezentarea unui multiplexor 4:1.

Tabelul de adevr al acestui multiplexor este prezentat n Tabelul 3.6.


Tabelul 3.6. Tabelul de adevr al unui multiplexor 4:1.
S1S0 00 00 01 01 10 10 11 11 D0D1D2D3 0 x x x 1 x x x x 0 x x x 1 x x x x 0 x x x 1 x x x x 0 x x x 1 Z 0 1 0 1 0 1 0 1

Ieirea Z are ecuaia urmtoare: Z = S1 S 0 D0 + S1 S 0 D1 + S1 S 0 D2 + S1S 0 D3 Schema logic este prezentat n Figura 3.13. (3.13)

Figura 3.13. Schema logic a unui multiplexor 4:1.

Multiplexoarele integrate posed, n general, dou ieiri complementare W i W , i o intrare de validare a ieirii sau selecia circuitului E . Exemple de asemenea circuite sunt urmtoarele: 74150: 16 intrri de date, o intrare de validare E i o ieire W .

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3. 74151: 8 intrri de date, o intrare de validare E i dou ieiri, W i W . 74152: 8 intrri de date, fr intrare de validare i o singur ieire W .

11

74157: 4 multiplexoare cu cte 2 intrri de date, cu logic de selecie i validare comun (o linie de selecie S i una de validare E ), i cte o ieire necomplementat 1Y, 2Y, 3Y, 4Y. 74158: circuit similar cu 74157, dar cu cte o ieire complementat. Reprezentarea simplificat a circuitului 74151 este prezentat n Figura 3.14.

Figura 3.14. Reprezentarea multiplexorului 74151.

Extinderea capacitii de multiplexare se poate realiza prin conectarea n paralel a mai multor multiplexoare. De exemplu, pentru realizarea unui multiplexor 16:1, se pot conecta dou multiplexoare 8:1, ca n Figura 3.15.

Figura 15. Multiplexor 16:1 realizat prin utilizarea a dou multiplexoare 8:1.

Bitul c.m.s. din cuvntul de selecie se utilizeaz pentru validare. Primul circuit este selectat de un cuvnt de forma 0 (de la 0 la 7), iar al doilea de un cuvnt de forma 1 (de la 8 la 15). Dac sunt necesare mai multe linii de selecie suplimentare, ca de exemplu pentru o extindere de la 8 la 32 de bii, se poate utiliza un decodificator cu un numr de ieiri egal cu numrul de multiplexoare utilizate. n general, pentru extinderea multiplexrii de 2k ori sunt necesare k linii de selecie suplimentare, deci un decodificator cu 2k linii de ieire. De exemplu, pentru extinderea de la 8 la 32 de bii (de 4 ori) sunt necesare dou linii de selecie suplimentare. Schema unui asemenea circuit este prezentat n Figura 3.16. Exist mai multe utilizri ale multiplexoarelor n cadrul sistemelor de calcul, de exemplu: Pentru comutarea mai multor surse de informaie ctre o singur destinaie; Pentru realizarea magistralelor de transmitere a informaiilor; Pentru conversia paralel-serie a datelor, aplicnd datele n paralel la intrrile de date i modificnd succesiv codul de selecie; Pentru implementarea circuitelor combinaionale.

12

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

Figura 3.16. Multiplexor 32:1 realizat cu patru multiplexoare 8:1 i un decodificator.

Din relaia de definiie rezult c multiplexorul genereaz toi termenii canonici minimali ai variabilelor de selecie, multiplicai cu variabila de intrare. Dac toate intrrile de date sunt la 1 logic, se genereaz toi mintermii. Eliminarea unora din acestea se realizeaz conectnd la 0 logic intrrile de date corespunztoare. De exemplu, implementarea funciei de 3 variabile: F(A, B, C) = P0 + P1 + P5 +P6 (3.14) se realizeaz aplicnd valoarea 1 logic pe intrrile X0, X1, X5 i X6, i valoarea 0 logic pe intrrile X2, X3, X4 i X7 (Figura 3.17).

Figura 3.17. Implementarea unei funcii de 3 variabile cu un multiplexor 8:1.

n exemplul anterior, funcia de 3 variabile s-a implementat cu un multiplexor avnd 23 = 8 intrri. Aceeai funcie se poate implementa cu un multiplexor avnd 4 intrri, dac una din variabile se aplic pe liniile de intrare, iar celelalte dou variabile pe liniile de selecie. Funcia se poate scrie sub forma urmtoare:
F ( A, B, C ) = ABC+ ABC+ ABC+ ABC = A B 1 + A B C + A B C

= P0 1 + P1 0 + P2 C + P3 C

Aceast implementare este prezentat n Figura 3.18. n general, o funcie de n variabile se poate implementa cu un multiplexor avnd 2n 1 intrri de date. La implementarea unui circuit combinaional cu mai multe ieiri se prefer utilizarea unui decodificator i a unor pori I-NU sau I, fa de utilizarea cte unui multiplexor pentru fiecare ieire a

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

13

circuitului. Dac, n cazul a n variabile nu se dispune de un multiplexor cu 2n-1 intrri, ci cu mai puine, implementarea se poate realiza cu mai multe etaje (nivele) de multiplexoare.

Figura 3.18. Implementarea unei funcii de 3 variabile cu dou multiplexoare 4:1.

2.5. Demultiplexoare
Demultiplexorul este un circuit combinaional care dispune, n cazul general, de o intrare de date D, n intrri de selecie S0, S1, , Sn-1, i 2n ieiri Z 0 , Z1 , ..., Z 2n 1 . Intrrile de selecie determin apariia semnalului de la intrare la una din cele 2n ieiri. Se mai numete circuit distribuitor. Reprezentarea simbolic este prezentat n Figura 3.19.

Figura 3.19. Reprezentarea simbolic a unui demultiplexor.

Ieirea Zj are ecuaia: 0, j k Zj = D, j = k (3.15)

pentru j = 0, 1, 2n-1, iar k = (Sn-1 S1S0) este echivalentul zecimal al numrului binar reprezentat de intrrile de selecie. Considerm un demultiplexor cu 2 intrri de selecie i 4 ieiri (Figura 3.20).

Figura 3.20. Reprezentarea unui demultiplexor 1:4.

Tabelul de adevr al acestui demultiplexor este prezentat n Tabelul 3.7.

14

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.


Tabelul 3.7. Tabelul de adevr al unui demultiplexor 1:4.
S1S0 00 01 10 11 Z0Z1Z2Z3 D000 0D00 00D0 000D

Ecuaiile ieirilor sunt urmtoarele: Z 0 = S1 S 0 D Z1 = S1 S 0 D Z 2 = S1 S 0 D Z 3 = S1S 0 D Schema logic este prezentat n Figura 3.21. (3.16)

Figura 3.21. Schema logic a unui demultiplexor 1:4.

Un caz particular al demultiplexorului l constituie decodificatorul, la care intrarea de date lipsete sau este permanent n starea logic 1. Circuitele demultiplexoare integrate au, n general, intrrile i ieirile active pe nivelul logic 0. Exemple de asemenea circuite sunt urmtoarele: 74154: DMUX 1:16, cu 4 intrri de selecie; 74155: dou DMUX 1:4, cu posibilitatea de a se utiliza ca un DMUX 1:8 (cu 3 intrri de selecie).

Fiecare demultiplexor al circuitului 74155 dispune de o poart la care una din intrri se poate utiliza ca intrare de date, iar a doua ca intrare de validare (strobare). Tabelul 3.8 prezint tabelul de funcionare pentru un circuit DMUX 1:4 al circuitului 74155.

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.


Tabelul 3.8. Tabelul de funcionare al circuitului 74155.
Selecie BA xx 00 01 10 11 xx Strobare 1G 1 0 0 0 0 x Date 1C x 1 1 1 1 0 Ieiri 1Y 0 1Y 1 1Y 2 1Y 3 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1

15

1 1

Pentru realizarea unui circuit DMUX 1:8, terminalele 1C i 2C se utilizeaz pentru selecie, iar 1G i 2G pentru strobare sau pentru date (Figura 3.22).

Figura 3.22. Utilizarea circuitului 74155 ca demultiplexor 1:8.

Pentru utilizarea ca decodificator, intrarea de date 1C se conecteaz la 1 logic. Numrul liniilor de ieire se poate extinde prin conectarea n cascad. Deoarece la ieirea unui demultiplexor se obin toi termenii canonici minimali ai variabilelor de selecie multiplicai cu variabilele de intrare, cu ajutorul unui circuit DMUX 1:2n se poate implementa orice funcie logic de n variabile sub forma canonic disjunctiv. Termenii canonici sunt introdui ntr-o poart SAU. Demultiplexoarele se utilizeaz pentru transmiterea informaiei de la intrare la o anumit adres, de exemplu la nscrierea informaiei n memorie.

2.6. Memorii ROM


Memoriile ROM (Read Only Memory) reprezint o alt categorie de circuite care se pot utiliza pentru implementarea unui set de funcii logice. Aceste memorii conin un set de locaii utilizate pentru stocarea informaiei binare. Coninutul acestor locaii este fixat n momentul fabricaiei, aceste memorii fiind programate prin mti. Pe lng acestea, exist i memorii ROM programabile care utilizeaz fuzibile, numite PROM (Programmable ROM). Acestea pot fi nscrise de ctre utilizator, cu ajutorul unui echipament de programare corespunztor. De asemenea, exist memorii PROM care pot fi terse cu ajutorul razelor ultraviolete, i apoi pot fi reprogramate. Acestea se numesc EPROM (Erasable Programmable ROM). n fine, memoriile ROM care utilizeaz o tehnologie de tergere prin impulsuri electrice se numesc EEPROM sau E2PROM (Electrically Erasable Programmable ROM). Diferitele variante de memorii ROM sunt nevolatile, deci i pstreaz coninutul i dup ntreruperea tensiunii de alimentare. O memorie ROM are k intrri i n ieiri. Intrrile furnizeaz adresa pentru memorie, iar ieirile furnizeaz coninutul cuvntului selectat de adresa de la intrare. Numrul cuvintelor dintr-o memorie k ROM este determinat de faptul c prin k linii de adres se pot selecta 2 cuvinte. Memoria ROM nu are date de intrare, deoarece nu este posibil operaia de scriere. Memoriile ROM integrate dispun de una sau mai multe intrri de validare i ieiri cu trei stri pentru a permite realizarea unor memorii de dimensiuni mai mari.

16

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

Considerm, de exemplu, o memorie ROM de 328, care conine 32 de cuvinte de 8 bii fiecare. Exist cinci linii de intrare, care permit specificarea adreselor cuprinse ntre 0 i 31. Structura intern a acestei memorii este indicat n Figura 3.23. Intrrile sunt decodificate n 32 ieiri distincte cu ajutorul unui decodificator 5:32. Fiecare ieire a decodificatorului reprezint o adres de memorie. Cele 32 de ieiri sunt conectate prin intermediul unor conexiuni programabile la fiecare din cele opt pori SAU. Fiecare poart SAU trebuie considerat ca avnd 32 de intrri. Pentru aceste pori s-au utilizat simboluri simplificate. n locul unor linii de intrare multiple la fiecare din aceste pori, s-a figurat o singur linie. Liniile de intrare sunt figurate perpendicular pe aceast linie i sunt conectate n mod selectiv la porile respective. O conexiune este indicat printr-un la intersecia a dou linii. Fiecare ieire a decodificatorului este conectat prin intermediul unui fuzibil la una din intrrile fiecrei pori SAU. Deoarece fiecare poart SAU are 32 de conexiuni interne programabile, i deoarece exist opt pori SAU, aceast memorie ROM conine 328 = 256 de conexiuni programabile. n general, o memorie ROM cu capacitatea de 2k n are un decodificator intern k:2k i n pori SAU. Fiecare poart SAU are 2k intrri, care sunt conectate prin conexiuni programabile la fiecare din ieirile decodificatorului.

Figura 3.23. Logica intern a unei memorii ROM cu capacitatea de 32 8.

Coninutul locaiilor unei memorii ROM poate fi specificat printr-o tabel de adevr. De exemplu, coninutul unei memorii ROM cu dimensiunea de 328 poate fi specificat printr-o tabel de adevr similar cu cea din Tabelul 3.9. Fiecare combinaie a intrrilor din tabel specific adresa unui cuvnt de 8 bii, a crei valoare este indicat n coloanele ieirilor. Tabelul 3.9 prezint numai primele patru i ultimele patru cuvinte ale memoriei ROM; tabelul complet trebuie s conin lista tuturor celor 32 de cuvinte.
Tabelul 3.9. Tabelul de adevr al unei memorii ROM (parial).
Intrri I4 I3 I2 I1 I0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 Ieiri A7 A6 A5 A4 A3 A2 A1 A0 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 0

!
1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1

!
0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

17

Programarea memoriei ROM conform tabelului de adevr de mai sus conduce la configuraia din Figura 3.24. Fiecare valoare 0 din tabelul de adevr specific un circuit deschis, i fiecare valoare 1 specific un circuit nchis. De exemplu, tabelul specific un cuvnt cu valoarea 11000101 la adresa 00010. Cei patru bii de 0 din cadrul cuvntului sunt programai prin deschiderea conexiunilor dintre ieirea 2 a decodificatorului i intrrile porilor SAU asociate cu ieirile A5, A4, A3 i A1. Cei patru bii de 1 din cadrul cuvntului sunt marcai cu un n schem, pentru a indica un circuit nchis. Atunci cnd intrarea memoriei ROM este 00010, ieirea 2 a decodificatorului va fi la 1 logic, celelalte ieiri fiind la 0 logic. Semnalul cu nivelul 1 logic de la ieirea 2 a decodificatorului se propag prin circuitele nchise i porile SAU la ieirile A7, A6, A2 i A0, iar celelalte ieiri rmn la 0 logic. Rezultatul este c la ieirile de date se aplic cuvntul cu valoarea 11000101.

Figura 3.24. Programarea memoriei ROM conform Tabelului 3.9.

Dup cum s-a artat anterior, un decodificator genereaz toi mintermii variabilelor de intrare. Prin inserarea unor pori SAU pentru nsumarea mintermilor funciilor booleene, se poate implementa orice circuit combinaional. O memorie ROM conine att un decodificator, ct i pori SAU n cadrul aceluiai circuit. Prin nchiderea conexiunilor pentru mintermii inclui n cadrul funciei, ieirile memoriei ROM pot fi programate pentru a reprezenta funciile booleene ale variabilelor de intrare dintr-un circuit combinaional. Din punctul de vedere al unui circuit care implementeaz o funcie boolean, fiecare terminal de ieire al unei memorii ROM este considerat separat ca ieire a funciei booleene exprimate ca o sum de mintermi. De exemplu, memoria ROM din Figura 3.24 poate fi considerat ca un circuit combinaional cu opt ieiri, fiecare fiind o funcie a celor cinci variabile de intrare. Ieirea A7 poate fi exprimat ca o sum a mintermilor, n felul urmtor (punctele reprezint mintermii de la 4 la 27, care nu apar n figur): A7 (I4, I3, I2, I1, I0) = (0, 2, 3, , 29) Memoriile ROM sunt utilizate pentru implementarea circuitelor combinaionale complexe direct din tabelul de adevr. Aceste memorii sunt utile pentru conversia dintr-un cod n altul, pentru generarea operaiilor aritmetice complexe, ca nmulirea sau mprirea, i n general, pentru aplicaii care necesit un numr moderat de intrri i un numr mare de ieiri. n practic, la implementarea unui circuit combinaional printr-o memorie ROM, nu este necesar s se deseneze schema logic sau s se indice conexiunile interne din cadrul memoriei. Trebuie s se specifice doar o anumit memorie ROM prin numrul circuitului i tabelul de adevr al memoriei. Tabelul de adevr conine toate informaiile necesare programrii memoriei. De exemplu, se consider proiectarea unui circuit combinaional care accept la intrare un numr de 3 bii i genereaz la ieire un numr binar egal cu ptratul numrului de la intrare. Prima etap pentru proiectarea circuitului este ntocmirea tabelului de adevr. n cele mai multe cazuri,

18

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

aceasta este singura operaie necesar. n alte cazuri, se poate utiliza un tabel de adevr parial pentru memoria ROM innd cont de anumite proprieti ale variabilelor de ieire. Tabelul 3.10 reprezint tabelul de adevr pentru circuitul proiectat.
Tabelul 3.10. Tabelul de adevr pentru circuitul care genereaz ptratele valorilor de la intrare.
Intrri A2 A1 A0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Ieiri B5 B4 B3 B2 B1 B0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 Zecimal 0 1 4 9 16 25 36 49

Pentru circuitul proiectat, sunt necesare trei intrri i ase ieiri. Se observ c ieirea B0 este egal ntotdeauna cu intrarea A0, astfel nct nu este necesar generarea acestei ieiri cu ajutorul memoriei ROM. De asemenea, ieirea B1 este ntotdeauna 0. Astfel, trebuie s se genereze doar patru ieiri cu memoria ROM. Memoria trebuie s aib minimum trei intrri i patru ieiri. Cele trei intrri specific opt cuvinte, deci dimensiunea minim a memoriei necesare este de 84. Schema circuitului este prezentat n Figura 3.25.

Figura 3.25. Implementarea cu o memorie ROM a circuitului care genereaz ptratele valorilor de la intrare.

2.7. Reele logice programabile


O reea logic programabil PLA (Programmable Logic Array) este similar ca i concept cu o memorie ROM, cu excepia faptului c nu realizeaz decodificarea complet a variabilelor i nu genereaz toi mintermii. Decodificatorul este nlocuit cu o reea de pori I care poate fi programat pentru a genera termenii produs ai variabilelor de intrare. Termenii produs sunt apoi conectai n mod selectiv cu pori SAU pentru a genera suma termenilor produs pentru funciile booleene necesare. Structura de baz a unui circuit PLA este prezentat n Figura 3.26. Un circuit PLA poate implementa n mod direct un set de funcii logice exprimate printr-un tabel de adevr. Fiecare intrare pentru care valoarea funciei este adevrat necesit un termen produs, i acestuia i corespunde o linie de pori I din primul etaj al circuitului PLA. Fiecare ieire corespunde la o linie de pori SAU din al doilea etaj al circuitului. Numrul de pori SAU corespunde cu numrul de intrri din tabela de adevr pentru care ieirea este adevrat. Dimensiunea total a circuitului PLA este egal cu suma dintre dimensiunea reelei de pori I i dimensiunea reelei de pori SAU. Din Figura 3.26 se observ c dimensiunea reelei de pori I este egal cu numrul de intrri multiplicat cu numrul diferiilor termeni produs, iar dimensiunea reelei de pori SAU este egal cu numrul de ieiri multiplicat cu numrul termenilor produs.

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

19

Figura 3.26. Structura general a unui circuit PLA.

Un circuit PLA are dou caracteristici care determin o implementare eficient a unui set de funcii logice. Prima este c singurele intrri din tabelul de adevr care necesit pori logice sunt cele crora le corespunde o valoare adevrat pentru cel puin o ieire. A doua este c un anumit termen produs va avea o singur intrare n circuitul PLA, chiar dac termenul produs este utilizat n mai multe ieiri.

Figura 3.27. Structura intern a unui circuit PLA cu trei intrri, patru termeni produs i dou ieiri.

Considerm implementarea urmtoarelor funcii booleene ntr-un circuit PLA:

20

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3. F1 = A B + AC + ABC F2 = AC + BC

(3.17)

Structura intern a circuitului PLA care implementeaz aceste funcii este prezentat n Figura 3.27. Fiecare intrare trece printr-un buffer i un inversor. Exist conexiuni programabile de la fiecare intrare i complementul acesteia la intrrile fiecrei pori I, indicate prin interseciile dintre liniile verticale i orizontale. Ieirile porilor I au conexiuni programabile la intrrile fiecrei pori SAU. Ieirea fiecrei pori SAU constituie intrare ntr-o poart SAU EXCLUSIV, iar cealalt intrare poate fi programat fie la 1 logic, fie la 0 logic. Ieirea este inversat dac aceast intrare este 1 logic (deoarece X 1 = X ), i rmne neschimbat dac aceast intrare este 0 logic (deoarece X 0 = X ). Modul de programare a circuitului PLA se poate specifica sub form tabelar. De exemplu, pentru circuitul din Figura 3.27 programarea este specificat n Tabelul 3.11. Tabelul const din trei seciuni. Prima seciune listeaz numerele termenilor produs. A doua seciune specific conexiunile necesare dintre intrri i porile I. A treia seciune specific conexiunile dintre porile I i porile SAU. Fiecare variabil de ieire poate fi adevrat (A) sau complementat (C), ceea ce se controleaz prin poarta SAU EXCLUSIV. Pentru fiecare termen produs, intrrile sunt marcate cu 1, 0 sau . Dac o variabil dintr-un termen produs apare sub form necomplementat, variabila este marcat cu 1. Dac o variabil dintr-un termen produs apare sub form complementat, ea este marcat cu 0. Dac variabila lipsete din termenul produs, ea este marcat cu . Variabilele de ieire sunt marcate cu 1 pentru termenii produs care sunt inclui n cadrul funciei. O ieire marcat cu A indic faptul c cealalt intrare a porii SAU EXCLUSIV corespunztoare trebuie conectat la 0, iar o ieire marcat cu C indic o conectare la 1.
Tabelul 3.11. Tabelul de programare pentru circuitul PLA din Figura 3.27.
Intrri Termen produs AB AC BC ABC 1 2 3 4 A B C 1 0 1 1 1 1 0 1 0 Ieiri (A) (C) F 1 F2 1 1 1 1 1

Dimensiunea unui circuit PLA este specificat prin numrul intrrilor, numrul termenilor produs i numrul ieirilor. Un circuit PLA tipic are 16 intrri, 48 de termeni produs i 8 ieiri. Pentru n intrri, k termeni produs i m ieiri, logica intern a circuitului PLA const din n buffere-inversoare, k pori I, m pori SAU, i m pori SAU EXCLUSIV. Exist 2n k conexiuni programabile ntre intrri i porile I, k m conexiuni programabile ntre porile I i porile SAU, i m conexiuni programabile asociate cu porile SAU EXCLUSIV. Pentru proiectarea unui sistem digital cu un circuit PLA, nu este necesar s se indice conexiunile interne ale circuitului, ci trebuie s se specifice doar tabela de programare. Ca i n cazul memoriilor ROM, circuitele PLA pot fi programate prin mti sau programate de ctre utilizator. Circuitele PLA programate de ctre utilizator se numesc FPLA (Field Programmable Logic Array). La implementarea funciilor logice cu ajutorul circuitelor PLA, trebuie s se reduc numrul termenilor produs n scopul reducerii complexitii circuitului. Pentru aceasta trebuie simplificate funciile booleene astfel nct acestea s aib un numr minim de termeni. Numrul de literale dintr-un termen este mai puin important, deoarece toate variabilele de intrare sunt disponibile. Trebuie simplificat att forma necomplementat, ct i cea complementat a fiecrei funcii pentru a se determina care din acestea se poate exprima cu ajutorul unui numr mai mic de termeni produs i care utilizeaz termeni produs care sunt utilizai i de alte funcii.

Arhitectura calculatoarelor Lucrarea de laborator Nr. 3.

21

3. Desfurarea lucrrii
3.1. Se va realiza sinteza prin pori logice a unui convertor din codul exces 3 n BCD. 3.2. Se va realiza sinteza prin pori logice a unui convertor din cod binar n codul Gray. 3.3. Se va implementa cu un decodificator i pori externe circuitul combinaional definit prin urmtoarele funcii booleene: F1 ( A, B, C ) = A B + ABC F2 ( A, B, C ) = A + C F3 ( A, B, C ) = AB + AB 3.4. Se va realiza un codificator prioritar de 16 bii cu dou circuite 74148. 3.5. Se va implementa cu un multiplexor 8:1 urmtoarea funcie boolean: F (A, B, C, D) = (2, 3, 5, 6, 8, 9, 12, 14) 3.6. Se va ntocmi tabelul de adevr pentru o memorie ROM cu dimensiunea 84 care implementeaz urmtoarele funcii booleene: W (A, B, C) = (3, 6, 7) X (A, B, C) = (0, 1, 4, 5, 6) Y (A, B, C) = (2, 3, 4) Z (A, B, C) = (2, 3, 4, 7) 3.7. Se va ntocmi tabelul de programare al unui circuit PLA pentru cele patru funcii booleene de la punctul 3.6. Se va minimiza numrul termenilor produs i se va ncerca partajarea acestor termeni ntre mai multe funcii. 3.8. Se va ntocmi tabelul de programare al unui circuit PLA pentru circuitul combinaional care genereaz ptratul unui numr de 3 bii. Se va minimiza numrul termenilor produs. 3.9. Se vor implementa urmtoarele funcii booleene cu ajutorul unui circuit PLA: F1 (A, B, C) = (0, 1, 2, 4) F2 (A, B, C) = (0, 5, 6, 7)