Sunteți pe pagina 1din 7

Seminar Circuite Integrate Digitale

Zoltan Hascsi

IMPLEMENTAREA CU MULTIPLEXOR A FUNCIILOR LOGICE


1. Toate variabilele funciei folosite pentru selecie n situaia fericit n care avem la dispoziie un multiplexor care are exact attea variabile de selecie cte variabile are funcia logic implementarea acesteia din urm este foarte simpl. Variabilele funciei sunt folosite pentru selecia intrrilor de date ale multiplexorului, iar intrrile de date se conecteaz la valorile logice 1 sau 0 conform tabelului de adevr. Exemplul 1 S considerm o funcia logic de trei variabile, f, definit prin tabelul de adevr:

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 0 1 0 0 1 1 1

Pentru implementarea ei vom folosi un multiplexor cu 3 intrri de selecie, adic cu 8 intrri de date (8 = 23), MUX 8:1. Dac vom lega variabilele funciei la intrrile de selecie astfel nct rangul lor s coincid, vom putea conecta intrrile de date ale multiplexorului la 1 logic i la 0 logic n ordinea rndurilor din tabelul de adevr. Astfel, variabila funciei cu rangul cel mai mare din tabelul de adevr o vom lega la intrarea de selecie cu rangul cel mai mare, .a.m.d. (s2 = a, s1 = b, s0 = c). Respectnd aceast regul pentru intrrile de selecie, intrarea de date i0 va corespunde primului rnd din tabelul de adevr (adic combinaiei abc = 000), intrarea de date i1 va corespunde urmtorului rnd (combinaia abc = 001), .a.m.d. Intrarea i0 se va conecta la valoarea logic a funciei citit pe primul rnd al tabelului de adevr, i1 se va conecta la valoarea logic a funciei citit pe rndul al doilea, .a.m.d.

f c b a

0 0 1 0 0 1 1 1 i i s0 00 11 s1 0 0 0 s20 i2 i3 i4 i5 0 1 0 1 M1 8 0 1 UX 0 : 1 0 0 1 1 f i6 0 1 1 i7 1 1 1

V putei imagina tabela de adevr (rotit cu 90 la stnga) suprapus peste multiplexor ca n desenul de mai sus. Un alt mod de abordare, mult mai formal dar la fel de simplu, are la baz expresia normal disjunctiv a funciei. Funcia din acest exemplu are forma normal disjunctiv: f = abc + abc + abc + abc = m2 + m5 + m6 + m7 Implementarea cu multiplexor const n legarea la 1 logic a intrrilor de date ai cror indici corespund cu indicii mintermenilor funciei. Celelalte intrri de date ale multiplexorului se conecteaz la 0 logic. Pentru a demonstra aceasta vom rescrie forma normal disjunctiv n varianta canonic, evideniind toate punctele mulimii de definiie (8 puncte corespunztoare celor 8 combinaii de valori logice ale variabilelor funciei): f = abc f (0) + abc f (1) + abc f (2) + abc f (3) + abc f (4) + abc f (5) + abc f (6) + abc f (7) tiind funcia multiplexorului, exprimat deasemenea n form normal-disjunctiv,

Seminar Circuite Integrate Digitale

Zoltan Hascsi

o = s2s1s0i0 + s2s1s0i1 + s2s1s0i2 + s2s1s0i3 + s2s1s0i4 + s2s1s0i5 + s2s1s0i6 + s2s1s0i7 , i considernd conexiunile s2 = a, s1 = b, s0 = c pentru intrrile de selecie rezult prin compararea termenilor celor dou expresii c i0 = f(0), i1 = f(1), i2 = f(2), .a.m.d:

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 0 1 0 0 1 1 1

= = = = = = = =

i0 i1 i2 i3 i4 i5 i6 i7

Conectnd intrrile de date la poteniale corespunztoare nivelelor de 0 i 1 logic conform procedeelor descrise anterior, se obine schema final a implementrii funciei cu MUX 8:1:

1 0 c b a s0 i0 i1 i2 i3 i4 i5 i6 i7 s1 MUX 8 : 1 s2 f
Exemplul 2 S lum schema de mai sus i s presupunem c proiectantul sau executantul schemei conecteaz variabilele funciei ntr-o alt ordine la intrrile de selecie, fie din neatenie, fie din neglijarea regulii pe care am explicat-o n exemplul anterior. Aadar, ce funcie este implementat n cele din urm dac n schema de mai sus variabele acesteia sunt conectate n ordine invers, s2 = c, s1 = b, s0 = a ?

1 0 a b c s0 i0 i1 i2 i3 i4 i5 i6 i7 s1 MUX 8 : 1 s2 f
Funcia implementat va fi cu totul alta, s-i spunem g. Ei, nu chiar foarte, foarte diferit, pentru c de exemplu valoarea funciei g pentru abc = 000 este identic cu valoarea funciei f. n schimb pentru combinaia de valori logice abc = 011, multiplexorul cu intrrile de selecie n ordine invers va selecta intrarea de date corespunztoare combinaiei s2s1s0 = cba = 110, adic i6. Cum intrarea i6 este conectat la 1 logic, n acest caz funcia g va avea valoarea 1 pentru abc = 011, pe cnd funcia f trebuie s aib valoarea 0. Funcia g implementat neintenionat prin conectarea greit a variabilelor la intrrile de selecie este:

Seminar Circuite Integrate Digitale

Zoltan Hascsi

c 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

a 0 1 0 1 0 1 0 1

g 0 0 1 0 0 1 1 1

= = = = = = = =

i0 i1 i2 i3 i4 i5 i6 i7

Rearanjnd variabilele abc astfel nct a s fie variabila cea mai semnificativ din tabelul de adevr, obinem:

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

g 0 0 1 1 0 1 0 1

= = = = = = = =

i0 i4 i2 i6 i1 i5 i3 i7

2. O parte numai dintre variabilele funciei folosite pentru selecie Atunci cnd multiplexorul la ndemn are un numr de intrri de selecie inferior numrului de variabile ale funciei putem fi obligai s folosim circuite logice adiionale pentru a obine diverse funcii logice la intrrile lui de date. Exemplul 3 S lum aceeai funcie f i s o implementm cu ajutorul unui multiplexor cu numai dou intrri de selecie, adic 4 intrri de date (4 = 22). MUX 4:1. ncercnd o abordare ct mai rapid i ct mai facil a problemei vom porni de la tabelul de adevr de la exemplul 1, i vom alege pentru selecie primele dou variabile ale funciei, s1 = a i s2 = b. Tabelul de adevr l mprim n 4 pri corespunztoare celor 4 combinaii de valori logice pentru selecie, ab = 00, ab = 01, ab = 10, i ab = 11:

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 0 1 0 0 1 1 1

i0 i1 i2 i3

Pentru fiecare dintre cele patru combinaii de valori logice ale variabileor a i b va fi selectat o singur intrare de date, creia trebuie s i asigurm o valoare logic ce poate depinde de cealalt variabil a funciei, variabila c. Pentru exemplificare s presupunem c a = 0 i b = 1. Multiplexorul va selecta intrarea i1. Valoarea funciei n cazul n care ab = 01 este fie 1, dac c = 0 (vezi rndul 010 din tabelul de adevr), fie 0 dac c = 1 (vezi rndul 011 din tabelul de adevr). Aadar la intrarea i1 a multiplexorului vom avea funcia c (ncercuit n tabelul de adevr urmtor)

Seminar Circuite Integrate Digitale

Zoltan Hascsi

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 0 1 0 0 1 1 1

i0=0 i1=c i2=c i3=1

Cu ajutorul unui inversor pentru generarea funciei c plecnd de la variabila c, putem implementa funcia f cu MUX 4:1.

