Sunteți pe pagina 1din 7

14.

Reprezentarea functiilorlogicetabeluldeadevar

Platformdeelearningicurriculecontent pentrunvmntulsuperiortehnic

ProiectareaLogic

REPREZENTAREA FUNCIILOR LOGICE TABELUL DE ADEVR

APLICAII CU CIRCUITE PLA I AFIAJE CU 7 SEGMENTE

Un circuit PLA este o macro-celul rectangular constnd dintr-o arie de tranzistoare aliniate astfel nct s formeze rndurile n coresponden cu termenii produs i coloanele n coresponden cu relaia intrri-ieiri. Coloanele intrrilor i ieirilor partiioneaz PLA n dou sub-arii: planul de intrare i respectiv planul de ieire (aa cum se poate urmri n figura 4). Fiecare rnd al PLA-ului este n coresponden biunivoc cu un termen produs aparinnd respectivei sume de produse. Fiecare tranzistor din planul de intrare este n coresponden biunivoc cu un literal al formei sum de produse. Oricare tranzistor din planul de ieire este legat de o ieire scalar a termenului produs. Din aceste motive prima int a minimizrii logice este reducerea numrului de produse i inta secundar este reducerea literalilor din produse. Alte obiective de optimizare sunt relevante atunci cnd funciile modelate prin forme n dou nivele sunt implementate altfel dect prin PLA-uri. Reprezentri logice n dou nivele pentru funcii scalare, spre exemplu, pot fi implementate prin pori complexe a cror mrime este corelat cu numrul de literali din forma factorizat a acelei reprezentri. n astfel de situaii obiectivul major este minimizarea numrului de literali. Minimizarea logic pentru o funcie scalar sau o funcie vectorial se face dup aceleai principii, dar cazul vectorial este mult mai complex. Minimizarea disjunct a componentelor scalare ale unei funcii vectoriale poate conduce la rezultate suboptimale deoarece optimizarea nu poate exploata comunitatea unor termeni produs. Un rezultat important n optimizarea logic n dou nivele este echivalena funciilor vectoriale booleene de variabile booleene cu funciile booleene scalare de variabile multi-valorice. Din astfel de raiuni, pentru nceput abordarea se va concentra asupra tehnicilor de optimizare ale funciilor scalare de variabile binare i multi-valorice. n vederea reliefrii diferenelor dintre minimizarea vectorial i minimizarea scalar a componentelor unei funcii vectoriale se consider decodificatorul dispozitivului de afiare cu apte segmente din exemplul urmtor.

Exemplul 8.

Se consider proiectarea unui decodificator (a se vedea figura 5) care s preia informaia de pe o magistral cu patru linii (x8, x4, x2 i x1) pe care sunt vehiculate valori zecimale codificate binar i s activeze corespunztor un dispozitiv de afiare cu apte segmente.
Dispozitivul de afiare cu apte segmente

Bloc logic decodificator ntre zecimal codificat binar i apte segmente

x8

x4

x2

x1

Figura 5. Schema bloc a decodificatorului.

Modul n care sunt formate cifrele zecimale cu dispozitivul de afiare este artat n figura 6. a f g b f a b f a a

b
c

e d

e d

e d

e d

a f b f

a b f

a b f

a b

e X

e d a f

e d a

e d

e d

e d

Figura 6. Configuraia cifrelor zecimale pentru dispozitivul de afiare cu 7 segmente.

Tabelul 2. Valorile liniilor de ieire ale decodificatorului pentru dispozitivul de afiare cu apte segmente n funcie de valorile liniilor de intrare.

Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

x8 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

x4 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

x2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

x1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

a 1 0 1 1 0 1 1 1 1 1 X X X X X X

b 1 1 1 1 1 0 0 1 1 1 X X X X X X

c 1 1 0 1 1 1 1 1 1 1 X X X X X X

d 1 0 1 1 0 1 1 0 1 0 X X X X X X

