Professional Documents
Culture Documents
Capitolul 2
Capitolul 3
Capitolul 4
Capitolul 5
Capitolul 6
Capitolul 7
Capitolul 8
Capitolul 9
Capitolul 10
Capitolul 11
I. ELEMENTE DE ALGEBRA BOOLEANA
In teoria circuitelor numerice si in electronica digitala in general, semnalele electrice pot lua numai
valori discrete, in majoritatea cazurilor aceste valori fiind asociate conventional lui ‘0’ logic si ‘1’ logic. In
limbaj tehnic ne vom referi la aceste doua valori cu notiunea de “bit” ( Binari Digit ).
Definitia bitului:
Bitul este o unitate de masura a informatiei, echivalenta cu informatia transmisa prin furnizarea
unui mesaj din cele doua probabile. Pentru studiul circuitelor numerice (digitale) se foloseste ca suport
matematic algebra booleana.
Toate relatiile definite pe B au un caracter dual, adica relatiile raman valabile daca se fac
schimbarile: + cu * si respectiv 0 cu 1.
In multimea B se poate alege o structura de 6 axiome duale:
1. Multimea B este o multime inchisa: X,Y ∈ B X+Y∈B; X,Y ∈ B XY∈B ;
2. Asociativitatea: X+(Y+Z) = (X+Y)+Z ; X(YZ) = (XY)Z ;
3. Comutativitatea: X+Y = Y+X ; XY = YX
4. Distributivitatea: X+YZ = (X+Y)(X+Z) ; X(Y+Z) = XY+XZ
5. Element neutru: X+0 = 0+X = X ; X1 = 1X = X
6. Complementul: X + X = 1; X X = 0
Teoreme ( proprietati ):
7. Idempotenta: X+X+…..+X = X ; XX…..X = X ;
8. Elemente neutre: X+1 = 1 ; X’0 = 0 ;
9. Involutia: X = X , X = X
10. Absortia: X+XY = X ; X(X+Y) = X ;
11. Relatiile lui De Morgan: X + Y = X Y , X Y = X + Y
Pe multimea B sunt valabile teoremele enuntate. Demonstratia lor se poate face folosind axiomele,
dar este mai comoda daca se folosesc tabelele de adevar. Tabela de adevar stabileste o
corespondenta intre valorile de adevar ale variabilelor si valoarea de adevar a functiei.
Ex: De Morgan:
Perechile de operatori NOT si AND, respectiv NOT si OR formeaza fiecare cate un sistem complet,
adica orice relatie definita pe B poate fi exprimata folosind numai opeatorii unei singure perechi. Circuitul
fizic care implementeaza un operator logic se numeste poarta logica. Sistemele complete prezentate au
fost realizate cu cate o singura poarta: SI-NU (NAND) si SAU-NU ( NOR ). Un sistem complet de
operatori poate exprima orice relatie logica ca in exemplul urmator, in care ne propunem sa exprimam
operatorii NOT, OR si AND folosind operatori NAND si NOR.
Daca luam in considerare varful cubului caracterizat prin coordonatele 000, constatam ca acest
varf este vecin cu varfurile 001, 010, 100 . in diagrama Karnaugh constatam ca 000 este vecin doar cu
001 si 100. Pentru ca diagrama Karnaugh sa fie echivalenta cu reprezentarea prin cub, ea trebuie sa
pastreze acelasi vecinatati, lucru ce devine posibil doar daca ne imaginam latura din stanga a diagramei
Karnaugh in continuarea celei din dreapta, iar latura de sus in continuarea celei de jos. in acest fel,
punctul 000 devine vecin si cu punctul 010.
3. Reprezentarea prin echivalenti zecimali ai mintermilor:
Consta in indicarea echivalentilor zecimali ai conjunctiilor pentru care valoarea functiei este 1 sau a
echivalentilor zecimali corespunzatori valorii 0 ale functiei.
Ex: U( x,y,z ) = R1 ( 3,5,6,7 )
U( x,y,z ) = R0 ( 0,1,2,4 )
Pentru ca Q k( n ) sa fie1 in un anumit punct al domeniului de definitie este necesar ca toti termenii
produsului sa fie 1 logic, ceea ce presupune ca xi = σI; rezulta urmatoarea regula de scriere a
mintermenilor Q k( n ) : in conjunctia variabilelor, variabilele care iau valoarea 0 in punctul respectiv al
domeniului de definitie se vor lua negate, iar cele care iau valoarea 1 se vor lua nenegate.
Numim conjunctii vecine doua conjunctii care sunt constituite din aceleasi variabile si difera doar
prin comlementarea uneia singure. Prin sumarea a doua conjunctii vecine se obtine o conjunctie cu un
numar de variabile mai mic cu 1, lipsind variabila a carei complementaritate difera.
Ex: Pentru cazul unei functii de 4 variabile, fie suma a doua conjunctii vecine:
Q 9( 4 ) + Q 8( 4 ) = x 3 x 2 x 1 x 0 + x 3 x 2 x 1 x 0 = x 3 x 2 x 1 ( x 0 + x 0 ) = x 3 x 2 x 1 = Q 4( 3)
Pentru ca D k( n ) sa fie 0 in un anumit punct al domeniului de definitie este necesar ca toti termenii
sumei sa fie 0, ceea ce este echivalent cu x i = σ i . Rezulta urmatoarea regula de scriere a
(n )
maxtermenului D : in disjunctia variabilelor, variabilele care iau valoarea 0 in punctul respectiv al
k
domeniului de definitie se vor lua nenegate, iar cele care iau valoarea 1 se vor lua negate.
Disjunctiile vecine se definesc in mod similar cu conjunctiile vecine.
Prin inmultirea a doua disjunctii vecine se obtine o disjunctie cu o variabila mai putin ( cu acea
variabila care isi modifica complementaritatea ).
D 9( 4 ) . D 8( 4 ) = ( x 3 + x 2 + x 1 + x 0 )( x 3 + x 2 + x 1 + x 0 ) = ( D 4( 3) + x 0 )( D 4( 3) + x 0 ) =
= D 4( 3) D 4( 3) + D 4( 3) ( x 0 + x 0 ) + x 0 x 0 = D 4( 3) + D 4( 3) + 0 = D 4( 3) = x 3 + x 2 + x 1
Pentru o functie de o variabila x, f(x) se poate scrie sub forma:
f ( x ) = xf (1) + x f ( 0)
in mod similar, pentru o functie de doua variabile f( x1, x0) avem relatia:
f ( x 1 , x 0 ) = x 1 f (1, x 0 ) + x 1 f ( 0, x 0 ) = x 1 [ x 0 f (1,1) + x 0 f (1,0)] + x 1 [ x 0 f ( 0,1) + x 0 f ( 0,0)] =
= x 1 x 0 f (1,1) + x 1 x 0 f (1,0) + x 1 x 0 f ( 0,1) + ∴ x 1 x 0 f ( 0,0) = x 1σ 1 x 0σ 0 f (σ 1σ 0 )
σ 1 ,σ 0 ∈{0,1}
n −1 n −1
(∏ x j j ) = ∏σ
σ σ
( xjj)
f ( σ n − 1 ,...,σ 0 ) = 0 j =0 f (σ n − 1 ,..., 0 )=0 j =0
Expresia functiei logice poate fi scrisa deci ca produsul maxtermenilor pentru care functia ia
valoarea 0.
Ex: U (x , y , z ) = (x 0 + y 0 + z 0 )(x 0 + y 0 + z 1 )(x 0 + y 1 + z 0 )(x 1 + y 0 + z 0 ) =
= ( x + y + z )( x + y + z )( x + y + z )( x + y + z )
Realizand Q k( n ) cu circuite NAND, func%ia f se obtine prin cuplarea iesirilor circuitelor NAND
precedente la intrarile unui alt circuit NAND.
Ex:
Functia f se obtine prin cuplarea iesirilor circuitelor NOR ce implementeza D k( n ) la intrarile unui alt
circuit NOR.
Ex:
C2( f )= 3’4 + 4 = 16
Nivelul unei implementari logice se defineste ca fiind numarul maxim de circuite pe care le strabate
un semnal de la intrare catre iesire.
In cazurile precedente s-au considerat structuri logice cu doua nivele.
C1 = 2’3 + 3 = 9; N1 = 2
Fie f(x,y,z) = xy+ z(x+y) = xy z ( x + y + = xy z x y
C2 = 2 + 2 + 2 + 2 = 8; N2 = 3
Scaderea costului in varianta a doua s-a facut pe seama cresterii nivelului, ceea ce implica
micsorarea vitezei.
Fiecare celula din diagrama contine un minterm. Doua celule vecine contin mintermi care difera
prin valoarea unei singure variabile. Prin adunarea mintermilor din doua celule vecine se elimina
variabila care isi schimba valoarea.
Ex:
FCD se obtine prin sumarea mintermilor pentru care functia ia valoarea 1. Prin gruparea celulelor
vecine pentru care valoarea functiei este 1 se obtin: x2x1, x2x0, x1x0 prin eliminarea variabilelor careisi
schimba valoarea in cadrul aceleiasi grupari. Fiecare celula ocupata de 1 trebuie sa faca perte din cel
putin o grupare, dar poate fi inclusa in mai multe grupari. Pentru exemplul considerat se obtine FMD:
f ( x2, x1, x0 ) = x2x1 + x2x0 + x1x0.
Daca un grup de doua celule vecine este vecin la randul sau cu un alt grup de doua celule vecine,
acestea se pot contopi intr-un singur grup de 4 celule vecine, ceea ce va permite eliminarea a doua
variabile. in general, un grup de 2m celule vecine ocupate de unitati permite eliminarea a m variabile.
Ex: f (x 3 , x 2 , x 1 , x 0 ) = x 1 x 0 + x 2 x 0
Cel mai avansat grad de simplificare se obtine daca valorile 1 dintr-o diagrama Karnaugh sunt
grupate intr-un numar minim de grupuri, fiecare grup continand un numar maxim de unitati.
Ex:
f (x 4 , x 3 , x 2 , x 1 , x 0 ) = x 1 x 0 + x 4 x 2 x 0 + x 4 x 2 x 1 x 0 + x 3 x 2 x 1 x 0 + x 3 x 2 x 0 + x 4 x 2 x 1 - FMD
Pentru simplitate, in diagrama nu s-au trecut decat valorile 1 ale functiei.
C1 = ( 2 + 3 + 4 + 4 + 3 + 3 ) + 6 = 25
Implementarea cu circuite NAND:
Pentru minimizarea functiilor scrise sub forma conjunctiva, in diagrama Karnaugh se vor considera
disjunctiile corespunzatoare valorilor 0 ale functiei si se va forma o procedura asemanatoare cu cea
folosita la forma disjunctiva. Metoda consta in cuplarea de disjunctii vecine din care va disparea
termenul corespunzator bitului ce se modifica in echivalentii binari.
Ex:
f ( x 4 , x 3 , x 2 , x 1 , x 0 ) = ( x 4 + x 2 + x 0 )( x 4 + x 1 + x 0 )( x 4 + x 2 + x 1 + x 0 )
( x 3 + x 2 + x 1 + x 0 )( x 3 + x 2 + x 1 + x 0 )
C2 = ( 3 + 3 + 4 + 4 + 4 ) + 5 = 23
Implementarea cu circuite NOR:
In cazul functiilor incomplet definite, valorile indiferente ale functiei se iau 1 pentru forma disjunctiva
si 0 pentru forma conjunctiva daca aceste valori participa la minimizare. Valorile indiferente care nu sunt
cuplate devin 0 pentru forma disjunctiva si 1 pentru forma conjunctiva.
Ex: f (x3, x2, x1, x0 ) = R1( 0, 1, 2, 4 ) + Rx( 3, 5, 10, 15 )
f (x 3 , x 2 , x 1 , x 0 ) = x 3 x 1 x 0 + x 3 x 2 x 2 + x 3 x 2 x 1 ; C 1 = 3 • 3 + 3 = 12
f (x 3 , x 2 , x 1 , x 0 ) = x 3 x 1 + x 3 x 2 ;C 2 = 2 • 2 + 2 = 6
f ( x 3 , x 2 , x 1 , x 0 ) = x 3 ( x 2 + x 1 ); C 4 = 2 + 2 = 4
Concluzia este ca prin participarea valorilor indiferente la minimizarea functiilor incomplet definite
se obtine o reducere a costurilor.
1.7.3 Metoda Quine - McCluskey
Pentru functii ce depind de mai mult de 5 variabile, metoda Veitch-Karnaugh devine greoaie si se
foloseste metoda Quine - McCluskey.
in cazul formei disjunctive, minimizarea pentru aceasta metoda presupune parcurgerea
urmatoarelor etape:
1) Ordonarea echivalentilor binari ai conjunctiilor corespunzatoare valorilor 1 ale functiei dupa
pondere.
n −1 n −1
Definitie: Ponderea conjunctiei Q k( n ) = ∏ x j j este numarul P [Q k( n ) ] =
σ
σ j , unde este suma
j =0 j =0
algebrica.
Ex: P [ x 3 x 2 x 1 x 0 ) = P [ x 30 x 21 x 11 x 00 ) = 0 + 1 + 1 + 0 = 2
Pentru determinarea implicantilor primi se cupleaza echivalentii binari care difera doar printr-o cifra
din acelasi rang. Se obtine primul tabel de comparatii in care disparitia variabilei corespunzatoare cifrei
care se modifica se noteaza cu -. in continuare, se pot cupla doua conjunctii din grupe vecine daca
simbolul - se afla in acelasi rang si echivalentii binari difera doar printr-o cifra din acelasi rang. Rezulta al
doilea tabel de comparare si procedura se repeta. Conjunctia care nu se mai poate cupla cu nici o alta
conjunctie din tabel este un implicant prim al functiei date.
3) Determinarea tabelului de acoperire al functiei.
Tabelul de acoperire este un tablou rectangular, la care liniile corespund implicantilor primi, iar coloanele
corespund echivalentilor zecimali ai conjunctiilor pentru care functia ia valoarea 1. Tabloul se
completeaza cu 1 in pozitiile pentru care conjunctiile de pe coloane realizeaza implicantii primi de pe
linii.
4) Calculul formal de determinare a tuturor solutiilor functiei. Fiecarui implicant prim X se ataseaza
o variabila logica Fx care ia valoarea 1 cand implicantul prim este realizat ( conform tabelului de
acoperire ). Pentru realizarea functiei este necesar ca in expresia ei sa existe toate conjunctiile
corespunzatoare valirolor 1 ale functiei.Pentru determinarea tuturor solutiilor functiei, se exprima
aceasta cerinta cu ajutorul variabilelor Fx.
Ex: f ( x3, x2, x1, x0 ) = R1 ( 0, 1, 3, 4, 7, 8, 11, 12, 13, 15 )
1) 2)
3)
4) ( FA + FE )( FA + FB )( FB + FF) FE FF FE FF ( FC + FE )( FC + FD )( FD + FF ) = 1
( FA + FB ) FE FF ( FC + FD ) = 1
FA FC FE FF + FA FD FE FF + FB FC FE FF + FB FD FE FF = 1
In cazul formei conjunctive a functiilor, procedura este similara, dar se vor considera valorile 0 ale
functiei si disjunctiile corespunzatoare.
2. CODURI
x 1 ↔ b 1b 2 b 3 = s 1
x 2 ↔ b 2 b 5b 6b 7 = s s
....
x p ↔ b1b 3b 1 = s p
x ,x ≥ 0
xd = x = b n − 2 ... b1b 0 , b −1 ...b − m
2 n −1 − n , x < 0
Gama de reprezentare: x∈[-( 2n-1- 2-m),2n-1- 2-m]. Prin scalare (impartire la 2n-1 ), virgula se va situa
imediat dupa bitul de semn, iar gama de reprezentare va fi: x∈[-(1-2 -(n-1)-m),(1-2-(n-1)-m)].
x ;x ≥ 0
xi = x = b n − 2 ... b1b 0 , b −1 ...b − m
2 n + x − 2 −m , x < 0
Regula de inversare a unui numar negativ este: se complementeaza toti bitii din reprezentarea in
valoare absoluta si se ataseaza 1 in rangul semn:
x i = 1b n − 2 ...b 1 b 0 , b −1 ...b − m , b i = 1 − b i pentru x < 0
Gama de reprezentare: x∈[-( 2 - 2 ),2n-1- 2-m]. Prin scalare gama de reprezentare va fi:
n-1 -m
x∈[-(1-2 -(n-1)-m),(1-2-(n-1)-m)].
x ;x ≥ 0
xc = x = b n − 2 ... b1b 0 , b − 1 ...b − m
2n + x ,x < 0
Regula de complementare a unui numar negativ este: se inverseaza cifrele binare ale numarului in
valoare absoluta, se sumeaza 1 la rangul -m si se ataseaza 1 in rangul semn:
x c = 1b n − 2 ...b 1 b 0 , b −1 ...b − m + 0,00...1
Alta regula de complementare: codul comlementar al unui numar negativ se obtine prin inversarea
bitilor din reprezentarea in valoare absoluta incepand cu primul bit1(exclusiv) intalnit prin parcurgerea
numarului de la dreapta la stanga, atasandu-se 1 in rangul semn.
Gama de reprezentare: x∈[-2n-1,2n-1- 2-m]. Prin scalare gama de reprezentare va fi:
x∈[-1,1-2-(n-1)-m].
Ex: x = -1011,1100
xd = 11011,1100
xi = 10100,0011
xc = 10100,0100
Toate codificarile scalate, cu virgula binara situata imediat dupa bitul de semn se numesc reprezentari in
virgula fixa.
3) Reprezentarea numerelor in virgula flotanta.
Un numar rational x se reprezinta prin doua numere binare:
X=M2E M - mantisa ( numar fractionar cu semn; m biti )
E - exponent ( numar intreg cu semn; n biti )
Daca m are numai parte fractionara, gama de reprezentare este:
n −1 n −1
x ∈ ( −2 ( 2 −1) ,2 ( 2 −1) )
unde s-a presupus E reprezentat in complement fata de 2.
Pentru marirea preciziei calculelor, mantisa se normeaza dupa fiecare operatie aritmetica, astfel
incat cifra binara de dupa virgula a modulului mantisei sa fie nenula .
Ex: 0,001011 210 = 0,1011 28
2) Coduri neponderate:
Codul exces 3 se obtine din codul 8421 la care se aduna 3 = 0011. In acest fel se poate face
distinctie intre 0 si lipsa informatiei.
Codul Gray prezinta proprietatea de adiacenta: trecerea de la o cifra zecimala la urmatoarea se
face prin modificarea unui singur bit din cuvantul de cod. Acest cod este util in cazul marimilor ce cresc
succesiv.
In mediile puternic influentate de zgomot, verificare transmiterii corecte a informatiilor se face prin
folosirea codurilor detectoare de erori. in codul 8421 cu bit de paritate, fiecare cuvant de cod are un
numar par sau impar de biti 1. La emisie se adauga un bit 1 sau un bit 0 astfel incat numarul de biti 1 sa
fie par sau impar. La receptie se numara bitii 1, numarul acestora putand indica daca au aparut erori
constand in modificarea unui numar impar de biti.
Codul 2 din 5 se caracterizeaza printr-un cuvant de cod de 5 biti, din care numai doi biti sunt 1. Se
realizeaza astfel o unicitate a reprezentarii deoarece numai 10 din cele 32 de configuratii posibile pe 5
biti satisfac aceasta conditie. Prin folosirea cestui cod se pot detecta erorile multiple aparute la
transmiterea informatiei.
Exista coduri corectoare de erori, care pe langa detectia erorilor asigura si corectarea lor.
Conditia disjunctiei ( D1∩D2 =∅) este absolut necesara deoarece valorile comune ar cea confuzii
de interpretare. Reprezentarea nivelelor logice prin nivele de tensiune este mai raspandita. Nivelele de
tensiune din cele doua domenii de valori respecta relatia: ∀V 1 ∈ D 1 , ∀V 2 ∈ D 2 V 1 > V 2 . Din acest motiv,
tensiunile din D1 se numesc nivele H ( high), iar cele din D2 se numesdc nivele L ( low).
Intre nivelele logice 0, 1 si cele doua domenii de valori ale tensiunilor D1,D2 se pot stabili 2
corespondente diferite: logica pozitiva si negativa .
0 → D2 0 → D1
1 → D1 1→ D 2
In practica se intalnesc ambele tipuri de corespondente.
Stabilirea nivelelor de tensiune corespunzatoare domeniilor D1 si D2 depinde de modul de realizare
al circuitului, de tehnologie, de alimentare, etc.
Din punct de vedere al tehnologiei folosite la realizarea portilor logice, exista o mare diversitate de
solutii: ( ECL, TTL, MOS, I2L ); dintre care cea mai cunoscuta este familia logica TTL. Etajul de iesire
pentru portile TTL standard este prezentat in figura urmatoare. in starea logica 1 la iesire, T3 este blocat,
iar T4 conduce; in starea logica 0 la iesire, T3 este saturat iar T4 este blocat.
Circuitele cu iesirile 3-state au aparut din necesitatea utilizarii unor linii comune pentru mai multe
subblocuri logice a caror informatie de iesire nu este necesar a fi cunoscuta simultan. Circuitele ce nu
sunt conectate la un moment dat la linia comuna trebuie sa prezinte la iesire o impedanta mare pentru a
inlatura situatiile de conflict. Ca urmare, iesirile acestor circuite pot avea trei stari: H,L,HZ. Starea HZ se
obtine prin blocarea simultana a tranzistoarelor de iesire T3 si T4 prin intermediul unei intrari de validare,
notata E ( sau E ).
3.3 Parametrii circuitelor logice:
Parametrii circuitelor logice se pot imparti in 2 categorii:
- caracteristici electrice statice: descriu comportarea circuitelor in curent continuu sau la variatii lente in
timp ale semnalelor;
- caracteristici electrice dinamice: descriu comportarea circuitelor la tranzitii rapide ale semnalelor.
1. Nivele logice de intrare: intervalele de tensiune pentru care se atribuie nivelele logice 0 si 1 la
intrarea unui circuit : VIL, VIH.
2. Nivele logice de iesire: intervalele de tensiune pentru care se atribuie 0 si 1 la iesirea unui circuit :
VOL, VOH .
3. Margine de zgomot: VNH = VOH - VIH, VNL = VOL - VIL. Limitele domeniilor de tensiune corespunzatoare
iesirilor si intrarilor sunt astfel alese incat sa fie posibila intotdeauna cuplarea a doua circuite cu o
rezerva de tensiune care este chiar marginea de zgomot.
4. Curentii de intrare: curentii ce se pot inchide prin intrarea circuitului pentru nivelele logice de intrare:
VIL, VIH; IIL, IIH.
5. Curentii de iesire: curentii ce se pot inchide prin iesirea circuitului pentru nivelele logice de iesire: VOL,
VOH; IOL, IOH.
6. Fan-in ( factor de incarcare la intrare ): numarul de intrari standard cu care este echivalenta intrarea
unui circuit.
Fan-out ( factor de incarcare la iesire ): numarul de intrari standard ce pot fi comandate de o iesire.
Pentru o cuplare corecta este necesar ca fan-out ≥ fan-in.
7. Putere disipata pe poarta: Pd = Vcc Ic; < Pd > = mW.
8. Capacitate de intrare ( pentru MOS ): capacitatea intre intrare si masa.
1
tp = (t + t pLH )
2 pHL
2. Timpul de tranzitie: intervalul de tipm in care are loc tranzitia semnalului de la iesirea circuitului: ttHL,
ttLH,
1
tt = (t + t tLH ) ;
2 tHL
3. Timpul de pregatire ( setup time ): intervalul de timp cu care trebuie sa preceada semnalul de pe o
intrare a unui circuit semnalul de pe o alta intrare luata drept referinta de timp ( tsu );
4. Timpul de mentinere ( hold time ): intervalul de timp cat trebuie mentinut semnalul de pe o intrare
neschimbat fata de o alta intrare considerata drept referinta de timp ( th ):
5. Timpul de comutare din regim de mare impedanta in regim activ si invers pentru circuitul 3-state: tpHZ,
tpLZ, tpZH, tpZL;
4. CIRCUITE LOGICE COMBINATIONALE
b) f ( x , y ) = x y + x y = x y x y = xx y x yy
c) f ( x , y ) = ( x + y )( x + y )
d) f ( x , y ) = ( x + y )( x + y ) = x + y + x + y = x + y + x + x + y + y
Pentru cele 16 iesiri trebuie construite 16 diagrame Karnaugh. Acestea pot fi sintetizate intr-o
singura diagrama, numita diagrama de referinta, avand in vedere ca cele 16 diagrame Karnaugh contin
fiecare cate o valoare 1 in celula care indica numarul iesirii. Ecuatiile decodorului vor fi:
y 15 = x 3 x 2 x 1 x 0
y 14 = x 3 x 2 x 1 x 0
:
y 1 = x 3 x 2 x 1x 0
y 0 = x 3x 2 x1x 0
Ex: 74154
C DDP 4 = ( 4 ⋅ 2 + 4 ⋅ 3) + (16 ⋅ 2) + ( 4 + 1) = 57
C DDPn = ( 2 n 2 ⋅ n 2 + 2 n 2 ⋅ ( n 2 + 1) + ( 2 n ⋅ 2) + ( n + 1) = ( n + 1)( 2 n 2 + 1) + 2 n +1 , ( n − par )
C DDRn < C DRn , pt . n ≥ 3
Starile 1010 - 1111 nu fac parte din codul BCD8421; ele au fost considerate false. Toate starile
sunt decodificate explicit. Ca urmare, eventualele date false de pe intrari determina stabilirea tuturor
iesirilor in H ( inactive ). Din acest motiv decodificatorul se numeste cu rejectia datelor false.
Daca pe intrarile acestui decodificator nu se pot stabili dat false, nu este necesara rejectia
datelor false. Renuntarea la aceasta protectie conduce la micsorarea costului:
Aparitia accidentala a unei date false pe intrare conduce la erori: 1010 pe intrari determina
activarea iesirilor 2 si 8 simultan.
4.3.2 Codificatoare:
Codificatoarele sunt circuite logice combinationale la care activarea unei intrari conduce la
aparitia unui cuvant de cod pe ietire.
Dezavantajul acestei scheme este ca la activarea simultana a mai multor intrari, adresa
furnizata la iesire este eronata. I1 si I4 active simultan determina la iesire C2C1C0 = 101, ceea ce
inseamna I5 activa.
Daca nu se poate evita activarea simultana a mai multor iesiri se folosesc codificatoare de
adresa prioritare, care prezinta la iesire adresa intrarii active cu prioritatea cea mai mare. Consideram
intrarea I7 cu prioritate maxima si I7 - I0 active pe nivel L. Circuitul va fi prevazut si cu o intrare de
validare E 1 , o iesire GS activa ( pe L ) cand cel putin o intrare este activata si o iesire E 0 , activa cand
toate intrarile sunt inactive. Iesirile circuitului sunt active tot pe L.
E0 = E1I 7 I 6 I 5 I 4 I 3 I 2 I 1I 0
Gs = E 0 + E 1 = E 1 E 0
C 2 = E1 I 7 + E1 I 7 I 6 + E1 I 7 I 6 I 5 + E1 I 7 I 6 I 5 I 4
C1 = E1 I 7 + E1 I 7 I 6 + E1I 7 I 6 I 5 I 4 I 3 + E1 I 7 I 6 I 5 I 4 I 3 I 2
C 0 = E1 I 7 + E1 I 7 I 6 I 5 + E1 I 7 I 6 I 5 I 4 I 3 + E1 I 7 I 6 I 5 I 4 I 3 I 2 I 1
Ex: 74148
4.3.3 Convertoare de cod:
Convertoarele de cod sunt circuite logice combinationale ce permit transformarea dintr-un cod
binar in altul.
4.3.3.1 Convertor de cod binar natural - Gray:
Pentru cazul cuvintelor de 4 biti, tabela de adevar este:
4.3.3.2 Convertor de cod Gray - binar natural:
S-ar putea aceeasi procedura, dar este mai simpla metoda analitica aplicata relatiilor deja
determinate:
g 3 = b3 b3 = g 3
g 3 = b3
g 2 = b3 ⊕ b2
g 2 ⊕ g 3 = b3 ⊕ b3 ⊕ b2 b2 = g 2 ⊕ g 3
g 3 = b3
g 2 = b3 ⊕ b2
g 1 = b 2 ⊕ b1
g 1 ⊕ g 2 ⊕ g 3 = b 3 ⊕ b 3 ⊕ b 2 ⊕ b 2 ⊕ b1 b1 = g 1 ⊕ g 2 ⊕ g 3
Convertorul de cod va avea 4 intrari ( cod BCD8421 ) si 7 iesiri; tabela de adevar este prezentata
in continuare:
Ex: 7446, 7447
4.3.4 Multiplexoare:
Circuitele de multiplexare sunt CLC care permit trecerea datelor de la una din intrari, selectata
de cuvantul de pe intrarea de adresa, catre iesirea unica. Uneori, circuitele de multiplexare sunt
prevazute si cu o intrare de validare.
Tabela de adevar pentru un multiplexor cu 8 intrari este:
Y = E (A 2 A 1 A 0I 0 + A 2 A 1A 0 I 1 + A 2 A 1 A 0 I 2 + A 2 A 1A 0I 3 + A 2 A 1 A 0 I 4 + A 2 A 1A 0I 5 +
+A 2 A1 A 0I 6 + A 2 A1A 0I 7 )
4.3.5 Demultiplexoare:
Aceste circuite sunt CLC care permit trecerea datelor de pe o intrare comuna catre una din
iesiri, selectata prin cuvantul de pe intrarile de adresa.
Tabela de adevar pentru un demultiplexor cu 8 iesiri este:
Y 0 = E A 2 A 1 A 0D
Y 1 = E A 2 A 1A 0D
....
Y 7 = E A 2 A 1A 0D
Prin interconactarea a n comparatoare de un bit se pot realiza comparatoare de n biti. Fie doua
numere de n biti:
A = A n −1 2 n −1 + ...+ A 1 2 1 + A 0 2 0 .( A = A n −1 ... A 1 A 0 ( 2))
B = B n −1 2 n −1 + ...+ B 1 2 1 + B 0 2 0 .( B = B n −1 ... B 1 B 0 ( 2))
Procesul de comparare incepe cu compararea bitilor cei mai semnificativi ( An-1 : Bn-1 ).
Daca An-1 > Bn-1 sau An-1 < Bn-1 rezulta A>B, respectiv A<B indiferent de valoarea bitilor mai
putin semnificativi ( An-2…A0 ,Bn-2…B0 ). Daca An-1 = Bn-1, pentru determinarea relatiei A:B este necesara
compararea bitilor An-2, Bn-2 , s.a.m.d. Daca se doreste compararea a doua numere ale caror lungimi
depasesc posibilitatile comparatorului disponibil, se recurge la expandare folosind intrari prevazute in
acest scop.Tabela de functionare pentru un comparator pe 4 biti cu intrari de expandare este:
4.3.7 Sumatoare:
Sumatoarele elementare sunt CLC care aduna doua numere de cate un bit si un bit de transport
din rangul inferior, generand suma si un bit de transport spre rangul urmator, conform tabelei de adevar:
Pentru a aduna doua numere pe n biti sunt necesare n sumatoare elementare conectate astfel:
Pentru realizarea unui sumator pe n ranguri folosind sumatoare pe 4 ranguri sunt necesare
[n/4]=k circuite sumatoare pe 4 ranguri. Timpul de rezolutie al schemei este calculat in situatia cea mai
dezavantajoasa: 011…111+000…001:
t r = t p ( x 0 ,y 0 →c 3 ) + ( k − 2)t p (c − 1 →c 3 ) + t p (c − 1 → s 3 )
c i = x i y i + c i −1 ( x i + y i )
G i = x i y i − transport generat : x i y i = 1 c i = 1 indiferent de c i −1
Pi = x i + y i − transport propagat : x i + y i = 1 c i traversează i
c i = G i + c i −1Pi
c 0 = G 0 + c −1P0
c1 = G1 + c 0 P1 = G1 + (G 0 + c −1P0 )P1 = G1 + G 0 P1 + c −1P0 P1
c 2 = G 2 + c1P2 = G 2 + (G1 + G 0 P1 + c −1P0 P1 )P2 = G 2 + G1P2 + G 0 P1P2 + c −1P0 P1P2
c 3 = G 3 + c 2 P3 = G 3 + (G 2 + G1P2 + G 0 P1P2 + c −1P0 P1P2 )P3 = G 3 + G 2 P3 + G1P2 P3 + G 0 P1P2 P3 + c −1P0 P1P2 P3
c i −1 \ x i y i 00 01 11 10
0 0 1 0 1
1 1 0 1 0
s i = c i −1 ( x i y i + x i y i ) + c i −1 ( x i y i + x i y i ) = c i −1 ( x i ⊕ y i ) + c i −1 ( x i ⊕ y i ) = c i −1 ⊕ x i ⊕ y i
G i Pi = x i y i ( x i + y i ) = ( x i + y i )( x i + y i ) = x i ⊕ y i
s1 = G 0 P0 ⊕ c −1
s 2 = G1P1 ⊕ c 0
s 3 = G 2 P2 ⊕ c1
s 4 = G 3 P3 ⊕ c 2
Ex.: 74LS83A
4.3.7. Unitati aritmetico-logice (ALU)
ALU sunt CLC complexe care executa pe baza unor comenzi functii de tip aritmetic si logic. ALU
se utilizeaza in sisteme digitale complexe sau ca parti componente in unitatile de prelucrare ale
sistemelor de calcul.
ALU de 4 biti are urmatoarele intrari si iesiri tipice:
- intrari pentru operanzi: A3:0, B3:0
- intrare de transport : c −1
- intrare de mod: M = 0 → functii aritmetice
= 1 → functii logice
- intrari pentru selectarea functiei : S3:0
- iesiri pentru functie : F3:0
- iesire pentru transport: c 3
- iesire pentru indicarea egalitatii operanzilor: (A=B)
- iesiri pentru transport anticipat: P,G. Ex.:74181
Pentru realizarea unor ALU pe mai multi biti in conditiile in care nu se mai urmareste realizarea
unor viteze mari de prelucrare se foloseste transportul succesiv prin conectarea c 3 de la un circuit la c −1
de la circuitul urmator:
Pentru operatii de mare viteza , ALU sunt combinate cu circuite de generare anticipata a
transportului (GTA), prevazute cu 4 intrari de transport propagat (P0:3). 4 intrari de transport generat
(G3:0), o intrare pentru transportul din rangul inferior ( C −1 ); GTA genereaza transporturile
C + x , C + y , C + z ; pentru dezvoltarea sistemului de transport, GTA sunt prevazute si cu 2 iesiri de
transport generat (G) si de transport propagat (P).
C − x = G 0 + C −1P0
C − y = G 1 + G 0 P1 + C −1 P0 P1
C − z = G 2 + G 1P2 + G 0 P1P2 + C −1 P0 P1P2
G = G 3 + G 2 P3 + G 1P2 P3 + G 0 P1P2 P3
P = P0 P1P2 P3
Ex.: 74182
Expandarea ALU cu generarea anticipata a transportului se poate face pe doua sau mai multe
nivele:
b1 b0 y
0 0 0
0 1 1
1 0 1
1 1 0
p=0 → paritate para
p=1 → paritate impara
Daca pe langa cuvantul de transmis b0b1 se mai transmite si y, se obtine o transmisie in cod cu
bit de paritate para. Daca se mai foloseste inca o poarta XOR, se poate stabili si felul paritatii (para sau
impara).
In cazul unor cuvinte de 8 biti se poate folosi circuitul din figura:
Circuitul este prevazut cu intrarile P(par) si I(impar) care permit functionarea ca generator /
detector de paritate sau imparitate. Corespunzator, circuitul are si doua iesiri YP si YI. Aceste intrari si
iesiri permit expandarea circuitului:
Modificarea unor variabile la intrarile unui CLC poate produce modificarea unor variabile la iesirea
lui. Presupunem ca la modificarea variabilei xi, iesirea yj se modifica dupa cum urmeaza:
Se definesc urmatorii timpi de propagare:
t p ( xi → y j ) =
1
2
[ ]
t pLH ( x i → y j ) + t pHL ( x i → y j ) =ˆ t pij - timp de propagarea a xi la yj
ì y 0 n +1 = x 1n y 0 n x 2 n ⋅ x 0 n y1n
y1n +1 = y 0 n + y 2 n + x 1n y 0 n x 2 n
í y 2n +1 = y1n + x 1n y 0 n x 2 n
z 0 n = y1n + y 2n
z = y1n
î 1n
Corespunzator acestor ecuatii, sunt reprezentate circuitele de iesire si circuitele ce definesc
variabilele de stare.
In cazul general. daca se considera un sistem cu bucle de reactie cu k intrari si m iesiri, trebuie
introduse p variabile de stare pentru a putea defini toate iesirile intr-un mod combinational. Astfel, se
introduc p intarzieri fictive δ in schema. Trebuie studiata evolutia sistemului dupa fiecare esantion de
timp δ. Daca xin, yjn si zln sunt valorile intrarilor, variabilelor de stare, respectiv iesirilor la momentul de
timp nδ, se poate scrie :
ì y jn+1 = f j (x1n ,..., xkn , y1n ,..., y pn ), j = 1, p
í
î zln = gl (x1n ,..., xkn , y1n ,..., y pn ), l = 1, m
Un sistem a carui functionare este descrisa de astfel de ecuatii se numeste sistem secvential sau
automat finit.
Un automat finit este deci un cvintuplu A=(x,y,z,f,g), unde x,y,z sunt multimi nevide, iar f,g sunt
functii definite pe aceste multimi.
x- multimea semnalelor de intrare (alfabet de intrare)
y- multimea starilor multimi finite
z- multimea semnalelor de iesire (alfabet de iesire)
f : x×y→y – functie de tranzitie
g : x×y→z –functie de iesire
Exemplu:
(
ì y1n+1 = xn y3n ⋅ xn + y6 n )
3 − 4 − 2 : y3
(
y3n+1 = y1n + y3n ⋅ xn + y6 n ⋅ y3n)
7 − 8 − 6 : y6 í
(
1 − 3 − 4 − 5 − 7 : y1 y6 n+1 = xn ⋅ y3n y3n ⋅ xn + y6 n )
(
î zn = y3n + y3n ⋅ xn + y6 n )
1 2 3 4 5 6 7 8
3-4-2 1 1 1
7-8-6 1 1 1
1-3-4-5-7 1 1 1 1 1
Oricare dintre solutiile evidentiate mai sus este mai economica decat solutia adoptata initial.
Alegem de exemplu solutia oferita de F2F7=1; variabilele interne sunt deci y2 si y7.
(
ì y2 n+1 = y7 n xn y7 n + y2 n )
( )
í y7 n+1 = y7 n xn + y2 n xn + ( y7 n xn + y2 n )xn y7 n
z = y7 n + ( xn y7 n + y2 n )
î n
y2y7/Tx 00 01 11 10
00 00 00 00 01
01 01 01 10 00
11 11 11 00 00
10 10 10 01 00
taT>tp∆
Circuitele basculante bistabile (CBB)sunt circuite cu doua stari stabile, treeecerea dintr-o stare in
alta facandu-se numai a modificarea uneivariabile de intrare. CBB se pot folosi pentru realizarea
circuitelor de intarziere din structuracircuitelor secentiale, avand in vedere ca principala caracteristica a
CBB este posibilitatea de memorare.
CBB de tip R-S asincrone au doua intrari (S=set, R=reset) si doua iesiri (Q, ). Pentru a pezenta
posibilitatea de memorare, circuitul ar trebui sa functioneze astfel:
- S=R=0: starea circuitului nu se schimba
- S=1, R=0: Qn+1=1
- S=0, R=1: Qn+1=0
- S=R=1: nu intereseaza (nu are sens inscrierea simultana a unui 1 si a unui 0); ca urmare se impune
SR=0
Matricea de excitatie pentru un astfel de circuit este:
SR\Q 0 1
00 0 1
01 0 0
11 x x
10 1 1
Qn+1 = Sn + Rn ⋅ Qn = Sn ⋅ Rn ⋅ Qn Qn+1 = Rn (S n + Qn ) = Rn + S n + Qn
Qn+1 = Rn + Sn ⋅ Qn = Rn ⋅ Sn ⋅ Qn ( )
Qn+1 = S n Rn + Qn = S n + Rn + Qn
Q
S
Sd
Matricea de excitatie a acestui circuit este:
RS/TQ 00 01 11 10
00 0 1 1 0
01 0 1 1 1 Qn+1 = T n ⋅ Qn + Tn ( Sn + Qn ⋅ R n )
11 0 1 X X
îSn ⋅ Rn ⋅ Tn = 0
10 0 1 0 0
CBB sincron poate fi prevazut si cu intrari sincrone (Rd, Sd), care comanda evolutia circuitului
independent de prezenta semnalului de tact, deci pot fi considerate prioritare fata de celelalte intrari. Se
mentine interdictia RdSd=0.
Dupa cum am vazut, CBB sincron de tip R–S este transparent pentru intrarile R, S in cazul T=1.
In unele aplicatii este necesar controlul asupra momentului aparitiei informatiei la iesirea CBB. Pentru
aceasta ar fi de dorit o functionare de felul urmator: informatia se inscrie pentru T=1, dar apare la iesire
pentru T=0, deci dupa inchiderea portilor de intrare. O astfel de functionare este realizata de CBB de tip
R–S MASTER–SLAVE:
T
2 3
1 4 S
t
R
Q
Q
S
R Sd Q
Q
S
Rd
T
6.2. Circuite basculante bistabile de tip J–K
Pentru a evita nedeterminarile ce pot apare in urma aplicarii pe intrarile R, Sale unui CBB R–S
asincron a combinatiei R=S=1 se poate modifica schema circuitului astfel incat el sa aiba o evolutie
cunoscuta si dupa o astfel de comanda si anume: R=S=1→ Qn =1 = Qn . Matricea de excitatie devine:
CBB de tip J–K sincron se obtine prin introducerea unei intrari de tact:
JK\Q 00 01 ì K Q
ïQn +1 = J n ⋅ Q n + K n ⋅ Qn = K n ⋅ Qn + J n ⋅ Q n + Qn
00 0 1 í
01 0 0 ïîQ n +1 = J n ⋅ Q n + K n ⋅ Qn = J n ⋅ Q n + K n ⋅ Qn + Q n
11 1 0 æR → Kö J Q
10 1 1 çç
èS → J
(
Qn +1 = T ⋅ Qn + Tn J n ⋅ Q n + K n ⋅ Qn )
JK\TQ 00 01 11 10
00 0 1 1 0
01 0 1 0 0
11 0 1 0 1
10 0 1 1 1
K Q
J Q
T
6.5. Parametri dinamici ai CBB
J J S J S D
S Q Q Q S Q
T T 1/2x T 1/2x 1/2x
7472 7473 7476 7474
Q Q Q Q
K R K R K R T R
7. AUTOMATE SIMPLE
7.1 Sinteza absoluta
Structura unui automat este urmatoarea:
X
Y z
H f(x,z) ∆ g(x,z)
p m
Semnalul X este asincron in raport cu semnalul de ceas T, ceea ce poate conduce la functionarii
defectuoase. Se prefera
sincronizarea lui X cu ceasul T; acest
T
X XS
D S Q
X
T T
R Q
XS XS
00/0 X1/0
3. reducerea starilor: nu este cazul
4. alocarea variabilelor de stare
Q y1 y0 y1y0\T XS 00 01 11 10 y1y0\T XS 00 01 11 10
1 0 0 00 00 00 01 00 00 0 0 0 0
2 0 0 01 xx 01 11 xx 01 x 1 1 x
3 1 1 11 11 11 11 00 11 0 0 0 0
10 xx xx xx xx 10 x x x x
In cazul automatelor simple, care au maxim 5-6 variabile de intrare si de stare, sinteza structurala
se face in CBB; acestea vor implementa circuitele de intarziere D din structura automatelor finite.
X Xs D Q
Q
D S
1 Z
Xs T Q
T R Q
Q
D
T 0
T Q
J Q
T
T 1 Z
K Q
7.4. Sinteza cu CBB tip R-S
Pentru Tn=1 rezultă:
ìïy in +1 = Sin + R in ⋅ y in
í
ïîSin ⋅ R in = 0 Þ Sin + R in = 1
y in = 0 Þ Sin = y in +1 , R in ⋅ Sin = 0
X Xs
Q
D
S Q
T Xs T 1
Q
R Q
S Q
T
T 0
R Q
(
y in = 1 Þ Sin + R in = Sin + R in )(S in + R in )=S in (
⋅ R in + R in Sin + R in ) =R in = y in +1 , R in ⋅ Sin = 0
Indiferent de starea în care va fi plasat sistemul la punerea sub tensiune, din graf se observă
că el va evolua spre o stare admisă. Sistemul se numeşte în reintrare automată în ciclul de
funcţionare.
În unele situaţii nu este permisă ieşirea din ciclul de funcţionare. În acest caz, sistemul este
prevăzut cu un circuit de iniţializare automată la cuplarea tensiunii de alimentare.
T
TH ≥ TH min
TL ≥ TL min
TL TL
tb + tr ≥ th
tb tr T − ( t b + t r ) ≥ t su
th tsu T ≥ max[TH min + TL min , t su + t b + t r ]
b) CBB tip I-K MASTER-SLAVE (7472, 7473, 7476):
T
TH ≥ TH min
TL TL TL ≥ TL min
t b + t r ≤ TL
T ≥ TH min + max[TL min , t B + t R ]
tb tr
Schema prezentată poate fi privită ca numărator (Y3 Y2 Y1Y0 ) sau ca divizor : în 2 (Y0), în 4 (Y1),în 8 (Y2)
sau în 16 (Y3) al frecvenţei ceasului T.
Frecvenţa minimă de lucru este data de de relaţiile:
- numărător: TT>n·tb+TSH (depinde de numărul CBB conectate).
- divizor: TT>tb (nu interesează decodificarea
stărilor numărătorului).
Dacă la intrarea de ceas T a fiecărei
celule se conectează ieşirea Q a celulei
precedente se obţine un numărător liniar sincron
invers.
Prin combinarea schemelor de numărător direct şi invers invers cu ajutorul unor multiplexoare comandate
în semnalul de mod (CM) se obţine un numărător reversibil.
Numărătoarele pot fi prevăzute şI cu o intrare de ştergere dacă se folosesc intrările prioritare de resetare ( R ) ale
CBB ce alcătuiesc numărătorul (semnalul RES).
8. NUMARATOARE
I0=1 K0=1
I1=Y0 K1=Y0
Prin implementarea acestor relaţii se obţine un numărător binar sincron direct de tip paralel în schema:
i−1
Yi = K i = ∏ Yn
n =0
Frecvenţa maximă de lucru a unui astfel de numărător este dată de relaţia: TT > t b' + t p + TSH , care conduce
la o frecvenţă mai mare decît numărătorul sincron.
Dezavantajul schemei constă în faptul că fiecare poartă nou introdusă (pentru un rang superior) măreşte cu o
unitate factorul de încărcare al CBB ,ceia ce conduce la mărirea tb şi dacă la scăderea frecvenţei de lucru. Un alt
dezavantaj este creşterea numărului de intrări penru porţile folosite pentru rangurile superioare.
Acest dezavantaj se poate elimina dacă pentru implementare se folosesc relaţiile Yi=Ki=Ci-λ, unde Ci-λ se
numeşte transport din rangul I-λ:
ì i
ïCi = ∏ Yn = Ci−1 Yi
í n =0
ï
îCi−1 = i
Frecvenţa maximă este dată de relaţia : TT > t b + (n − 2) t p + TSH se obţine dintr-o frecvenţă maximă mai
mică decît în cazul anterior.Numărătorul astfel obţinut este un numărător binar sincron direct de tip serie.
O altă variantă de numărător binar sincron
binar sincron direct de tip paralel se obţine dacă se
impune Ii=Ki=1; i = 0, n − 1 :
Qn + 1 = T n Qn + T n Qn
Qn = 0 Þ T n = Qn + 1
Qn = 1 Þ T n = Qn + 1
T0=T
T1=Y0T T2=Y1Y0T
T3=Y2Y1Y2T
Numărătoarele pot fi prevăzute cu ieşire de transport pentru expandare (CY).pornind de la această schemă,
se poate realiza foarte uşor un numărător binar sincron reversibil dacă se folosesc două semnale de ceas (CU pentru
numărătorul direct şi CD pentru numărătorul invers):
Pentru a conferi schemei flexibilitate maximă se pot folosi CBB tip J-K MASTER-SLAVE cu intrări
sincrone ( R , S ):
MR PL D i Qi Si Ri
1 x x 0 0 1
0 0 0 0 0 1
0 0 1 1 1 0
0 1 x 0 1 1
R i = MR D i + MR PL Si = MR + PL + D i
MR - ştergere PL - încarcare
paralelă
Numărătoarele prezentate pînă acum sunt numărătoare binare realizate prin interconectarea a p
celule.Aceste numărătoare evoluează prin toate cele 2p stări posibile:
Pentru a realiza un numărător modulo P2≠2p, se determină numărul minim de celule necesare n=[log2k].Din
cele 2 stări posibile se elimină 2n-k stări. Alegerea stărilor omise poate fi făcută arbitrar, rezultănd mai multe
n
variante de numărător modulo k.În practică, stările omise se aleg astfel încît decodificarea stărilor rămase să se
poată face cît mai simplu.Folosim procedeul descris mai sus pentru sinteza unui numărător modulo 5.Dacă
stăstările sunt cele din figură, matricea de excitaţii pentru numărătorul modulo 5 este:
T=1
K0=1
I1=Y0 K1=Y0 I2=Y1Y0
Qn + 1 = In Qn + K n Qn
ìI n = Q n + 1
Qn = 0 → í K2=1
îK n = x
ìK = Q n + 1
Qn = 1 → í n
îI n = x
Numărătorul sintetizat este deci cu reintrare automată în ciclul de funcţionare.O altă metodă de realizare a
numărătoarelor modulo k≠2p este metoda reducerii la 0 , care presupune următoarele: se lasă un numărător modulo
2n să evolueze normal de la starea 0 la starea k-1, apoi la stingerea stării k se resetează toate celulele numărătorului.
Pentru un numărător modulo 5 se obţine R = Y2 Y0
R = Y2 + Y0 = Y2 Y0
D=Y2
Acest numărător realizează o divizare în 5 a frecvenţei ceasului T.De remarcat că starea 4 (100) divizează
TT/2, iar starea 0 (000) divizează 3 TT/2.
O altă metodă de divizare a unui numărător modulo k≠2p este utilizarea unui numărător prim stabil invers
,după cum urmează: se încearcă numărătorul în starea iniţială k şi se aplică impulsului pe intrarea de numărare
inversă (CD); numărătorul trece succesiv prin stările k-1,k-2,...,2,1,cînd numărătorul ajunge în starea 0, apare un
impuls pe ieşirea de împrumut (BW) care se foloseşte pentru încărcarea numărătorului în starea k; apoi ciclul se
reia.
De remarcat că starea 0 nu face parte din ciclul de numărare.
Dezavantajul schemei este că nu se poate asigura o durată suficientă pentru semnalul PL = BW ,semnalului
BW (care există doar atît timp cît conţinutul numărătorului este 0) datorită încărcării numărătorului ( PL = BW ) ar
putea compromite operaţia de încărcare. Acest neajuns se poate elimina prin sincronizarea recţiei în cazul T
(similar metodei anterioare).
8.2. Registre
Registrele circuite ce permit stocarea şi sau deplasarea unor cuvinte binare. În funcţie de modul de
funcţionare, registrele pot fi: de memorie, de deplasare,combinate,inversabile.
Având în vedere că ecuaţia ce descrie funcţionarea unui CBB tip D sincron este Qin+1= T nQin+TnDin , rezultă
că se poate realiza un registru de memorie pe k biţi dacă se folosesc k CBB tip D sincrone cu Din=Xin.
Dacă se folosesc CBB tip D active pe front pozitiv,informaţia se înscrie în registru pe frontul pozitiv al
ceasului.Dacă se folosesc CBB tip D latech ,pentru T=1 registrul este transparent pentru informaţia de pe intrări,iar
pentru T=0 registrul se zăvoreşte,memorînd informaţia care se află pe intrări în momentul frontului negativ al T.
Dacă se folosesc CBB tip D MASTER-SLAVE în registru se memorează informaţia care se află pe intrări în
momentul frontului negativ al ceasului.registrele de memorie se pot implementa şI în CBB tip I-K sau R-S dacă se
realizează conexiunile respectiv.Registrele de memorie multiport sunt constituite din CBB adresabile care au o
intrare comună de date,CBB folosite sunt de tip D-latch
În cazul registrelor de memorie intrerea de ceas a bistabilelor poartă numele de WE sau WR dacă se
folosesc CBB tip D active pe front pozitiv, **** pentru CBB tip D-latch,respectiv *** sau **** pentru CBB tip D
MASTER-SLAVE.
8.2.1. Registre de deplasare
Sunt registre care la fiecare impuls de tact deplasează conţinutul spre dreapta sau spre stânga cu cîte o
celulă.
Funcţionarea unui registru cu deplasare stînga-dreapta este ilustra tă
de următoarea tabelă de adevăr:
Registrului de deplasare i se asociază două circuite logice combinaţionale: CLC1 realizează funcţia de
reacţie, iar CLC2 realizează funcţia de ieşire(generează secvenţa necesară ) .Secvenţele ce caracterizează această
schemă sunt următoarele:
Circuitul de reacţie produce o valoare ce se aplică pe intrarea serială a registrului şi care dfetermină deci
starea următoare a acestuia. Circuitul de ieşire se foloseşte numai în cazul generatoarelor de secvenţă şi numai
atunci cînd circuitul de reacţie nu poate determina singur generarea secvenşei dorite.
Pentru a putea proiecta numărătoare sau generatoare de secvenţă cu ajutorul registrelor de deplasare, este
necesar cunoaşterea grafului de fluenţă corespunzător registrului,care ilustrează evoluţia posibilă a stărilor. În unui
registru de deplasare de 4 biţi,graful de fluenţă edte următorul:
Pe acest graf sunt puse în evidenţă toate stările şi tranziţiile posibile între stări. Pentru a proiecta un
numărător cu n stări trebuie aleasă o secvenţă de n stări din diagramă, iar apoi trebuie realizat circuitul de reacţie
astfel încît registrul de deplasare să oscileze în secvenţa de stări aleasă.
Pentru realizarea unui numărător cu 4 stări,se poate alege de exemplu secvenţa de stări 1-2-4-8.Rezultă:
Q Y3 Y2 Y1 Y0 SI Y3Y2\Y1Y0 00 01 11 10
1 0 0 0 1 0 00 x 0 x 0 SI=Y3
2 0 0 1 0 0 01 0 x x x
4 0 1 0 0 0 11 x x x x
8 1 0 0 0 1 10 1 x x x
De remarcat ca pentru orice numarator realizat prin aceasta tehnica diagrama Karnaugh
corespunzatoare reactiei trebuie sa contina 1 in celula 0000 si 0 in celula 1111, in caz contrar
producandu-se blocarea numaratorului la atingerea starilor respective.
Daca dorim realizarea unui numarator in 8 stari, putem atinge secventa de stari 0-1-3-7-15-14-12-
8, pentru care se obtine:
Q y3y2y1y0 SI y3y2\ 00 01 11
0 0000 1 y1y0 10
1 0001 1 00 1 1 1
3 0011 1 x
7 0111 1 01 x x 1
15 1111 0 x
14 1110 0 11 0 x 0
SI = y 3
12 1100 0 0
8 1000 0 10 0 x x
x
Numaratorul astfel obtinut se numeste numarator Johnson. Nici acest numarator nu asigura
reintrarea in ciclul de functionare la parasirea accidentala. Prin completarea matricei de iesire in pozitiile
indiferente se elimina acest neajuns si se obtine urmatoarea structura pentru numara torul Johnson:
y3y2\
y1y0
00
10
01 11
( )
SI = y 3 y 2 + y 3y 0 = y 3 y 2 + y 0 = y 3 + y 2 + y 0 = y 3 + y 2 y 0
00 1 1 1
1
01 0 1 1
0
11 0 0 0
0
10 0 0 0
0
Q y3 y2 y1 S y3y2\ y1y0 00 01 11
y0 I 10
1 0 0 0 0 00 x 0 0
1 0
2 0 0 1 0 01 1 1 1
0 1
4 0 1 0 1 11 0 0 0
0 0
9 1 0 0 1 10 1 1 1
1 1
3 0 0 1 0 Y3y2\ y1y0 00 01 11 SI = y 3 ⊕ y 2 + y 3 + y1 + y 0
1 10
6 0 1 1 1 00 1 0 0 0 SI = y 3y 2 + y 3 y 2 = y 3 ⊕ y 2
0 01 1 1 1 1
13 1 1 0 0 11 0 0 0 0
1 10 1 1 1 1
10 1 0 1 1
0
5 0 1 0 1
1
11 1 0 1 1
1
7 0 1 1 1
1
15 1 1 1 0
1
14 1 1 1 0
0
12 1 1 0 0
0
8 1 0 0 1
0
Exista secvente ce nu pot fi obtinute doar prin folosirea unui circuit de reactie. Un astfel de
exemplu este prezentat in continuare: trebuie proiectat un circuit care sa genereze secventa:
1011011010. Secventa are 10 biti, deci trebuie folosit un registru de deplasare de 4 biti, care va trebui
y3 y2\ y1 00 01 11 y3y2 \ y1 00 01 11
y0 10 y0 10
00 1 0 x 1 00 1 0 x
01 x 1 1 x 1
11 0 x 0 0 01 x 1 1
10 0 x 1 x x
11 1 x 1
0
10 0 x 0
x
Secventa de 10 stari poate fi de exemplu 0-1-2-5-11-7-15-14-12-8:
Q y3 y2 y1 SI S
y0
0 0 0 0 1 1
0
1 0 0 0 0 0
1
2 0 0 1 1 1
0 SI = y 3 y 0 + y 3y 2 + y 3 y 2 y 0 S = y 3 y 0 + y 2 y 0 + y 2 y1
5 0 1 0 1 1
1
11 1 0 1 1 0
1
7 0 1 1 1 1
1
15 1 1 1 0 1
1
14 1 1 1 0 0
0
12 1 1 0 0 1
0
8 1 0 0 0 0
0
Cel mai cunoscut registru TTL este 7495, care este un registru combinat avand posibilitati de
intrare paralela sau seriala, iesire paralela si seriala.
Corespunzator celor doua moduri de intrare, 7495 este prevazut cu doua ? de ceas. Intrarea de
mod determina functionarea in unul din cele doua moduri de intrare.
MC = 0 - starea seriala pe C0
1 - intrare paralela pe C2
Prin realizarea unor conexiuni adecvate, 7495 se poate transforma in registru de deplasare
considerat stanga-dreapta sau dreapta-stanga.
Circuitele logice folosesc elemente de comutatie pe care le-am considerat pana acum ca fiind
( ) ( )
elemente ideale in sensul ca x, x = (0,1) sau x, x = (1,0) . In realitate, pe durata regimurilor tranzitorii
( ) ( )
apar situatii in care x, x = (0,0) sau x, x = (11
, ).
Exemple:
1.
2.
Influenta acestor regimuri tranzitorii asupra functionarii circuitelor logice este cunoscuta sub
numele de hazard in functionare.
A=B=1, C=0
Z=0
A=B=1, C=1
Z=1
( )
CC :1-2
6-5-2
3-4-5-2
In cazul CLC pe doua nivele sintetizate corect nu poate sa apara hazard dinamic (considerand ca
timpii de propagare sunt aceeasi pentru porti similare).
Un CLC prezinta hazard de surse daca atunci cand cel putin doua intrari se modifica iesirea
trebuie sa ramana constanta, dar ea isi schimba valoarea pe durata regimului tranzitoriu.
Conditia necesara si suficienta pentru ca intre doua puncte de functionare sa nu existe hazard de
surse este ca functia de iesire a circuitului sa contina implicantul prim ce inchide cele doua puncte.
Exemplu: z = x 2 + x 2 x 1 + x 1 x 0 - nu prezinta hazard static in 1.
X2 \ x1 x0 00 01 11 10
0 1 1
1 1 1
La comutarea 001 → 111 , variabila care nu se
modifica este x 0 = 1 ; rezulta: z = x 2 + x 2 x 1 + x 1 .
Daca x 2 , x 2 si x1 comuta dupa cum urmeaza, apare hazard de surse:
Cele doua puncte (intre care apare hazard de surse) nu pot fi incluse in acelasi implicant prim,
desi hazardul de surse nu poate fi eliminat prin metoda mentionata. O solutie ar fi validarea iesirilor
numai dupa terminarea regimului tranzitoriu. In cazul CLC, hazardul nu modifica decat regimul
tranzitoriu al circuitului , fara a schimba regimul permanent.
9.2.1 Hazardul de curse Fie un sistem secvential asincron cu graful de fluenta din figura:
Q\ x 0 1 Q y1 y0 y1 y0 \ x 0 1
0 2 1 0 0 0 00 11
1 2 2 1 0 1 01
2 3 3 2 1 1 01 11
3 3 0 3 1 0 11
11 10
10
10 10
Daca automatul se afla intr-o anumita stare, iar starea 00
urmatoare este aceeasi pentru o anumita intrare, atunci starea
respectiva se numeste stabila si se incercuieste (starea 3 pentru x=0).
Daca automatul se afla in starea 3 si x=0, nu are loc nici o tranzitie. Daca x devine 1, automatul
trece in starea 0, apoi in 1, 2, 3 si din nou in 0 etc. . Pentru x=1, automatul nu evolueaza spre o stare
stabila si trece periodic prin aceeasi succesiune de stari, descriind un ciclu. Daca x devine din nou 0
atunci cand automatul se afla in starea 0, atunci el trece in starea 2, apoi in starea stabila 3.
Daca asigurarea de stare se face conform tabelei de mai sus, tranzitia 0 → 2 se codifica
00 → 11 . Tehnologic este imposibil ca ambele variabile (y1,y0) sa se modifice simultan. Exista 3
posibilitati de modificare a variabilelor de stare y1 y0 din 00 in 11:
Q\ x 0 1 Q y1 y0 y1 y0 \ x 0 1
0 0 1 0 0 0 00 00
1 2 1 1 1 1 11
2 0 1 2 0 1 01 00
3 3 3 3 1 0 11
Daca automatul se afla in starea 11 01
00 cu x=0 si apoi devine , trece direct in 11 daca y1y0 comuta simultan. 11
Daca y0 comuta primul, starea finala este tot 11, daca se trece si prin 10 10
01. In schimb, daca y1 comuta primul, automatul ajunge in starea 10 (3) 10
din care nu mai poate fi scos, indiferent de valoarea lui x.
In acelasi mod pot fi ? variabilelor de intrare atunci cand automatul are mai
multe intrari ce se modifica simultan.
Hazardul de surse se elimina daca sunt respectate urmatoarele conditii:
1. modificarea intrarii sa se faca prin schimbarea unei singure variabile de intrare: sunt necesare
circuite suplimentare care sa asigure aceasta conditie.
2. tranzitiile intre stari sa se faca prin schimbarea unei singure variabile de stare: starile intre care
au loc tranzitii trebuie sa fie codificate prin valori adiacente ale variabilelor de stare.
In continuare sunt ilustrate asigurarile de stare fara hazard de surse pentru automate in 3 si 4
stari:
y1 \ 0 1 Se observa ca este
1 y0
. imposibila o asigurare de
0 0 1 stare fara hazard de surse
1 f 2 daca au loc tranzitii intre
fiecare doua stari. Rezolvarea acestei probleme presupune ca starile intre care au loc
tranzitii sa fie codificate prin valori adiacente ale variabilelor de stare. Adiacenta este simplu pusa in
evidenta pe diagramele Karnaugh; pentru asigurarea propusa, starile 0 si 1 sunt adiacente, de
asemenea starile 1 si 2;
este necesar ca si starile 1 si 2 sa fie adiacente; pentru aceasta, se introduce starea fictiva f si se
impune conditia ca automatul sa treaca neconditionat din f in 0; tranzitia 2 - 0 devine in acest caz 2 - f -
0, rezolvandu-se astfel problema adiacentilor intre starile intre care au loc tranzitii.
2. y1 \ 0 Q y1 y0
y0 1 0 0 0
0 0 1 0 1
1 2 1 1
1 3 3 1 0
2
Asigurarea de stare fara hazard de surse se poate realiza numai cu doua variabile de stare.
3. y2 \ y1 00 01 11
y0 10
0 f 1 3 f2
1 0 1 2
y2 \ y1 00 01 11
y0 10
0 f1 3 f2
1 0 1 2 f3
Daca graful de fluenta are 2 diagonale, problema hazardului de surse poate fi rezolvata prin
introducerea unei a treia stari fictive, care sa rezolve adiacenta intre starile 0-2: 0-f3-2. Se obtine un graf
de fluenta modificat cu 7 stari, dintre care 3 fictive, in care toate tranzitiile au loc intre stari vecine.
9.2.2. Hazardul de continuitate
Consideram un sistem secvential la care structura combinationala f este constituita din mai multe
blocuri f1,…..,fp. Daca un semnal decomanda se aplica unor blocuri diferite fi, fj, pot apare decalaje de
timp la un bloc relativ la celalalt. Daca sub influenta acestor decalaje automatul evolueaza spre o stare
stabila diferita de cea din matricea de excitatie, sistemul prezinta hazard de propagare.
Solutia de eliminare a acestui tip de hazard este introducerea unor intarzieri suplimentare pentru
unele blocuri, astfel incat sa dispara decalajele relative de timp.
9.3.1. Hazardul
Un sistem secvential sincron este comandat pe de o parte de ceasurile interne, iar pe de altã
parte de semnalele externe si ceasurile interne sunt oarecare, ceea ce poate conduce la nerespectarea
timpilor de prestabilire si de mentinere sau la obtinerea unor impulsuri de durata prea scurta, fenomene
ce pot produce hazard in functionare. Exemple:
1. Realizarea numaratoarelor modulo p ≠ 2k prin metoda aducerii la zero sau prin metoda resetarii
controlate daca se foloseste o reactie asincrona.
Solutia consta in sincronizarea reactiei prin utilizarea unui bistabil care sa memoreze semnalul de
reactie, asigurandu-i astfel o durata satisfacatoare. `
2.
Semnalul CU care determinã incrementarea continutului numãrãtorului poate avea in unele cazuri o
duratã activã prea micã. Solutia consta in utilizarea unui al doilea ceas decalat fata de primul, care sa
sincronizeze semnalul exterior N, memorandu-l intr-un bistabil:
Pentru sincronizarea mai multor semnale, se poate folosi un numar corespunzator de bistabile, sau un
registru de memorie.
In unele situatii trebuie comandate mai multe intrari de ceas, incat, pentru respectarea
…………… este necesara multiplicarea ceasului.
Datorita neidentitatii circuitelor 2,3
pot apare decalaje intre T' si T'' (
shew time), ceea ce poate conduce
la hazard in functionare.
Pentru eliminarea acestui tip
de hazard se poate folosi una din
urmatoarele solutii:
1.comanda tuturor intrarilor de ceas de la o singura sursa obtinuta prin conectarea in paralel a mai
multor parti in colector in gol.
2.comanda intrarilor de ceas pentru bistabilele legate in cascada astfel incat ultimul bistabil din cascada
sa basculeze primul.
10.1.Circuite de memorie
Circuite de memorie sunt circuite care asigura posibilitatea de regasire a unor informatii
reprezentate sub forma binara care au fost stocate anterior. Din punct de vedere al modului de utilizare
memoriile se clasifica in :
-ROM, PROM, EPROM- memorii ce pot fi doar citite in sistemul care le utilizeaza; stergerea informatiei
este posibila doar in cazul EPROM si nu este selectiva
-RAM, EEPROM - memorii ce permit atat citirea cat si inscrierea informatiei.
10.1.1.Memorii ROM
Memoriile ROM sunt folosite doar pentru citirea informatiei inscrisa la fabricare; sunt nevolatile,
adica informatia nu se distruge la disparitia tensiunii. Structura lor interna este conceputa matricial in
fiecare nod al matricei fiind memorat bit de informatie.
Liniile matricei (0÷2n-1) sunt
activate de iesirile unui
decodificator ale unei intrari
sunt conectate la liniile de
adresare. Coloanele matricei
sunt conectate la liniile de
date prin intermediul unor
amplificatoare 3S.
Semnalul CS realizeaza
selectia circuitului (el poate
controla si starea
iesirilor).Semnalul OE
controleaza numai starea
circuitelor de iesire. Daca CS
=1, cuvantul aplicat pe intrarile de adresa determina activarea unei linii a matricei de memorare. Daca in
nodurile de pe aceasta linie exista conexiuni pe colonele respective potentialul va fi determinat de iesirile
decodificatorului, deci ,, O " dacã nu sunt realizate conexiuni in noduri, potentialul coloanelor respective
este ,,1", determinat prin rezistentele legate la Vcc. Informatia de pe cele m coloane de date este
prezentata la iesire daca OE=1.
Pentru functionarea corecta este necesara satisfacerea anumitor conditii de timp:
tRC - durata ciclului de citire (intervalul de timp intre doua schimbari de adresa)
tA - timp de acces la memorie (timpul scurs de la stabilirea adreselor la obtinerea datelor
de iesire)
tCS - timpul scurs de la CS=1 la iesirea datelor la iesire
tOE - timpul scurs de la OE=1 la aparitia datelor la iesire
tOH - timpul de mentinere a datelor la iesire dupa ce OE=0.
Memoriile PROM sunt circuite de memorie a cãror continut poate fi programat o singura datã, de
utilizator dupã inscrierea informatiei, aceasta nu poate fi stearsã.
Memoriile EPROM au posibilitatea de inscriere repetata a continutului, stergerea acestuia
facandu-se prin expunere la radiatie ultravioleta sau X.
Memoriile E2PROM elimina dezavantajele circuitelor EPROM: stergerea intregului continut, timp
de stergere ridicat, scoaterea circuitului din soclu pentru stergere. Stergerea informatiei din celule de
memorare se realizeaza prin aplicarea unei tensiuni pozitive pe linia de selectie a cuvantului.
Caile de inscriere (D1) si de citire (D0) pot fi separate sau comune, caz in care intrarea se face printr-o
poarta cu validare (CS+WR=0), iar iesirea printr-un amplificator 3S comandat (CS = 0, WR=1).
Structura interna poate fi regandita dupa cum urmeaza:
Cu ajutorul liniilor de adresa
A1÷An se poate selecta, prin
intermediul decodificatorului,
una din liniile matricei de
memorare. Bitii ce constituie
linia adresata de
decodificator sunt aplicati
unui multiplexor/
demultiplexor comandat de
semnalul WR. Liniile de
adresa An+1 ÷ Am selecteaza
una dintre coloanele de date, conectand-o la linia externa de date D. Decodificatorul este validat de
semnalul CS. Un ciclu de memorie consta in selectarea unei linii (CS, A1 ÷ An ) si apoi, dupa o intarziere
dictata de propagarea prin decodificator si matricea de memorie, selectarea unei coloane (An+1 ÷ Am,
WR). Adresele liniilor si coloanelor nu sunt deci necesare simultan. Utilizand latchuri, se poate imagina o
schema in care liniile pentru A1 ÷ An sa fie comune cu cele pentru An+1 ÷ Am, daca n=m/2. Acesta este
principiul folosit la realizarea memoriilor DRAM. Operarea se face prin aplicarea pe liniile de adresa a
adresei de linie, care este memorata in RL pe frontul negativ al RAS, apoi pe aceleasi linii de adresa se
aplica adresa de coloana care este strobata in CL cu frontul negativ al CAS. Sensul datelor si functia
structurii MUX/DMUX sunt determinate de polaritatea semnalului WR.
Avand in vedere ca celulele memoriei DRAM functioneaza pe baza stocarii unei sarcini electrice pe o
capacitate si ca aceasta capacitate se descarca in timp este necesara o operatie de reimprospatare a
memoriei care sa reincarce capacitatea cel putin o data la 2ms. Reimprospatarea se poate face simultan
pentru toate celulele de pe o linie.
Prin modificarea geometriei se realizeaza circuite de memorie si *******de cuvinte sau numar de
biti pe cuvant diferit de cel al circuitelor disponibile. Pentru modificarea numarului de biti pe cuvant se
conecteaza in paralel circuitele de memorie disponibile. Semnalele de control si adresele sunt comune,
functionarea circuitelor fiind simultana.
Pentru modificarea numarului de cuvinte, se aplica memoriilor folosite un numar de linii de adresa
corespunzator capacitatii memoriilor. Adresa de rang imediat superior se foloseste pentru aplicarea
selectiva a semnalelor de control (CS). Liniile de date sunt comune.
Circuitele de memorie pot fi folosite pentru a sintetiza circuite logice combinationale sau circuite
logice secventiale, caz in care din schema trebuie sa faca parte si circuite pentru memorarea starii.
Pentru a realiza un circuit combinational, variabilele de intrare se aplica pe liniile de adresa. In fiecare
locatie a memoriei se inscriu valorile functiilor corespunzatoare vectorului de intrare ce reprezinta adresa
locatiei respective.
Pentru sinteza
unui sistem
secvential este
necesara
obtinerea
vectorului de
stare, memorarea
acestuia si
realizarea
vectorului de iesire, in functie de vectorul de stare si de vectorul intrare. Sistemul secvential va fi
constituit dintr-o memorie care contine in fiecare locatie a sa vectorii yn+1 si zn, adresa locatiei fiind fixata
de yn si xn.
ì y n +1 = f ( x n , y n )
í
z n = g ( xn , y n )
PLA- urile sunt circuite ce contin numeroase porti logice interconectabile ce permit realizarea unei
game foarte variate de CLC. In punctele de conexiune interna sunt plasate sigurante fuzibile care pot fi
sau nu arse de catre utilizator, obtinandu-se astfel schema dorita.
Circuitul contine o matrice SI, o matrice SAU si un circuit de iesire. Forma canonica disjunctiva a
unei functii booleene este:
n −1
(∏ x j j ) =
σ
Z= Qh( n )
f =1 j =0 f =1
Matricea SI este constituita din circuite SI ce realizeaza termenii Qh(n) , care au pe intrari
variabilele de intrare Xi, Xi. Matricea SAU contine circuite conectabile la toate iesirile circuitelor SI si
permite realizarea FCD a functiei booleene (Z). Circuitul de iesire contine circuite XOR care permit
obtinerea functiei logice Z sau inversei acesteia (Z) si buffere 3S controlate de un semnal OE.
PLA- urile pot fi folosite si la sinteza sistemelor secventiale, utilizandu-se pentru obtinerea
vectorilor de stare yn+1 si de iesire zn. Pentru intarzierea vectorului de stare se foloseste un circuit de
memorare (bistabilele sau registru de memorie) ca si in cazul folosirii memoriilor pentru sinteza CLS.
PLS- urile permit realizarea circuitelor logice secventiale prin materializarea relatiilor cunoscute:
ì y n +1 = f ( x n , y n )
í
z n = g ( xn , y n )
Daca nu se utilizeaza matricea CPL, sigurantele fuzibile vor fi arse in totalitatea lor. Daca de exemplu
doua matrici SI furnizeaza mintermii Q1 si Q2 si este necesara si realizarea unui termen Qi = Q1+Q2, se
folosesc posibilitatile oferite de matricea CPL:
11. AUTOMATE COMPLEXE
In cazul in care un automat prezinta mai mult de 5÷6 variabile de stare si de intrare, proiectarea
prin metodele descrise anterior devine dificila. Astfel, minimizarea functiilor de transfer si de iesire
utilizand diagrame Karnaugh devine practic inoperanta datorita dificultatilor ce apar in determinarea
vecinatatilor. In astfel de cazuri, proiectarea se face pe baza organismelor ce descriu algoritmii de lucru
ale automatelor.
Structura generala a unui automat secvential descris prin organigrama contine doua blocuri
distincte: elementele functionale ale aplicatiei (EFA), care constituie schemele cu rol de executie si
sistemul de comanda (SC) sau secventiatorul, care furnizeaza functiile de excitatie pentru EFA conform
organigramei:
Un automat poate fi descris printr-o organigrama logica in care sunt evidentiate operatiile
prevazute de algoritmul de lucru si deciziile ce se iau la un moment dat. Actiunile automatului se executa
in mod secvential, o secventa fiind intervalul de timp in care se executa o operatie si/sau se ia o decizie.
Exemplu: problema muzeului
Aceasta solutie presupune utilizarea unui element de memorare a starii (registru de memorie,
numarator presetabil, bistabile etc.) cuplat ca un decodificator, fiecare vector decodificat producand o
actiune specifica asupra EFA.
In vederea proiectarii, fiecare secventa i se ataseaza un vector binar distinct. Organigrama logica se
transpune intr-o tabela de adevar care contine vectorii binari (codurile) corespunzatori secventei
urmatoare. Pentru exemplul considerat:
Secventa urmatoare
Secventa
curenta
C B C B A
A
s0 0 0 0 s0∪s1∪s3 0 X1 X0
⊕X1
s1 0 0 1 s0∪s1∪s2 0 X1 X0X1
s2 0 1 0 s1∪s2∪s3 0 X 1 X0
⊕X1
s3 0 1 1 s0∪s3∪s4 X0 X0X1 X0X1
s4 1 0 0 s1∪s3∪s4 X0X1 X0 X0
⊕X1
ì A = ( s 0 + s 2 + s 4 )( X 0 ⊕ X 1 ) + s1 X 0 X 1 + s 3 X 0 X 1
í B = ( s 0 + s1 + s 2 ) X 1 + s3 X 0 X 1 + s 4 X 0
C = s3 X 0 + s 4 X 0 X 1
î
Tot pe baza organigramei se determina si expresiile semnalelor de comanda pentru EFA, tinand
cont si de particularitatile acestora:
ì U = s1 X 1 + s 0 X 0
í
D = s 2 X 1 + s3 X 0
Daca se folosesc circuite basculante bistabile de tip D (7474) pentru realizarea elementului de
memorare a starii, schema secventiatorului rezulta de forma din figura urmatoare: (Pentru
implementarea functiilor logice C, B, A se folosesc porti.)
Fig.2
In anumite situatii, trecerea de la o secventa la alta se face prin incrementarea sau prin
decrementarea secventa. Existenta acestei situatii sugereaza posibilitatea implementarii elementului de
memorare cu ajutorul unui numarator zecimal reversibil prestabil, pentru a putea asigura si incarcarea
paralela a secventelor neconsecutive.
Din tabela de adevar a secventelor se stabilesc ecuatiile functiilor de incrementari, decrementari
si incarcare paralela:
ìCU = s 0 X 0 X 1 + s1 X 1 + s 2 X 0 X 1 + s 3 X 0
íCD = s1 X 0 X 1 + s 2 X 0 X 1 + s 4 X 0 X 1
î PL = s 0 X 0 + s1 X 0 X 1 + s 2 X 0 X 1 + s3 X 3 + s 4 X 0
ì A = ( s0 + s3 ) X 1 + s 2 + s 4 X 1
í B = ( s0 + s3 ) X 1 + s 2
îC = s 4 X 1
Schema secventiatorului daca pentru elementul de memorare se foloseste 74193 este
urmatoarea:
Fig. 3
Poarta de schema care implementeaza semnalele de comanda (U, D) ramane aceeasi ca la
schema precedenta.
In cazul adaptarii acestei solutii, secventele organigramei sunt furnizate de continutul locatiilor
unei memorii adresata de un element de secventiere *************
Una din caracteristicile secventiatorului micro-programat este lungimea cuvantului din memoria
program, cuvant care se numeste micro-instructiune. Adresarea micro-instructiunilor se poate face in
doua moduri: explicit (adresa urmatoare este specificata in campul instructiunii curente) sau implicit
(adresa urmatoare este adresa imediat superioara celei a micro-instructiunii curente). Totalitatea micro-
instructiunilor utilizate de un sistem micro-programat constituie setul de micro-instructiuni. Pentru sinteza
automatelor micro-programate sunt necesare cel putin doua tipuri de instructiuni, corespunzatoare celor
doua tipuri de adresare:
- instructiuni de salt conditionat: daca este indeplinita o anumita conditie, se executa un salt la
o adresa specificata; in caz contrar, se continua se continue cu instructiunea urmatoare.
- Instructiuni de comanda: se da o anumita comanda catre EFA; programul continue cu
instructiunea urmatoare.
Campul instructiunii trebuie deci sa contina 3 zone:
- Instructiuni de salt conditionat:
T C A
T E O
Fig. 4
Programul de functionare al
automatului este descris de
secventa de micro-instructiuni
inscrisa in memoria programului. Pentru exemplul considerat programul este urmatorul:
Exista doua tipuri de instructiuni (IP, EX), deci tipul instructiunii poate fi codificat pe un bit
Adresele de salt au lungimea de 4 biti (programul cuprinde 16 instructiuni plasate intre adresele 000 si
1111).
Programul scris in binar si in hexa este prezentat in tabelul de mai sus, folosindu-se codificarile
enumerate.
Pentru implementarea memoriei program este necesara un circuit de memorie cu dimensiunile 16×8. Se
poate folosi un circuit 74188 (PROM 32×8 ti iesiri cu selector in gol). Cu aceste specificatii, schema
secventiatorului este cea prezentata in continuare:
Se observa ca acest
secventiator poate fi utilizat
si pentru comanda altor
EFA-uri, daca se schimba
programul (alt PROM), cu
conditia sa nu existe mai
mult de 7 conditii de salt si
mai mult de 2 iesiri de
comanda. Numarul iesirilor
de comanda poate fi marit
(max. 8) daca se foloseste
un decodificator (7442)
pentru obtinerea semnalelor
de comanda.
Fig. 44-2
11.3.3 Secventiator programat