Documente Academic
Documente Profesional
Documente Cultură
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)
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.
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)
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.
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
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)
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.
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)
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.
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)
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.
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
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)
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.
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
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).
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
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.
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.
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).
14
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)
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.
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).
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.
16
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.
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
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.
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
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.
19
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.
20
(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.
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)