e 1 0 1 0 0 0 1 0 1 0 X X X X X X

f 1 0 0 0 1 1 1 0 1 1 X X X X X X

g 0 0 1 1 1 1 1 0 1 1 X X X X X X

Corespondena dintre valorile binare ale vectorului intrrilor (x8 x4 x2 x1) n decodificator i modul de activare al segmentelor de afiare, conform figurii 6, este prezentat n tabelul 1 (nfiat anterior). Deoarece pentru cifrele zecimale sunt utilizate doar codurile binare de la 0000 la 1001, pentru codurile binare rmase neutilizate (de la 1010 la 1111) valorile ieirilor decodificatorului sunt nespecificate (valori X). Pentru realizarea decodificatorului trebuie aleas o modalitate de implementare. Se poate implementa decodificatorul cu ajutorul unei memorii cu coninut fix, spre exemplu. n aceast situaie proiectarea se ncheie, practic, aici. Tot ceea ce mai trebuie fcut este ncrcarea coninutului coloanelor a, b, , g din primele 10 linii ale tabelului ntr-o memorie cu cel puin 10 locaii de cte, minimum, 7 bii fiecare. Se pot gsi, uor, astfel de memorii, chiar dac sunt mai mari dect ar fi necesar. Se poate ntmpla ca o astfel de soluie s nu fie de utilitate din vari motive (costul memoriei, disponibilitatea altor circuite etc.). De remarcat faptul c exist disponibile componente, circuite integrate MSI, deja manufacturate care implementeaz aceast funcie combinaional. Este cazul, spre exemplu, componentei TTL 74LS48 i se mai pot gsi i altele similare. S-ar putea ca din motive de afiare a cifrei 6 s nu fie acceptabile nici una dintre aceste componente i n aceast situaie trebuie gsite alte soluii. Deoarece decodificatorul poate fi implementat printr-un circuit combinaional reprezentabil printr-o formul boolean, sum de produse, se poate recurge la utilizarea diagramelor Karnaugh sau la utilizarea programului ESPRESSO pentru minimizarea euristica (sau exact). Ambele ci de abordare vor fi utilizate i comparate pentru nelegerea particularitilor respectivelor metode. Metoda diagramelor Karnaugh este relativ simpl de aplicat deoarece este convenabil numrul de variabile.

x2x1

00 01 11 10

x8x4 00 01 11 10 1 X 1 1 X 1 1 1 X X 1 1 X X

x2x1

00 01 11 10

x8x4 00 01 11 1 1 X 1 X 1 1 X 1 X

10 1 1 X X

x2x1

00 01 11 10

00 1 1 1

x8x4 01 11 1 X 1 X 1 X 1 X

10 1 1 X X

a(x8,x4,x2,x1) = x8 + x4 x1 + x2 + x4x1
x8x4 00 01 11 10 1 X 1 1 X 1 X X 1 1 X X

b(x8,x4,x2,x1) = x8 + x4 + x2x1 + x2x1


x8x4 00 01 11 10 1 X 1 X X X 1 1 X X

c(x8,x4,x2,x1) = x8 + x4 + x2 + x1 x2
x8x4 00 01 11 10 1 1 X 1 1 X 1 X X 1 X X

x2x1

00 01 11 10

x2x1

00 01 11 10

x2x1

00 01 11 10

d(x8,x4,x2,x1) = x2 x1 + x2x4 + x4x1 + x4 x2x1

e(x8,x4,x2,x1) = x2 x1 + x4x1

f(x8,x4,x2,x1) = x2x1 + x4x2 + x4 x1 + x8

x2x1

00 01 11 10

x8x4 00 01 11 10 1 X 1 1 X 1 1 X X 1 1 X X

g(x8,x4,x2,x1) = x8 + x4x2 + x4x2 +x2x1

