3.2.1. Numaratoare j8p16pg
Numaratoarele sunt circuite logice secventiale care inregistreaza numarul
de impulsuri aplicate la intrare. Ele se realizeaza prin asocierea circuitelor
basculante bistabile, avand rol de celule de memorie binara, cu circuite
logice combinationale, care determina modul corect in care urmeaza ca
numaratorul sa-si schimbe starea la fiecare nou impuls aplicat la intrare.
Clasificare
Clasificarea numaratoarelor se face dupa anumite criterii:
1. modul de functionare (comutare a bistabililor):
- asincrone -; celulele de memorie din care este construit numaratorul
nu comuta simultan ci aleator;
- sincrone -; celulele de memorie din care este construit numaratorul comuta
simultan sub actiunea unui impuls de tact aplicat simultan tuturor celulelor.
2. modul de modificare a starilor (continutului):
- directe -; isi cresc continutul cu o unitate la fiecare impuls
aplicat la intrare;
- inverse -; continutul scade cu o unitate la fiecare impuls aplicat la
intrare;
- reversibile -; numara direct sau invers, in functie de o comanda
aplicata din exterior.
3. modul de codificare a informatiei:
- binare
- binar-zecimale
- modulo “p” etc.
Numaratoarele se pot realiza cu celule de memorie de tip T care realizeaza o
divizare cu 2. Prin interconectarea a “n” celule de memorie se obtine
un numarator cu un numar de stari distincte. Fiecarei stari ii vom asocia
cate un cuvant de cod binar de lungime “n”, reprezentand
continutul celor “n” celule binare pentru starea data a numaratorului.
Codul in care numara un numarator va fi dat de succesiunea cuvintelor
de cod binar asociate starilor numaratorului.
Numarul starilor stabile distincte posibile ale unui numarator format din “n”
celule binare este 2n. Daca din aceste stari se elimina “k” stari
rezulta un numarator cu p = 2n -; k stari distincte. Matematic, operatia
realizata de numarator este o operatie modulo “p”.
Definitii:
Capacitatea numaratorului = numarul starilor sale distincte.
Factorul de divizare = raportul dintre numarul de impulsuri de la intrare si
numarul impulsurilor de la iesire.
Observatie. Un numarator functioneaza de fapt si ca un divizor de frecventa.
Tipuri de numaratoare
1. Numarator binar asincron direct
Schema logica a numaratorului este realizata prin conectarea in cascada
a bistabililor de tip JK in configuratie de bistabili de tip T:
Q0 Q1 Q2
J0 Q0 J1 Q1 J2 Q2
CLK0 CLK1 CLK2
K0 Q0 K1 Q1 K2 Q2
1 1 1 R
Q0, Q1, Q2, iesirile numaratorului, ne dau starea lui la un moment dat.
R este semnalul de Reset, folosit pentru aducerea numaratorului in starea
initiala, la 000.
Intrarile bistabililor JK sunt toate legate la “1” logic, deci bistabilii
vor comuta la fiecare impuls de tact.
Tact exterior se aplica doar pe intrarea primului bistabil.
Formele de unda pentru numaratorul binar asincron direct sunt:
CLK
Q0
Q1
Q2
Q2 0 0 0 0 1 1 1 1
Q1 0 0 1 1 0 0 1 1
Q0 0 1 0 1 0 1 0 1
Numaratorul este modulo 8, numarand direct in binar, de la 000 la
111. El basculeaza pe fronturile descrescatoare ale impulsurilor de tact.
Daca dorim sa obtinem valorile numarului in zecimal putem utiliza iesirile
numaratorului, Q0, Q1, Q2, ca si intrari intr-un decodificator binar zecimal.
Dezavantajul numaratorului asincron este ca timpul de comutare, in cel
mai defavorabil caz, este egal cu suma timpilor de comutare a tuturor bistabililor
care il compun. Avantajul lui consta in simplitatea schemei, realizata
doar cu bistabile, prin interconectari directe.
2. Numarator binar asincron invers
Schema logica a numaratorului este:
Q0 Q1 Q2
J0 Q0 J1 Q1 J2 Q2
CLK0 CLK1 CLK2
K0 Q0 K1 Q1 K2 Q2
1 1 1 R
Formele de unda pentru numaratorul binar asincron invers sunt:
CLK
Q0
Q1
Q2
Q2 0 1 1 1 1 0 0 0 0
Q1 0 1 1 0 0 1 1 0 0
Q0 0 1 0 1 0 1 0 1 0
Numaratorul este modulo 8, numarand invers in binar, de la 111 la
000. El basculeaza pe fronturile descrescatoare ale impulsurilor de tact.
3. Numarator binar asincron reversibil
Numaratorul binar asincron reversibil are celula de memorie de baza ca si numaratoarele
asincrone anterioare, dar intre celulele de memorie se intercaleaza multiplexoare
de tip 2:1 prin care se comanda sensul de numarare.
Q0 Q1 Q2
J0 Q0 A Mux J1 Q1 A Mux J2 Q2
CLK0 2:1 Y CLK1 2:1 Y CLK2
K0 Q0 B K1 Q1 B K2 Q2
1 1 1 R
S
Pentru S = 0 numaratorul numara direct, iar pentru S = 1 numaratorul numara
invers.
4. Numarator binar sincron serie si paralel
Realizarea numaratoarelor de tip sincron are ca scop cresterea vitezei de comutare
a numaratorului in ansamblu.
Functionarea acestor numaratoare este sincrona, bistabilii, de tip JK, avand
intrarile de CLK legate impreuna. Pe baza tabelului de adevar se obtine
logica combinationala suplimentara, care asigura functionarea corecta a numaratorului.
Nr. Q0 Q1 Q2 Q3
0 0 0 0 0
1 1 0 0 0
2 0 1 0 0
3 1 1 0 0
4 0 0 1 0
5 1 0 1 0
6 0 1 1 0
7 1 1 1 0
8 0 0 0 1
9 1 0 0 1
10 0 1 0 1
11 1 1 0 1
12 0 0 1 1
13 1 0 1 1
14 0 1 1 1
15 1 1 1 1
Schema logica pentru numaratorul binar sincron serie este:
Q0 Q1 Q2 Q3
1
S S S S
J Q J Q J Q J Q
CLK CLK CLK CLK
K Q K Q K Q K Q
R R R R
Reset
Intrarile J si K ale primului bistabil sunt legate la 1 “logic”
si vor comuta bistabilul la fiecare tact (conform tabelului de adevar). Al doilea
bistabil comuta doar din 2 in 2 impulsuri de tact, adica atunci cand
Q0 trece din 1 in 0, deci pot fi legate la iesirea primului bistabil.
Al treilea bistabil basculeaza din 4 in 4 impulsuri si va fi comandat
de functia SI intre iesirile Q1 × Q0, iar al patrulea bistabil comuta
din 8 in 8 impulsuri si va fi comandat de functia SI intre iesirile
Q2 × Q1 × Q0. In cazul numaratorului binar sincron de tip
serie portile logice de tip SI utilizate vor fi toate cu 2 intrari, ca in
schema logica anterioara.
Pentru marirea vitezei de raspuns a numaratorului se vor folosi porti logice
de tip SI cu numarul de intrari necesar functiei SI implementate, ca in
schema de mai jos, corespunzatoare unui numarator binar sincron paralel.
Q0 Q1 Q2 Q3
1
S S S S
J Q J Q J Q J Q
CLK CLK CLK CLK
K Q K Q K Q K Q
R R R R
CLK
Reset
Timpul de comutare al numaratorului binar sincron paralel este mai mic decat
la cel serie, dar exista porti de tip SI cu un numar mai mare de intrari.
5. Numarator binar sincron reversibil
Pentru realizarea reversibilitatii numaratorului binar sincron se folosesc 2
intrari suplimentare, Count-Up (numara direct) si Count-Down (numara invers).
Aceste numaratoare vor avea si iesiri pentru transport (Carry) si imprumut
(Borrow), care vor permite legarea in cascada a numaratoarelor.
Sinteza numaratoarelor modulo p
Pentru a face sinteza unui numarator cu p ¹ 2n trebuie determinat numarul
minim de celule de memorie binara necesare. Relatia folosita este: 2n ³
p. Celulele de memorie se interconecteaza apoi astfel incat sa se
omita (2n -; p) stari. Din acest motiv exista mai multe variante posibile
pentru interconectare, deci si pentru sinteza numaratorului.
Exemplu: Sinteza unui numarator modulo 5.
Pentru 2n ³ 5 obtinem n = 3, deci vom avea 3 celule de memorie pentru numarator.
Numarul starilor omise va fi 23 -; 5 = 8 -; 5 = 3.
Presupunem ca avem urmatoarea succesiune a starilor de numarare (ciclu de numarare):
000 001 010 011 100
Evident ca se putea alege si alta succesiune a starilor numaratorului.
Folosim pentru realizarea numaratorului bistabili de tip JK.
Se construieste un tabel cu starile actuale ale numaratorului, cu starile urmatoare
si cu conditionarile intrarilor JK ale celor 3 bistabili folositi pentru sinteza.
Completarea tabelului se face pe baza tabelului de excitatie al bistabilului
JK sincron.
Qt Qt+1 J K
0 0 0 x
0 1 1 x
1 0 x 1
1 1 x 0
Q2t Q1t Q0t Q2t+1 Q1t+1 Q0t+1 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0 x 0 x 1 x
0 0 1 0 1 0 0 x 1 x x 1
0 1 0 0 1 1 0 x x 0 1 x
0 1 1 1 0 0 1 x x 1 x 1
1 0 0 0 0 0 x 1 0 x 0 x
Diagramele Karnaugh pentru cele 6 intrari ale bistabilelor ne permit determinarea
functiilor pentru intrari. Starile omise se considera indiferente.
J2:
Q2 Q1Q0 00 01 11 10
0 1
1 x x x x
J2 = Q1 × Q0
K2:
Q2 Q1Q0 00 01 11 10
0 x x x x
1 1 x x x
K2 = 1
J1:
Q2 Q1Q0 00 01 11 10
0 1 x x
1 x x x
J1 = Q0
K1:
Q2 Q1Q0 00 01 11 10
0 x x 1
1 x x x x
K1 = Q0
J0:
Q2 Q1Q0 00 01 11 10
0 1 x x 1
1 x x x
J0 = Q2
K0:
Q2 Q1Q0 00 01 11 10
0 x 1 1 x
1 x x x x
K0 = 1
Schema logica pentru numaratorul modulo 5 va fi urmatoarea:
Q2 Q1 Q0
J2 Q2 J1 Q1 J0 Q0
CLK CLK CLK
1 K2 Q2 K1 Q1 1 K0 Q0
R2 R1 R0
CLK
Reset
Pentru rezolvarea completa a sintezei numaratorului modulo 5 trebuie discutata
si problema starilor omise. Ce se intampla cu numaratorul daca nu
are secventa de initializare sau daca ajunge cumva in una dintre starile
care nu face parte din ciclul de numarare? Care va fi evolutia numaratorului?
Trebuie verificate tranzitiile numaratorului in cazul in care este
intr-o stare din afara ciclului de numarare. Putem avea 2 situatii: fie
numaratorul revine singur in ciclul de numarare, fie trebuie reproiectat
astfel incat sa revina in ciclul de numarare.
Starile omise in exemplul dat sunt:
101 ® 010
110 ® 010 si din starea aceasta se revine in ciclu
111 ® 010
Observatie. Un numarator modulo p se poate obtine folosind un numarator binar
sincron. Se lasa numaratorul binar sa evolueze pana la starea p-1. La
atingerea starii “p” se aplica numaratorului, printr-o logica combinationala,
un impuls de stergere (pe intrarea de Reset).
Numaratoare Moebius
Numaratoarele Moebius sunt numaratoare in inel cu coada intoarsa
(twisted tail ring counter).
Desi exista numaratoare de tip MSI pentru numararea binara sau a altor tipuri
de secvente, exista unele cazuri in care se prefera proiectarea unor numaratoare
speciale cu bistabili si porti logice.
Exemplu: un numarator cu 8 stari la care la fiecare tranzitie se modifica numai
un singur bit, se poate construi utilizand urmatoarea secventa:
0000 0
1000 8
1100 12
1110 14
1111 15
0111 7
0011 3
0001 1
Proiectarea se face si cu bistabili de tip D si cu bistabili de tip JK.
Tabelul folosit pentru sinteza numaratorului este:
Q3t Q2t Q1t Q0t Q3t+1 Q2t+1 Q1t+1 Q0t+1 D3 D2 D1 D0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 1 0 0 0 1 0 0 0 1 x 0 x 0 x 0 x
1 0 0 0 1 1 0 0 1 1 0 0 x 0 1 x 0 x 0 x
1 1 0 0 1 1 1 0 1 1 1 0 x 0 x 0 1 x 0 x
1 1 1 0 1 1 1 1 1 1 1 1 x 0 x 0 x 0 1 x
1 1 1 1 0 1 1 1 0 1 1 1 x 1 x 0 x 0 x 0
0 1 1 1 0 0 1 1 0 0 1 1 0 x x 1 x 0 x 0
0 0 1 1 0 0 0 1 0 0 0 1 0 x 0 x x 1 x 0
0 0 0 1 0 0 0 0 0 0 0 0 0 x 0 x 0 x x 1
Diagramele Karnaugh ne permit sa determinam valorile pentru intrarile bistabilelor
D3 -; D0 si J3 -; K0.
D3:
Q3Q2 Q1Q0 00 01 11 10
00 1 x
01 x x x
11 1 x 1
10 1 x x x
D3 = Q0
D2:
Q3Q2 Q1Q0 00 01 11 10
00 x
01 x x x
11 1 x 1 1
10 1 x x x
D2 = Q3
D1:
Q3Q2 Q1Q0 00 01 11 10
00 x
01 x x 1 x
11 1 x 1 1
10 x x x
D1 = Q2
D0:
Q3Q2 Q1Q0 00 01 11 10
00 1 x
01 x x 1 x
11 x 1 1
10 x x x
D0 = Q1
J3:
Q3Q2 Q1Q0 00 01 11 10
00 1 x
01 x x x
11 x x x x
10 x x x x
J3 = Q0
K3:
Q3Q2 Q1Q0 00 01 11 10
00 x x x x
01 x x x x
11 x 1
10 x x x
K3 = Q0
J2:
Q3Q2 Q1Q0 00 01 11 10
00 x
01 x x x x
11 x x x x
10 1 x x x
J2 = Q3
K2:
Q3Q2 Q1Q0 00 01 11 10
00 x x x x
01 x x 1 x
11 x
10 x x x x
K2 =Q3
J1:
Q3Q2 Q1Q0 00 01 11 10
00 x x
01 x x x x
11 1 x x x
10 x x x
J1 = Q2
K1:
Q3Q2 Q1Q0 00 01 11 10
00 x x 1 x
01 x x x
11 x x
10 x x x x
K1 = Q2
J0:
Q3Q2 Q1Q0 00 01 11 10
00 x x x
01 x x x x
11 x x 1
10 x x x
J0 = Q1
K0:
Q3Q2 Q1Q0 00 01 11 10
00 x 1 x
01 x x x
11 x x x
10 x x x x
K0 = Q1
Cele 2 scheme logice pentru numarator sunt:
D3 Q3 D2 Q2 D1 Q1 D0 Q0
CLK Q3 CLK Q2 CLK Q1 CLK Q0
CLK
J3 Q3 J2 Q2 J1 Q1 J0 Q0
CLK CLK CLK CLK
K3 Q3 K2 Q2 K1 Q1 K0 Q0
CLK
Observatie. Starea fiecarui bistabil este determinata de starea anterioara
a bistabilului plasat in stanga sa, iar starea primului bistabil
este determinata de iesirea complementara a ultimului bistabil.
Se pot construi numaratoare Moebius de orice dimensiune (ordin).
Aplicatii ale numaratoarelor Moebius a. Se pot folosi ca si numaratoare de stare. Daca numaratorul este implementat
cu bistabile JK, fiecare comutare a starii este controlata de cate o intrare
diferita. Din acest motiv, modificarea oricarei stari va putea fi controlata
independent, adaugand o poarta SI sau SI-NU pe intrarea respectiva (de
exemplu tranzitia 0 ® 8 este controlata de J3, tranzitia 8 ® 12 de J2
s.a.m.d.). b. Generatoare de ceas cu mai multe faze. Cele 8 iesiri ale numaratorului genereaza
de fapt 8 semnale de ceas defazate in mod egal, cu factor de umplere de
50%. In general un numarator Moebius de n biti genereaza 2n faze de ceas. c. Decodificarea oricarei stari se poate face printr-o poarta cu 2 intrari.
Pt. a face decodificarea starii se vor urmari cei 2 biti adiacenti distincti,
1 si 0. d. Decodificarea starilor succesive se realizeaza prin porti care au ca intrari
ultimul 1 al primei stari si primul 0 al ultimei stari.
Curs 8
3.2.2. Registre
Registrele sunt circuite logice secventiale care permit stocarea si/sau deplasarea
informatiei codificate binar. Ele se realizeaza din celule de memorie binara
(CBB) si din circuite logice combinationale (CLC), care permit inscrierea,
citirea si transferul informatiei. Capacitatea unui registru este data de numarul
celulelor de memorie.
Orice informatie binara, care nu depaseste capacitatea registrului, poate fi
inscrisa prin actionarea corespunzatoare a intrarilor (care depinde si
ea de natura bistabilelor).
Registrele pot sa fie de mai multe tipuri: de memorie; de deplasare; combinate;
universale.
Registrele de memorie memoreaza informatia binara in celule de memorie
binara. In fiecare celula de memorie se memoreaza un bit de informatie.
Incarcarea se poate face paralel, prin intrarile asincrone, de Set si
Reset.
Registrele de deplasare sunt cele care realizeaza transferul informatiei. Transferul
se poate face: stanga-dreapta; dreapta-stanga; in ambele sensuri.
La fiecare impuls de tact continutul registrului se deplaseaza cu cate
o celula (in sensul stabilit). Semnalul de iesire este identic cu cel
de intrare, dar intarziat cu un numar de impulsuri de tact egal
cu numarul de celule de memorie din care este format registrul.
Exceptand primul bistabil, ecuatia de stare a unui registru de deplasare
stanga-dreapta este data de relatia: Qi(t+1) = Qi-1(t) × c (unde
c = impulsul de tact).
Exemplu: Registru de deplasare stanga-dreapta cu bistabile JK MS.
Q0 Q1 Q2 Q3
SIN
J0 Q0 J1 Q1 J2 Q2 J3 Q3
CLK CLK CLK CLK
K0 Q0 K1 Q1 K2 Q2 K3 Q3
R R R R
Reset
CLK
La fiecare impuls de tact continutul bistabilului Qi se transfera in bistabilul
Qi+1. In bistabilul Q0 se introduce informatia din exterior, iar continutul
ultimului bistabil se pierde. Incarcarea registrului se realizeaza deci
in mod serie. Initializarea registrului se face prin semnalul de Reset,
care forteaza toate iesirile registrului in 0 logic.
Registrele de deplasare dreapta-stanga si reversibile se realizeaza folosind
circuite logice combinationale suplimentare.
Registrele combinate sunt cele care au si functia de memorare si cea de deplasare.
Registrele universale cumuleaza toate functiile: deplasare stanga-dreapta,
deplasare dreapta-stanga, incarcare serie sau paralela a informatiei,
citire serie sau paralela a informatiei.
RI A B C D LI
S0
S1
D Q D Q D Q D Q
CLK CLK CLK CLK CLK
CLR CLR CLR CLR
CLR
Q0 Q1 Q2 Q3
Intrarile de selectie S1S0 conditioneaza modul de functionare a registrului.
Avem:
S1S0 = 00 pastreaza continutul nemodificat;
S1S0 = 01 deplasare stanga-dreapta;
S1S0 = 10 deplasare dreapta-stanga;
S1S0 = 11 incarcare paralela.
Stergerea registrului se face asincron, prin semnalul CLR.
Aplicatii ale registrelor
Registrele sunt utilizate in mai multe tipuri de aplicatii, dupa functiile
pe care pot sa le indeplineasca.
1. Registre de deplasare cu reactie
Au iesirile conectate la intrari si pot fi:
- registre de deplasare in inel -; continutul ultimei celule de memorie
se inscrie in prima celula de memorie;
Q0 Q1 Q2 Q3
1 0 0 0
SIN 0 1 0 0
0 0 1 0
Q0 Q1 Q2 Q3 0 0 0 1
1 0 0 0
- registre (numaratoare) Johnson -; in prima celula se introduce
continutul negat al ultimei celule.
Q0 Q1 Q2 Q3
0 0 0 0
SIN 1 0 0 0
1 1 0 0
Q0 Q1 Q2 Q3 1 1 1 0
1 1 1 1
0 1 1 1
0 0 1 1
0 0 0 1
0 0 0 0
2. Memorie de tip FIFO (First In, First Out), primul inscris -; primul
citit (memorie coada)
Se realizeaza cu registre de deplasare stanga-dreapta. Numarul registrelor
depinde de lungimea cuvintelor ce urmeaza a fi memorate. Capacitatea memoriei
depinde de lungimea registrelor. De exemplu, daca registrele sunt de 4 biti,
capacitatea memoriei este de 4 cuvinte. La fiecare impuls de tact se introduc
datele pe intrarea seriala. y1
SIN Ts x1 y2
SIN Ts x2 y3
SIN Ts x3 y4
SIN Ts x4
CLK
3. Memorie de tip LIFO (Least In, First Out), ultimul introdus -; primul
citit (memorie stiva)
Realizarea se face cu registre combinate. Numarul registrelor este dat de lungimea
cuvantului de memorie, iar lungimea registrelor determina capacitatea
de memorie. xi
A0
A1
A1 A0
SIN Q0 yi
Q1
Q2
Q3
R CLK
A1 A0
0 1 deplasare stanga-dreapta ® inscriere
1 0 citire
Memoria stiva poate fi organizata si soft, in memoria de tip RAM, dar
desi capacitatea acesteia poate fi mare, timpul de acces va fi si el mare.
4. Conversia serie-paralel si paralel serie a informatiei
Pentru conversia serie-paralel se face incarcarea registrului pe intrarea
seriala si cu comanda de tact serie Ts si se citeste informatia pe iesiri, paralel.
Pentru conversia paralel-serie se face incarcarea paralela a informatiei,
cu comanda de tact paralel Tp si apoi se deplaseaza informatia stanga-dreapta,
cu comanda de tact serie Ts si se citeste serie la ultima iesire.
5. Generatoare de secvente
Generatoarele de secvente genereaza o succesiune de secvente binare (1 si 0)
de lungime data (prestabilite). Lungimea secventei reprezinta numarul de biti
dupa care se repeta intreaga secventa. Secventele binare pot fi:
- aleatoare, de lungime infinita;
- deterministe, de lungime finita.
Secventele binare deterministe de lungime maxima se numesc secvente pseudoaleatoare.
Realizarea generatoarelor de secvente se face cu registre in reactie cu
circuite logice combinationale adecvate.
Q0 Q1 Q2 y = Q0 + Q2
S0 Q0 S1 Q1 S2 Q2
CLK CLK CLK
R0 Q0 R1 Q1 R2 Q2
CLK
Secventa pseudoaleatoare generata la iesirile Q0Q1Q2 este:
100 ® 110 ® 111 ® 011 ® 101 ® 010 ® 001
3.2.3. Memorii RAM
Memoriile de tip RAM (random access memory) sunt memorii de tip citeste-scrie,
cu acces aleator. Ele nu-si pastreaza informatia dupa intreruperea tensiunii
de alimentare.
Memoria este formata din nivelul de decodificare, matricea de memorie realizata
cu celule de memorie binara de tip “latch” si nivelul de multiplexare.
Dimensiunea memoriei este specificata prin numarul de cuvinte si numarul de
biti pe cuvant. Capacitatea memoriei este data de numarul de biti memorati
in matricea de memorie.
Schema functionala de principiu a unei memorii RAM este urmatoarea:
Adresa CE sau CS (chip select) n Decodificator
2n n Matrice de memorie
2n
WE (write enable)
Multiplexor
Date
Decodificatorul actioneaza pentru selectarea fiecarei celule de memorie, iar
multiplexorul permite selectarea oricarei celule de memorie la intrare -;
iesire.
Validarea memoriei se face prin intrarea CS. Citirea memoriei se face daca WE
= 1, iar scrierea memoriei se face daca WE = 0.
Datele de intrare si iesire pot sa foloseasca linii diferite sau aceeasi linie
bidirectionala. Memoriile pot avea un numar diferit de cai de date (de obicei
cuvinte de 1 bit sau de un numar de biti multiplu de 2).
Memoriile de tip RAM pot sa fie din punct de vedere constructiv de tip static
sau dinamic. Cele dinamice sunt realizate cu condensatoare si au nevoie de reimprospatarea
la diferite intervale de timp a informatiei memorate, pentru a se evita pierderea
ei.
Extinderea capacitatii memoriilor se face atat prin extinderea dimensiunii
cuvantului de memorie (numarul de biti din cuvant), cat si
prin extinderea numarului de cuvinte ale memoriei (adresa de memorie).
Curs 9
3.3. Sinteza circuitelor logice secventiale sincrone
Circuitele secventiale sincrone trec dintr-o stare in alta la momente
distincte de timp, determinate de impulsurile de tact. Intre doua impulsuri
de tact starea circuitului nu se modifica.
Variabile de intrare
Generare stare noua
Calculul excitatiilor secundare
CLC
Excitatii secundare
Tact
Registru de stari
Stari interne
CL
Variabile secundare
Calculul variabilelor de iesire
CLC
CL = circuit logic general -; pastreaza starea interna ® registru
de stari (bistabili RS, D, JK, registre, memorii); poate fi circuit logic secvential
cu bucla de reactie.
CLC = determina functiile de excitatie secundare care in prezenta tactului
determina trecerea circuitului in alta stare ® se poate numi generatorul
starii noi; se pot realiza cu porti logice sau cu circuite specializate (multiplexoare,
decodificatoare).
Variabilele de intrare sunt in general sincrone cu impulsul de tact, dar
pot fi si de tip asincron.
3.3.1. Etapele de sinteza
1. Expunerea conditiilor de functionare (descrierea comportarii circuitului).
Stabilirea modalitatii de definire a circuitului care trebuie sintetizat prin:
- tabel de tranzitii;
- graf de tranzitii;
- organigrama;
- forme de unda.
Trebuie evidentiate:
- starile prin care trece circuitul;
- valorile variabilelor de intrare pentru care se schimba starile;
- valorile rezultate ale variabilelor de iesire.
Evolutia circuitului incepe intr-o stare initiala si de obicei se
revine la aceasta stare, dupa ultima stare a ciclului.
2. Se codifica starile circuitului.
3. Se incearca reducerea (simplificarea) numarului de stari a circuitului,
daca este posibil, incat sa se pastreze functionarea lui corecta.
4. Se decide asupra modului de implementare (registrul de stari interne).
5. Se determina functiile de excitatie si cele de iesire, daca este posibil.
6. Se studiaza problemele legate de eventualele iesiri false (hazard) sau tranzitii
false.
7. Se deseneaza circuitul.
Etapa cea mai dificila este cea de codificare a starilor. In general functionarile
defectuoase se datoreaza unor tranzitii gresite intre stari sau unor semnale
gresite care apar la circuitul de generare a variabilelor de iesire.
Tranzitiile gresite intre stari apar datorita prezentei variabilelor de
intrare asincrone (se elimina cel mai usor daca se sincronizeaza variabilele
de intrare cu semnalul de tact).
Codificarea starilor se stabileste astfel incat, in orice
stare, pentru toate combinatiile posibile de intrari asincrone, sa nu fie mai
mult decat o singura variabila de stare dependenta de o variabila de intrare
asincrona. In aceste conditii, doua stari rezultate din calea de iesire
a unei intrari asincrone vor avea codificare adiacenta.
Iesirile false pot sa apara din cauza ca la trecerea dintr-o stare in
alta, variabilele de stare practic nu se modifica simultan. Pentru evitarea
tranzitiilor false ale iesirilor se pot folosi metodele:
- se realizeaza o codificare adiacenta a starilor;
- se forteaza trecerea circuitului prin stari suplimentare;
- se sincronizeaza variabilele de iesire.
Observatie: Hazardul static al CLC se elimina prin proiectare (se introduc termeni
redundanti, indiferenti).
3.3.2. Utilizarea organigramei in sinteza circuitelor logice secventiale
sincrone
Elementele componente ale organigramei de functionare a oricarui circuit secvential
sincron sunt:
- elementul de intrare (control sau decizie):
Variabile de intrare
- sincrone
var. 1
0
- asincrone
var. 1
0
- elementul de stare:
Q2Q1Q0
000
- elementul de iesire:
transfer
Configuratii elementare care unesc cele 3 elemente de baza:
A 001 tranzitie simpla:
- contor de timp
- solutionarea problemei de codificare a starilor
B 011
A stare cu iesire
Aduna
B
A stare cu decizie
1 I1 0
B C
A stare cu iesire si decizie
Scade
1 I1 0
B C
A stare cu iesire conditionata
I1 1
0 Iesire
B
A stari cu decizii multiple si iesire
0 I1 1
1
I2 C
0 1 0
I3
B Iesire
Observatii
1. Orice tranzitie intre 2 stari ale circuitului se face intr-un
singur impuls de tact.
2. La un moment dat circuitul se poate gasi intr-o singura stare.
3. Un circuit care se gaseste la un moment dat intr-o stare data, cu un
set de intrari dat, poate avea o singura stare urmatoare.
3.3.3. Sinteza circuitelor secventiale sincrone cu diferite elemente de memorie
In sinteza circuitelor secventiale sincrone se vor folosi ca elemente
de memorie bistabili de tip D si JK. Implementarea registrului de stari se va
realiza cu aceste tipuri de bistabile.
Exemplu: Sa se recunoasca secventa 101 in sirul de cifre binare 10101.
Graful de tranzitii are in noduri starile circuitului. Pe arce avem tranzitia
dintr-o stare in alta pentru o anumita intrare, cu o anumita iesire.
0/0 1/0
1/0 0/0
Init A B C
1/1
0/0
Avem 2 variabile de stare pentru a putea codifica 2 stari (A=00, B=01, C=11).
Cu x am notat intrarea, cu z iesirea. Tabelul de tranzitii este:
St St+1,z
Q1Q0 x=0 x=1
00 A A,0 B,0
01 B C,0 B,0
11 C A,0 B,1
a. Implementam registrul de stari cu bistabile de tip D.
Functiile de excitatie se deduc explicitand diagrama starilor pentru momentul
t si momentul t+1. Starile se vor inlocui cu codurile lor (A=00, B=01,
C=11).
St St+1 (Q1Q0)t+1 z
Q1Q0 D1D0 D1D0 x=0 x=1 x=0 x=1
00 (A) 00 (A) 01 (B) 0 0
01 (B) 11 (C) 01 (B) 0 0
11 (C) 00 (A) 01 (B) 0 1
Di = Qit ecuatia starii urmatoare
D1:
Q1Q0 x 0 1
00 0 0
01 1 0
11 0 0
10 x x
D1 = Q1 × Q0 × x
D0:
Q1Q0 x 0 1
00 0 1
01 1 1
11 0 1
10 x x
D0 = x + Q1 × Q0 z:
Q1Q0 x 0 1
00 0 0
01 0 0
11 0 1
10 x x z = Q1 × x
La trecerea din starea C in starea A se poate trece prin starea B, ceea
ce nu corespunde functionarii. In mod normal se introduce o stare suplimentara
pentru a rezolva situatia.
Schema pentru circuitul secvential sincron este:
D1 Q1 D0 Q0 Q1
CLK CLK Q0 D1
Q1 Q0 x
R R Q0
Init Q1 D0 x
CLK Q1 z x
b. Implementam registrul de stari cu bistabile de tip JK.
Diagrama starilor se completeaza tinand cont de tabelul de excitatie al
bistabilului JK.
Qt Qt+1 J K
0 0 0 x
0 1 1 x
1 0 x 1
1 1 x 0
St St+1(Q1Q0)t+1 z
Q1Q0 J1K1 J0K0 J1K1 J0K0 x=0 x=1 x=0 x=1 x=0 x=1
00 (A) 00 01 0x 0x 0x 1x 0 0
01 (B) 11 01 1x x0 0x x0 0 0
11 (C) 00 01 x1 x1 x1 x0 0 1
J1:
Q1Q0 x 0 1
00 0 0
01 1 0
11 x x
10 x x
J1 = Q0 × x
K1:
Q1Q0 x 0 1
00 x x
01 x x
11 1 1
10 x x
K1 = 1
J0:
Q1Q0 x 0 1
00 0 1
01 x x
11 x x
10 x x
J0 = x
K0:
Q1Q0 x 0 1
00 x x
01 0 0
11 1 0
10 x x
K0 = Q1 × x
z:
Q1Q0 x 0 1
00 0 0
01 0 0
11 0 1
10 x x z = Q1 × x
3.3.4. Implementarea generatorului noii stari cu multiplexoare
Pentru a realiza o implementare cu multiplexoare se scriu functiile de excitatie
pentru bistabile in forma canonica (fara a se minimiza).
Se iau in considerare locatiile care sunt 1 sau care au o variabila inglobata. x
CLC
MUX
Registru de stare
CLC
y
3.3.5. Implementarea generatorului noii stari cu decodificatoare
In cazul implementarii generatorului noii stari cu decodificatoare, la
intrarea decodificatorului sunt aplicate variabilele de stare, iar la iesire
sunt individualizate starile interne.
3.3.6. Implementarea generatorului noii stari cu memorii si multiplexoare
Acest tip de implementare a generatorului noii stari se utilizeaza in
cazul circuitelor complexe. Se asigura o simplificare a logicii de generare
a noii stari si o crestere a sigurantei in functionare.
Implementarea generatorului noii stari cu decodificatoare: x
CLC
Registru de stari
DEC
CLC
y
Implementarea generatorului noii stari cu multiplexoare si memorii: x
MUX
Memorie
Registru de stari
CLC
y
Curs 10
Exemplu: Sinteza unui automat (circuit secvential sincron) de raspuns la telefon.
Se poate programa numarul de apeluri sonore ale soneriei telefonului dupa care
incepe sa functioneze automatul. Programul automatului se incheie
in conditiile: 1) dupa preluarea (inregistrarea) mesajului; 2) daca
apelantul inchide; 3) daca destinatarul raspunde la telefon.
1. Determinarea functionarii -; obtinerea organigramei.
Se stabileste schema bloc a automatului, cu componentele periferice aditionale
necesare. Se stabilesc variabilele de intrare si iesire si caracterul lor sincron
sau asincron.
Avem nevoie de:
- telefon propriu-zis (TEL);
- numarator pentru apelurile sonore ale soneriei telefonului (NRT);
- casetofon pentru redarea mesajului de intampinare (PLAY);
- casetofon pentru inregistrarea mesajului apelantului (REC).
Variabilele folosite sunt:
Sonerie: fiecare apel al soneriei telefonului provoaca decrementarea numaratorului
NRT pana ce ajunge la 0. Nu este variabila a automatului.
Start: variabila de intrare asincrona, de la numarator, care determina inceperea
functionarii automatului, daca numaratorul a ajuns pe 0.
StartPlay (SP), StartRecord (SR): variabile de iesire spre casetofon.
EndOfPlay (EP), EndOfRecord (ER): variabile de intrare asincrone, de la casetofon.
ApelantStop (AS): variabila de intrare asincrona de la telefon (apelantul poate
inchide oricand telefonul).
DestinatarPick-Up (DPU): variabila de intrare asincrona de la telefon; apare
cand destinatarul raspunde la telefon.
Init: variabila de iesire spre numarator; incarca paralel numaratorul
cu valoarea stabilita pentru numarul de apeluri ale soneriei telefonului pana
la intrarea in functiune a automatului.
Obs: variabilele de intrare AS si DPU genereaza semnalul de Reset pentru bistabilii
interni ai automatului si opresc inregistrarea pe casetofon.
Schema bloc este:
CLK Sonerie
PL NRT TEL
Zero AS DPU
Start
Init Automat ER
SP
EP SR
PLAY REC
Organigrama automatului este:
000
A
Init
1 0
Start
B 001
SP
011 C
1 0
EP
D 010
SR
100 E
1 0
ER
2. Codificarea starilor
Pentru ca variabilele de intrare sunt asincrone este nevoie de o codificare
adiacenta a starilor automatului (A,B), (C,D), (E,A) . Pentru 5 stari sunt necesare
3 variabile de stare pentru codificare. Se alege codificarea: A = 000; B = 001;
C = 011; D = 010; E = 100.
Se construieste diagrama Karnaugh pentru stari, pe baza codificarii facute:
Q2 Q1Q0 00 01 11 10
0 A B C D
1 E
Trebuie obtinute diagramele pentru starile urmatoare. Le vom suprapune si
vom desena o singura diagrama, ingloband si variabilele de intrare.
Completarea se face urmarind tranzitiile din organigrama si completand
pentru fiecare stare codul starii urmatoare. Locatiile necompletate vor fi indiferente
deoarece continutul lor nu poate fi atins prin functionare.
Q2 Q1Q0 00 01 11 10
0 00Start 011 01EP 100
1 ER00
3. Reducerea numarului de stari nu mai este posibila.
4. si 5. Registrul de stari se implementeaza cu bistabile de tip D, iar generatorul
noii stari (functiile de excitatie) si iesirile cu porti logice. a. Pentru implementarea registrului de stari cu bistabile de tip D se tine cont
de ecuatia starii urmatoare a acestui tip de bistabil: Di = Qit.
Diagramele Karnaugh pentru intrarile bistabilelor vor fi:
D2:
Q2 Q1Q0 00 01 11 10
0 0 0 0 1
1 ER x x x
D2 = ER × Q2 + Q1 × Q0
D1:
Q2 Q1Q0 00 01 11 10
0 0 1 1 0
1 0 x x x
D1 = Q0
D0:
Q2 Q1Q0 00 01 11 10
0 Start 1 EP 0
1 0 x x x
D0 = Start × Q2 × Q1 + EP × Q0 + Q1 × Q0
Diagramele iesirilor se completeaza tinand cont de organigrama si de diagrama
starilor.
Init:
Q2 Q1Q0 00 01 11 10
0 1
1 x x x
Init = Q2 × Q1 × Q0
SP:
Q2 Q1Q0 00 01 11 10
0 1
1 x x x
SP = Q1 × Q0
SR:
Q2 Q1Q0 00 01 11 10
0 1
1 x x x
SR = Q1 × Q0
7. Desenarea schemei circuitului
Iesirile se realizeaza cu porti logice de tip SI:
Q2
Q1 Init
Q0
Q2 SP
Q1
Q0 SR
Generarea semnalului de Reset se realizeaza cu o poarta logica SAU-NU:
Reset = AS + DPU
AS
Reset
DPU
Registrul de stari este cu bistabile de tip D:
D2 Q2 D1 Q1 D0 Q0
Clk Clk Clk
Q2 Q1 Q0
R R R
Clk
Reset
Functiile de excitatie se implementeaza cu porti logice:
Q2 D0
Q1
Q0
Q2
Q1 D2
Q0 D1
Start
ER
EP
b. Implementarea generatorului noii stari cu multiplexoare se poate realiza
numai cu multiplexoare daca numarul intrarilor de selectie a multiplexorului
este egal cu numarul variabilelor de stare. Daca numarul intrarilor de selectie
este mai mic decat cel al variabilelor de stare, la intrarile selectate
se vor conecta circuite realizate cu porti logice.
Se scriu termenii canonici care contin 1 sau variabile inglobate in diagrama
Karnaugh.
D2 = Q2 × Q1 × Q0 + ER × Q2 × Q1 × Q0
D1 = Q2 × Q1 × Q0 + Q2 × Q1 × Q0
D0 = Start × Q2 × Q1 × Q0 + EP × Q2 × Q1 ×
Q0 + Q2 × Q1 × Q0
Implementarea cu MUX 8:1 este:
0
0 MUX
1 8:1
0 D2
ER D2
0 74151
0
0 s2 s1 s0
Q2 Q1 Q0
0
1 MUX
0 8:1
1 D1
0 D1
0 74151
0
0 s2 s1 s0
Q2 Q1 Q0
Start
1 MUX
0 8:1
EP D0
0 D0
0 74151
0
0 s2 s1 s0
Q2 Q1 Q0
Daca implementarea s-ar realiza cu MUX 4:1 pe intrarile multiplexorului am
avea iesiri din porti logice de tip SI. c. Implementarea generatorului noii stari cu decodificatoare se face aplicand
la intrarea decodificatorului variabilele de stare. La iesirile decodificatorului
se obtin starile interne individualizate.
Putem scrie:
D2 = D + ER × E
D1 = B + C
D0 = Start × A + B + EP × C
Pentru obtinerea functiilor de excitatie se vor utiliza porti logice de tip
SI, SAU si NU.
Decodificatorul va fi de tip zecimal:
DCD 0 A
0 1 B D1
Q2 2 D
Q1 3 C
Q0 4 E
9
d. Implementarea generatorului noii stari cu memorii si multiplexoare permite
simplificarea logicii generarii noii stari.
ROM A0 MUX 0 Start
16 x 4 A1 8:1 1 0
A2 2 0 y3 y2 y1 y0 A3 Y 3 EP
4 ER 5 0
D2 Q2 D1 Q1 D0 Q0 6 0
Clk Clk Clk s2 s1 s0 7 0
Q2Q1Q0 A3A2A1A0 y3y2y1y0 Q2Q1Q0 A3A2A1A0 y3y2y1y0
(s2s1s0) (s2s1s0)
000 0000 0000 000 1000 0001
001 0001 0011 001 1001 0000
010 0010 0100 010 1010 0000
011 0011 0010 011 1011 0011
100 0100 0000 100 1100 0100
101 0101 0000 101 1101 0000
110 0110 0000 110 1110 0000
111 0111 0000 111 1111 0000 e. Implementarea circuitelor secventiale sincrone se poate realiza cu numaratoare
MSI. Numaratorul va fi utilizat pentru functia de memorare si partial pentru
efectuarea tranzitiilor.
Vom utiliza pentru implementare un numarator sincron (de exemplu numaratorul
zecimal 74162). Bistabilii interni ai acestuia pot memora starea circuitului.
Codificarea starilor se face tinand cont de ordinea de numarare a numaratorului:
A = 000; B = 001; C = 010; D = 011; E = 100.
Q2 Q1Q0 00 01 11 10
0 A B D C
1 E
Vom determina functiile de numarare fN si incarcare (ramificare) fR
si vom realiza implementarea lor cu multiplexoare 8:1 (de tipul 74151). Intrarile
de selectie vor fi iesirile numaratorului, Q2Q1Q0. Diagramele pentru cele 2
functii vor fi:
fN:
Q2 Q1Q0 00 01 11 10
0 Start 1 1 EP
1 fR:
Q2 Q1Q0 00 01 11 10
0
1 ER
Starile urmatoare ale numaratorului trebuie specificate pentru starile din
care au loc ramificari (E). D2 = Q2; D1 = Q1; D0 = Q0. In acest caz se
utilizeaza incarcarea paralela a numaratorului cu valoarea prestabilita
pe intrarile paralele.
Schema circuitului trebuie completata si cu logica pentru determinarea iesirilor.
Iesirile Init, SP si SR corespund starilor A, B, D. Functiile de iesire sunt:
Init = Q2 × Q1 × Q0
SP = Q1 × Q0
SR = Q1 × Q0
Implementarea functiilor de iesire se poate realiza cu porti logice de tip SI
sau cu un decodificator zecimal.
Circuitul secvential sincron va avea urmatoarea implementare:
0 0 En Start 0 En
0 1 MUX 1 1 MUX
0 2 8:1 EP 2 8:1
0 3 fR 1 3 fN
ER 4 Y 0 4 Y
0 5 Y 0 5 Y 0 Init
0 6 0 6 DCD 1 SP
0 7 4151 0 7 4151 2 s2 s1 s0 s2 s1 s0 0 D3 3 SR
D2 4
D1 5
D0 6
7
Q3Q2Q1Q0 7442 8
Reset MR 74162 Clk 9
LD D3D2D1D0 EN
0
Curs 11
3.4. Sisteme secventiale sincrone
Evolutia circuitelor secventiale sincrone a fost determinata de metodele de
sinteza adecvate. Pentru circuitele secventiale sincrone cu numar mic de variabile
de intrare si de stare se poate utiliza sinteza pornind de la grafuri sau diagrame
de tranzitii (metoda studiata). Pentru circuitele cu numar mare de variabile
de intrare si de stare se face o organigrama functionala care pune in
evidenta direct starile interne si tranzitiile, in functie de modificarea
unei singure variabile de intrare. Aceste circuite se numesc sisteme secventiale
sincrone (SSS).
Structura unui sistem secvential sincron:
START
Incarcare R S1 numarator C = 0 cautarea bitilor = 1
intr-un registru de 8 biti
DA Ri = 1 NU S2
Prelucrare in functie Deplasare stanga R S3 de rangul bitului C = C -; 1
(succesiune de operatii)
NU S4
C = 8
DA
STOP
Analiza figurii permite determinarea a 2 blocuri functionale:
1. Unitatea de executie UE -; realizata cu registri, numaratoare, bistabili,
CLC.
2. Generatorul de secvente sau unitatea de comanda UC -; secventiator care
opereaza asupra unitatii de executie. UC trebuie sa asigure:
- trecerea din starea Si in starea Si+1;
- intreruperi de secvente prin salt;
- bucle de asteptare.
Schema sistemului secvential complex
UC UE
Calculul secventei Stari urmatoare
Generator de tact Unitate de
CLK executie UE
Generator de secvente secvente
Bloc de determinare actiune
CLK a actiunii asupra UE UE
Unitatile de comanda UC pot fi: cablate sau microprogramate. Generatorul de
secvente poate deci fi realizat cablat sau microprogramat.
1) UC cablate -; exista 2 posibilitati de realizare: a. Generatorul de secvente este realizat cu un numarator programabil. Acesta
numara, se opreste sau se incarca cu o noua valoare. Iesirile sale sunt
decodificate de un decodificator de secvente. Se genereaza secvente care valideaza
actiunile asupra elementului functional (UE).
Generator de tact CLK
Calcul Calcul adresa Calcul adresa Calcul adresa adresa de salt urmatoare de oprire
(conditii de (conditii (conditii de
intrerupere) urmatoare) oprire)
Adresa Load Numarare Oprire
(Salt) UE
Numarator de secventa
Decodificator Calcul de secvente actiuni UE
CLK
b. Generatorul de secvente este realizat cu un registru de deplasare (decalaj)
in care va circula un bit de 1. Fiecarei stari ii corespunde un
bit din registrul de deplasare. Pozitia bitului de 1 semnalizeaza o anumita
secventa. Pentru a obtine starea urmatoare registrul va fi decalat cu o pozitie
sau va fi decalat in cazul saltului. Avantajul acestei variante consta
in eliminarea decodificatorului de secvente.
In fiecare secventa se realizeaza o actiune sau un grup de actiuni. O
actiune poate sa necesite mai multe etape. Dirijarea in cadrul secventei
se realizeaza cu ajutorul generatorului de tact.
Variantele a si b de UC cablate au dezavantajul ca o modificare a functionarii
presupune o modificare a secventei de lucru, deci o modificare a cablajului.
2) UC microprogramate
Generatorul de secvente trebuie sa aiba exact aceleasi functii ca si in
cazul UC cablate.
Generator de tact CLK
Calcul adresa Calcul adresa Calcul adresa de salt urmatoare de oprire
(conditii de (conditii (conditii de
CLK intrerupere) urmatoare) oprire)
Adresa Load (Salt) Numarare Oprire
Registru de microinstructiune UE
Registru de adresa microprogram
Adresa Calcul
Memorie microprogram actiuni UE
Adresa noua Actiuni CLK
La acest mod de realizare a UC se castiga in fiabilitate deoarece
se executa o singura operatie intr-o secventa, dar se pierde in
viteza. Tactul actioneaza asupra registrului (numaratorului) de microprogram.
3.4.1. Principii de comanda a sistemelor secventiale sincrone
Sistemele secventiale sincrone isi modifica iesirea in functie de
intrare doar in prezenta unui semnal de tact.
Functii logice de comanda. Tabele de excitatie
Generatorul de tact furnizeaza un semnal de tact de baza, care provine de la
un oscilator si este un semnal periodic de durata si perioada constanta. Cu
ajutorul semnalului de tact se vor genera toate semnalele de comanda necesare
unui sistem secvential sincron.
In sistemele cablate, in cadrul unei secvente se pot efectua mai
multe operatii. Din acest motiv este necesara dirijarea perioadei tactului pentru
a stabili o succesiune a diferitelor actiuni. Pot sa apara urmatoarele situatii:
Tact suprapus
T
CLK1
CLK2
CLK3
Tact adiacent
CLK1
CLK2
CLK3
Tact neadiacent
CLK1
CLK2
CLK3
Sistemele secventiale sincrone se comanda prin functii care contin unul dintre
semnalele de tact CLKi, o stare a circuitului si un semnal extern. Toate functiile
de comanda care actioneaza asupra elementelor din unitatea de executie UE vor
contine obligatoriu unul dintre semnalele de tact in cadrul expresiei
functiei (valideaza o actiune).
Functiile logice de comanda nu tin cont de natura elementului fizic utilizat.
Dupa alegerea elementelor fizice se vor grupa functiile de comanda intr-un
tabel de excitatie. Tabelul de excitatie contine:
- numele elementului circuitului;
- tipul elementului;
- intrarile elementului;
- modul de comanda a intrarilor;
- functia logica corespunzatoare fiecarei intrari, scrisa sub forma simbolica.
3.4.2. Hazardul in functionarea sistemelor secventiale sincrone
Hazardul reprezinta aparitia unei modificari neprevazute si nedorite a unei
stari a sistemului secvential sincron.
Hazardul poate fi:
- static -; datorat propagarilor pe cai diferite a semnalelor; se manifesta
prin comutari fara semnificatie logica;
- dinamic -; datorat proceselor asincrone pe intrari; se manifesta prin
comutari fara semnificatie logica.
Cauzele aparitiei pot fi:
- semnale parazite la functiile de excitatie;
- nerespectarea parametrilor dinamici;
- durata insuficienta a impulsului de comanda.
Metodele de evitare a hazardului:
1) Sincronizarea intrarilor asincrone
semnal asincron extern
CLK tsetup thold
Exemplu. Se considera un numarator N care face o incrementare +1 la tactul
CLK si un semnal extern E. Incrementarea se face la CLK × E.
E N
CLK +1
E
CLK
CLK × E
Se poate ca semnalul CLK × E sa aiba o durata foarte scurta care va provoca
o functionare gresita a numaratorului N. Se va face o sincronizare a semnalului
asincron E cu ajutorul unui bistabil.
E Es +1
CBB CLK2
CLK1
Daca exista mai multe semnale asincrone, pentru realizarea sincronizarii se
utilizeaza registre.
2) Automodificarea unui circuit secvential
Poate sa apara in situatii ca si urmatoarea: f = s × CLK1 × CLK2 × Q1 × Q2
in cazul in care bistabilul al doilea, Q2, va comuta in 0.
D Q2
CLK2 s
CLK2
s × CLK1 × Q1 × Q2 durata foarte scurta, neutilizabila
Q2
Se face sincronizarea pentru Q2.
Q1 D Q2 s CLK2
CLK2
s × Q1 × Q2
Q2
3) Probleme datorate decalajului de tact (defazarea tactului)
Daca la CLK2 × s × Q1 × Q2 avem Q3 ® 1 si la CLK2 ×
s × Q1 avem Q2 ® 0
Daca CLK2 care se aplica bistabilului 2 este in avans fata de CLK2 aplicat
bistabilului 3, s × Q1 × Q2 ® 0 prea repede si nu se respecta
thold pentru bistabilul 3, deci Q3 nu va ® 1.
J2 Q2 J3 Q3
CLK2
Q1 CLK CLK s K2 K3
CLK2 × Q1
Q2
s × CLK2 × Q1 tsetup thold