c 1 0 b a i i i i s0 0 1 2 3 s1 MUX 4 : 1 f
Ca i n exemplele anterioare este foarte important s respectm alegerea rangului variabilelor de selecie. Dac conectm b la s1 i a la s0 i dorim n continuare s implementm funcia f, intrrile i1 i i2 ale multiplexorului vor avea alte funcii logice pe intrarea lor (i1 va fi c, iar i2 va fi c). Exemplul 4 Oricum ar arata funcia logic, atunci cnd avem la dispoziie un multiplexor cu un numr de intrri de selecie mai mic cu o unitate fa de numrul de variabile, pe intrrile de date vom avea fie valori logice constante (0, cum a fost cazul intrrii i0, sau 1, cum a fost cazul intrrii i3 n exemplul anterior), fie o funcie dependent de variabila funciei care nu particip la selecie. Cum sunt posibile numai 2 funcii de o variabil, funcia identitate i funcia de negare, rezult c o funcie de n variabile poate fi implementat cu un multiplexor cu n-1 intrri de selecie folosind n plus cel mult un inversor. Intrrile de date ale multiplexorului se leag fie la potenialele corespunztoare valorilor logice 0 i 1, fie se conecteaz direct la variabila a n-a, fie la inversa acesteia obinut prin intermediul unui inversor. Se pune ntrebarea practic dac nu cumva aceeai funcie o putem implementa mai simplu, n cazul de fa fr s fie nevoie de inversor, printr-o alegere convenabil a variabilelor folosite la selecie ? n cutarea combinaiei fericite de variabile pentru selecie putem fie redesena tabelul de adevr, aranjnd variabilele n alt ordine (acb, sau cba de exemplu), fie putem inspecta tabelul de adevr iniial cutnd perechile de linii pentru care valorile logice ale variabilelor de selecie sunt identice. S alegem pentru selecie variabilele a i c, a fiind cea mai semnificativ variabil de selecie (s1= a, s0= c). n tabelul de adevr cutm mai nti rndurile pentru care a = 0 i c = 0 (ncercuite n tabelul de adevr ce urmeaz). Valoarea funciei pentru cele dou situaii poate depinde de cea de a treia variabil, b. n cazul acesta este chiar egal funcia identitate (i0 = b). Procedm n astfel pentru fiecare din cele patru combinaii de valori logice ale variabilelor a i c.

Seminar Circuite Integrate Digitale

Zoltan Hascsi

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 0 1 0 0 1 1 1

i0=b i1=0 i2=b i3=1

Odat gsite expresiile logice ale funciilor de la intrrile de date ale multiplexorului putem desena schema electric a implementrii funciei. O schem mai simpl este mai puin costisitoare, consum mai putin, i pe deasupra este i mai rapid (inversorul introducea o ntrziere suplimentar). Nu uitai de rangul variabilelor de selecie.

b c a i i i i s0 0 1 2 3 s1 MUX 4 : 1 f

1 0

Exemplul 5 S lum aceeai funcie f i s o implementm cu ajutorul unui multiplexor i mai simplu, cu o singur intrare de selecie, adic cu 2 intrri de date (2 = 21). MUX 2:1. Cu ajutorul tabelei de adevr putem identifica toate poziiile pentru care variabila de selecie are o valoare logic constant, similar exemplului precedent. Pentru nceput vom alege pentru selecie variabila a. Tabela de adevr se mparte n dou zone, dup valoarea logic a variabilei a. n fiecare zon valoarea funciei depinde de celelalte variabile ale ei, b i c. Pentru zona n care a = 0, funcia f(a=0) va avea valoarea bc (ncercuit n tabelul de adevr care urmeaz). Aceasta va fi chiar funcia de pe intrarea i0 (selectat de multiplexor cnd variabila de selecie are valoarea logic 0).

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 0 i =bc 1 0 0 0 1 i =b+c 1 1 1