Figura 7. Minimizarea scalar, prin metoda diagramelor Karnaugh, a funciilor decodificatorului pentru 7 segmente.

Utiliznd rezultatele obinute prin metoda Karnaugh, fr s se considere posibilii termeni partajai, este necesar un circuit PAL cu patru variabile de intrare, apte linii de ieire cu cel puin patru termeni produs (pentru fiecare linie de ieire) pentru implementarea decodificatorului acesta. S-ar putea folosi, spre exemplu, componenta P16H8 PAL. Se poate ntmpla ca printre condiiile proiectrii circuitului s se specific utilizarea unui circuit PLA pentru implementare, atunci trebuie inut cont de faptul c una dintre limitrile, relativ severe, ale acestor componente este numrul de termeni produs unici care sunt utilizai. Acetia corespund numrului de fire orizontale din structura circuitului. O component PLA tipic poate oferi 16 linii de intrare, opt linii de ieire i 48 de termeni produs (cum este, spre exemplu, componenta F100 PLA). Metodele de optimizare a circuitelor reprezentate prin sume de produse (sau circuite n dou nivele) pun ntotdeauna n eviden termenii partajabili.

Fiierul de date de intrare pentru minimizatorul ESPRESSO reflect tabelul de coresponden al decodificatorului:

.i 4 .o 7 .ilb x8 x4 x2 x1 .ob a b c d e f g .p 16 0000 1111110 0001 0110000 0010 1101101 0011 1111001 0100 0110011 0101 1011011 0110 1011111 0111 1110000 1000 1111111 1001 1110011 1010 - - - - - - 1011 - - - - - - 1100 - - - - - - 1101 - - - - - - 1110 - - - - - - 1111 - - - - - - .e Rezultatele obinute prin metoda de minimizare euristic conduc la doar 9 termeni produs distinci, dup cum arat fiierul cu rezultate al minimizatorului ESPRESSO: .i 4 .o 7 .ilb x8 x4 x2 x1 .ob a b c d e f g .p 9 -10- 0000001 -01- 0001001 -0-1 0110000 -101 1011010 --00 0110010 --11 1110000 -0-0 1101100 1--- 1000011 -110 1011111 .e

Corespunztor acestor termeni produs se pot scrie expresiile fiecrei linii de ieire: a = x4x2x1 + x2x1 + x4x1 + x8 + x4x2x1 b = x4x1 + x2x1 + x2x1 + x4x1 c = x4x1 + x4x2x1 + x2x1 + x2x1 + x4x2x1 d = x4x2 + x4x2x1 + x4x1 + x4x2x1 e = x4x1 + x4x2x1 f = x4x2x1 + x2x1 + x8 + x4x2x1 g = x4x2 + x4x2 + x8 + + x4x2x1
x8 x4 x2 x1

5
& x4x2

Se remarc, ntr-o prim aproximaie, apariia unei complexiti mai mari a funciilor segmentelor de afiare (63 de literali) comparativ cu rezultatele obinute prin metoda de minimizare a diagramei Karnaugh. La o privire mai atent, totui, se poate observa faptul c numrul de termeni produs distinci a sczut de la 15 la 9. Chiar dac expresiile individuale ale fiecrei funcii au, fiecare n parte, un numr mai mare de termeni produs, datorit gradului ridicat de partajare a acestora complexitatea, global a acestei variante, este mai mic. Mrimea dispozitivelor PLA este determinat, n primul rnd, de numrul de termeni produs. Minimizatorul ESPRESSO, a fost proiectat, ntre altele, pentru astfel de circuite. Partajarea termenilor produs nu este de nici un folos n implementarea circuitelor combinaionale prin componente PAL care nu pot pune n valoare termenii produs partajai dintre liniile de ieire. Dac se urmrete o implementare prin dispozitive PAL este indicat s se specifice minimizatorului ESPRESSO o abordare individual, scalar, a fiecrei funcii n parte (nu n sistem).

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