Metode de
analiză şi sinteză a circuitelor combinaţionale
Se consideră un circuit combinaţional cu n intrări şi m
ieşiri. În Fig. 1 este dată o reprezentare prin schemă bloc a
circuitului. Pentru acest circuit putem scrie setul de funcţii:
y1=f1(x1,x2,...,xn)
y2=f2(x1,x2,...,xn)
.........................
ym=fm(x1,x2,...,xn)
unde f1,
f2,...,fm sunt funcţii booleene cu argumentele x1,x2,...,xn
Fig. 1
1. Analiza circuitelor combinaţionale
În cazul problemelor de analiză se cunoaşte structura circuitului
şi se cere să se stabilească valorile posibile la ieşiri
pentru toate combinaţiile posibile ale valorilor semnalelor de la
intrări.
Problema se soluţionează determinând expresiile funcţiilor
booleene corespunzătoare semnalelor de ieşire. Pe baza acestor
expresii se determină formele canonice ale funcţiilor care permit scrierea
tabelei de adevăr pentru fiecare funcţie. Tabelele de adevăr
conţin valorile funcţiilor pentru toate combinaţiile posibile
ale variabilelor de intrare.
Pentru rezolvarea problemei de analiză se parcurg următoarele
etape:
1. Pornind de la structura circuitului se
determină din aproape în aproape funcţiile corespunzătoare
ieşirilor
2. Pornind de la expresiile obţinute se
obţin formele canonice ale funcţiilor corespunzătoare
ieşirilor
3. Folosind tabelul de adevăr se
stabilesc valorile funcţiilor pentru toate combinaţiile posibile ale
argumentelor.
Etapa neobligatorie dar de multe ori utilă din punct de vedere practic
presupune obţinerea expresiilor minimale ale funcţiilor.
Materializarea expresiilor minimale are drept rezultat obţinerea unui
circuit echivalent cu primul dar mai economic decât primul.
Exemplul 1.
Se dă circuitul din Fig.2. realizat din 4 porţi logice. S-a notat
cu y1, y2 şi y3 ieşirile
porţilor P1, P2, P3 şi cu f1
şi cu f2 ieşirile porţilor P4 şi P5
care constituie de altfel şi ieşirile circuitului.
Fig. 2.
Determinarea expresiilor funcţiilor de ieşire începe parcurgând
schema de la stânga la dreapta prin scrierea expresiilor la ieşirile
porţilor din aproape în aproape. În cazul nostru se scriu pe rând
expresiile ieşirilor notate cu y1, y2 şi y3.
Obţinem:
y1=(x1+x2)’
y2=x2’
y3=(x2’.x3)’
În următorul pas vom scrie expresiile pentru f1 şi f2
în funcţie de intrările y1, y2, y3
şi x3. Obţinem:
f1=y2.y3
f2=y1+x3
Înlocuind relaţiile pentru y1, y2 şi y3 se obţine pentru f1
şi f2 expresiile:
f1=x2’.(x2’.x3)’
f2=(x1+x2)’+x3
Folosind proprietăţile lui DeMorgan, desfăcând parantezele
şi aplicând proprietăţile algebrei booleene se obţine:
f1=x2’.(x2+x3’)=x2’.x2+x2’.x3’=x2’.x3’
f2=x1’.x2’+x3
Se dezvoltă expresiile de mai sus pentru a se obţine formele
canonice normal disjunctive (FCND):
f1=(x1+x1’).x2’.x3’=x1.x2’.x3’+x1’.x2’.x3’=m0+m4
f2=x1’.x2’.(x3+x3’)+(x1+x1’).(x2+x2’).x3=
=x1’.x2’.x3+x1’.x2’.x3’+x1.x2.x3+x1.x2’.x3+x1’.x2.x3+x1’.x2’.x3=
=x1’.x2’.x3+x1’.x2’.x3’+x1.x2.x3+x1.x2’.x3+x1’.x2.x3=m0+m1+m3+m5+m7
Pe baza FNCD putem scrie tabelul de adevăr pentru cele două
funcţii:
x1 |
x2 |
x3 |
f1 |
f2 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
2. Minimizarea funcţiilor booleene
În general, funcţionarea unui circuit
combinaţional poate fi exprimată printr-un set de funcţii
booleene care la rândul lor pot fi materializate prin intermediul unui circuit
combinaţional. Problema de minimizare a funcţiilor booleene poate fi
exprimată astfel: fiind dată o funcţie booleană f (sau un
set de funcţii booleene f1, f2,...,fm)
să se obţină o formă a acesteia (acestora) care să
satisfacă o anumită condiţie de minimalitate. Dintre cele mai
utilizate criterii de minimalitate amintim:
2.1. Minimizarea FB folosind
proprietăţile algebrei booleene
Ţinând cont de cel de al treilea criteriu de
minimalitate, se poate obţine o sumă minimă folosind
proprietăţile algebrei booleene. În general, o sumă minimă
se poate obţine din forma canonică disjunctivă prin aplicarea
teoremei de adiacenţă logică exprimată prin expresia
x.y+x.y’=x şi proprietatea de idempotenţă exprimată prin
expresia x+x=x. Teorema de adiacenţă precum şi proprietatea de
idempotenţă pot fi aplicate în mod repetat până când se
obţine o expresie la care aceste proprietăţi nu mai pot fi
aplicate.
Exemplul 2. Se consideră FB f(x,y,z)=m0+m2+m3+m4+m5+m7=x’.y’.z’+
x’.y.z’+ x’.y.z+ x.y’.z’+ x.y’.z+ x.y.z.
Adăugăm încă un m0
şi un m7 şi apoi grupând m0 cu m2, m0
cu m4, m3 cu m7 şi m5 cu m7
se obţine:
f(x,y,z)=x’.z’(y+y’)+y’.z’.(x+x’)
+y.z.(x’+x) +x.z.(y’+y)=x’.z’+y’.z’+y.z+x.z
Grupând m0 cu m2, m4
cu m5 şi m3 cu m7, aplicând teorema de
adiacenţă şi ţinând cont de relaţia x+x’=1,
obţinem:
f(x,y,z)=x’.z’(y+y’)+x.y’.(z’+z)+y.z.(x’+x)=
x’.z’+x.y’+y.z
Dacă în mod similar grupăm m2 cu m3, m4
cu m0 şi m5 cu m7, se obţine pentru
funcţia f expresia:
f(x,y,z)=x’.y+y’.z’+x.z
După cum se poate observa pentru aceeaşi
funcţie am obţinut mai multe expresii reduse faţă de
expresia iniţială. Dintre cele trei expresii însă numai ultimele
două sunt expresii minime. Rezultă că pentru o FB se pot
obţine una sau mai multe expresii minime.
2.2. Diagrama Veitch Karnaugh
Diagrama Veitch-Karnaugh (V-K) este o metodă
grafică de a reprezenta într-o formă condensată tabelul de
adevăr al unei FB. Poate fi folosită pentru reprezentarea FB cu un
număr oricât de mare de variabile însă, în mod practic, se
utilizează pentru reprezentarea FB cu până la 6 variabile.
Dacă n este numărul de variabile,
diagrama V-K va avea 2n căsuţe, una pentru fiecare din cei
2n mintermi (maxtermi) ai FB deci, câte una pentru fiecare linie a
tabelului de adevăr al funcţiei. Mai mult, aceste căsuţe
sunt aranjate în astfel încât mintermii (maxtermii) sunt reprezentaţi
într-o dispoziţie geometrică care permite evidenţierea
mintermilor adiacenţi. În acest fel, minimizarea poate fi realizată
prin recunoaşterea unor configuraţii în cadrul diagramei.
Liniile şi coloanele diagramei V-K sunt
etichetate astfel încât combinaţia variabilelor de intrare pentru fiecare
căsuţă este determinată cu uşurinţă din
etichetele ataşate liniei şi coloanei corespunzătoare
căsuţei.
În Fig.3 b) sunt date diagramele V-K pentru
funcţii de f, g şi h având 2, 3 şi respectiv 4 variabile şi
date prin tabelele de adevăr din Fig. 3 a). Numărul mic din fiecare căsuţă
indică mintermul corespunzător liniei din tabelul de adevăr.
x |
y |
f |
|
|
x |
y |
z |
g |
|
|
x |
y |
z |
w |
h |
|
0 |
0 |
0 |
m0 |
|
0 |
0 |
0 |
0 |
m0 |
|
0 |
0 |
0 |
0 |
0 |
m0 |
0 |
1 |
1 |
m1 |
|
0 |
0 |
1 |
1 |
m1 |
|
0 |
0 |
0 |
1 |
1 |
m1 |
1 |
0 |
1 |
m2 |
|
0 |
1 |
0 |
1 |
m2 |
|
0 |
0 |
1 |
0 |
1 |
m2 |
1 |
1 |
1 |
m3 |
|
0 |
1 |
1 |
0 |
m3 |
|
0 |
0 |
1 |
1 |
1 |
m3 |
|
|
|
|
|
1 |
0 |
0 |
0 |
m4 |
|
0 |
1 |
0 |
0 |
0 |
m4 |
|
|
|
|
|
1 |
0 |
1 |
1 |
m5 |
|
0 |
1 |
0 |
1 |
0 |
m5 |
|
|
|
|
|
1 |
1 |
0 |
0 |
m6 |
|
0 |
1 |
1 |
0 |
1 |
m6 |
|
|
|
|
|
1 |
1 |
1 |
1 |
m7 |
|
0 |
1 |
1 |
1 |
1 |
m7 |
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
0 |
0 |
m8 |
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
1 |
1 |
m9 |
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
0 |
m10 |
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
1 |
m11 |
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
0 |
m12 |
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
1 |
1 |
m13 |
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
m14 |
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
0 |
m15 |
a)
|
|
|
f |
|
|
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
h |
|
|
|
|
x |
|
x |
|
|
|
yz |
|
|
y |
|
|
|
|
|
|
zw |
|
|
z |
|
|
|
y |
|
0 |
1 |
|
|
x |
|
00 |
01 |
11 |
10 |
|
|
|
|
xy |
|
00 |
01 |
11 |
10 |
|
|
|
0 |
00 |
11 |
|
|
|
0 |
00 |
11 |
30 |
21 |
|
|
|
|
|
00 |
00 |
11 |
31 |
21 |
|
|
|
1 |
21 |
31 |
|
y |
|
1 |
40 |
51 |
71 |
60 |
|
x |
|
|
|
01 |
40 |
50 |
71 |
61 |
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
11 |
120 |
131 |
150 |
141 |
|
|
|
|
|
|
|
|
|
|
|
z |
|
|
|
|
|
|
|
10 |
80 |
91 |
111 |
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
b)
Fig. 3.
2.3. Minimizarea FB folosind diagramele
Veitch-Karnaugh
În diagrama V-K fiecare căsuţă care
are un 1 corespunde unui minterm a formei canonice normal disjunctive a
funcţiei. Deoarece două celule adiacente în diagramă corespund
la doi mintermi care diferă între ei doar prin forma unei singure
variabile, cei doi mintermi pot fi înlocuiţi printr-un singur termen
folosind proprietatea de adiacenţă. În general se poate simplifica
funcţia logică reprezentată prin diagrama V-K prin combinarea
căsuţelor adiacente scriind termenul redus care rezultă folosind
proprietatea de adiacenţă. Perechea de valori de 1 se
încercuieşte indicând astfel că mintermii corespunzători se
combină rezultând un singur termen.
În cazul multor funcţii booleene, procedeul
de grupare a valorilor de 1 din diagrama V-K se poate extinde. În general se
pot grupa 2i căsuţe conţinând valori de 1 rezultând
un termen care conţine n-i variabile, unde n este numărul de
variabile ale funcţiei.
Regula prin care se determină cum pot fi
grupate căsuţele conţinând valori de 1 este următoarea:
- o mulţime de 2i celule pot fi
grupate dacă există i variabile ale funcţiei booleene care iau toate
cele 2i combinaţii posibile în acea mulţime de
căsuţe în timp ce celelalte n-i variabile au aceeaşi valoare
pentru aceeaşi mulţime de căsuţe. Termenul
corespunzător grupării va conţine cele n-i variabile în care
variabila este în formă normală dacă ea apare ca 1 pentru toate
căsuţele grupării şi în forma negată dacă ea
apare ca 0 pentru toate căsuţele grupării.
Din punct de vedere grafic, regula de mai sus ne
spune că putem încercui mulţimi dreptunghiulare având 2i
valori de 1, prin aceasta înţelegând şi mulţimile
dreptunghiulare obţinute dacă muchiile opuse diagramei ar fi unite.
Se pot determina variabilele şi forma pe care
acestea o au în termenul rezultant:
· dacă o încercuire acoperă
căsuţe în care variabila este 0 atunci variabila apare în termenul
rezultant în forma negată
· dacă o încercuire acoperă
căsuţe în care variabila este 1, atunci variabila apare în termenul
rezultant în forma normală.
· dacă o încercuire acoperă atât
căsuţe în care variabila este 0 dar şi căsuţe în care
variabila este 1, atunci acea variabilă nu mai apare în termenul rezultant.
În Fig.4 sunt date grupările posibile pentru
funcţiile g şi h prezentate anterior şi termenii rezultanţi
corespunzători.
Fig. 4.
Conform Fig.4 putem scrie:
g(x,y,z)=xz+y’z+x’yz’
h(x,y,z,w)=x’w+xz’w+x’z+yzw’
Teorema implicanţilor primi afirmă
că pentru o funcţie booleană, o expresie sub forma normală
(sumă de produse) minimală este o sumă de implicanţi primi
ai funcţiei. Rezultă că pentru a obţine o expresie
minimală a funcţiei nu va trebui să luăm în considerare termenii
care nu sunt implicanţi primi.
În cadrul diagramei V-K, un implicant prim este
reprezentat printr-o încercuire rectangulară de valori de 1 (conform
regulii prezentate anterior) care dacă încercăm să o mărim
(acoperind de două ori mai multe căsuţe) va cuprinde şi
valori de 0.
O expresie minimală se va obţine astfel
prin alegerea încercuirilor cele mai mari şi astfel încât fiecare valoare
de 1 să fie cuprinsă în cât mai puţine încercuiri (Fig. 5).
Fig.5
În Fig. 5 o expresie a funcţiei f
reprezentată sub forma unei diagrame V-K se obţine ca suma:
f(x,y,z)=t1+t2+t3+t4+t5
însă forma
minimală se obţine ca suma:
f(x,y,z)=t1+t3+t5= x’yz+ xyw+ xy’z’
3. Sinteza circuitelor combinaţionale
Problema de sinteză a circuitelor
combinaţionale se defineşte în modul următor: cunoscând modul de
funcţionare a circuitului combinaţional exprimat prin valorile
semnalelor de ieşire corespunzătoare diferitelor combinaţii ale
variabilelor de intrare, se cere să se stabilească structura
circuitului.
Ţinând cont de această formulare,
rezultă că rezolvarea problemei de sinteză presupune parcurgerea
a două etape:
Algoritmul sintezei circuitelor
combinaţionale va fi:
Exemplul 3.
Să se realizeze circuitul cu trei
intrări şi cu o ieşire pentru care ieşirea este egală
cu 1 dacă cel puţin două intrări au valoarea 1.
Din descrierea problemei rezultă că
funcţionarea circuitului poate fi descrisă cu ajutorul unei
funcţii booleene cu trei intrări. Să le numim pe acestea x, y
şi z şi vom nota cu f ieşirea circuitului. Vom completa tabelul
de adevăr al funcţie pe baza datelor din problemă punând valoare
1 pentru liniile care au cel puţin două valori de 1 şi 0 în
rest:
x |
y |
z |
f |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
În etapa următoare căutăm să simplificăm
funcţia f folosind diagrama V-K pe care o completăm pe baza tabelului
de adevăr şi realizăm grupările din figură:
Putem scrie astfel expresia simplificată a
funcţiei sub forma:
f(x,y,z)=xy+xz+yz
Folosind porţi logice de tip SI şi SAU
obţinem schema logică următoare:
Procedeul experimental
1. Obţineţi forma minimă folosind diagramele Veitch-Karnaugh pentru funcţiile:
F1(a,b,c)=m0+m2+m3
F2(a,b,c)=m2+m3+m6+m7
F3(a,b,c)=m1+m2+m3+m6
F4(a,b,c,d)=m2+m3+m4+m5+m6+m7+m10+m11
F5(a,b,c,d)=m0+m2+m4+m5+m6+m7+m8+m10+m13+m15
F6(a,b,c,d)=m0+m2+m3+m5+m6+m7+m8+m10+m11+m14+m15
F7(a,b,c)=M0.M1.M4.M5
F8(a,b,c,d)= M1.M3.M4.M6.M9.M11.M14.M15
2. Un circuit are 4 intrări şi o ieşire. Ieşirea este 1 dacă şi numai dacă 3 sau mai multe intrări sunt 1.
3. Obţineţi schema logică cu porţi SI, SAU şi NU a unui circuit care recepţionează un număr pe 4 biţi, x3x2x1x0 şi care are ieşirea egală cu 1 când numărul este divizibil cu 4 sau cu 5 şi 0 în rest. Obţineţi schema logică a aceluiaşi circuit folosind doar circuite SI-NU. Verificaţi schemele obţinute folosind programul Digital Works.
4. Alimentarea cu energie electrică a unui motor este controlată de 5 întrerupătore. Motorul este alimentat atunci şi numai atunci când majoritatea întrerupătoarelor sunt închise. Obţineţi schema logică folosind porţi SI, SAU şi NU care realizează această funcţionare. Obţineţi schema logică a aceluiaşi circuit folosind doar circuite SAU-NU. Verificaţi schemele obţinute folosind programul Digital Works
Conţinutul referatului