Folosirea unui multiplexor mai simplu are totui un pre: creterea complexitii funciilor logice de la intrrile acestuia. Dac dintre cele trei variabile ale funciei f numai una este folosit pentru selecie, pe intrrile de date ne putem atepta la funcii de dou variabile care s necesite un circuit logic pentru implementare (cum este cazul funciei i0 care are nevoie de dou pori logice funcie ce a fost ncercuit n schema care urmeaz).

Seminar Circuite Integrate Digitale

Zoltan Hascsi

c b

i1 i0 s0 MUX 2 : 1 f

i aici se pune ntrebarea dac nu cumva o alt variabil folosit pentru selecie ar conduce la un circuit mai simplu i poate mai rapid. Exemplul urmtor va explora celelalte opiuni posibile. Exemplul 6 Alegem acum pentru selecie variabila c. Rndurile tabelului de adevr se vor grupa cte patru pentru fiecare valoare logic a variabilei c. Cu puin imaginaie sau experien se pot deduce funciile de pe intrrile de date inspectnd direct tabela de adevr. Dac suntem ns dezorientai putem desena separat tabelele de adevr pentru cele dou grupe. Un tabel de adevr pentru toate combinaiile de valori logice ale variabilelor a i b n care se vor trece valorile funciei f(c=0), i altul pentru valorile funciei f(c=1).

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 0 1 0 0 1 1 1

a 0 0 1 1

b 0 1 0 1

f(c=0) 0 1 i =b 0 0 1

a 0 0 1 1

b 0 1 0 1

f(c=1) 0 0 i =a 1 1 1

a b c i1 i0 s0 MUX 2 : 1 f
n cazul funciei noastre alegerea variabilei c reduce drastic circuitul, compus acum doar din multiplexorul MUX 2:1. Trebuie reinut ns c n general, implementarea cu un multiplexor cu mai puine variabile de selecie dect variabilele funciei de implementat necesit circuite logice suplimentare.

Seminar Circuite Integrate Digitale

Zoltan Hascsi

Exemplul 7 Aceeai funcie i acelai multiplexor MUX 2:1. Vom alege o cale alternativ pentru implementare i pentru compararea variantelor rezultate din alegerea variabilei pentru selecie. Punctul de plecare este expresia algebric a funciei f, ntr-o form oarecare, s zicem normal disjunctiv. f = abc + abc + abc + abc a) variabila a de selecie Pentru a identifica uor funciile de la intrrile de date ale multiplexorului vom grupa termenii expresiei algebrice astfel nct s putem da factor comun variabila folosit la selecie, a, respectiv inversa ei, a: f = a(bc) + a(bc + bc + bc) = a(bc) + a(bc + b) = a(bc) + a(c + b) Comparnd expresia rezultat cu expresia algebric a funciei generice a multiplexorului MUX 2:1, o = s0(i0)+ s0(i1) i tiind c a = s0, obinem direct (eventual chiar ntr-o form minimizat) funciile de la intrrile multiplexorului: i0 = bc i i1 = c + b b) variabila b de selecie Gruparea termenilor expresiei algebrice a funciei f se face acum evideniind drept factor comun variabila b, respectiv inversa ei: f = abc + abc + abc + abc = b(ac) + b(ac + ac + ac) = b(ac) + b(c + a) i0 = ac i i1 = c + a c) variabila c de selecie Gruparea termenilor expresiei algebrice a funciei f se face evideniind drept factor comun variabila c, respectiv inversa ei: f = abc + abc + abc + abc = c(ab + ab) + c(ab + ab) = c(b) + c(a) i0 = b i i1 = a n final putem compara toate cele trei variante de implementare, nvingtoare net fiind pentru cazul particular al funciei noastre cea de a treia variant (a crei schem a fost prezentat n exemplul anterior): variabila de selecie: i0 = i1 = a bc c+b b ac c + a c b a

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