Cap1 29 Ian Lucru [310646]
[anonimizat] –
EDITURA UNIVERSITĂȚII DIN ORADEA
2016
Cuvânt înainte
„[anonimizat]” vine ca o completare la lucrările publicate anterior, „[anonimizat]” și „[anonimizat]”, [anonimizat], cât și ale acelora care fac primii pași în activitatea de proiectare a circuitelor logice.
[anonimizat] a [anonimizat] a [anonimizat] a numărătoarelor sau a altor circuite secvențiale. După o scurtă prezentare a [anonimizat] o serie de exerciții care acoperă o paletă largă a problemelor de proiectare logică. Soluțiile majorității exerciților și problemelor sunt prezentate în capitolul 10 al lucrării.
Lucrarea este susceptibilă de a [anonimizat].
CUPRINS
Cuvânt înainte 3
Cuprins 5
CAPITOLUL 1.
Algebra Booleană. Aplicarea ei la studiul circuitelor de comutare 9
Definiția algebrei booleene 9
Teoreme 11
Probleme propuse 14
CAPITOLUL 2.
Funcții booleene 19
Operații cu funcții 21
Forme canonice ale funcțiilor booleene 22
Expresii booleene 23
Expresia normală disjunctivă 24
Expresia normală conjunctivă 25
Expresii booleene duale 25
Clase de funcții booleene 26
Funcții autoduale 26
Funcții simetrice 27
Funcții cu prag 27
Funcții de comutare 28
Probleme propuse 29
CAPITOLUL 3.
Minimizarea funcțiilor de comutare 35
Introducere 35
Metoda minimizării funcțiilor pe baza axiomelor și teoremelor algebrei booleene 35
Metoda diagramelor de minimizare 36
Determinarea formei minime disjunctive 36
Determinarea formei minime conjunctive 39
Folosirea metodei diagramelor la minimizarea funcțiilor incomplet definite 40
Minimizarea funcțiilor care au mai mult de patru variabile 40
[anonimizat]. Cluskey 41
Minimizarea sistemelor de funcții booleene 44
Probleme propuse 45
CAPITOLUL 4.
Analiza circuitelor combinaționale cu porți logice 57
Introducere 57
Analiza rețelelor de comutare 58
[anonimizat]-NU 61
Probleme propuse 63
CAPITOLUL 5.
Sinteza circuitelor combinaționale cu porți logice 67
Sinteza rețelelor cu două niveluri logice 68
[anonimizat]-NU 68
[anonimizat]-NU 69
[anonimizat]-NU 69
Probleme propuse 70
CAPITOLUL 6.
[anonimizat] 78
Probleme propuse 78
CAPITOLUL 7.
[anonimizat] 89
Probleme propuse 89
CAPITOLUL 8.
Descrierea circuitelor secvențiale 95
Probleme propuse 95
CAPITOLUL 9.
Circuite secvențiale asincrone 105
Probleme propuse 105
CAPITOLUL 10.
Rezolvări 111
Capitolul 1 111
Capitolul 2 116
Capitolul 3 128
Capitolul 4 142
Capitolul 5 144
Capitolul 6 153
Capitolul 7 162
Capitolul 8 174
Capitolul 9 187
Bibliografie 193
CAPITOLUL 1
ALGEBRA BOOLEANĂ. APLICAREA EI LA
STUDIUL CIRCUITELOR DE COMUTARE
DEFINIȚIA ALGEBREI BOOLEENE
Se definește algebra booleană ca un sistem format de mulțimea B nevidă, cu relația de echivalență, cele două operații fundamentale SAU și ȘI, și constantele caracteristice 0 și 1, sistem care satisface următoarele axiome [5]:
A1) Operația SAU este asociativă:
Oricare ar fi trei variabile a, b, c din mulțimea B, este valabilă următoarea relație:
(a + b) + c = a + (b + c) (1.1)
A2) Operația ȘI este asociativă:
Oricare ar fi trei variabile a, b, c din mulțimea B, este valabilă următoarea relație:
(a · b) · c = a · (b · c) (1.2)
A3) Operația SAU este comutativă:
Oricare ar fi două variabile a, b din B, este valabilă următoarea relație:
a + b = b + a (1.3)
A4) Operația ȘI este comutativă:
Oricare ar fi două variabile a, b din B, este valabilă următoarea relație:
a · b = b · a (1.4)
A5) Există un singur element neutru față de operația SAU, și anume elementul neutru 0:
Oricare ar fi a din mulțimea B, se poate scrie:
a + 0 = 0 + a = a (1.5)
A6) Există un singur element neutru față de operația ȘI, și anume elementul neutru 1:
Oricare ar fi a din mulțimea B avem relația:
a · 1 = 1 · a = a (1.6)
A7) Operația SAU este distributivă față de operația ȘI:
Oricare ar fi trei variabile a, b, c din B, este îndeplinită relația:
a + (b · c) = (a + b) · (a + c) (1.7)
A8) Operația ȘI este distributivă față de operația SAU:
Oricare ar fi trei variabile a, b, c din mulțimea B se poate spune că:
a · (b + c) = a · b + a · c (1.8)
A9) Orice element a din B are un complement în B, notat cu , (se citeste NU a), astfel încât:
a · = 0 (1.9)
a + = 1 (1.10)
TEOREME [5]
T1) a + a = a (Teorema idempotenței) (1.11)
Demonstrație:
a + a (a + a) 1 (a + a) (a +) a + a a + 0 a
Analog se poate demonstra teorema generalizată:
a + a + a + ….. + a = a (1.12)
T2) a a = a (1.13)
Demonstrație:
a a a a + 0 a a + a a (a +) a 1 a
Generalizare:
a a … a = a (1.14)
T3) a + 1 = 1 (1.15)
Demonstrație:
a + 1 (a + 1) 1 (a + 1) (a + ) a + 1 a + 1
T4) a 0 = 0 (1.16)
Demonstrație:
a 0 a 0 + 0 a 0 + a a (0 +) a 0
T5) a + a b = a (Teorema absorbției) (1.17)
Demonstrație:
a + a b a 1 + a b a (1 + b) a 1 = a
T6) a (a + b) = a (1.18)
Demonstrația acestei teoreme se face prin dualitate.
T7) Complementul unei variabile (a) este unic
Demonstrație:
Se presupune că variabila a are 2 complemente, notate cu respectiv . În baza axiomei 9 se poate scrie:
a + = 1 a + = 1
a = 0 a = 0
Pornind de la , pe baza axiomelor și a relațiilor de mai sus se demonstrează unicitatea complementului.
= 1 = (a +) = a + = 0 + = a + + = (a + ) =
Deci: =
T8) Complementul complementului este variabila însăși:
= a (1.19)
Demonstrație:
Pentru a demonstra această teoremă se va determina mai întâi complementul lui . Ținând cont de axiomele 3, 4 și 9 se poate scrie:
+ a = 1
a = 0
Atunci, conform axiomei 9 și a teoremei 7, unicul complement al lui este a. Astfel se poate spune că = a.
Teoremele lui De Morgan (T9 și T10):
T9) = (1.20)
Demonstrație:
Se vor demonstra în prealabil două leme prin care se arată că este complementul lui a + b.
L1: a + b + = 1 (1.21)
L2: (a + b) = 0 (1.22)
L1: a + b + =(a + b + )(a + b + )=(1 + b)(1 + a)=11=1
L2: (a + b) = a + b = 0 + 0 = 0+0 = 0
Cele două leme fiind adevărate, conform axiomei 9 și a teoremei 7, rezultă că și relația = este adevărată.
T10) = + (1.23)
Demonstrația teoremei se face prin dualitate, demonstând mai întâi alte două leme care vor ajuta în demonstrarea teoremei.
L3: a b + (+) = 1 (1.24)
L4: a b (+) = 0 (1.25)
L3: ab+(+) = ((a+)+ )((+)+b) = (1+)(+1) = 1
L4: ab(+ ) = (ab) + (ab) = 0b + 0a = 0
Lemele 3 și 4 fiind adevărate, conform axiomei 9 și teoremei 7, rezultă că:
= + (1.26)
T 11) a + b = a + b (1.27)
Demonstrație:
a + b = (a +)( a + b) = 1(a + b) = a + b
T 12) a ( + b) = a b (1.28)
Demonstrație:
a (+ b) = a + a b = 0 + a b
T 13) (a + b) ( + c) = a c + b (1.29)
Demonstrație:
(a + b) ( + c) = (a + b) + (a + b) c = a + b + a c + b c = b + a c + b c 1 = b + a c + b c (a + ) = b + a c + b c a + b c = b (1 + c) + a c (1 + b) = b + a c
PROBLEME ROPUSE
1.4.1. Să se demonstreze că:
a) a + · b = a + b;
b) + a · b = + b;
c) + a · = + ;
d) a + · = a + .
1.4.2. Să se demonstreze că: a+· = a+, utilizând metoda tabelului de adevăr.
Să se verifice identitățile:
a) a · b + a · c + b · = a · c + b · ;
b) a · b + · + a · = a · b + · ;
aplicând axiomele și teoremele algebrei booleene.
Să se verifice identitățile:
a) ;
b) ;
c) (a + b)(b + c)(c + a) = a · b + b · c + c · a;
d) (a + b)(+ c) = a · c + · b.
Să se demonstreze, utilizând algebra booleeană, că:
· b · c + a · · c + a · b · c = (a + b)c.
Demonstrați următoarele identități:
a) b = a = b;
b) ;
c) a 1 = ; a 0 = a;
a = 1; a a = 0;
d) a b = b a = ;
e) (a b) + c ≠ (a + c) (b + c);
f) a • (b c) = a • b a • c.
1.4.7. Complementați următoarea funcție:
f = b • [(a • + e) + c • d].
1.4.8. Să se verifice următoarea identitate (asociativitatea funcției XOR) [6]:
(a b) c = a (b c).
1.4.9. Să se demonstreze că:
(a + b) • (a + c) = a + b • c.
1.4.10. Verificați următoarele identități:
a) ;
b) ;
c) ;
d) .
1.4.11. Reduceți următoarele expresii folosind axiomele și teoremele algebrei booleene [9]:
a) ;
b) ;
c) ;
d) ;
e) ;
f) ;
g) ;
h) .
1.4.12. Simplificați următoarele funcții booleene:
a) ;
b) ;
c) ;
d) ;
e) .
1.4.13. Scrieți următoarele expresii booleene cu numărul cerut de variabile [4]:
a) → la 5 variabile;
b) → la 5 variabile;
c) → la 3 variabile;
d) → la 5 variabile.
1.4.14. Determinați negatele următoarelor funcții booleene și reduceți-le la un număr minim de variabile:
a) ;
b) ;
c) ;
d) .
1.4.15. Simplificați funcțiile T1 T2 și T3:
1.4.16. Demonstrați că duala funcției SAU-EXCLUSIV este egală cu complementul ei. [6]
1.4.17. Demonstrați axioma a 8-a folosind diagramele Venn.
1.4.18. Demonstrați cu ajutorul diagramelor Venn următoarele identități:
a) a · b + a · c + b · = a · c + b · ;
b) a · b + · + a · = a · b + · ;
c) ;
d) ;
1.4.19. Demonstrați că operația SAU-NU formează un sistem complet de operații [5].
1.4.20. Demonstrați că operația ȘI-NU formează un sistem complet de operații [5].
CAPITOLUL 2
FUNCȚII BOOLEENE
Funcția de transfer a unui circuit de comutare este o funcție booleeană.
O funcție booleeană f de n variabile, f(x1,x2,…,xn), unde x1,x2,…,xn iau valorile 0 și 1, se definește ca o aplicație a mulțimii {0,1}n în mulțimea {0,1}. Cu alte cuvinte, atât variabilele cât și funcția nu pot lua decât două valori distincte: 0 sau 1. În mulțimea {0,1}n există 2n elemente, deci acestora li se pot atribui valorile {0,1} în moduri diferite [5].
O modalitate de descriere a unei funcții de n variabile este tabelul de corespondență, în care pentru fiecare element (x1,x2,…,xn) se scrie alăturat valoarea funcției. De exemplu, pentru n = 3, în mulțimea {0,1}3 există 23 =8 elemente, adică cu cele două valori de 0 și 1 luate câte trei, se pot obține 8 aranjamente cu repetiție și deci există 28 = 256 funcții (tabelul 2.1) [5].
Tabelul de corespondență în cazul utilizării a două variabile, x1 și x2, care pot primi 22 = 4 combinații de valori, și cele 24 = 16 funcții este (tabelul 2.2).
Indicele funcției f (015) este un număr egal cu echivalentul zecimal al numărului binar reprezentat de cifrele binare de pe coloana funcției respective, unde cifra de pe prima linie corespunde poziției celei mai semnificative a numărului binar considerat.
Tabelul 2.1.
Tabelul 2.2.
Urmărind funcțiile din tabelul 2.2. se pot face următoarele observații:
f0 = 0 f5 = x2 f12 =
f3 = x1 f10 = f15 = 1
Aceste funcții depind de una sau de nici una dintre variabile și se numesc funcții degenerate. Mai rămân 10 funcții de 2 variabile, dintre care următoarele patru definesc operațiile menționate mai jos:
f1 = x1 x2 ȘI
f7 = x1 x2 SAU
f6 = x1 x2 SAU-EXCLUSIV
f9 = x1 x2 ȘI-EXCLUSIV
OPERAȚII CU FUNCȚII
Operațiile cu funcții se definesc pe domeniul valorilor funcțiilor [5].
Definiție: Fie f,g și h trei funcții booleene de n variabile. Se definește:
f + g = h dacă și numai dacă
f (x1, x2, …, xn) + g (x1, x2, …, xn) = h (x1, x2, …, xn) (2.1)
unde toți xi, pentru i = 1, … , n, iau valorile 0 și 1, iar valorile funcțiilor se combină conform tabelului de corespondență al operației SAU.
f · g = h dacă și numai dacă
f (x1, x2, …, xn) · g (x1, x2, …, xn) = h (x1, x2, …, xn) (2.2)
unde toți xi, pentru i = 1, …, n, iau valorile 0 și 1, iar valorile funcțiilor se combină conform tabelului de corespondență al operației ȘI.
= g dacă și numai dacă
(x1, x2, …, xn) = g (x1, x2, …, xn) (2.3)
unde toți xi, pentru i = 1, … , n, iau valorile 0 și 1.
Funcțiile f respectiv g aplică fiecare din cele 2n n-uple în mulțimea {0,1}. Se obțin 2n perechi de valori ale funcțiilor. Operațiile „+” și „·” asupra funcțiilor aplică aceste 2n perechi de valori în mulțimea {0,1}. Numărul de elemente din {0,1}n pe care o funcție f le aplică în 1 se numește ponderea funcției și se notează cu w(f), sau pe scurt cu w.
FORME CANONICE ALE FUNCȚIILOR BOOLEENE
Expresia algebrică a funcțiilor elementare de pondere 1 este așa numitul termen minim, în care apar toate variabilele funcției fie sub formă directă, fie negată, sub forma unui produs boolean. Expresia funcției de pondere 1 se obține luând în termenul minim variabila (valoarea) directă atunci când ea are valoarea 1 în n-uplul corespondent, respectiv variabila (valoarea) negată atunci când ea are valoarea 0.
Orice funcție de pondere > 1 poate fi scrisă (dată) în mod unic sub forma unei sume booleene de funcții elementare. De aici rezultă că expresia unei funcții de pondere diferită de 1 poate fi scrisă sub forma unei sume booleene de termeni minimi [9].
Această formă de scriere este unică și se numește formă canonică disjunctivă (FCD). Observând modul în care s-au scris termenii minimi, se vede că se poate ajunge la forma canonică disjunctivă direct din tabelul de corespondență.
Termenii minimi se mai numesc și „termeni p” sau termeni produs boolean. Termenii „p” sunt notați cu doi indici. Indicele inferior este egal cu echivalentul zecimal al numărului binar corespondent n-uplului pentru care funcția ia valoarea 1, iar indicele superior reprezintă numărul de variabile ale funcției. Dacă se specifică numărul de variabile ale funcției, indicele superior poate lipsi.
Negata unei funcții, se obține inversând valorile funcției f5 din tabelul de corespondență.
Orice funcție booleană poate fi scrisă și sub forma unui produs de sume booleene. Această formă de exprimare se numește formă canonică conjunctivă (FCC ) [9].
Pentru a obține forma canonică conjunctivă a funcției se calculează negata negatei funcției.
EXPRESII BOOLEENE
În mod obișnuit funcțiile booleene sunt date prin expresii booleene. O expresie sau formulă booleeană este compusă din unul sau mai multe simboluri care reprezintă variabile booleene, legate între ele prin operatorii „ + ”, „ ” și „-” [5].
Definiție: Expresiile sau formulele booleene generate de n variabile, notate x1,x2,…,xn, se definesc inductiv astfel:
0 și 1 sunt expresii booleene;
Dacă xi este o variabilă booleeană, atunci xi (i=1,…,n) este o expresie booleeană;
Dacă A este o expresie boleeană, atunci și este o expresie booleeană;
Dacă A și B sunt expresii booleene, atunci A+B este o expresie booleeană;
Dacă A și B sunt expresii booleene, atunci A∙B este o expresie booleeană;
Expresii booleene sunt numai cele date de punctele 15.
Există o infinitate de expresii booleene generate de n variabile, însă o parte dintre acestea sunt echivalente între ele. Se formează astfel o serie de clase de echivalență care sunt finite atâta timp cât n este finit. Pentru a arăta că două expresii sunt echivalente, deci fac parte din aceași clasă de echivalență, se pot folosi axiomele și teoremele algebrei booleene. O altă metodă, mai laborioasă dar mai puțin pretențioasă, constă în verificarea echivalenței expresiilor în urma evaluării acestora pentru toate combinațiile de valori ale variabilelor. Acest lucru se poate face folosind tabelele de corespondență pentru operațiile „ + ”, „ ” și „-”.
EXPRESIA NORMALĂ DISJUNCTIVĂ
Definiție: Se numește expresie normală disjunctivă o expresie scrisă sub forma unei sume booleene de termeni produs, care nu sunt în mod obligatoriu termeni canonici, respectiv termeni minimi.
E = x1·+ x2·x3
este o expresie normală disjunctivă
O astfel de expresie se poate transforma întotdeauna într-o expresie de formă canonică disjunctivă introducând în fiecare termen variabila care lipsește, fără a modifica însă expresia 10].
Pentru expresia din exemplul rezultă:
E=x1(x3+)+(x1+)x2x3=x1x3+x1+x1x2x3+x2x3
Această procedură de aducere a formei normale la forme canonice se folosește pentru a stabili echivalența expresiilor.
Două expresii care pot fi aduse la aceeași formă canonică sunt echivalente între ele.
Deoarece multe dintre metodele algebrice de simplificare ale expresiilor pornesc de la forma canonică, această procedură este utilizată în minimizarea expresiilor. Operația de minimizare urmărește exprimarea unei funcții date printr-o expresie asociată, considerată cea mai convenabilă – pentru cazul dat – din clasa expresiilor echivalente cu aceasta.
EXPRESIA NORMALĂ CONJUNCTIVĂ
Este o expresie dată sub formă de produs boolean de factori scriși sub formă de sumă booleană, care nu conțin însă toate variabilele ce generează expresia dată.
Forma normală conjunctivă poate fi adusă la forma canonică conjunctivă (FCC) folosind o procedură asemănătoare cu cea arătată la forma normală disjunctivă.
Pentru o funcție booleană dată există un număr bine precizat de termeni (factori) canonici și anume 2n. Numărul factorilor normali (termenilor normali) este mult mai mare, și anume (3n – 1), dintre care 2n sunt termeni canonici [5].
EXPRESII BOOLEENE DUALE
Examinând axiomele algebrei booleene și teoremele prezentate în paragrafele anterioare, se remarcă dualitatea între operația SAU (+) și operația ȘI ().
Duala unei expresii A, notată cu Ad, se definește inductiv în modul următor [14]:
0d = 0;
1d = 1;
Dacă xi, pentru i = 1, …, n, este o variabilă booleană atunci = xi;
Dacă A, B și C sunt expresii booleene și A=B + C, atunci Ad = Bd · Cd;
Dacă A, B și C sunt expresii booleene și A=B · C, atunci Ad = Bd + Cd;
Dacă A și B sunt două expresii booleene și A = , atunci și Ad = .
Deosebirea între expresia duală și cea negată constă în faptul că în prima variabilele apar în aceași formă ca și în expresia inițială, pe când în expresia negată, toate variabilelel apar negate.
2.5. CLASE DE FUNCȚII BOOLEENE
2.5.1. FUNCȚII AUTODUALE
O funcție booleană de n variabile se numește funcție autoduală dacă:
(2.4)
Exprimând funcția prin expresia A, putem scrie:
(2.5)
adică ea va fi exprimată și prin duala ei [9].
Din definiție rezultă că dacă o funcție autoduală este reprezentată printr-o expresie A, ea poate fi reprezentată și prin duala acelei expresii, Ad, expresia corespunzătoare unei funcții autoduale și duala expresiei fiind în acest caz echivalente [5].
Tabelul 2.3
Exemple de funcții autoduale: funcțiile minoritare și majoritare
Numărul funcțiilor autoduale este:
NFAD = (2.6)
2.5.2. FUNCȚII SIMETRICE
O funcție booleană de n variabile f(x1,x2, … ,xn) se spune că este simetrică dacă și numai dacă rămâne neschimbată la orice permutare a variabilelor ei.
Exemple de funcții simetrice: SAU-EXCLUSIV, funcția SUMĂ funcția minoritară, funcția majoritară [6].
2.5.3. FUNCȚII CU PRAG
Fie o funcție de n variabile. Pentru a defini funcția cu prag vom introduce următoarele noțiuni: o mulțime de numere reale care reprezintă ponderile variabilelor și un număr real, numit prag [10].
Notăm cu x1,x2, …,xn variabilele booleene, respectiv cu w1,w2, …,wn ponderile (numere reale) și cu T pragul (număr real).
O funcție booleană cu n variabile este funcție cu prag dacă îndeplinește condițiile:
(2.7)
Se consideră că wi se înmulțește aritmetic cu 0 și 1, iar este o sumă aritmetică.
În reprezentarea geometrică a funcțiilor booleene de n variabile ecuația:
w1x1 + w2x2 + … + wnxn = T (2.8)
definește un hiperplan (n-1) dimensional.
Hiperplanul definit de ecuația (2.8) separă vârfurile f-1(1) ale n-cubului de vârfurile f-1(0) dacă și numai dacă f(x1,x2, …,xn) este o funcție cu prag.
2.5.4. FUNCȚII DE COMUTARE
Funcția de transfer a unui circuit de comutare se numește funcție de comutare.
Dacă valoarea unei funcții de comutare este precizată pentru toate combinațiile posibile de valori ale variabilelor de intrare, aceasta se numește funcție de comutare complet definită. De multe ori însă, în practică, nu se precizează valoarea funcției pentru toate combinațiile posibile de valori ale variabilelor de intrare, fie pentru că în condițiile de funcționare cerute nu apar anumite combinații de valori de intrare, fie pentru că valoarea funcției pentru anumite combinații de valori de intrare este indiferentă [3]. O astfel de funcție se numește funcție de comutare parțială sau incomplet definită, iar combinațiile de intrări pentru care valoarea funcției este nedefinită se numesc condiții „nu ține cont”.
Atunci când funcția de comutare este complet definită, adică Numărul funcțiilor booleene din Cf depinde de numărul combinațiilor „nu ține cont”, din funcția de comutare parțială. Astfel, pentru „r” combinații „nu ține cont”, clasa Cf corespon-dentă va conține 2r funcții booleene.
2.6. PROBLEME PROPUSE
2.6.1. Să se exprime functiile f1 si f2:
f1 = p0 + p1 + p5 + p7;
f2 = p3 + p21 + p24 + p29 + p30;
prin tabelul de adevăr și apoi prin formele lor canonice.
2.6.2. Să se exprime funcția f dată sub forma normală disjunctivă prin tabel de adevăr și prin formele lor canonice:
a) f = a•c + b•;
b) f = a•c + b•d.
2.6.3. Se dau funcțiile f1 și f2 sub forma tabelului de adevăr de mai jos:
Determinați FCD și FCC pentru funcțiile de mai sus.
2.6.4. Să se exprime funcția: f = b•+ a•d + •c, prin cele două forme canonice și prin tabel de adevăr [4].
2.6.5. Să se exprime funcția: f = , prin FCD, FCC și prin tabel de adevăr.
2.6.6. Să se determine FCD și FCC pentru funcția:
f = p3 + p7 + p8 + p9 + p12 + p13 + p15.
2.6.7. Să se exprime FCD și FCC pentru următoarele funcții:
a)
b)
c) f = p1 + p2 + p4 + p5 + p7 + p8 + p9 + p10 + p15;
d) f = p0 + p2 + p3 + p4 + p6 + p14 + p16 + p18 + p19 + p20 +
+ p22 + p24 + p26 + p30.
e) f(a, b, c) = ∑(1, 3, 7);
f) f(w, x, y, z) = ∑(2, 6, 10, 14);
g) f(a, b, c, d) = ∑(7, 11, 13, 14, 15);
h) f(a, b, c, d) = ∑(4, 5, 8, 10, 12, 14).
2.6.8. Determinați FCD și FCC pentru următoarele ecuații:
a)
b)
c)
d)
2.6.9. Transformați ecuațiile următoare în cele două forme canonice:
a)
b)
c)
d)
e)
2.6.10. Exprimați următoarele funcții în sume de termeni-minimi și în produse de termeni-maximi:
a)
b)
c)
d)
e) f(x, y, z) = 1;
f) f(x, y, z) = (xy + z)(y + xz).
2.6.11. Exprimați următoarele funcții prin formele lor canonice:
a) f(a, b, c, d) = ∑(0, 2, 6, 11, 13, 14);
b) f(x, y, z) = ∑(0, 3, 6, 7);
c) f(a, b, c, d) = ∑(1, 2, 3, 4, 6, 12).
2.6.12. Să se exprime funcția: cu ajutorul operatorului ȘI-NU [5].
2.6.13. Să se exprime funcția: cu ajutorul operatorului SAU-NU.
2.6.14. Să se exprime funcția: cu ajutorul operatorului ȘI-NU.
2.6.15. Se dă expresia:
Să se determine expresia duală și expresia negată.
2.6.16. Să se implementeze funcția: cu ajutorul operatorilor:
a) ȘI-NU;
b) SAU-NU;
c) cu porți ȘI, SAU, INV;
d) XOR;
e) ȘI-SAU-NU, INV.
2.6.17. Să se implementeze cu porți ȘI-NU un sumator binar complet de 2 biți [4].
2.6.18. Să se realizeze funcția XOR cu:
a) porți ȘI-NU;
b) porți ȘI-SAU-NU.
2.6.19. Să se implementeze cu ajutorul operatorului XOR funcția următoare:
f = p1 + p2 + p4 + p7 + p8 + p11 + p13 + p14.
2.6.20. Să se implementeze utilizând porți ȘI-SAU-NU următoarea funcție:
.
2.6.21. Se dă funcția:
a) Implementați funcția F cu porți ȘI, SAU și inversoare.
a) Implementați funcția F numai cu porți SAU și inversoare.
a) Implementați funcția F numai cu porți ȘI și inversoare.
2.6.22. Să se implementeze FCD a funcției logice de mai jos cu ajutorul porților ȘI-NU:
f = p0 + p2 + p4 + p6 + p9 + p11 + p13 + p15.
2.6.23. Realizați funcția INV cu ajutorul circuitului ȘI-SAU-NU.
2.6.24. Să se implementeze funcția de mai jos cu porți SAU-NU:
f = p0 + p3 + p4 + p5 + p6 + p7.
2.6.25. Să se determine funcția logică realizată de circuitul următor:
2.6.26. Ce operație realizează circuitul din figura de mai jos? [5]
2.6.27. Demonstrați folosind reprezentarea geometrică a funcțiilor că funcția
f(x1,x2,x3) = x1x3 + x2x3
este o funcție cu prag. Considerați că w1=w2=0,5 , w3=1 și T=1,25. [5]
2.6.28. Demonstrați folosind reprezentarea geometrică a funcțiilor că funcția SAU-NU este o funcție cu prag.
2.6.29. Demonstrați folosind reprezentarea geometrică a funcțiilor că funcția ȘI-NU este o funcție cu prag.
CAPITOLUL 3
MINIMIZAREA FUNCȚIILOR DE COMUTARE
3.1. INTRODUCERE
Găsirea formei minime este importantă pentru analiză, dar mai ales pentru sinteza circuitelor de comutare care realizează funcția cerută, deoarece acestor forme le corespund circuite de comutare cu preț minim [13].
În literatura de specialitate sunt prezentate mai multe metode de minimizare ale funcțiilor booleene, fiecare dintre acestea prezentând anumite avantaje. În cele ce urmează vor fi prezentate doar câteva dintre acestea, și anume cele mai reprezentative [14].
3.2. METODA MINIMIZĂRII FUNCȚIILOR PE BAZA AXIO-MELOR ȘI TEOREMELOR ALGEBREI BOOLEENE
Folosind axiomele și teoremele algebrei booleene, o funcție dată sub formă canonică disjunctivă sau conjunctivă poate fi scrisă în general sub o formă mai simplă, cu un număr mai mic de termeni respectiv factori, căreia să îi corespundă o rețea cu cost mai mic. Această metodă de minimizare a funcției necesită însă multă experiență și îndemânare din partea proiectantului, motiv pentru care nu poate fi aplicată cu succes decât după o practică îndelungată în proiectarea circuitelor de comutare. De multe ori însă, forma funcției obținute în urma unor calcule laborioase nu este forma minimă.
METODA DIAGRAMELOR DE MINIMIZARE
3.3.1. DETERMINAREA FORMEI MINIME DISJUNCTIVE
La baza acestei metode stau ideile aduse de către Karnaugh și Veitch privind reprezentarea unei funcții de comutare pe o suprafață închisă desfășurată în plan, astfel încât plasând pe această suprafață termenii canonici ai unei funcții, aceștia să fie vecini (pe linie sau pe coloană) dacă diferă printr-o singură variabilă. Variabila prin care diferă apare într-unul din termeni sub formă directă, iar în celălalt sub formă negată. Se consideră vecine și compartimentele aflate la capetele opuse ale unei linii, respectiv coloane [13] [[14].
Pentru a realiza această distribuție a termenilor canonici, suprafața diagramei se împarte în domenii, astfel încât într-o jumătate de diagramă una din variabile să apară înscrisă direct, iar în cealaltă jumătate să apară variabila negată. În general, o diagramă Veitch pentru o funcție booleană de n variabile, se desenează sub formă de pătrat sau dreptunghi, împărțit în 2n compartimente. Fiecare compartiment este rezervat unui termen canonic al funcției, respectiv uneia dintre cele 2n n-uple ale funcției, sau vârfuri ale cubului n-dimensional din reprezentarea geometrică a funcției [9].
Ne vom referi mai întâi la funcțiile complet definite. În acest caz funcția de două variabile, f(A, B), dată în tabelul 3.1 se reprezintă ca în figura 3.1.
Pentru trei variabile, diagrama are 8 căsuțe, așa cum se vede și în figura 3.2.a.
Funcția:
se va reprezenta ca în figura 3.5.b.
Figura 3.1. Reprezentarea funcției din tabelul
Pentru patru variabile se folosește o diagramă ca în figura 3.3, care reprezintă de fapt gruparea a două diagrame de trei variabile.
Figura 3.2. Reprezentarea unei funcții de trei variabile
Figura 3.3. Diagrama Veitch pentru funcția de patru variabile
S-au notat cu “” termenii vecini din diagramă (de exemplu, se consideră vecini: ) [5].
O funcție booleană, dată sub formă canonică disjunctivă, poate fi reprezentată pe o diagramă Veitch marcând, de exemplu cu 1, compartimentele corespunzătoare termenilor canonici ai funcției.
Pe baza relației:
doi termneni vecini din diagramă, pot fi înlocuiți în expresia funcției cu un termen elementar care va conține cu o variabilă mai puțin.
De asemenea, grupând patru termeni reciproc vecini dintr-o diagramă Veitch, (), ei se pot înlocui cu un singur termen elementar, care conține cu două variabile mai puțin:
Termenii elementari pot fi scriși direct, urmărind pe diagramă toate variabilele comune ale termenilor canonici care îi compun.
În mod asemănător se pot grupa 2r compartimente reciproc vecine, unde r=1,…,n, iar n reprezintă numărul de variabile.
În cazul reprezentării funcției de comutare se caută să se formeze grupe cât mai mari de compartimente vecine marcate cu 1. Modul în care se pot grupa compartimentele vecine sunt arătate în figura 3.4 [5].
Figura 3.4. Modalități de grupare ale compartimentelor vecine marcate cu 1.a. și b – grupe de câte 8; c – grupe de câte 4
În reprezentarea geometrică, doi termeni canonici care diferă printr-o singură variabilă corespund la două noduri adiacente, deci definesc o latură a cubului n-dimensional. Din acest motiv se spune că două compartimente vecine sau adiacente pe diagrama Veitch reprezintă un subcub 1-dimensional. Un grup de patru compartimente vecine din diagrama Veitch corespunzătoare unei funcții de patru variabile, reprezintă un subcub 2-dimensional (figura 3.4.c), iar cei patru termeni canonici pot fi înlocuiți cu partea lor comună, formată din două variabile. În cazul în care gruparea conține 8 compartimente vecine (figura 3.4.a, b.) se pot forma cuburi tridimensionale, iar termenii canonici corespunzători vor fi înlocuiți cu o singură variabilă în expresia funcției de patru variabile. Se observă că se pot forma subcuburi de diferite dimensiuni. Un subcub care nu este inclus într-un subcub de dimensiune mai mare se numește implicant prim al funcției date. Făcând suma booleană a tuturor implicanților primi ai unei funcții date se obține o formă disjunctivă a acesteia, care în general este mult mai simplă decât forma canonică a funcției, dar nu este încă forma minimă a acesteia [2] [5] [9].
Termenii formei minime disjunctive ai funcției se află printre implicanții primi ai funcției. Nu toți implicanții primi apar în mod obligatoriu în această formă a funcției. Cei care apar în mod obligatoriu se numesc implicanți primi esențiali. Pentru a stabili dacă un implicant prim este esențial sau nu, se inspectează termenul respectiv în vederea detectării termeni-lor canonici componenți care nu mai sunt incluși în alți impli-canți. Dacă există astfel de termeni, implicantul prim este esențial (IPE), iar dacă nu, el este implicant prim neesențial (IPNE).
3.3.2. DETERMINAREA FORMEI MINIME CONJUNCTIVE
Există proceduri asemănătoare de determinare a FMC ca și pentru FMD, dar vom recurge la aceeași metodă ca și la determinarea formei canonice conjunctive. Se determină forma minimă disjunctivă a negatei funcției și apoi se neagă rezultatul obținut.
3.3.3. FOLOSIREA METODEI DIAGRAMELOR LA MINIMI-ZAREA FUNCȚIILOR INCOMPLET DEFINITE
În rețelele de comutare a căror comportare este dată printr-o funcție de comutare parțială, cu precizarea condițiilor “nu ține cont”, sinteza se efectuează considerând că rețeaua trebuie să realizeze acea funcție din clasa funcțiilor booleene corespondente funcției de comutare incomplet definite, care are cea mai simplă formă minimă disjunctivă sau conjunctivă. În acest caz, în diagramă apar unele elemente ale căror valoare nu este precizată și sunt marcate cu x.
Găsirea formei cele mai avantajoase corespunde practic în interpretarea compartimentelor "indiferente" în așa fel încât să contribuie la formarea unor contururi cât mai mari. Având în vedere că acești termeni (“nu ține cont”) nu sunt obligatorii pentru funcție ei nu vor determina esențialitatea unui implicant prim. Modul în care sunt date condițiile "nu ține cont" depinde de forma de exprimare a funcției. Când funcția este dată sub formă de expresie, condițiile "nu ține cont" se exprimă tot prin expresii logice [5] [9].
3.3.4. MINIMIZAREA FUNCȚIILOR CARE AU MAI MULT DE PATRU VARIABILE
În general diagramele de minimizare pentru mai mult de patru variabile se construiesc folosind diagramele de 4 variabile ca module. De exemplu, pentru cinci variabile se pot folosi 2 diagrame de patru variabile. Din comoditate ele se pot desena alăturate, cu observația că 2 compartimente din diagrame vecine sunt vecine dacă ocupă aceeași poziție în cele două diagrame elementare (figura 3.5.a) [5].
Figura 3.5. Diagrame Veitch cu mai mult de 4 variabile. a-5 variabile; b- 6 variabile; c- 7 variabile
Pentru 6 variabile se folosesc 4 diagrame de câte 4 variabile, așa cum se arată în figura 3.5.b. Pentru 7 variabile se folosesc 8 diagrame de 4 variabile (figura 3.5.c). Se observă faptul că odată cu creșterea numărului de variabile diagramele devin din ce în ce mai complexe.
3.4. METODA QUINE – Mc. CLUSKEY
În cazul expresiilor cu un număr mai mare de variabile, când diagramele Veitch devin greu de folosit, se utilizează o metodă algebrică, numită metoda Quine – Mc.Cluskey.
Punctul de plecare în această metodă este tot forma canonică disjunctivă (FCD) sau conjunctivă (FCC) a funcției, respectiv tabelul de adevăr. Într-o primă etapă se caută implicanții primi ai funcției, iar apoi se determină mulțimea minimă de implicanți primi care acoperă termenii canonici ai funcției. Considerăm cazul în care se pleacă de la n-uplele aplicate în 1, sau de la mulțimea indicilor termenilor canonici prezenți în forma canonică a funcției [5] [6].
La baza metodei stau următoarele observații:
1. Doi termeni canonici pot fi absorbiți de un termen cu o variabilă mai puțin dacă n-uplele corespondente sunt adiacente.
De exemplu:
Aceeași observație făcută asupra indicilor ne conduce la concluzia că doi termeni canonici pot fi absorbiți de un termen cu o variabilă mai puțin dacă diferența indicilor este o putere a lui 2. Exponentul puterii indică poziția de unde va lipsi variabila.
2. Pentru ca două n-uple să fie adiacente ponderea lor trebuie să difere cu o unitate. Pentru exemplul anterior ponderile sunt:
0 1 1 w = 2
0 1 0 w = 1
Generalizând observația, de exemplu asupra indicilor, se poate spune că patru termeni canonici pot fi absorbiți de un singur termen cu 2 variabile mai puțin, dacă indicii acestora diferă între ei prin aceeași putere a lui 2. De exemplu:
Având la bază observațiile de mai sus, se poate stabili un algoritm de aflare al implicanților primi pornind de la FCD sau tabelul de corespondență al funcției. Pentru acest lucru se vor parcurge următoarele etape:
1) Fiecare termen canonic este reprezentat sub formă de număr binar, prin n-uplul de 0 și 1 corespondent termenului respectiv.
2) Se împart termenii canonici ai funcției în grupe, în funcție de ponderea acestora, adică de numărul de 1-uri cuprinse în n-uplul respectiv.
3) Se aranjează grupele, pe o coloană, în ordinea crescătoare a ponderilor. Acest lucru este util deoarece doi termeni canonici se pot asocia, formând un subcub 1-dimensional, numai dacă fac parte din grupe ale căror ponderi diferă cu o unitate.
4) Se compară fiecare termen al unei grupe cu toți termenii grupei de pondere mai mare cu o unitate, în vederea stabilirii adiacenței, respectiv a posibilității de absorbție. Dacă numerele binare sunt adiacente cei doi termeni se pot asocia, formând un subcub 1-dimensional. Acesta este notat cu un număr binar care are pe poziția prin care cei doi termeni corespondenți diferă un x, ceea ce semnifică faptul că variabila corespondentă acelei poziții lipsește. Toți termenii care s-au putut asocia se marchează, iar termenul normal care reprezintă subcubul rezultat se înscrie pe o nouă coloană, într-un nou tabel. Toți termenii normali rezultați (subcuburile 1-dimensionale) în urma comparării a două grupe din coloana termenilor canonici, formează o nouă grupă în tabelul subcuburilor 1-dimensionale. Deci coloana subcuburilor 1-dimensionale conține, în cazul general, cu o grupă mai puțin decât coloana termenilor canonici (a subcuburilor 0-dimensionale).
5) Se compară fiecare termen al unei grupe din tabelul subcuburilor r-dimensionale cu toți termenii grupei cu pondere mai mare cu o unitate. Pentru ca doi asemenea termeni să se poată asocia trebuie ca în ambi termeni simbolurile x să fie pe aceleași poziții. Doi termeni care îndeplinesc această condiție și sunt adiacenți se asociază, formând un subcub (r+1)-dimensional, care se notează cu un număr binar în care apare încă un x pe poziția prin care cei doi termeni diferă. Se bifează termenii care s-au asociat, iar subcubul (r+1)-dimensional se înscrie într-un nou tabel, care în cazul general, are cu o grupă mai puțin decât tabelul subcuburilor r-dimensionale. Dacă se obține de mai multe ori un termen, acesta se consideră o singură dată.
6) Se mărește r cu o unitate și se repetă algoritmul până când subcuburile ultimului tabel nu se mai pot asocia în scopul formării unui subcub de dimensiune superioară. În acest moment prima etapă a algoritmului este terminată.
Eventualii termeni rămași nemarcați la sfârșitul operației de comparare, devin implicanți primi [13].
3.5. MINIMIZAREA SISTEMELOR DE FUNCȚII BOOLEENE
În general circuitele de comutare combinaționale sunt circuite cu mai multe intrări și mai multe ieșiri. Formele minime pentru un sistem de funcții booleene sunt acele expresii booleene disjunctive sau conjunctive în care apare un număr minim de termeni, respectiv factori normali diferiți, având un număr minim de literale. Acestor forme le corespunde o rețea de comutare cu două niveluri, cu un număr minim de elemente logice, deci cu un preț minim [1][9].
Pentru a realiza cât mai economic un astfel de sistem, fiind date funcțiile F1, F2, …, Fk, se poate proceda în două moduri principial diferite:
a) Se face sinteza circuitului, tratând independent fiecare funcție. Deși mai simplă ca procedură, metoda nu asigură decât în cazuri rare obținerea unui circuit cu cost minim.
b) Se face sinteza globală a circuitului, caz în care se caută realizarea tuturor funcțiilor cu un set minim de circuite comune. Se procedează la minimizarea sistemului de funcții booleene.
Unul dintre procedeele de minimizare corelată a funcțiilor, respectiv de găsire ai IP ai sistemului de funcții, constă în căutarea acestora printre IP ai funcțiilor separate (F1, F2, …, Fk) respectiv printre implicanții primi ai funcțiilor produs (F1F2, F1F3, …, F1Fk, …, Fk-1Fk, F1F2F3, …, Fk-2Fk-1Fk, …, F1F2F3…Fk). Având acest set de implicanți primi, se calculează acoperirile posibile pentru fiecare dintre funcții iar apoi se alege cea mai avantajoasă combinație de acoperiri, din punct de vedere al costului, care reprezintă acoperirea minimală a sistemului [1] [5] [9] [13].
Pentru a minimiza sistemul de funcții se caută în continuare un set minim de implicanți primi, care să acopere toate funcțiile. Se găsesc în literatură metode practice – de exemplu cu diagrame, metode tabelare sau metode pentru calculator. Cheltuiala de muncă fiind foarte mare, în practică se face un compromis între minimizarea independentă și cea globală. Acest lucru se justifică cu atât mai mult cu cât pentru creșterea fiabilității sistemului este de dorit o anumită redundanță în construcția sistemului.
3.6. PROBLEME PROPUSE
3.6.1. Să se determine FMD și FMC pentru următoarele funcții:
a) f = p3 + p7 + p8 + p9 + p12 + p13 + p15;
b) f = p0 + p2 + p8 + p10 + p11;
c) f = p5 + p7 + p13 + p10 + p11 + p14 + p15;
d) f = p0 + p2 + p4 + p6 + p8 + p10 + p12 + p14;
e) f = p0 + p1 + p5 + p7;
f) f = p0 + p2 + p4 + p6;
g) f = p1 + p2 + p4 + p7 + p8 + p10 + p12 + p14;
3.6.2. Să se minimizeze funcțiile:
3.6.3. Să se determine FMD, FMC și să se exprime utilizând funcția ȘI-NU următoarele funcții:
f = p5 + p7 + p9 + p10 + p14;
f = p1 + p2 + p5 + p7 + p15;
f = p1 + p2 + p9 + p10 + p12;
f = p0 + p1 + p2 + p7 + p8
3.6.4. Să se minimizeze funcțiile logice asociate unui decodificator BCD/7 segmente utilizând termenii canonici redundanți [4].
3.6.5. Să se minimizeze și să se exprime cu ajutorul operatorului ȘI-NU:
f = p1 + p2 + p8 + p13;
f = p0 + p1 + p2 + p6 + p8;
f = p0 + p2 + p4;.
f = p0 + p2 + p5 + p6;
3.6.6. Să se minimizeze și să se exprime cu ajutorul operatorului ȘI-NU următoarele funcții:
f = p8 + p9 + p12 + p13;
f = p3 + p4 + p5 + p6 + p12 + p13 + p14;
f = p1 + p2 + p5 + p6 + p9 + p10 + p13 + p14;
f = p1 + p3 + p5 + p7 + p9 + p11 + p13 + p15.
3.6.7. Să se minimizeze funcțiile:
f = p0 + p2 + p3 + p5 + p7 + p8 + p10 + p11 + p13 + p15;
f = p0 + p1 + p2 + p5 + p9 + p10 + p11 + p12 + p13 + p14;
f = p1 + p2 + p4 + p5 + p7 + p8 + p9 + p10 + p15;
f = p0 + p1 + p2 + p5 + p8 + p9 + p10 + p11 + p12 + p13 + p14;
f = p0 + p1 + p3 + p4 + p5 + p12 + p13;
f = p0 + p1 + p4 + p5 + p7 + p8 + p10 + p11 + p12 + p14;
f = p2 + p3 + p5 + p7 + p8 + p10 + p11 + p14 + p15;
3.6.8. Să se minimizeze și să se exprime cu ajutorul operatorului ȘI-NU următoarele funcții [4]:
f = p3 + p11, termeni redundanți: p4 p7 și p12 p15;
f = p7 + p15, termeni redundanți: p0 p3 și p8 p11;
f = p1 + p5 + p9 + p13, termeni redundanți: p2, p3, p6, p7, p10, p11, p14, p15;
f = p3 + p7 + p11 + p15, termeni redundanți: p1, p5, p9, p13;
f = p0 + p2 + p4 + p6+ p8 + p10 + p12+ p14, termeni redundanți: p1, p3, p5, p7, p9, p11, p13, p15;
f = p1 + p3 + p5 + p7+ p9 + p11 + p13+ p15, termeni redundanți: p0, p2, p4, p6, p8, p10, p12, p14;
f = p0 + p1 + p3 + p4 + p5 + p6 + p7+ p8 + p9, termeni redundanți: p10 p15;
f = p0 + p2 + p6 + p8, termeni redundanți: p10 p15;
f = p0 + p2 + p3 + p5 + p7 + p8 + p9, termeni redundanți: p10 p15;
f = p0 + p2 + p3 + p5 + p6 + p8, termeni redundanți: p10 p15;
f = p0 + p4 + p5 + p6 + p7 + p10, termeni redundanți: p2, p3, p8, p9, p11, p15;
f = p0 + p1 + p2 + p3 + p4 + p7+ p8 + p9, termeni redundanți: p10 p15;
f = p2 + p3 + p4 + p5 + p6 + p8 + p9, termeni redundanți: p10 p15;
f = p0 + p4 + p5 + p6 + p8 + p9, termeni redundanți: p10 p15.
3.6.9. Să se determine FMD și FMC pentru următoarele funcții:
f = p0 + p2 + p3 + p4 + p6 + p14 + p16 + p18 + p19 + p20 + p22 + p24 + p26 + p30;
f = p0 + p1 + p2 + p3 + p7 + p14 + p15 + p22 + p23 + p29 + p31;
f = p5 + p10 + p11 + p30 + p31;
f = p0 + p4 + p18 + p19 + p22 + p23 + p25 + p29;
f = p0 + p2 + p4 + p6 + p7 + p8 + p10 + p11 + p12 + p13 + p14 + p16 + p18 + p19 + p29 + p30;
f = p0 + p1 + p2 + p4 + p5 + p6 + p14 + p16 + p18 + p19 + p20 + p21 + p22 + p23 + p27;
f = p3 + p21 + p24 + p29 + p30;
.
3.6.10. Să se minimizeze folosind metoda Quine – Mc Cluskey următoarele funcții:
f = p0 + p2 + p3 + p5 + p7 + p8 + p10 + p11 + p13 + p15;
f = p0 + p2 + p4 + p6;
f = p0 + p1 + p4 + p5 + p12 + p13;
f = p0 + p4 + p18 + p19 + p22 + p23 + p25 + p29;
f = p0 + p2 + p4 + p6 + p7 + p8 + p10 + p11 + p12 + p13 + p14 + p16 + p18 + p19 + p29 + p30;
f = p5 + p10 + p11 + p30 + p31;
f = p0 + p1 + p2 + p3 + p7 + p14 + p15 + p22 + p23 + p29 + p31;
f = p0 + p1 + p2 + p4 + p5 + p6 + p14 + p16 + p18 + p19 + p20 + p21 + p22 + p23 + p27.
3.6.11. Să se implementeze cu un număr minim de porți ȘI-NU funcțiile:
f = p3 + p5 + p7;
f = p3 + p7 + p8 + p9 + p12 + p13 + p15.
3.6.12. Să se implementeze cu un număr minim de porți ȘI-NU funcția:
3.6.13. Să se implementeze cu un număr minim de porți ȘI-NU un sumator binar complet pe 2 biți.
3.6.14. Să se implementeze cu porți ȘI-NU un circuit de autoincidență cu trei intrări (este un circuit care oferă 1 logic la ieșire când cele trei variabile de intrare nu sunt identice, adică toate sunt 0 logic sau 1 logic) [4].
3.6.15. Să se implementeze cu porți SAU-NU un circuit cu “vot majoritar” care are trei intrări de date (este un circuit care furnizează la ieșire valoarea logică a majorității variabilelor de intrare) [11].
3.6.16. Să se implementeze cu porți SAU-EXCLUSIV funcția:
f = p1 + p2 + p4 + p7 + p8 + p11 + p13 + p14.
3.6.17. Să se implementeze cu porți ȘI-NU circuitul combinațional definit de următoarele funcții:
f1 = p0 + p1 + p2 + p3 + p10 + p11 + p14 + p15;
f2 = p0 + p1 + p2;
f3 = p1 + p2 + p3 + p5.
3.6.18. Să se minimizeze următoarele sisteme de funcții:
f1 = p0 + p1 + p2 + p3 + p10 + p11 + p14 + p15
a) f2 = p0 + p1 + p5
f3 = p1 + p2 + p3 + p5;
f1 = p2 + p3 + p10 + p13 + p15
b) f2 = p4 + p5 + p10 + p13 + p15
f3 = p8 + p9 + p10;
f1 = p0 + p2 + p3 + p10 + p13 + p15
c) f2 = p0 + p4 + p5 + p9 + p10 + p13 + p15
f3 = p3 + p9 + p10;
d)
3.6.19. Să se determine FCD, FCC, FMD și FMC pentru următoarele funcții:
f = ac + bd;
3.6.20. Să se implementeze cu un număr minim de porți ȘI-NU:
f = p0 + p2 + p3 + p4 + p6 + p14 + p16 + p18 + p19 + p20 + p22 +
+ p24 + p26 + p30.
3.6.21. Să se implementeze cu un număr minim de porți SAU-NU funcția:
f = p0 + p3 + p4 + p5 + p6 + p7.
3.6.22. Să se implementeze un decodificator BCD/7 segmen-te [6]:
cu porți ȘI și SAU;
cu porți ȘI-NU;
cu porți ȘI-SAU-NU.
3.6.23. Simplificați următoarele funcții utilizând diagramele Veitch-Karnaugh:
Y = f(a, b, c) = ∑(1, 3, 5, 6, 7);
P = f(w, x, y, z) = ∑(0, 2, 8, 10);
R = f(w, x, y, z) = ∑(1, 3, 4, 5, 6, 9, 11, 12, 13, 14).
3.6.24. Simplificați următoarele funcții utilizând diagrame Veitch-Karnaugh [6]:
V = f(a, b, c, d) = ∑(2, 3, 4, 5, 13, 15) + ∑ t.r.(8, 9,
10, 12);
Y = f(u, v, w, x) = ∑(1, 5, 7, 9, 13, 15) + ∑ t.r. (8, 10,
11, 14);
V = f(r, s, t, u) = ∑(0, 2, 4, 8, 10, 14) + ∑ t.r.(5, 6, 7,
12);
F = f(u, v, w, x, y) = ∑(0, 2, 8, 10, 16, 18, 24, 26);
H = f(a, b, c, d, e) = ∑(5, 7, 9, 12, 13, 14, 15, 20,
21, 22, 23, 25, 29, 31);
M = f(v, w, x, y, z) = ∑(1, 3, 4, 6, 9, 11, 12, 14, 17,
19, 20, 22, 25, 27, 28, 30) + ∑ t.r.(8, 10, 24, 26);
J = f(a, b, c, d, e, f) = ∑(7, 12, 22, 23, 28, 34, 37,
38, 40, 42, 44, 46, 56, 58, 60, 62);
K = f(r, s, t, u, v, w) = ∑(9, 11, 13, 15, 25, 27, 29,
31, 41, 43, 45, 47, 57, 59, 61, 63).
3.6.25. Simplificați următoarele expresii folosind diagrame Veitch-Karnaugh:
3.6.26. Identificați IPE și IPNE din următoarele expresii:
S = f(a, b, c, d) = ∑(1, 5, 7, 8, 9, 10, 11, 13, 15);
T = f(a, b, c, d, e) = ∑(0, 4, 8, 9, 10, 11, 12, 13, 14,
15, 16, 20, 24, 28).
3.6.27. Simplificați sistemele de funcții:
X = f(a, b, c) = ∑(1, 3, 7);
Y = f(a, b, c) = ∑(2, 6, 7).
X = f(a, b, c) = ∑(3, 4, 5, 7);
Y = f(a, b, c) = ∑(3, 4, 6, 7).
3.6.28. Să se minimizeze următorul sistem de funcții:
X = f(a, b, c) = ∑(1, 2, 3, 7)
Y = f(a, b, c) = ∑(1, 2, 3, 6)
Z = f(a, b, c) = ∑(2, 4, 6).
3.6.29. Scrieți următoarele expresii sub forma unei sume de produse și apoi a unui produs de sume:
3.6.30. Implementați funcțiile de la punctul 3.6.29. cu minim de porți ȘI și SAU.
3.6.31. Simplificați funcțiile următoare și implementați-le cu porți ȘI-NU:
3.6.32. Implementați următoarele funcții cu porți ȘI-NU:
cu cel mult 6 porți, fiecare având 3 intrări ;
cu porți cu 2 intrări.
3.6.33. Simplificați funcția booleeană F sub formă de sumă de produse folosind condițiile nu ține cont:
, termeni redundanți = yz + xy;
,
termeni redundanți =
3.6.34. Simplificați funcția booleeană F folosind condițiile „nu ține cont” în (la) sumă de produse și produs de sume:
,
termeni redundanți =
termeni redundanți =
,
termeni redundanți = ;
termeni redundanți =
3.6.35. Implementați următoarele funcții folosind condițiile „nu ține cont” [6]:
, cu cel mult 2 porți NOR,
termeni redundanți:
, cu cel mult 3 porți NAND;
, cu porți NAND,
termeni redundanți =
3.6.36. Implementați următoarea funcție cu porți NAND sau NOR, folosind doar 4 porți. Sunt valabile doar intrările normale.
termen redundant wyz.
3.6.37. Următoarea expresie booleană: , este forma simplificată a expresiei:
Există condiții „nu ține cont”? Dacă da, care sunt acestea? [4]
3.6.38. Arătați trei posibilități de a exprima funcția:
cu opt sau mai puține litere [10].
3.6.39. Găsiți forma simplificată în sumă de produse a funcției
F = f • g,
unde f și g sunt date astfel:
3.6.40. Determinați tabelul de corespondență, FCD, FCC, FMD și FMC a funcției
CAPITOLUL 4
ANALIZA CIRCUITELOR COMBINAȚIONALE CU PORȚI LOGICE
4.1. INTRODUCERE
Modelul matematic al unui circuit combinațional cu porți este rețeaua de comutare sau schema logică, în care se face abstracție de caracteristicile constructive ale elementelor care compun circuitul, luând în considerare numai proprietățile funcționale ale acestora. În general, rețeaua de comutare cu elemente logice are n intrări, notate cu x1,x2,…,xn și m ieșiri, notate cu z1,z2,…,zm, care pot fi exprimate ca m funcții de cele n variabile de intrare. Această rețea se poate reprezenta schematic ca în figura 4.1 [5] [1].
Figura 4.1. Modelul general al unui circuit combinațional
4.2. ANALIZA REȚELELOR DE COMUTARE
Intrările unei rețele de comutare se aplică unor elemente logice ale căror ieșiri pot fi ieșiri ale rețelei sau intrări ale altor elemente logice din rețea. Un exemplu de rețea de comutare cu elemente logice cu două intrări și o ieșire este cel din figura 4.2. Fiecare element logic din rețea corespunde unei porți logice din circuitul de comutare modelat. În rețelele logice nu se admite legarea ieșirilor elementelor logice decât prin intermediul altor elemente logice.
Caracteristic pentru rețeaua logică combinațională este faptul că ieșirile depind numai de valorile intrării iar funcțiile de transfer sunt expresii booleene.
Figura 4.2. Exemplu de rețea de comutare
Semnalele aplicate la intrările unui circuit de comutare cu porți parcurg mai multe porți până se obțin semnalele de ieșire. Acest lucru se reflectă în rețea prin numărul elementelor logice interpuse între intrările și ieșirile rețelei. Maximul numărului de elemente logice aflate între intrările și ieșirile unei rețele logice reprezintă numărul de niveluri logice ale rețelei. Numerotarea nivelurilor se face, în mod convențional, de la ieșire spre intrare (figura 4.3) [2].
Timpul după care se obține valoarea corectă a ieșirii se numește timp de reacție sau timp de răspuns. Acesta este dat în cataloage, pentru fiecare circuit elementar, sub forma unor valori nominale. Alături de valoarea nominală apare și valoarea minimă, respectiv maximă. În proiectare ne bazăm pe valoarea tipică, dar trebuiesc analizate și cazurile cele mai defavorabile. În general interesează timpul maxim de răspuns [5].
Figura 4.3. Numerotarea nivelurilor logice într-o rețea combinațională
Există câteva tipuri particulare de rețele de comutare și anume: rețele sub formă de arbore boolean, rețele sub formă de graf boolean și rețele logice.
Rețelele sub formă de arbore boolean au o singură ieșire, iar ieșirile elementelor logice componente se aplică la o singură intrare. O astfel de rețea este și cea din figura 4.3. Rețeaua sub formă de arbore se analizează cel mai simplu prin scrierea succesivă a expresiilor funcțiilor realizate de elementele rețelei.
Un caz mai general îl reprezintă rețeaua sub formă de graf boolean. La această rețea, care are tot o singură ieșire, ieșirile circuitelor logice componente pot fi aplicate mai multor intrări din nivelurile inferioare. Ordinea de numerotare a nivelurilor este tot de la ieșire la intrare.
Un exemplu de graf boolean este cel din figura 4.4. După metoda de scriere a funcțiilor parțiale analiza se face la fel ca și în cazul precedent.
Figura 4.4. Rețea de comutare sub formă de graf boolean
Cazul cel mai general pentru rețelele de comutare îl reprezintă așa numita rețea logică, în care se admite ca ieșirea unui circuit să se aplice și la intrarea unui alt circuit dintr-un nivel superior, sub forma unei conexiuni inverse. La acest tip de rețele trebuie însă verificat faptul dacă ele mai sunt combinaționale sau nu, adică dacă ieșirile pot fi scrise numai ca funcții de intrări. Pentru aceasta se aplică o procedură formală prin care se urmărește ordonarea elementelor logice din rețea.
Existența unei conexiuni inverse într-o rețea de comutare cu elemente logice se poate determina folosind următoarele reguli [9] [14]:
1) Se numerotează în ordine toate elementele rețelei ale căror intrări sunt toate intrări principale ale circuitului, într-o ordine arbitrară, cu numere de la 1 la k, unde k este numărul elementelor ce îndeplinesc această condiție.
2) Se continuă numerotarea elementelor ale căror intrări sunt fie intrări principale, fie ieșiri ale elementelor anterior numerotate, cu numere de la k+1 până la m, unde m-k este numărul elementelor care îndeplinesc această condiție.
3) Se numerotează în continuare elementele ale căror intrări sunt ieșiri ale elementelor anterior numerotate, cu numere de la m+1 până la s.
4) Dacă în acest mod s-au numerotat toate elementele circuitului (s = numărul de porți), atunci nu există nici o conexiune inversă în circuit. Dacă însă s este mai mic decât numărul de porți înseamnă că există conexiuni inverse.
5) Se notează cu variabile auxiliare intrările ce nu provin de la elementele numerotate și se scrie expresia funcției de transfer cu ajutorul acestor variabile.
6) Dacă se poate dovedi că variabilele auxiliare sunt neesențiale pentru funcția de transfer, circuitul este combinațional. Dacă variabilele auxiliare sunt esențiale, adică funcția nu poate fi scrisă fără ele, circuitul este secvențial.
Cea mai simplă metodă de determinare a esențialității unei variabile constă în evaluarea expresiei funcției pentru toate valorile posibile ale variabilei. O variabilă x este neesențială dacă în funcția dată F(x1,x2,…,xn,) este satisfăcută relația:
F(x1, x2, …, xn, 1) = F(x1, x2, …, xn, 0)
ANALIZA REȚELELOR DE COMUTARE CU ELE-MENTE LOGICE DE TIP ȘI-NU ȘI SAU-NU
Dacă circuitele ȘI-NU și SAU-NU apar alături de circuitele ȘI respectiv SAU, sau fără acestea, operația de analiză se poate efectua în același mod ca mai sus, dar se înlocuiește fiecare poartă prin doi operatori [2] [11].
Pentru a putea scrie mai ușor expresia ieșirii unei rețele de comutare cu elemente logice ȘI-NU și SAU-NU, trebuie observat faptul că o variabilă de la intrarea circuitului apare complementată în expresia ieșirii unei rețele dacă a parcurs un număr impar de elemente de inversare (negare), respectiv necomplementată dacă a parcurs un număr par de asemenea elemente. Numerotând nivelurile de inversare, de la ieșire spre intrare și ținând cont de teoremele lui De Morgan și de observația de mai sus, rezultă următoarea regulă pentru determinarea operației realizate de un element logic ȘI-NU respectiv SAU-NU, aflat într-un anumit nivel:
Un element logic ȘI-NU (SAU-NU) realizează operația SAU (ȘI) asupra variabilelor de intrare complementate dacă se află într-un nivel de inversare impar, respectiv operația ȘI (SAU) asupra variabilelor de intrare necomplementate dacă se află într-un nivel de inversare par [5].
Pe baza acestei reguli se poate formula următorul algoritm de analiză a unei rețele de comutare cu elemente logice ȘI-NU și SAU-NU:
1) Se numerotează nivelurile logice începând de la ieșire, spre intrare.
2) Un element logic ȘI-NU dintr-o rețea formată numai din elemente ȘI-NU, realizează operația SAU asupra variabilelor de intrare complementate dacă se află într-un nivel logic impar, respectiv operația ȘI asupra variabilelor necomplementate dacă se află într-un nivel logic par.
4.3. PROBLEME PROPUSE
4.3.1. Să se scrie expresia funcției de ieșire pentru rețeaua combinațională de mai jos:
4.3.2. Să se scrie expresia funcției de ieșire pentru următoarea rețea combinațională:
4.3.3. Să se scrie expresiile funcțiilor de ieșire pentru rețeaua combinațională de mai jos [5] [6]:
4.3.4. Să se determine expresiile funcțiilor de ieșire pentru rețelele combinaționale de mai jos [4]:
a)
b)
4.3.5. Să se scrie expresiile funcțiilor de ieșire pentru rețelele combinaționale din figurile a, b și c:
a)
b)
c)
4.3.6. Determinați funcțiile booleene de ieșire ale circuitelor de la punctele a și b [9].
a)
b)
4.3.7. Determinați funcțiile booleene de ieșire ale circuitelor de la problema 4.4.6, dacă în schema de la punctul a se înlocuiesc porțile ȘI-NU cu porți SAU-NU, respectiv în schema de la punctul b se înlocuiesc porțile SAU-NU cu porți ȘI-NU.
4.3.8. Care sunt expresiile funcțiilor z1, z2, z3 din problema 4.3.3 dacă intrările A și F sunt legate împreună (notează intrarea cu A?
4.3.9. Se modifică expresia funcției F din problema 4.4.5, punctul a, dacă porțile ȘI-NU se înlocuiesc cu porți ȘI? Dar dacă se înlocuiesc porțile ȘI-NU cu porți SAU-NU iar porțile SAU-NU cu porți ȘI-NU? De ce? [4]
4.3.10. În schema de la problema 4.4.5 punctul c legați ieșirea F1 cu intrarea C. Verificați dacă circuitul nou construit este combinațional [4].
4.3.11. In schema de la problema 4.4.6 punctul a, înlocuiți porțile ȘI-NU din nivelele impare cu porți SAU-NU. Determinați expresile funcțiilor de ieșire. Explicați de ce s-au modificat expresiile ieșirilor [4] [6].
4.3.12. În schema de la problema 4.4.3 a legați intrarea G cu ieșirea z3. Care sunt expresiile funcțiilor de ieșire? Noul circuit este combinațional sau secvențial? Dar dacă se leagă ieșirea z3 cu intrarea H? [4] [6]
CAPITOLUL 5
SINTEZA CIRCUITELOR LOGICE COMBINAȚIONALE
5.1. SINTEZA REȚELELOR CU DOUĂ NIVELURI LOGICE
În general, sinteza unei anumite rețele de comutare constă în găsirea circuitului care realizează funcția de comutare dată, cu cheltuială minimă. Sinteza rețelelor cu două niveluri este foarte răspândită, fiind circuitele cu cea mai mică întârziere. Sub această formă nu se obține însă în toate cazurile sinteza optimă, pentru că pot exista circuite cu mai puține elemente logice dar niveluri mai multe.
Pentru sinteză se pleacă de la forma minimă disjunctivă sau conjunctivă. Atunci când se dă funcția, fără să se precizeze dacă este minimă sau nu, prima operație care se face este cea de minimizare.
Rețelele logice ȘI-SAU respectiv SAU-ȘI sunt rețele cu două niveluri. Pentru determinarea lor se pornește de la FMD respectiv FMC, funcție de forma cea mai avantajoasă pentru realizarea unei rețele cu preț minim.
În general, variabilele de intrare provin de la elemente bistabile, deci ele există atât sub formă directă cât și sub formă negată. Când această condiție nu este îndeplinită trebuiesc prevăzute elemente logice suplimentare pentru negare. În acest caz se alege acea formă, dintre formele minime disjunctive sau conjunctive, căreia îi corespunde un număr minim de elemente de negare pentru variabilele de intrare [14].
5.1.1. SINTEZA REȚELELOR CU DOUĂ NIVELURI, CU
ELEMENTE ȘI-NU
O rețea logică de tip ȘI-SAU se poate transforma într-o rețea logică de tip ȘI-NU cu două niveluri logice, înlocuind fiecare element ȘI, respectiv SAU, din rețeaua dată cu elemente logice ȘI-NU și considerând variabilele de la intrarea elementelor ȘI-NU corespondente elementelor ȘI, în aceeași formă ca și în rețeaua ȘI-SAU, iar variabilele de la intrarea elementului ȘI-NU corespondent elementului SAU din rețeaua ȘI-SAU, în formă negată.
Pentru a realiza circuitul cu elemente ȘI-NU se pleacă de la forma minimă disjunctivă, aceasta fiind forma cea mai avantajoasă pentru sinteza cu aceste elemente. Având dată FMD a unei funcții, acesta poate fi scrisă și sub forma în care să apară numai operatori ȘI-NU [5].
5.1.2. SINTEZA CIRCUITELOR CU DOUĂ NIVELURI, CU
ELEMENTE SAU-NU
O rețea de comutare de tip SAU-ȘI se poate transforma într-o rețea de tip SAU-NU echivalentă, cu două niveluri, înlocuind fiecare element SAU, respectiv ȘI din rețeaua dată cu elemente logice SAU-NU și negând variabilele de intrare, de la elementul SAU-NU corespondent elementului ȘI din rețeaua SAU-ȘI. Valabilitatea acestei afirmații se poate demonstra transformând expresia asociată rețelei SAU-ȘI, printr-o dublă negare, într-o expresie echivalentă cu prima.
Cea mai potrivită forma de exprimare pentru sinteză este forma minimă conjunctivă (FMC). Prin dubla negare a acesteia obținem o expresie care conține numai operatorul SAU-NU și care descrie din punct de vedere structural circuitul minim cu elemente de tip SAU-NU, pe două niveluri logice.
Formele minime ale unei funcții nu sunt însă echivalente din punct de vedere al costului circuitului. Există cazuri în care, de exemplu, FMC generează un circuit cu mai puține porți decât FMD a aceleași funcții logice. Astfel, pornind de la forma cerută de tipul circuitului, adică de la FMD pentru circuite ȘI-NU, s-ar putea să obținem un circuit mai costisitor. În aceste situații proiectanții pot considera cealaltă formă a funcției ca bază de sinteză, realizând în primul rând sinteza negatei funcției, care apoi va fi negata folosind încă un element logic [2] [11].
Negarea variabilelor atunci când ele nu sunt disponibile sub ambele forme (directă și negată), se poate realiza cu porțile ȘI-NU, respectiv SAU-NU disponibile, fie prin legarea intrărilor rămase libere la nivelul logic corespondent elementului neutru, fie legând toate intrările împreună [11].
5.1.3. SINTEZA CU CIRCUITE LOGICE ȘI-SAU-NU
Printre circuitele familiei TTL un număr mare de capsule conțin elemente ce realizează funcția ȘI-SAU-NU (figura 5.1). Aceste circuite sunt folosite adesea în sintezã deoarece ele realizează funcții elementare cu douã niveluri logice iar timpul de răspuns este aproximativ egal cu timpul de răspuns al unei porți [14].
Figura 5.1. Circuit ȘI-SAU-NU
5.2. PROBLEME PROPUSE
5.2.1. Să se implementeze funcția:
f = p1 + p2 + p6 + p8 + p12 + p14 + p18 + p20 + p22 + p24,
pe două nivele logice cu un număr minim de porți de tip ȘI-NU.
5.2.2. Să se implementeze funcția:
f = p1 + p3 + p4 + p5 + p12 + p20 + p25 + p26 + p30,
folosind un număr minim de porți logice de tip ȘI-NU cu 3 intrări.
5.2.3. Să se implementeze funcțiile de mai jos cu un număr minim de porți SAU-NU și specificați câte circuite integrate se utilizează:
f = p0 + p2 + p3 + p5 + p7 + p8 + p10 + p11 + p13 + p15;
f = p0 + p1 + p2 + p5 + p9 + p10 + p11 + p12 + p13 + p14;
f = p1 + p2 + p4 + p5 + p7 + p8 + p9 + p10 + p15;
f = p0 + p1 + p2 + p5 + p8 + p9 + p10 + p11 + p12 + p13 + + p14;
f = p0 + p1 + p3 + p4 + p5 + p12 + p13.
5.2.4. Să se implementeze funcțiile date în problema 5.2.3 cu un număr minim de porți ȘI-NU. Comparați soluțiile din punct de vedere al circuitelor folosite.
5.2.5. Să se implementeze funcțiile de mai jos cu porți de tip ȘI-SAU-NU:
f = p0 + p2 + p3 + p5 + p6 + p8, termeni redundanți: p10 p15;
f = p0 + p4 + p5 + p6 + p7 + p10, termeni redundanți: p2, p3, p8, p9, p11, p15;
f = p0 + p1 + p2 + p3 + p4 + p7+ p8 + p9, termeni redundanți: p10 p15;
f = p2 + p3 + p4 + p5 + p6 + p8 + p9, termeni redundanți: p10 p15;
f = p0 + p4 + p5 + p6 + p8 + p9, termeni redundanți: p10 p15.
5.2.6. Să se implementeze cu porți ȘI-NU cu două intrări un sumator binar complet pe 2 biți.
5.2.7. Să se implementeze cu porți SAU-NU cu două intrări funcția:
5.2.8. Să se implementeze cu porți SAU-NU un circuit cu “vot majoritar” care are trei intrări de date (este un circuit care furnizează la ieșire valoarea logică a majorității variabilelor de intrare) [4].
5.2.9. Să se implementeze cu porți SAU-EXCLUSIV funcția:
f = p1 + p2 + p4 + p7 + p8 + p11 + p13 + p14.
5.2.10. Să se implementeze funcția:
f = p1 + p3 + p5 + p7 + p11 + p13 + p17 + p19 + p21 + p23,
cu ajutorul circuitului multiplexor cu 16 intrări de date.
5.2.11. Să se implementeze funcția:
f = p0 + p2 + p4 + p5 + p11 + p20 + p24 + p25 + p31,
cu două etaje de multiplexoare.
5.2.12. Să se implementeze funcția de 6 variabile care semnalizează apariția multiplilor lui 5 în intervalul 0–63, cu două etaje de multiplexoare [13].
5.2.13. Să se implementeze cu două etaje de multiplexoare o funcție care ia valoarea logică 1 pentru numerele prime cuprinse în intervalul 0–63. Cum se modifică schema, dacă funcția are valoarea logică 1 doar pentru numerele prime cuprinse în intervalul 32–63?
5.2.14. Implementați convertorul de cod din codul BCD în codul Gray, definit de tabelul următor [3]:
5.2.15. Să se implementeze funcțiile care selectează numerele prime, multiplii de 3 și multiplii de 4 din intervalul 0–63 [4]:
cu porți logice;
cu multiplexoare.
5.2.16. Implementați funcția:
f = p0 + p2 + p5 + p9,
cu ajutorul circuitului decodificator și a porților logice.
5.2.17. Să se implementeze funcția de 3 variabile:
f = p0 + p1 + p2 + p6 + p7,
utilizând un multiplexor cu 8 intrări de date, și apoi utilizând un multiplexor cu 4 intrări de date.
5.2.18. Să se implementeze funcția:
f = p0 + p4 + p8 + p12 + p15,
utilizând un multiplexor cu 8 intrări de date.
5.2.19. Să se implementeze cu porți logice un circuit care semnalizează prin valoarea logică 1 prezentă la ieșirea sa, momentul în care cuvântul A(A2A1A0) este mai mare decât cuvântul B(B2B1B0) [9].
5.2.20. Să se implementeze cu porți logice un scăzător complet pe un bit, definit de următorul tabelul:
5.2.21. Să se implementeze circuitul logic combinațional din figura 5.1, comandat de semnalele F0 și F1, conform tabelului de mai jos:
Figura 5.1. Schema bloc a circuitului logic combinațional
Implementarea se va face utilizând:
porți logice ȘI-NU (NAND);
multiplexor.
5.2.22. Proiectați circuitul care implementează funcțiile booleene de mai jos, folosind multiplexoare cu număr diferit de intrări pentru date. Intrările de date vor fi conectate la nivele logice 1 și 0 logic.
X(a, b, c) = (0, 1, 4, 5, 7);
Y(a, b, c, d) = (1, 4, 5, 7, 8, 12, 13, 15);
Z = (0, 1, 3, 4, 6, 7, 15, 21, 25).
5.2.23. Implementați folosind multiplexoare cu 2 intrări de date funcțiile de la punctele a și c, respectiv cu 3 intrări de date funcția de 4 variabile de la punctul b [4].
X(a, b, c) = (0, 1, 4, 5, 7);
Y(a, b, c, d) = (0, 3, 4, 5, 7, 9, 13, 15);
Z(a, b, c, d, e) = (0, 2, 3, 4, 6, 9, 12, 13, 15, 19, 23, 25, 26, 31).
5.2.24. Implementați următoarele ecuații booleene folosind un număr cât mai mic de porți logice:
T(w, x, y, z) = (0, 2, 4, 6, 8, 10, 12, 14);
S(w, x, y, z) = (0, 1, 3, 9, 10, 12, 14);
U(a, b, c, d, e) = (0, 2, 5, 7, 8, 10, 13, 15, 16, 18, 21, 23, 24, 26, 29, 31);
A(v, w, x, y, z) = (1, 3, 5, 7, 12, 13, 14, 15, 17, 19, 21, 23).
5.2.25. Proiectați un comparator pe 4 biți caracterizat de faptul că propagarea semnalelor se face de la stânga la dreapta [1].
5.2.26. Minimizați funcțiile logice asociate unui decodificator BCD/7 segmente utilizând termenii canonici redundanți și implementați apoi aceste funcții utilizând porți logice de tip ȘI-NU.
5.2.27. Fie un circuit combinațional definit de următoarele 3 funcții:
Proiectați acest circuit folosind un circuit decodor și porți logice [4].
5.2.28. Să se implementeze următoarele sisteme de funcții cu circuite multiplexoare:
f1 = p0 + p1 + p2 + p3 + p10 + p11 + p14 + p15
a) f2 = p0 + p1 + p5
f3 = p1 + p2 + p3 + p5;
f1 = p2 + p3 + p10 + p13 + p15
b) f2 = p4 + p5 + p10 + p13 + p15
f3 = p8 + p9 + p10;
5.2.29. Simplificați funcțiile următoare și implementați-le cu porți ȘI-SAU-NU:
5.2.30. Implementați următoarea funcție cu porți NAND sau NOR, folosind doar 4 porți.
termen redundant wyz.
5.2.31. Implementați funcția de mai jos cu multiplexor cu 4 intrări de date.
5.2.32. Implementați funcția de mai jos cu multiplexor cu 8 intrări de date.
5.2.33. Implementați un afișor cu 7 segmente care afișează codul hexazecimal folosind multiplexoare ce 8 intrări de date.
5.2.34. Implementați convertorul de cod din codul BCD în codul 3N. Conversia din codul BCD in codul 3N se face conform tabelului de mai jos [6]:
5.2.35. Implementați un afișor cu 7 segmente care afișează codul BCD folosind multiplexoare ce 4 intrări de date.
CAPITOLUL 6
CIRCUITE BASCULANTE BISTABILE, NUMĂRĂTOARE ȘI REGISTRE
6.1. PROBLEME PROPUSE
6.1.1, Desenați schema bloc pentru circuitele secvențiale. Marcați toate intrările și ieșirile sistemului. Definiți fiecare variabilă prin relațiile dintre aceasta și restul variabilelor.
6.1.2. Desenați schema cu porți logice, construiți tabelul caracteristic și scrieți ecuațiile de stare pentru următoarele circuite basculante bistabile:
a) R-S;
b) R-S sincron;
c) JK;
d) T;
e) D
6.1.3. În figura următoare, corespunzătoare acestei probleme, completați diagrama de timp (axa Q) pentru circuitul basculant bistabil de tip R-S sincron:
Figura 6.1. Completați diagrama de timp a CBB de tip R-S sincron
6.1.4. În figura 6.2, completați diagrama de timp pentru bistabile de tip T și D, caracterizate prin faptul că își modifică starea la apariția frontului pozitiv al impulsului de tact [9]:
Figura 6.2.Completați diagramele de timp
6.1.5. Care sunt avantajele bistabilelor care își modifică starea la apariția frontului crescător sau descrescător al impulsului de tact față de cele care sunt comandate de apariția nivelelor logice? [10]
6.1.6. Schițați simbolurile logice standard pentru:
a) Circuit basculant bistabil de tip D, comandat de frontul negativ al semnalului de tact și prevăzut cu semnal de reset activ pentru nivel 0 logic.
b) Circuit basculant bistabil de tip J-K, comandat de frontul pozitiv al semnalului de tact și prevăzut cu semnal de reset activ pentru nivel 0 logic, respectiv cu semnal de preset activ pentru nivel 1 logic.
6.1.7. Desenați simbolurile IEEE pentru următoarele circuite [1]:
a) Circuit basculant bistabil de tip T, comandat de nivelul logic pozitiv al semnalului de tact și prevăzut cu semnale de reset și preset active pe nivel logic 0.
b) Circuit basculant bistabil de tip D, comandat de frontul negativ al semnalului de tact și prevăzut cu semnal de preset activ pe nivel logic 1, respectiv cu semnal de reset activ pe nivel logic 0.
6.1.8. Descrieți cazul în care 0 și 1 sunt asociate unor circuite basculante bistabile de tip „master-slave” comandate de nivel logic. Argumentați explicația cu ajutorul unei diagrame de timp.
6.1.9. Schițați o diagramă de timp ilustrând semnalul de tact „skew”. Descrieți efectele acestuia în cadrul sistemelor de viteză mare.
6.1.10. Un circuit basculant bistabil comandat de frontul negativ al semnalului de tact are următorii parametri de timp: tm=15ns, thold=5ns, durata minimă a impulsului de tact pozitiv este de 20ns. Schițați formele următoarelor semnale: impulsul de tact, datele de intrare și datele de ieșire, arătând relațiile de timp dintre acestea [4].
6.1.11. Ce măsuri generale pot fi luate pentru a evita intrarea unui circuit secvențial într-o stare instabilă? [14]
6.1.12. Fiind dată schema logică din figura 6.3, se cere să se completeze diagrama de timp (semnalele Q1 și Q2) [10]:
Figura 6.3.Completați diagrama de timp
6.1.13. Desenați schema logică a unui numărător asincron modulo 8. Folosiți circuite basculante bistabile de tip T, comandate de frontul negativ al semnalului de tact. Marcați stările variabilelor de ieșire rezultate [7].
6.1.14. Presupuneți că o dată de intrare, de exemplu 1010, este atribuită unui numărător sincron pe patru biți. Proiectați numărătorul folosind circuite basculante bistabile de tip D și desenați diagrama de timp corespunzătoare ieșirii. Presupuneți că circuitul este comandat de frontul pozitiv al semnalului de tact.
6.1.15. Arătați cum poate fi configurat un numărător 74163 MSI IC, astfel încât să devină un numărător „bi-quinary”.
6.1.16. Un numărător binar 74LS393 este utilizat pentru a furniza variabilele de stare pentru o simplă secvență de control. Trei impulsuri de control sunt derivate din variabilele de stare. Acestea trebuie să îndeplinească următoarele condiții:
– O1 trebuie să ajungă în starea „high” și să rămână în această stare timp de 1 s, iar apoi să treacă în starea „low” în care să rămână timp de 5 s.
– O2 trebuie să ajungă în starea „high” după 300 ns din momentul în care O1 ajunge în starea „high” și să rămână în această stare încă 200 ns după trecerea lui O1 în starea „low”.
– O3 trebuie să ajungă în starea „high” după 100 ns din momentul în care O2 ajunge în starea „high”, să rămână în această stare 200 ns după care să treacă în starea „low”, apoi pentru 300 ns rămâne în starea „low”, după care trece din nou în starea „high” pentru 200 ns.
1) Desenați diagrama de timp a celor trei ieșiri de control.
2) Determinați frecvența de tact necesară pentru a comanda numărătorul.
3) Proiectați logică pentru cele 3 ieșiri.
6.1.17. Desenați schema logică pentru un registru pe 4 biți cu intrări și ieșiri paralele. Indicați intrările, ieșirile și semnalul de tact care modifică starea circuitului la apariția frontului negativ.
6.1.18. 7491 este un registru TTL de deplasare la dreapta pe 8 biți. Secvența de biți 11001010 este introdusă în prealabil în registru (bitul cel mai din stânga este denumit MSB – „most significant bit”). Care este secvența de biți obținută după aplicarea a 5 impulsuri de tact? Considerați că pe poziția corespunzătoare bitului MSB se introduce valoarea 0 la fiecare deplasare la dreapta [3].
Figura 6.4. Problema 6.1.20 – registru pe 4 biți
6.1.19. Considerăm un circuit basculant bistabil JK’ obținut dintr-un circuit basculant bistabil JK care are un inversor între intrarea externă K’ și intrarea internă K.
a) Obțineți tabelul caracteristic al circuitului.
b) Obțineți ecuațiile caracteristice .
c) Arătați că dacă conectăm cele două intrări externe obținem un circuit basculant bistabil de tip D.
6.1.20. Registrul din figura 6.4. transferă informația de intrare într-un circuit basculant bistabil pe frontul crescător al intrării CP (semnalul de tact). Modificați circuitul basculant bistabil în așa fel încât informația să fie transferată în registru la apariția
frontului descrescător al semnalului de tact, furnizând un semnal de control egal cu 1 [3].
6.1.21. Cu câte circuite basculante trebuie completat un numărător binar asincron pe 10 biți astfel încât acesta să ajungă la următorul număr după 0111111111? [4]
6.1.22. Registrul din figura 6.5. încarcă intrările în timpul unei tranziții negative a semnalului de tact. Ce schimbări interne sunt necesare pentru ca intrările să fie încărcate în timpul unei tranziții pozitive a semnalului de tact? [9]
Figura 6.5. Registru cu încărcare paralelă utilizând bistabile de tip D
Tabelul 6.1.
6.1.23. Desenați circuitul secvențial al cărui tabel de stări este dat de tabelul 6.1, folosind un registru pe 2 biți și porți logice.
6.1.24. Sumatorul serial din figura 6.6. folosește 2 regiștrii de deplasare pe 4 biți [11]. Registrul A conține numărul binar 0101 și registrul B numărul binar 0111. Circuitul basculant bistabil de tip Q este inițial gol. Listați valorile binare în registrul A și circuitul basculant de tip Q după fiecare deplasare.
Figura 6.6. Sumator serie
6.1.25. Un circuit basculant bistabil are o întârziere de 20 ns din momentul în care intrarea corespunzătoare semnalului de tact trece din 1 în 0, timp în care ieșirea este complementată. Care este întârzierea maximă intr-un numărător binar asincron pe 10 biți care folosește astfel de circuite basculante bistabile? Care este frecvența maximă a numărătorului astfel încât acesta să poată opera în timp real? [11]
6.1.26. Ce modificări trebuie făcute în circuitul din figura 6.7. pentru a fi convertit intr-un circuit care scade conținutul lui B din conținutul lui A? [4]
Figura 6.7. Sumator serie
6.1.27. Determinați următoarea stare pentru fiecare din cele 6 stări nefolosite în numărătorul asincron BCD din figura 6.8. Numărătorul este „self-starting”?
Figura 6.8. Diagrama logică a numărătorului asincron BCD
6.1.28. Numărătorul asincron din figura 6.9 [11] folosește circuite basculante care își schimbă starea în urma tranziției negative de pe intrarea CP (semnalul de numărare). Determinați secvența de numărare a numărătorului. Numărătorul este „self-starting”?
6.1.29. Proiectați un numărător BCD sincron folosind un circuit basculant bistabil de tip JK.
Figura 6.9. Numărătorul asincron – problema 6.1.28
6.1.30. 1) Listați cele 8 stări nefolosite ale numărătorului sincron din figura 6.10. Determinați stările următoare pentru fiecare stare nefolosită și descrieți-o, în condițiile în care circuitul aflat într-o stare invalidă nu returnează o stare validă [4].
Figura 6.10. Numărător sincron modulo 24
2) Modificați circuitul recomandat în text și arătați că:
a) circuitul produce aceleași secvențe de stări ca cele arătate în figura 6.11;
b) circuitul ajunge la o stare validă din oricare stare nefolosită.
secvența de numărare și necesarul de decodare
Figura 6.11. Descrierea numărătorului Johnson
CAPITOLUL 7
CIRCUITE SECVENȚIALE – NOȚIUNI GENERALE
7.1. PROBLEME PROPUSE
7.1.1. Desenați modelele mașinilor sincrone Mealy și Moore. Notați variabilele de excitație, variabilele de stare, variabilele de intrare, precum și variabilele de ieșire în ambele cazuri [7].
7.1.2. Fiind date diagramele de stare din figura 7.1, construiți tabelele de stare corespunzătoare.
7.1.3. Utilizând tabelele de tranziție construite pentru cazurile c) și d) ale figurii de la problema 7.1.2, construiți tabelele de excitație pentru :
a) Circuitul basculant bistabil R-S.
b) Circuitul basculant bistabil J-K.
c) Circuitul basculant bistabil D.
d) Circuitul basculant bistabil T.
7.1.4. Explicați de ce stările neutilizate generează termeni „nu ține cont” când se transformă tabelul de stare în tabel de tranziție. Ilustrați răspunsul cu un exemplu de tabel de stare.
7.1.5. Fiind dată diagrama logică prezentată în figura 7.2 [13]:
a) Derivați ecuațiile de ieșire și cele de excitație;
b) Scrieți ecuațiile stărilor următoare;
c) Construiți un tabel de tranziții;
d) unde Φ reprezintă toate condițiile intrărilor (x1x2x3: 000 111)
a) b)
c)
Figura 7.1. Problema 7.1.2
Figura. 7.2. Problema 7.1.5
d) Desenați diagrama de stare;
e) Completați diagrama de timp din figura 7.3.
Figura 7.3. Problema 7.5, punctul e.
7.1.6. Construiți diagrama de stare a unui circuit secvențial de tip Mealy care va detecta secvența serială de intrare x:010110. Când întreaga secvență este detectată, atunci circuitul va determina trecerea ieșirii z în starea „high” 1[2].
7.1.7. Construiți diagrama de stare a unui circuit secvențial de tip Mealy care va detecta secvențele de intrare x: 01101 sau 01111. Dacă este întâlnită secvența de intrare x: 01101, atunci ieșirea z1 va trece în starea „high” (z1=1), iar dacă x: 01111, atunci ieșirea z2 va trece în starea „high” (z2=1). Fiecare secvență de intrare se poate suprapune cu ea însăși sau cu o altă secvență.
7.1.8. Proiectați diagrama de stare a unui circuit secvențial de tip Moore care să determine dacă o secvență serială de intrare pe 4 biți este legală în codul BCD (ponderile 8-4-2-1). Dacă este detectată o secvență de cod de tip BCD, atunci ieșirea z va avea valoarea 1, iar dacă este introdus un cod incorect, atunci z va avea valoarea 0.
7.1.9. Fie un circuit basculant bistabil prevăzut atât cu intrări de „set” cât și de „reset”. Dacă se încearcă o setare și resetare simultană a circuitului, va avea loc setarea acestuia. Un astfel de circuit se numește circuit basculant bistabil cu setare prioritară („set-dominate flip-flop”).
a) Determinați tabelul caracteristic și ecuația caracte-ristică a acestui circuit basculant bistabil cu setare prioritară.
b) Desenați schema logică a circuitului basculant bistabil cu setare prioritară asincron.
7.1.10. Această problemă descrie modul de funcționare a unui circuit basculant bistabil „master-slave” de tip J-K, din punct de vedere al modului de efectuare al tranzițiilor binare la nivelul porților interne (vezi figura 7.4) [13]. Evaluați valorile binare (0 sau 1) de la ieșirile celor 9 porți când intrările circuitului trec prin următoarele secvențe:
a) Clk = 0, Y = 0, Q = 0 și J = K =1:
b) După ce Clk trece în 1 logic (Y trebuie să treacă în 1 logic; Q rămâne în 0 logic).
c) După ce Clk trece în 1 logic, și imediat după ce J trece în 0 logic (Q va deveni 1 logic, Y va rămâne nemodificat).
d) După ce Clk trece din nou în 1 logic (Y va deveni 0 logic).
e) După ce Clk revine în 0 logic și imediat după ce K trece în 0 logic (Q va deveni 0 logic).
f) Tranzițiile semnalului de tact nu au efect atât timp cât J și K rămân 0 logic.
Figura 7.4. Problema 7.1.10
7.1.11. Sumatorul complet din figura 7.5. primește 2 intrări externe x și y; a treia intrare z provine de la ieșirea unui circuit basculant bistabil de tip D. Ieșirea reprezentată de transport este transferată circuitului basculant bistabil la fiecare tranziție a semnalului de tact. Ieșirea externă S oferă suma dintre x, y și z. Obțineți tabelul și diagrama stărilor circuitului secvențial [4].
Figura 7.5. Problema 7.1.11
7.1.12. Obțineți tabelul și diagrama stărilor pentru circuitul secvențial figura 7.6. Care este funcția acestui circuit?
Figura 7.6. Problema 7.1.12
7.1.13. Fie un circuit secvențial compus din patru circuite basculante bistabile -A, B, C, D -, și o intrare x. Ecuațiile de stare sunt:
A(t+1) = (C' + D)x + (CD + );
B(t+1) = A;
C(t+1) = B;
D(t+1) = C;
a) Obțineți secvențele stărilor când x=1, începând din starea ABCD=0001.
b) Obțineți secvențele stărilor când x=0, începând din starea ABCD=0000.
CAPITOLUL 8
DESCRIEREA CIRCUITELOR SECVENȚIALE
8.1. PROBLEME PROPUSE
8.1.1. Reduceți numărul de stări ale automatelor descrise prin tabelele de stări de mai jos utilizând metoda partiției în clase de stări k-echivalente [8].
e)
8.1.2. Reduceți tabelele stărilor date la problema 8.1 utilizând metoda tabelului implicaților.
8.1.3. Utilizați o diagramă de fuziune combinată pentru a reduce numărul stărilor circuitului secvențial descris de tabelul:
8.1.4. Reduceți următoarele tabele de stări utilizând o diagramă de fuziune combinată și un graf de compatibilitate.
8.1.5. Explicați cum poate fi găsită o pereche de stări compatibile ale unui circuit secvențial incomplet definit utilizând tabelul implicațiilor. Ilustrați acest lucru printr-un exemplu [6].
8.1.6. Explicați de ce codificarea stărilor are impact asupra realizării finale a circuitului secvențial. Exemplificați proiectând un circuit secvențial cu trei stări și utilizând două codificări diferite a stărilor.
8.1.7. Spuneți, cu cuvintele voastre, care sunt cele trei reguli practice utilizate în codificarea stărilor și care este ordinea de aplicare a acestora.
8.1.8. Codificați stările circuitelor secvențiale de tip Mealy descrise prin tabelele tranziților și ale ieșirilor de mai jos:
8.1.10. Fie un circuit secvențial format din 2 circuite basculante bistabile (A și B), care are 2 intrări (x și y) și o ieșire(z). Funcțiile de intrare și de ieșire ale circuitelor basculante bistabile sunt:
JA = xB + ; KA = x;
JB = x; KB = x+ A;
z = xyA + B.
Realizați schema logică, costruiți tabelul tranziților și al ieșirilor, determinați diagrama stărilor și ecuațiile stărilor [4].
8.1.11. Reduceți numărul stărilor pentru următorul tabel de stări și refaceți tabelul.
8.1.9. Realizați circuitul descris de tabelul tranzițiilor și ieșirilor din problema 8.1.8-c utilizând un circuit basculant bistabil de tip D.
8.1.12. Determinați secvența ieșirii generată de circuitul descris prin tabelul stărilor specificat în problema 6.1.14 dacă la intrare se aplică următoarea secvență: 01110010011 și se consideră starea a ca fiind stare inițială. generata cu intrarea secventei 01110010011.
8.1.13. Repetați problema 6.1.15 folosind tabelul redus din problema 6.1.14. Arătați că se obține aceeași secvență a ieșirii.
8.1.14. Obțineți tabelul de excitație a circuitul basculant bistabil de tip J-K descris în problema 6.1.4.
8.15. Determinați tabelul de excitație a circuitul basculant bistabil descris în problema 6.1.5.
8.1.16. Un circuit secvențial are o ieșire și o intrare. Diagrama de stare este descrisă în figura 8.1 [14].
Figura 8.1. Diagrama de stare
Descrieți circuitul secvențial cu:
a) bistabile de tip T,
b) bistabile de tip RS și
c) bistabile de tip JK.
8.1.17. Proiectați un registru pe 4 biți care face conversia numerelor binare stocate în registru în complementul față de 2 atunci când intrarea x=1. Pentru proiectarea registrului se vor folosi circuite basculante bistabile de tip RST. Acest circuit basculant bistabil are 3 intrări: 2 intrări similare circuitului de tip R-S și una similară unui circuit de tip T. Intrările R și S sunt folosite pentru a transfera numere pe 4 biți atunci când intrarea y=1. Folosiți intrarea T pentru conversie.
8.1.18. Proiectați un numărător BCD folosind circuite basculante bistabile de tip J-K.
8.1.19. Proiectați un numărător care numără zecimal conform codului Aiken (cu ponderile 2, 4, 2, 1). Folosiți circuite bascu-lante bistabile de tip T.
8.1.20. Descrieți numărătorul binar având următoarele secvențe binare repetate. Folosiți circuite bascu-lante bistabile de tip J-K.
(a) 0, 1, 2
(b) 0, 1, 2, 3, 4
(c) 0, 1, 2, 3, 4, 5, 6
8.1.21. Descrieți un numărător cu următoarea secvență: 0, 1, 3, 2, 6, 4, 5, 7 și repetați. Folosiți circuite basculante bistabile de tip R-S.
8.1.22. Descrieți un numărător cu următoarea secvență: 0, 1, 3, 7, 6, 4 și repetați. Folosiți circuite basculante bistabile de tip T.
8.1.23. Descrieți un numărător cu următoarea secvență: 0,4,2, 1,6 și repetați. Folosiți circuite basculante bistabile de tip J-K.
8.1.24. Proiectați circuitul secvențial descris de următoarele ecuații de stare:
A(t + 1) = xAB + yC + xy
B(t + 1) = xAC + B
C(t + 1) = B + yA
Folosiți circuite basculante bistabile de tip J-K.
8.1.25. Derivați ecuațiile de stare pentru circuitului specificat de tabelul de mai jos. Precizați termenii nesemnificativi.
8.1.26. Desenați blocul de control al cărui tabel de stări este specificat mai jos folosind 2 multiplexoare, un registru și un decodor.
8.1.27. Construiți un sistem digital pentru înmulțirea a două numere binare prin metoda adunării repetate. Circuitul este format din trei registre; deînmulțitul se află în registrul BR, înmulțitorul în registrul AR iar produsul în registrul PR. Un sumator adună conținutul registrului BR cu cel al registrului PR iar continutul registrului AR este decrementat cu 1 după fiecare adunare. Un circuit Z va indica momentul in care continutul registrului AR este 0, deci faptul că registrul PR conține rezultatul înmulțirii [6].
8.1.28. Demonstrați că înmulțirea a 2 numere de n – biți dă un produs mai mare sau egal cu 2n biți [6].
8.1.29. Listați conținutul registrelor E, A, Q și P în timpul procesului de înmulțire a 2 numere, folosind un tabel similar cu cel din figura 8.2, știind că deînmulțitul este 11111 și înmulțitorul este10101 [6].
Figura 8.2. Exemplu de înmulțire binară
8.1.30. Determinați timpul necesar pentru efectuarea unei înmulțiri în binar a unui multiplicator. Considerați că registrul Q are n biți și că perioada de tact este t ns.
8.1.31. Desenați circuitul de control a multiplicatorului binar specificat în diagrama ASM din figura 8.3 [14] folosind următoarele tipuri de circuite:
a) Circuite basculante de tip J-K și porți.
b) Circuite basculante de tip D și un decodor.
c) Multiplexoare de intrare și un registru.
d) Un circuit basculant/stare.
Figura 8.3. Harta ASM pentru multiplicatorul binar
CAPITOLUL 9
CIRCUITE SECVENȚIALE ASINCRONE
9.1. PROBLEME PROPUSE
9.1.1. Arătați care sunt deosebirile dintre circuitele secvențiale sincrone și cele asincrone. Precizați avantajele și dezavantajele fiecărei categorii.
9.1.2. Determinați tabelul stărilor corespunzător unui circuit basculant bistabil de tip T care își modifică starea la apariția frontului pozitiv al semnalului de tact. Circuitul are două intrări – tactul și intrarea T – și o ieșire – Q. Deduceți ecuația caracteristică a bistabilului de tip T:
Q’ = Q T.
9.1.3. Definiți următoarele noțiuni și explicați-le folosind un tabel simplu al stărilor:
Cursă;
Cursă necritică;
Cursă critică;
Ciclu.
9.1.4. Ce este un IPAC (Interface Protocol Asynchronous Cell)? Descrieți principiul și modul de funcționare al acestuia.
9.1.5. Schițați diagramele bloc pentru un sistem MOM (Mixed Operating Mode). Explicați care sunt avantajele și dezavantajele utilizării unui astfel de sistem.
9.1.6. Creați o nouă stare de atribuire pentru următorul tabel al stărilor și construiți un graf de tranziție al stărilor [7].
9.1.7. Determinați tabelul tranzițiilor pentru circuitul secvențial asincron din figura 9.1. Determinați valorile stărilor interne Y1Y2 pentru următoarea secvență de intrări x1x2: 00, 10, 11, 01, 11, 10, 00.
Figura 9.1. Schema circuitului secvential pentru problema 9.1.7
9.1.8. Fie un circuit secvențial asincron descris de următoarele ecuații (a tranzițiilor și a ieșirii):
Y = x1 + (x1 + )y
z = y
a) Desenați schema logică a circuitului;
b) Determinați tabelul tranzițiilor și al ieșirilor;
c) Determinați tabelul redus al stărilor (cu 2 stări);
d) Descrieți în cuvinte comportamentul circuitului.
9.1.9. Un circuit secvențial asincron are 2 stări interne și o ieșire. Funcțiile tranzițiilor și a ieșirii circuitului sunt următoarele:
Y1 = x1x2 + x1 + y1;
Y2 = x2 + x1y2 + y1;
z = x2 + y1.
a) Desenați schema logică a circuitului;
b) Determinați tabelul tranzițiilor și al ieșirilor;
c) Obțineți tabelul de stări pentru circuit.
9.1.10. Transformați tabelul stărilor din figura 9.2. într-un tabel de tranziție atribuind următoarele valori binare stărilor [7]:
a = 00, b = 11, c = 01.
Figura 9.2.Tabelul starilor pentru problema 9.1.10
Atribuiți valori unei a patra stări (suplimentare) introdusă în scopul evitării curselor critice;
Atribuiți ieșiri stărilor nedefinite pentru a evita ieșirile temporare false;
Desenați schema logică a circuitului.
9.1.11. Implementați circuitul definit în problema 9.1.3 cu un circuit basculant bistabil de tip R-S cu elemente logice SAU-NU. Implementați apoi circuitul folosind de această dată bistabil de tip R-S cu elemente logice ȘI-NU.
9.1.12. Un semafor este instalat la intersecția unui drum cu o cale ferată. Semaforul este controlat de 2 „switch”-uri plasate la o depărtare de o milă, pe fiecare parte a intersecției. „Switch”-ul este pornit când trenul a trecut și este oprit în caz contrar. Semaforul se schimbă de la verde (0 logic) la roșu (1 logic) când locomotiva trenului se află la o depărtare de o milă de intersecție (înainte de a ajunge la semafor). Lumina se schimbă în verde când ultimul vagon al trenului a trecut și se află la o milă depărtare de intersecție. Se presupune că lungimea trenului este mai mică de 2 mile [6].
Determinați tabelul primar al stărilor circuitului;
Arătați că tabelul stărilor se poate reduce astfel încât să conțină doar 4 stări.
9.1.13. Combinați tabelele stărilor din figura 9.3 [4]. Procedați astfel:
Găsiți perechile compatibile referindu-vă la tabelul implicaților;
Găsiți perechile compatibile maxime referindu-vă la diagrama combinată;
Găsiți un set minim de compatibilități ce acoperă toate stările și este închis.
a) b)
Figura 9.3. Tabelele stărilor pentru problema 9.1.12
9.1.14. Găsiți o stare critică în tabelul redus al stărilor din figura 9.4.
Figura 9.4. Tabelul stărilor pentru problema 9.1.14
9.1.15. Implementați funcția booleană:
F(A,B,C,D) = ∑(0,2,6,7,8,10,12)
astfel încât circuitul să nu prezinte hazard static.
9.1.16. Desenați schema logică a circuitului care realizează produsul și suma din expresia:
Y = (x1 + )(x2 + x3).
Verificați dacă există hazard static când x1 și x3 sunt egale cu 0 și x2 trece de la 0 la 1. Găsiți o metodă pentru a îndepărta hazardul prin adăugarea încă unei porți SAU.
CAPITOLUL 10
REZOLVĂRI
11.1. CAPITOLUL 1
1.4.1.
a)
b)
c)
d)
1.4.2.
1.4.3.
a)
b)
1.4.4.
a)
b) c)
d)
1.4.5.
1.4.6.
a) a = = b;
b = b;
b) ;
c) a 1 =
a 0 =
a =
a a =
d) a b = = b a;
= = a b;
e) (a + c) (b + c) =
= (a b) • ≠ (a b) + c;
f)a•ba•c==a•(bc)
1.4.7.
1.4.8.
(a b) c = () • c + • (a b) =
a (b c) = • (b c) + a • () =
1.4.9.
(a + b)(a + c) = aa + ac + ab + bc = a + ac + ab + bc =
a + a + ac + ab + bc = a(1 + c) + a(1 + b) + bc = a•1 + a•1 + bc = a + bc.
1.4.10.
a)
b)
c)
d)
1.4.11.
a) = x (y z);
b)
c)
d)
e)
f)
g)
h)
1.4.12.
a)
b)
c)
d)
e)
1.4.13.
a)
b)
c)
d)
1.4.14.
a)
b)
c)
d)
1.4.15.
T1 =
T2 =
1.4.16.
F = x y =
10.2. CAPITOLUL 2
2.6.1.
f1 = +c+ac+a b c (FCD);
f1 = (a++c)(a++)(+b+c)(++c) (FCC);
f2 = d e+ace+a b+a b ce+a b c d(FCD);
f2=(a+b+c+d+e)(a+b+c+d+)(a+b+c++e)(a+b++d+e)(a+b++d+)(a+b+++e)(a+b+++)(a++c+d+e)(a++c+d+)(a++c++e)(a++c++)(a+++d+e)(a+++d+)(a++++e)(a++++)(+b+c+d+e)(+b+c+d+)(+b+c++e)(+b+c++)(+b++d+e)(+b+++e)(+b+++)(++c+d+)(++c++e)(++c++)(+++d+e)(++++) (FCC).
2.6.2.
a)
b)
2.6.3.
f1=d + c +b +bd +bcd+a + ad+ +ac + a b c d (FCD);
f1= (a+b+c+d)(a+b++)(a+++d)(+b++) (++c+d)
(++c+)(+++d) (FCC);
f2 = +c+b+bc + ad +acd+abd +
+ a b c d (FCD);
f2 = (a+b+c+)(a+b++)(a++c+)(a+++) (+b+c+d)
(+b++d)(++c+d)(++ +d) (FCC);
2.6.4.
2.6.5.
2.6.6.
2.6.7.
a)
b)
c)
d)
e)
f)
g)
h)
2.6.8.
a)
b)
c)
d)
2.6.9.
a)
b)
c)
d)
e)
2.6.10.
a)
b)
c)
d)
e)
f)
2.6.11.
a)
b)
c)
2.6.12.
2.6.13.
f = + a + (a + c).
2.6.14.
2.6.15.
2.6.16.
a)
b)
c)
d)
e)
2.6.17.
2.6.18.
a)
b)
2.6.19
f19 = a b c d
2.6.20.
2.6.21.
a)
b)
c)
2.6.22.
2.6.23.
2.6.24.
2.6.25. f = a b
2.6.26. f = a b
10.3. CAPITOLUL 3
3.6.1.
a)
f = a+ c d +b c d (FMD);
f = (a + c)(+ d)(+ b + ) (FMC);
b)
f = + ac (FMD);
f = b(c + d)(a + ) (FMC);
c)
f = b d + a c (FMD);
f = (c + d)(a + b)(a + d)(b + c) (FMC);
d)
f = (FMD); f = (FMC);
e)
f = + a c (FMD); f = (a +)(+ c) (FMC);
f)
f = (FMD); f = (FMC);
3.6.2.
a)
f = b (FMD); f = b (FMC);
b)
f = b+ cd +c (FMD);
f = (a + b + c)( ++ d)(b + c + d) (FMC) sau
f = (a + b + c)(a + c + d)( + b + d) (FMC).
3.6.3.
a)
f = (c + d)(a + b)(a + d)( ++ )(++) (FMC);
f = ;
b)
f = d + b c d (FMD); f = d(+ b)( + c) (FMC);
;
c)
(FMD); (FMC);
3.6.4.
Pentru o dispunere a segmentelor așa ca în figura de mai jos, formele lor minime vor fi:
3.6.5.
a)
b)
c)
3.6.6.
a)
b)
c)
d)
3.6.7.
a)
b)
c)
d)
e)
f)
3.6.8.
a) f = c d (FMD); f = c d (FMC);
b)
f = c d (FMD); f = c d (FMC);
c) f = d (FMD); f = d (FMC);
d) f = d (FMD); f = d (FMC);
e) f = 1 (FMD); f = (FMC);
f) f = 1 (FMD); f = (FMC);
g)
h)
i)
j)
k)
l)
m)
n)
3.6.9.
a)
b)
c)
d)
e)
f)
g)
h)
3.6.10.
a) sau ;
b)
c)
d)
e)
f)
g)
h)
3.6.11.
a)
b) sau
3.6.12.
3.6.13.
3.6.14.
3.6.15.
3.6.16.
f = (a b) (c d).
3.6.17.
3.6.18.
a)
;
b)
;
c)
;
d)
.
3.6.19.
a)
b)
c)
d)
3.6.20.
3.6.21.
3.6.22.
3.6.23.
a)
b)
c)
d)
e)
3.6.24.
a)
b)
c)
d)
e)
f)
g)
h)
3.6.25.
a)
b)
c)
3.6.26.
a)
b)
3.6.27.
a)
;
b)
.
3.6.28.
.
3.6.29.
a)
b)
c)
d)
e)
3.6.30.
a)
b)
c)
d)
e)
3.6.31.
a)
b)
3.6.32.
a)
b)
3.6.33.
a) f = 1;
b)
3.6.34.
a)
b)
c)
d)
3.6.35.
a)
b)
c)
3.6.36.
, (4 porți NAND);
, (4 porți NOR).
3.6.37.
Condițiile „nu ține cont” sunt:
3.6.38.
3.6.39.
10.4. CAPITOLUL 4
4.4.1.
4.4.2.
4.4.3.
4.4.4.
a)
b)
4.4.5.
a)
b)
c)
4.4.6.
a) F1 = X Y Z;
b)
11.5. CAPITOLUL 5
5.2.10. [8]
5.2.11. [8]
5.2.12. [8]
5.2.13. [8]
5.2.14.
a)
b) [8]
5.2.15. [8]
→numere prime;
→multipli de 3;
→ multipli de 4.
5.2.16. [8]
5.2.17. [8]
5.2.18. [8]
5.2.19.
I. Cu transport succesiv [12]:
II. Cu transport simultan [12].
5.2.20. D = A B Ci-1; Ci = B + ( B)Ci-1.
5.2.21. [8]
a)
b)
5.2.22. [8]
a)
b)
c)
5.2.23. [8]
a)
b)
c)
5.2.24. [8]
a)
b)
c)
d)
5.2.25. [12]
SOn = ieșirile multiple spre celulele următoare;
SIn = intrări secundare de la celulele anterioare (celulă = bloc);
SO2 = (1, 12, 13, 14, 15) + redundanți (8, 9, 10, 11);
SO1 = (1,2,4,5,6,7,12,13,14,15) + redundanți (8,9,10,11);
SO2 = ;
SO1 = ;
SO2 = (1);
SO1 = (1, 2);
SO1 = ;
SO2 = = A B;
A = B: f(SO2, SO1) = (0) + redundanți (2) = ;
A > B: f(SO2, SO1) = (1) + redundanți (2)
=
= SO1 SO2;
A < B: f(SO2, SO1) = (3) + redundanți (2) = ;
5.2.27.
F1 (x, y, z) = (0, 1, 6);
(x, y, z) = (4, 5);
F3 (x, y, z) = (0, 1, 6, 7);
10.6. CAPITOLUL 6
6.1.1.
O = f(I, S) S+ = f(S, I) E= f(S, I)
6.1.2. [7]
a)
R-S:
Ecuația caracteristică: Q+ = S + R’ Q.
b) R-S sincron
Ecuația caracteristică: Q+ = S + R’ Q.
EN trebuie să fie “1” oricare ar fi combinația de la intrări.
c) JK
Ecuația caracteristică: Q+ = J Q’ + K’ Q.
d) T
Ecuația caracteristică: Q+ = T Q’ + T’ Q.
e) D
Ecuația caracteristică: Q+ = D.
6.1.3.
6.1.4.
6.1.5.
Ieșirea bistabilului comandat de nivel logic se poate modifica de mai multe ori pe durata unui ciclu de tact, cât timp semnalul ENABLE are valoarea 1. Circuitul comandat de frontul semnalului de tact își modifică starea doar o dată pe toată durata unui ciclu de tact; orice schimbare a intrărilor între două fronturi ale impulsului de tact nu are efect asupra ieșirilor. [7]
6.1.6.
a) b)
6.1.7.
a) b)
6.1.8. [7]
Circuit basculant bistabil J-K Mastre Slave.
6.1.9. [14]
6.1.10.
[14]
6.1.12.
Ideea generală pentru a evita metastabilitatea este de a evita violarea timpilor de setup și de hold.
6.1.13.
6.1.14.
6.1.15.
6.1.16. [14]
a)
b) 5 MHz.
c) Numărător logic. [9]
[9]
6.1.18. 00000110.
6.1.19. 1001.
6.1.20.
6.1.21.
Se folosește o poartă externă NAND.
6.1.22.
Se folosesc circuite basculante bistabile care sunt comandate de frontul negativ al semnalului de tact.
6.1.23.
A(t + 1) = AB’ + Bx’;
B(t + 1) = x.
6.1.24.
A = 0010, 0001, 1000, 1100; Q = 1, 1, 1, 0.
6.1.25.
D = x y Q; JQ = x’y; KQ = (x’ + y)’.
6.1.26.
200 ns ; 5 MHz.
6.27.
10 circuite basculante bistabile trebuie complementate.
6.1.28.
Numărătorul este self-starting.
6.1.29. [1]
Numărătorul nu este self-starting.
6.1.30.
JQ1 = KQ1 = 1.
JQ2 = KQ2 = Q1Q8.
JQ4 = KQ4 = Q1Q2.
JQ8 = Q1Q2Q4; KQ8 = Q1.
6.1.31.
a)
Stările nefolosite (în zecimal): 2 4 5 6 9 10 11 13;
Stările următoare (în zecimal): 9 10 2 11 4 13 5 6.
b) 32,768.
10.7. CAPITOLUL 7
7.1.1. [14]
Modelul Mealy de reprezentare a circuitelor secvențiale. [14]
Modelul Moore de reprezentare a circuitelor secvențiale.
7.1.2.
a)
b)
c)
d)
7.1.3. a)
b)
c)
d)
7.1.4.
Stările nefolosite generează termeni „nu ține cont” care transformă tabelul stărilor într-un tabel de tranziții. Numărul de stări necesare depinde de problema în cauză. De exemplu, pentru un numărător modulo 3, sunt necesare 3 stări. La realizarea numărătorului, stările sunt asociate cu combinațiile variabilelor binare, iar numărul stărilor posibile pentru n variabile devine 2n. Pentru numărătorul modulo 3, sunt necesare 2 variabile, care pot forma 4 combinații posibile. O combinație va fi nefolosită și nici o stare nu va avea acestă combinație ca stare următoare. [7]
Exemplu (numărătorul modulo 3):
7.1.5.
a) Ecuațiile de stare: D1 = (F2’ X’)’ = F2 + X
D2 = F1 X
Ieșirea: Z = F1 F2’
b) F1+ = (F2’ X)’ = F2 + X
F2+ = F1 X
Z+ = F1+ F2+’ = (F2 + X)( F1 X)
= (F2 + X)( F1’ + X’)
= F1 F2 + F2 X’ + F1 X
c)
d)
7.1.6. [14]
7.1.7. [14]
7.1.8. [14]
7.1.9.
7.1.10.
7.1.11. []9]
Intrările: xz. Ieșirea: S.
7.1.12.
Numărătorul va repeta secvența: 00, 01, 10.
7.1.13.
Pentru x = 1; secvența binară este:
1, 8, 4, 2, 9, 12, 6, 11, 5, 10, 13, 14, 15, 7, 3.
Pentru x = 1; secvența binară este:
0, 8, 12, 14, 7, 11, 13, 6, 3, 9, 4, 10, 5, 2, 1.
10.8. CAPITOLUL 8
8.1.1.
a)
b)
c)
d)
e)
8.1.2.
a)
b)
c)
d)
e)
8.1.3. [9]
8.1.4.
a) Diagrama de compatibilitate: [9]
Unde oricare dintre b-e sau d-e poate fi ales, dar nu ambele.
Soluția folosind b-e și c-f ca grupuri de compatibilitate:
Soluția folosind c-f și e-d ca grupuri de compatibilitate:
b) Graful de compatibilitate: [9]
Soluția folosind b-c-f-g ca grup de compatibilitate:
8.1.5.
Perechile de stări compatibile se obțin cu ajutorul unei diagrame de implicație astfel:
Punând un punct în diagrama de implicație pentru fiecare stare din tabel.
Conectând stările care au aceleași ieșiri pentru fiecare secvență a intrărilor.
Etichetând fiecare linie care conectează stările perechilor implicate, stări care au stări următoare diferite.
Ștergând perechile implicate listate care nu sunt conectate de linii.
Ștergând liniile care implică perechi incompatibile.
8.1.6.
Atribuirea stărilor folosind stări adiacente duce la realizarea unui automat de reducere a logicii de excitație și eventual a ieșirii logice. Acesta se întâmplă deoarece stările adiacente au câteva variabile care se schimbă între ele. [4]
Schimbarea câtorva variabile necesită logică mai puțină pentru crearea semnalelor de excitație care determină ciclul automatului, adică trecerea în starea următoare.
8.1.7.
Stărilor care au aceași succesori trebuie să li se atribuie coduri adiacente.
Tuturor stărilor care sunt stări următoare pentru o anume stare, li se atribuie coduri adiacente.
Stărilor care au aceeași ieșire li se atribuie coduri adiacente
8.1.8.
a)
b)
c)
8.1.9.
Realizarea cu circuite basculante bistabile de tip D:
8.1.10.
A(t + 1) = xB + y’B’A’ + yA + x’A;
B(t + 1) = xA’B’ + x’A’B + yA’B.
8.1.11.
8.1.12.
8.1.13.
8.1.14.
8.1.15.
8.1.16.
a)
TA = A + B’x; TB = A + BC’x + BCx’ + B’C’x’;
TC = Ax + Cx + A’B’C’x’;
b)
SA = A’B’x; RA = A; SB = A + C’x’; RB = BC’x + Cx’;
SC = A’B’x’ + Ax; RC = A’x;
c)
JA = B’x, KA = 1; JB = A + C’x’, KB = C’x + Cx’;
JC = A’B’x’ + Ax, KC = x; y = A’x.
8.1.17.
(A = 23, B = 22, C = 21, D = 20); TA = (D + C + B)x ;
TB = (D + C)x ; TC = Dx ; TD = 0.
8.1.18.
JQ8 = Q1Q2Q4 JQ4 = Q1Q2 JQ2 = Q8’Q1 JQ1 = 1
KQ8 = Q1 KQ4 = Q1Q2 KQ2 = Q1 KQ1 = 1
8.1.19.
2 4 2 1
A B C D
TA = BCD + A’B; TB = CD + A’B; TC = D + A’B; TD = 1.
8.1.20.
a) JA = B, KA = 1; JB = A’, KB = 1;
b) JA = BC, JB = C, JC = A’;
KA = 1, KB = C, KC = 1;
c) JA = BC, JB = C, JC = B’ + A’;
KA = B, KB = A + C, KC = 1.
8.1.21.
SA = BC’ SB = B’C SC = B’
RA = BC RB = AB RC = B
8.1.22.
TA = A B; TB = B C; TC = AC + A’B’C’
8.1.23.
JA = B’ JB = A + C JC = A’B
KA = 1 KB = 1 KC = 1
8.1.24.
JA = yC + xy JB = xAC JC = x’B + yAB’
KA = x’ + y’B’ KB = A’C + x’C + yC’ KC = A’B’ + xB + y’B’
8.1.25.
A(t + 1) = AB’C’x’ + A’BC’x + A’BCx + AB’C’x + AB’Cx.
B(t + 1) = A’BC’x’ + A’B’Cx.
C(t + 1) = A’B’Cx’ + A’BC’x’ + A’BCx’ + AB’C’x’ + AB’Cx’.
d(A, B, C, x) = (0, 1, 12, 13, 14, 15) (termeni nu ține cont).
8.1.26.
MUX1: 0, A3A4, 0, 0;
MUX2: S, 1, 0, 0.
8.1.27. [13]
8.1.28.
(2n – 1)(2n – 1) < (22n – 1) pentru n≥ 1.
8.1.29.
Produsul = 1010001011.
8.1.30.
2t(n + 1).
8.1.31.
a) JG1 = G2;
KG1 = ZG2;
JG2 = G1 + S;
KG2 = 1;
b) DG1 = T1 + T2 + Z’T3;
DG2 = ST0 + T2;
c) MUX1: 0, 1, 1, Z’;
MUX2 : S, 0, 1, 0;
d) DT0 = S’T0 + ZT3;
DT1 = ST0;
DT2 = T1 + Z’T3;
DT3 = T2.
10.9. CAPITOLUL 9
9.1.1.
Un circuit secvențial asincron nu dispune de semnal de tact spre deosebire de circuitul secvențial sincron, în care toate tranzițiile stărilor sunt sincronizate cu semnalul de tact.
Automatul sincron are următoarele avantaje: este ușor de proiectat, este previzibil, iar componentele au o viteză de răspuns virtual independentă neregulată.
Automatul secvențial asincron are avantajul vitezei de răspuns – toate tranzițiile stărilor au loc, ca și durată, la fel de repede ca propagarea semnalelor prin porțile logice. Dezavantajul acestuia este faptul că, viteza de răspuns neregulată a porților poate cauza o funcționare necorespunzătoare, dacă nu sunt respectate specificațiile de proiectare.
Proiectarea unui circuit secvențial asincron, astfel încât acesta să funcționeze corect, este mai greoaie decât proiectarea circuitului secvențial sincron echivalent [7].
9.1.2.
9.1.3.
Cursă: Două sau mia multe variabile de stare se modifică în timpul tranziției stării.
Cursă necritică: Cursă care eventual ajunge într-o stare corectă.
Cursă critică: Cursă a căror tranziții sunt dependente de prima variabilă care se modifică.
Ciclu: Tranzițiile dintre o serie de stări instabile.
9.1.4.
IPAC (Interface Protocol Asynchronous Cell) permite sincronizarea intrărilor asincrone cu modulele sistemului. Blocurile IPAC atașate (asociate) fiecărei componenete a sistemului permit transferul asincron al informației între modulele sistemului fără a fi necesară utilizarea unui tact comun. IPAC-urile sunt registre activate de frontul semnalului, care nu necesită tact separat pentru memorarea datei. Registrele pot fi configurate pentru a memora datele pe frontul crescător sau pe cel descrescător al semnalelor de date. Întrucât datele sunt memorate pe propriul lor front crescător sau descrescător nu este nevoie de un tact pe lângă „setup”, „hold” sau timpii de întârziere asociați blocurilor sincrone. Deoarece nu sunt necesari timpi de „hold” sau „clock setup”, problema metastabilității este eliminată. Semnalele de date de intrare furnizează atât datele cât și tactele [1].
9.1.5.
Proiectarea circuitelor secvențiale asincrone ridică probleme serioase datorită curselor critice și a hazardului static sau dinamic.
Cursele critice și hazardul apar datorită căilor inegale de propagare a întârzierilor în circuitele combinaționale care determină variabilele din ecuațiile de stare. Pentru eliminarea hazardului static sau dinamic se utilizează termenii redundanți, care însă încarcă schema logică. Tehnica numită MOM (Mixed Operating Mode) sau auto-sincronizare a fost propusă de mulți cercetători ca soluție pentru problema asincronă. În această metodă fiecare variabilă de stare va avea atât intrări sincrone cât și asincrone (bistabilele au atât intrări sincrone – intrările principale –, cât și asincrone – intrări de „set” sau „reset”). Utilizând atât intrările sincrone cât și cele asincrone o problemă importantă, numită hazard esențial, poate fi rezolvată [7].
Dacă la o anumită tranziție a stării există hazard esențial se vor folosi intrările sincrone, iar în caz contrarar se vor folosi intrările asincrone. Acest lucru implică generarea unui tact intern și distribuirea lui apoi către variabilele de stare care îl vor utiliza ori de cîte ori apare apare hazardul esențial la tranziția stărilor respective. Acest lucru îl propune și tehnica MOM. Prin furnizarea unui tact intern doar acelor variabile de stare care pot determina apariția hazardului esențial se vor elimina cursele critice fără a încetini toate tranzițiile de stări.
Dezavantajul constă în logica suplimentară necesară determinării existenței hazardalui esențial. [6]
9.1.6.
9.1.7.
Y1Y2 : 00, 00, 01, 11, 11, 01, 00.
9.1.8.
d) Când intrarea este 01, ieșirea este 0. Când intrarea este 10, ieșirea este 1. Oricând intrarea preia una din celelalte două combinații, ieșirea reține valoarea precedentă.
9.1.9.
c)
9.1.10.
c) Y1 = x1’x2 + x2y2 ;
Y2 = x2 + x1y2 ;
z = x1x2y1’ + x1y2’.
9.1.11.
S = x1x2’;
R = x1’x2.
9.1.12.
a) (a, b) (c, d) (e, f, g, h);
b) (a, e, f) (b, j) (c, d) (g, h) (k).
9.1.13.
Două tabele posibile:
9.1.14.
Atribuind valori binare perechii formate din stările g și h.
9.1.15.
F = A’D’ + AC’D’ + A’BC + A’CD’.
9.1.16.
Y = (x1 + )(x2 + x3)(x1 + x3).
BIBLIOGRAFIE
A.E.A. Almaini – „Electronic Logic Systems”, Prentice Hall, USA,1999;
S. D. Anghel, „Bazele electronicii analogice și digitale”, Ed. Presa Universitară Clujeană, Cluj-Napoca 2007
Thomas R. Blakeslee – ”Proiectarea cu circuite logice MSI si LSI standard”, Editura Tehnică, București 1988
Sanda Maican – “Sisteme numerice cu circuite integrate. Culegere de probleme”, Editura Tehnică București, 1980;
Mang Gerda Erica, “Analiza si Sinteza circuitelor logice – Circuite combinationale.”, Editura Universității din Oradea, 2014
Mang E., Mang I., C.Popescu, “Proiectarea logica a circuitelor combinationale. Aplicatii”, Editura Universității din Oradea, 2010
Gerda Erica Mang – “Analiza și Sinteza Circuitelor logice: circuite secvențiale”, Editura Universității din Oradea, 2000
Gerda Erica Mang – “Proiectarea logică cu FPGA – lucrari practice”, Universitatea din Oradea, 1999
Moris Mano – “Digital Design”, Prentice Hall, USA,1984;
A.D. Potorac – ”Bazele proiectarii circuitelor numerice”, Editura Matrix, Bucuresti, 2002
G. Toacse, D. Nicula – “Electronică Digitală. Dispozitive, Circuite, Proiectare (I), Verilog HDL (II)”. Editura Tehnică, Bucuresti, 2005
Dave Van den Bout – „The Practical Xilinx Designer Lab Book”, Prentice Hall, USA, 1997;
John F. Wakerly, Traducere de Alina Teodoru – ”Principiile și practicile folosite în proiectare”, (Titlul original în limba. engleză: Digital Design: Principles and Practices), Editura Teora, 2002
John M. Yarbrough – “Digital Logic I: Applications and Design”, West Publishing Company, Oregon Institute of Tehnology, USA, 1997.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Cap1 29 Ian Lucru [310646] (ID: 310646)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
