Sunteți pe pagina 1din 180

BIBLIOGRAFIE

 Mang Gerda Erica, VHDL, Editura Universităţii din Oradea, 2003,


 Mang Gerda Erica, Proiectare logica
 Mang Gerda Erica, Analiza şi sinteza circuitelor logice – circuite secvenţiale,
 Mang Erica, Popescu Constantin, Analiza si sinteza circuitelor logice –
culegere de probleme, Editura Universităţii din Oradea, 2004
 Mang Gerda Erica, Introducere in VHDL,
 Mang Gerda Erica, Tirtea Rodica - Proiectare logica cu circuite FPGA – lucrari
practice, 2006
 Mang Erica, Popescu Constantin - Analiza si sinteza circuitelor logice –
culegere de probleme, Ed. Universităţii Oradea, 2004,
 Moris Mano - Digital Design, Prentice Hall, 1984;
 Xilinx –Lab Projects Documentation, Foundation Series Express F1.4, 1998
 Xilinx – Lab Projects Documentation, Foundation Series Express F1.4, 1998;
 Xilinx – The Programmable Logic Data Book, Xilinx Inc., 1997;
 Yarbrough John M. – Digital Logic – Applications and Design, Oregon
Institute of Technology, West Publishing Company, 1997;
Cuprinsul cursului ASDN – semestrul II

 CAPITOLUL 1.
 CIRCUITE SECVENŢIALE ELEMENTARE
 CAPITOLUL 2.
 NUMĂRĂTOARE
 CAPITOLUL 3.
 CIRCUITE SECVENŢIALE CU INTRĂRI DE COMANDĂ
 CAPITOLUL 4.
 SINTEZA CIRCUITELOR SECVENŢIALE
 CAPITOLUL 5.
 LOGICĂ PROGRAMABILĂ

2
CIRCUITE SECVENŢIALE ELEMENTARE

3
 starea ieşirilor circuitelor secvenţiale nu depinde doar de intrările
acestuia ci şi de aşa numita stare a circuitului (iesirile si intrările
anterioare momentului considerat)

intrari principale iesiri principale


(primare)

intrari secundare
iesiri secundare

 spre deosebire de circuitele combinaţionale aceste circuite au memorie,


funcţia de memorie este realizată de către elemente de circuit secundare

4
 Pentru a preciza comportarea circuitului, pe lângă ecuaţiile ieşirilor
trebuie specificată şi comportarea sa internă, - adică trebuie indicată
corespondenţa dintre starea intrărilor principale şi secundare,
denumită şi starea totală a circuitului
 se vor specifica: stare
◦ ecuaţiile ieşirilor  z1 = f1 (x1 , x2 ,...,xn , y1 , y2 ,..., yr )
 z = f (x , x ,...,x , y , y ,..., y )
 2 2 1 2 n 1 2 r
 .

 . 
 zm = f m (x1 , x2 ,...,xn , y1 , y2 ,..., yr )
.

circuite secvenţiale
◦ ecuaţiile stării următoare (tranziţiile) de tip Mealy
 y 1, = 1 (x1 , x2 ,...,xn , y1 , y2 ,..., yr )
 ,
 y2 =  2 (x1 , x2 ,...,xn , y1 , y2 ,..., yr )
.

 .

 
 yr =  r (x1 , x2 ,...,xn , y1 , y2 ,..., yr )
.

 ,

 Dacă toate aceste ecuaţii sunt definite spunem că funcţionarea


circuitului este deterministă
 Dacă se cunoaşte probabilitatea cu care se face o anumită tranziţie
circuitul are o functionare probabilistica

5
 Dacă pentru o anumită stare a intrărilor, sau pentru anumite
intrări, starea următoare a circuitului diferă de starea prezentă,
spunem că circuitul se află într-o stare instabilă.
 Dacă pentru anumite intrări, starea prezentă a circuitului şi cea
următoare coincid circuitul se află într-o stare stabilă.
 Pentru ca un circuit secvenţial să se comporte într-un mod bine
precizat, trebuie ca pentru fiecare stare a intrărilor să existe cel
puţin o stare stabilă
 Modelul matematic al circuitelor secventiale se numeşte automat
 Întâlnim în practică circuite secvenţiale ale căror ieşiri nu depind
de stările intrărilor principale ci doar de stările intrărilor
secundare, adică de starea circuitului.

6
z1 = f 1' ( y ,y , ..., y )
 1 2 r



z m = f m' ( y1 ,y2 , ..., yr )
circuite secvenţiale
 y 1, = 1 (x1 , x2 ,...,xn , y1 , y2 ,..., yr ) de tip Moore
 ,
 y2 =  2 (x1 , x2 ,...,xn , y1 , y2 ,..., yr )

 
 yr, =  r (x1 , x2 ,...,xn , y1 , y2 ,..., yr )

 Circuitele al căror număr al stărilor interne este finit se


numesc circuite secvenţiale finite, sau automate finite.
 Tabelul tranziţiilor şi al ieşirilor – o alta forma de descriere a
circuitelor secventiale
 – are nr. de coloane = nr. stărilor posibile ale intrărilor şi
nr. de linii = nr. posibil al stărilor interne

7
 Un element al tabelului
reprezintă în cazul
automatului de tip Mealy
starea următoare/starea
ieşirii, notate simbolic
sau codificate binar.

 Pentru automatul de tip


Moore un element al
tabelului conţine starea
următoare, iar ieşirile
reprezintă o coloană
separată

 Dacă stările şi ieşirile din tabelul tranziţiilor şi al ieşirilor sunt codificate


binar, acest cod reprezintă valorile sistemului de funcţii pentru starea
prezentă de pe rândul respectiv şi pentru starea intrărilor de pe coloana
respectivă.

8
 Tabelul tranziţiilor şi al ieşirilor poate fi completat dacă se
cunoaşte structura circuitului, determinând valoarea fiecărei
funcţii de ieşire: z1,z2,...,zm,, pentru toate valorile posibile ale
variabilelor de intrare principale şi secundare.

 OBSERVATIE:
 În realitate, întârzierea cu care se obţine starea următoare este
distribuită în interiorul circuitului secvenţial.
 Pentru studiu – se consideră că întârzierile caracteristice
legăturilor inverse sub forma unor elemente de întârziere în
care se înscrie valoarea întârzierii cumulate  un circuit
combinaţional care execută funcţiile de transfer ale ieşirilor şi
tranziţiilor şi o parte de memorie care memorează pentru un
anumit timp starea următoare a circuitului.

9
 După modul de funcţionare:
◦ circuite secvenţiale asincrone - starea următoare devine stare
prezentă după un timp care este determinat de întârzierile
interne circuitului.
 Pentru o funcţionare determinista, se impune ca pe fiecare
coloană din tabelul tranziţiilor (fiecare stare a intrărilor) să
existe cel puţin o stare stabilă.
 Acest lucru este greu de realizat deoarece modificarea
intrărilor nu se poate face simultan ⇒ se impune ca la un
moment dat să nu se modifice mai mult decât o variabilă de
intrare (secvenţa intrării principale, sub formă binară, să
formeze un cod ciclic)

10
◦ circuite secvenţiale sincrone - starea următoare devine stare prezentă
numai în anumite momente de timp bine determinate, marcate prin
impulsuri de tact date de către un generator de impulsuri (“orologiu”)
 Elementele de memorie sunt circuite basculante bistabile .
 legăturile inverse (intrările la CBB) sunt întrerupte în lipsa
impulsurilor de tact, fiind stabile numai în prezenţa tactului

◦ d ≪ tr
d- durata impulsului de tact
tr - timpul de reacţie al schemei
tr < T
 pe durata cât este conectată legătura
inversă nu se obţine încă noua stare
următoare
 când apare un impuls de tact care
modifică şi valorile intrărilor, starea
tuturor ieşirilor este stabilă,
corespondentă funcţiilor z1,z2,...,zm,
respectiv , de variabile
x1,x2,...,xn,y1,y2,...,yr. Acesta este
momentul în care la circuitele
sincrone se iau decizii. 11
 Pentru realizarea elementelor de memorie 1,..., r se folosesc circuite
secvenţiale elementare numite şi circuite basculante bistabile (CBB)

 se descompune circuitul (fig. a) într-o parte pur combinaţională şi se


concentrează întârzierile firelor de legătură şi ale porţilor în elemente
de întârziere discrete, notate 1, 2 (fig. b)
 circuitul este de tipul Moore , deoarece ieşirile z1 şi z2 sunt identice cu
intrările secundare y 1, respectiv y2
 z1 = y 1 z2 = y 2

12
y1' = x1 + y2 = x1  y2
 din figura ⇒
y2' = x2 + y1 = x2  y1

⇒ tabelul tranziţiilor şi • cursa critica


al ieşirilor

 2 variabile de stare, 2 intrări şi 2 ieşiri ⇒ circuitul are 4 stări interne,


4 stări diferite ale intrărilor şi 4 stări diferite ale ieşirilor-00, 01, 11, 10
 stările stabile (3 stări) sunt încercuite
 la un circuit real, nu poate fi controlată tranziţia din starea 00 doar
daca se modifică numai una dintre variabilele de intrare⇒in practică se
folosesc 2 stări : 10 numită starea 1 si 01 numită şi starea 0

13
 Pentru a înlătura cursa critică se elimină condiţiile de apariţie ale acesteia
- se impune condiţia ca intrările să nu fie niciodată simultan în starea 1

x1  x2 = 0
 rămân în circuit doar 2 stări stabile, iar ieşirile sunt complementare
 tabelul tranziţiilor va fi:

 Acest circuit se numeşte circuit basculant bistabil R-S.

14
 Intrarea x2 se notează cu S (SET) - are rolul de a aduce circuitul în
starea stabilă 1, atunci când S se aduce un anumit timp în starea 1,
 intrarea x1 se notează cu R (RESET) - are rolul de a aduce circuitul în
starea stabilă 0, atunci când R se aduce un anumit timp în starea 0.
 Timpul cât R, respectiv S, trebuie să stea în starea 1 pentru ca circuitul
să fie adus, indiferent în ce stare s-ar afla, în starea 0, respectiv 1,
este limitat doar inferior - trebuie să fie cel puţin egal cu suma 1+2.
 Dacă la intrare comenzile sunt neschimbate circuitul va rămâne în una
din stările 1 sau 0, cât timp nu se schimbă comenzile de la intrare.
 ECUAŢIA DE STARE - exprimă starea următoare în funcţie de starea
prezentă şi de intrări

 y ' = S + R  y
 ecuaţia de stare
R  S = 0

15
 altă posibilitate de descriere a funcţionării circuitului basculant -
graful tranziţiilor

 Schema circuitului basculant bistabil R-S şi reprezentarea simbolică:

16
 se poate realiza un CBB de tip R-S cu elemente logice ŞI-NU

 Pt. a descrie funcţionarea circuitului se poate folosi şi tabelul caracteristic


- este descrisă comportarea bistabilului funcţie de intrările de comandă.
 Qt - starea circuitului la momentul t,
 Qt+1 - starea sa la momentul t+t,
 t - timpul de răspuns al circuitului la semnalele de intrare
Tabelul 1.4.
S R Qt+1
0 0 Qt
tabelul caracteristic 0 1 0
1 0 1
1 1 –
17
 tabelul de excitaţii - alt tabel folosit pentru a indica modul în care
funcţionează un bistabil este
 precizeaza care trebuie să fie valorile intrărilor pentru ca bistabilul aflat
într-o anumită stare să treacă într-o stare următoare bine precizată
Tabelul 1.5.
Qt Qt+1 S R
0 0 0 x
0 1 1 0
tabelul de excitaţii
1 0 0 1
1 1 x 0

 Pentru evitarea nedeterminărilor care pot apărea în urma unor comenzi


de tipul S=R=1, există 2 soluţii:
1. să se utilizeze circuitul în aplicaţii în care asemenea comenzi nu
apar
2. să se modifice schema circuitului astfel ca acesta să aibă o
evoluţie cunoscută şi după o astfel de comandă. Pentru cea de a
doua situaţie ar exista patru variante:
Q‘=Q, Q'=0, Q'=1 sau Q'= Q .

18
Aplicatii:
 la eliminarea oscilaţiilor care apar în contactele mecanice
 ca element de memorie, adică poate memora starea unei
anumite variabile de stare. El poate fi folosit în circuitul
secvenţial pentru memorarea stării următoare.
 elemente de memorie în circuitele secvenţiale sincrone . -
memorarea stării următoare trebuie să se facă la apariţia
impulsului de tact, chiar dacă la intrările bistabilului există
semnale şi înainte de apariţia tactului. Circuitul basculant care
îşi modifică starea numai la apariţia tactului se numeşte
circuit basculant sincron.

19
 semnalul de comandă care se aplică la borna S a CBB este S=AB
 presupunem că apare următoarea situaţie:
Qt=0, Rt=0, At=1, Bt=0 ⇒ St=0
 trecerea din starea At=1, Bt=0 în starea At+1=0, Bt+1=1 se poate face
fie prin comutarea semnalului de pe intrarea A t înaintea celui de pe
intrarea Bt, fie prin comutarea semnalului de pe intrarea B t înaintea
celui de pe intrarea A t ⇒
 În primul caz: Qt=Qt+1
 În al doilea caz: apare un impuls parazit si Qt+1=1

20
 În practică este greu de controlat succesiunea tranziţiilor şi de aceea
este necesar să existe un circuit care execută comenzile numai după
ce acestea s-au stabilizat la valorile lor corecte: - CBB R-S sincron
 H - impulsul de orologiu
SH = S  H respectiv SH = S  H
RH = R  H respectiv RH = R  H
 Schema:

 Pentru asigurarea funcţionării sincrone a circuitului trebuiesc evitate


schimbările intrărilor de date pe durata cât porţile de intrare sunt
deschise

21
 Comenzile se vor executa sincron cu impulsul de tact

Diagrama de timp pentru bistabilului R-S sincron

 aceste bistabile sunt prevăzute şi cu două intrări asincrone (comenzile


se execută independent de prezenţa tactului – Sd si Rd) care servesc la
aducerea în starea 0 respectiv în starea 1 a bistabilului

22
 admite comenzi simultane la ambele intrări, circuitul fiind astfel
conceput încât atunci când apare un asemenea caz, el să-şi modifice
starea
 nu poate funcţiona decât în mod sincron

Tabelul 1.6
J K Qt Qt+1
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

ecuaţia de stare: Qt+1 = J  Qt + K  Qt

23
 CBB se poate construi pornind de la un bistabil de tip R-S sincron:
 ecuaţia de stare a bistabilului J-K devine ecuaţie de aplicare
pentru bistabilul R-S
 cu ajutorul tabelului şi a diagramelor din figura 1.15, se determină
ecuaţiile intrărilor:
S = f1(J, K, Q) şi R = f2(J, K, Q)

Tabelul caracteristic CBB J-K

24
 CBB se poate construi pornind de la un bistabil de tip R-S sincron:
 ecuaţia de stare a bistabilului J-K devine ecuaţie de aplicare
pentru bistabilul R-S
 cu ajutorul tabelului şi a diagramelor din figura 1.15, se determină
ecuaţiile intrărilor:
S = f1(J, K, Q) şi R = f2(J, K, Q)

Tabelul de excitatii CBB R-S

25
 CBB se poate construi pornind de la un bistabil de tip R-S sincron:
 ecuaţia de stare a bistabilului J-K devine ecuaţie de aplicare
pentru bistabilul R-S
 cu ajutorul tabelului şi a diagramelor din figura 1.15, se determină
ecuaţiile intrărilor:
S = f1(J, K, Q) şi R = f2(J, K, Q)

26
 Să analizăm acest circuit, la început, cu ajutorul tabelului tranziţiilor:

• Dacă circuitul ar funcţiona în modul


asincron, ar trebui ca pe fiecare coloană a
tabelului să existe cel puţin o stare stabilă.
• Nefiind îndeplinită această condiţie, acest
Tabelul tranziţiilor circuit nu poate funcţiona decât în modul
sincron.

 Pentru a funcţiona corect în modul sincron trebuiesc respectate


relaţiile:
d  2tmin şi T  2tmax t - timp de întârziere sau de reacţie

 Dacă la intrări se aplică semnalul J=K=1, şi d2t, circuitul îşi


schimbă starea de d/2t ori (vezi tabelul tranziţiilor - coloana a
treia).

27
 are o singură intrare (notată cu T), care atunci când trece din starea
0 în starea 1 determină schimbarea stării interne a bistabilului
Tabelul 1.7. Tabelul 1.8.
T Q t+1 Qt Q t+1 T
0 Qt 0 0 0
1 Qt 0 1 1
1 0 1
1 1 0
tabelul caracteristic tabelul excitaţiilor

 pornind de la tabelul caracteristic se poate scrie ecuaţia de stare a


bistabilului T:
Q' = Q  T + Q  T
 Observatie: CBB J-K îşi modifică starea atunci când intrările J şi K
sunt comandate simultan ⇒ legând împreună intrările circuitului
basculant bistabil se obţine schema unui circuit basculant de tipul T

28
 La acelaşi rezultat se poate ajunge dacă se porneşte de la ecuaţia de
stare a bistabilului T, care se impune să fie ecuaţia de aplicare
pentru bistabilul J-K.
 Utilizând metoda tabelară şi minimizând funcţia T din tabelul 1.9,
expresia intrării va fi:

Tabelul 1.9
J K Qt Qt+1 T
T = QK + Q J 0 0 0 0 0
0 0 1 0 1
0 1 0 1 1
0 1 1 0 1
1 0 0 0 0
1 0 1 1 0
1 1 0 1 1
1 1 1 1 0

29
 are o intrare, notată cu D
 starea următoare este aceeaşi cu a intrării D, independent de starea
prezentă a bistabilului
 de obicei intrarea D este sincronizată
 este folosit ca element de memorie, cu rolul de a păstra starea
intrării de comandă D în timpul dintre două impulsuri de tact

30
 Pentru realizarea unui bistabil de tip D se poate folosi un bistabil de
tipul R-S sau un circuit bistabil de tipul J-K.
Q ' = D (ecuatia de aplicare)

 '
Q = S + R  Q (ecuatia de stare)
S  R = 0


Tabelul 1.10
D Qt Qt+1 S R
0 0 0 0 x S=D şi R=D
0 1 0 0 1
1 0 1 1 0
1 1 1 x 0
Tabelul 1.11
D Qt Qt+1 J K
0 0 0 0 x
J=D şi K=D
0 1 0 x 1
1 0 1 1 x
1 1 1 x 0

31
Sinteza bistabilului D folosind: a.-bistabilul R-S; b.-bistabilul J-K

Circuit secvenţial realizat cu bistabilul D

32
 este format din două circuite basculante bistabile:
 primul, denumit “Master”, memorează în momentul apariţiei
impulsului de sincronizare starea următoare a bistabilului,
 al doilea, denumit “Slave”, memorează pe toată durata
impulsului de sincronizare starea prezentă, urmând ca abia
după dispariţia impulsului de sincronizare să treacă în starea
în care se găseşte bistabilul “Master” care îl comandă
 ⇒se asigură o funcţionare corectă a bistabilului independent de
viteza de reacţie respectiv de durata impulsului de sincronizare

Schema logică de principiu a unui bistabil R-S “Master Slave”


33
 În absenţa semnalelor de comandă (R şi S) ambele bistabile, QM şi QS,
se află în aceeaşi stare, de exemplu starea 0
 Dacă la intrarea S se aplică un semnal de aducere în starea 1, la
primul impuls de sincronizare bistabilul Q M este adus în starea 1.
 Porţile ŞI de la intrările bistabilului QS sunt blocate datorită impulsului
de sincronizare negat ⇒această stare nu poate fi transmisă
bistabilului QS atâta timp cât există impuls de sincronizare
 Cand H=0, porţile se deschid şi bistabilul Q S preia automat starea
bistabilului QM.
 ⇒se poate spune că frontul pozitiv al impulsului de tact înscrie
informaţia în bistabilul Q M, şi abia frontul negativ al impulsului de
sincronizare permite ca această stare să fie înscrisă şi în Q S.

34
Schema logică de principiu a unui bistabil J-K “Master Slave” având în componenţa CBB R-S

 În intervalul I se creează condiţia de


deschidere a porţilor 1 şi 2, ⇒ în bistabilul
M se înscrie starea următoare
corespunzătoare intrărilor J, K şi stării
prezente. Porţile 3 şi 4 sunt închise.
 Cand apare frontul descrescător al
impulsului de tact se deschid porţile 3 şi
4, după ce în prealabil s-au închis porţile
1 şi 2
 În intervalul II bistabilul S preia starea
bistabilului M prin deschiderea porţii 3,
respectiv 4.
35
 În concluzie, modificările intrărilor, respectiv comenzile de intrare,
sunt determinate de frontul descrescător al impulsului de tact şi au
loc în intervalul II

Schema logică a unui circuit bistabil J-K “Master Slave” realizat cu elemente logice ŞI-NU

Circuitele basculante bistabile “Master Slave” au aceleaşi tabele caracteristice şi


se folosesc în acelaşi mod ca şi circuitele basculante obişnuite de acelaşi tip.

36
NUMĂRĂTOARE

37
 sunt circuite secvenţiale sincrone a căror stare următoare depinde
numai de starea prezentă, în funcţionare neintervenind variabile de
intrare de comandă sau de intrare
 se numesc şi automate autonome
 După modul de funcţionare:
 număratoare asincrone - elementele de memorie nu comută sincron
 număratoare sincrone - primesc impulsul de sincronizare în acelaşi
moment şi comută, cel puţin teoretic, simultan

38
 Cel mai simplu numărător - CBB de tip T: cât timp T=1, bistabilul va
bascula la fiecare impuls de tact -face numărarea cu 1 poziţie (modulo 2)

 iniţial bistabilele C, B şi A sunt în starea "0“


 Starea bistabilului C se modifică la apariţia frontului scăzător al primului
impuls de tact, starea bistabilului B la frontul scăzător a semnalului de
ieşire a bistabilului C, şi starea bistabilului A se modifică la apariţia
frontului scăzător a semnalului B.

Conţinutul numărătorului = nr. impulsuri numărate

39
TACT

1 2 3 4 5 6
t
C
t
B

t
A
t
0 1 2 3 4 5

Figura 2.2. Digrama de timp corespunzătoare numărătorului asincron modulo 2 3


Tabelul 2.1
A B C
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1 Stările bistabilelor după fiecare impuls
4 1 0 0 de numărare
5 1 0 1
6 1 1 0
7 1 1 1

40
 Dacă se decodifică conţinutul numărătorului utilizând un decodificator
binar zecimal, în fiecare interval de timp se obţine un semnal la ieşirea
corespondentă cifrei binare codificate în acel interval.
Tact
Numărător

Decodificator

z0 z1 z7
0 1 ... 7
Tact 1 2 3 4 5 6 7 3 8
Figura 2.3. Decodificarea stărilor numărătorului asincron modulo 2 t
z0
t
z1
t

z7
t

Figura 2.4. Diagrama semnalelor obţinute la ieşirea decodificatorului


41
 Datorită timpului de răspuns al bistabilelor conţinutul numărătorului
pe o anumită perioadă nu mai rămâne constant.
 Încercând să codificăm starea numărătorului pe o anumită perioadă a
impulsului de tact, se poate întâmpla ca la intrările decodificatorului
(ieşirile bistabilelor) să obţinem mai mult decât un singur semnal pe
durata ciclului de numărare. Apar aşa numitele erori de decodificare.

Tact

C t

B t1 t

A t2 t

t3 t
0 0 1 10 2 2 3 320 4 4 ...

• Se observă că există erori (0) care apar în mai multe porţiuni ale
diagramei

42
 Erorile de decodificare pot să conducă la funcţionarea eronată a
întregului sistem.
 Înlăturarea erorilor de decodificare în cazul numărătoarelor asincrone
se poate face
 pe cale electronică - se face uz de faptul că impulsul
eronat este de durată mică ⇒ se transformă circuitul care
se comandă astfel încât să devină insensibil la acest impuls
sau se integrează răspunsul limitându-i amplitudinea.
O altă soluţie posibilă este aceea în care se intercalează un
condensator C la ieşirea z 0, care va integra semnalul şi va
transforma amplitudinea erorii într-un ciot mic (sub 0,8 V):

43
 pe cale logică - se bazează pe căutarea unui impuls pe durata
impulsului de orologiu în care semnalul de la decodificator este
corect.
Se observă că semnalul este întotdeauna corect pe durata
semiperioadei de tact ⇒ semnalul de la ieşirea decodificatorului poate
fi autorizat pe durata impulsului de tact ⇒ se va utiliza o poartă ŞI la
ale cărei intrări se leagă z0 şi tactul.

z0

t
z0 z0* Tact
Tact
t
z0*

a. b. t

Observatie: Pentru numărătorul asincron frecvenţa maximă de lucru este


limitată de timpul de răspuns al bistabilelor: suma întârzierilor celor n
ranguri (nt) trebuie să fie mai mică sau egală cu semiperioada :
T
nt 
2 44
 se iau măsuri de reiniţializare ale numărătorului atunci când
se decodifică starea modulului dorit
Tact
Exemplu: 1 2 3 4 5 6 7
t
numărător modulo 6
C
când se atinge starea t
110 se iau măsuri de B
anulare ale t
bistabilelor B si A A
t

la decodificator
Intrucat 22<6<23 ⇒ 3 bistabile

1 J 1 J 1 J
C B A
1 K 1 K K
1

R R R INIT

45
 ⇒ semnalul de anulare, notat RM, este condiţionat de:
R M = AB C

 pe de altă parte ABC = 0, pentru că în modulo 6 (starea 111)


nu se poate atinge niciodată
 ⇒ semnalul de anulare:
R M = AB C + ABC = AB

 Dacă luăm în considerare şi posibilitatea anulării externe a


numărătorului prin intermediul semnalului asincron INIT, ⇒

R N = INIT + AB

46
1 J 1 J 1 J RN
C B A INIT
1 K 1 K 1 K

TACT

Schema bloc a numărătorului asincron modulo 6

 Dezavantaj:
 O astfel de schemă este foarte puţin sigură în funcţionare
deoarece semnalul de anulare RM este foarte îngust, şi
anume egal cu timpul de răspuns al celui mai rapid
bistabil aflat în starea 1 în momentul în care s-a format
starea modulului.

47
 Pentru a înlătura dezavantajul schemei anterioare trebuiesc luate
măsuri de anulare a bistabilelor în timp suficient pentru a acţiona
toate bistabilele - se poate realiza cu ajutorul unui alt circuit bistabil:
 Exemplu: numărător modulo 5
 semnalul de anulare are următoarea expresie:

R M = ABC + ABC = AC

 Semnalul AC se memorează în bistabilul M prin legarea ieşirii porţii 1


la intrarea RM a bistabilului M, determinând astfel anularea acestuia

 ⇒ QM devine "0" şi poate fi utilizat pentru anulare alături de semnalul


de iniţializare, INIT
 După iniţializare, numărătorul trebuie să funcţioneze corect la
apariţia primului impuls de tact ⇒ trebuie adus din nou în starea 1

48
1 J 1 J 1 J 1
C B A
AC
1 K 1 K 1 K

R R R INIT

SM QM

RM QM
M

Numărătorul asincron modulo 5

 Se pune întrebarea: care este momentul oportun pentru


memorarea semnalului de anulare?

49
Intrare de
numărare
1 2 3 4 5 6
t
0 1 2 3 4 0
C
t
B
t
A
t
AC
t

QM
t

50
 Ieşirea QM a bistabilului M determină anularea bistabilelor C şi A
 ⇒ AC=0 ⇒ M ⇨ 0.
 QM trebuie readus în 1 la reînceperea ciclului de numărare.
 Acest lucru se poate realiza prin negarea impulsului de tact la
intrarea SM .
 ⇒ frontul crescător al următorului impuls de numărare va
determina M ⇨ 1.

 Observatie: Se întâlnesc adeseori situaţii în care numărătorul


trebuie să numere în sens descrescător (111...1 ⇨ 000...0).
Un astfel de numărător se poate realiza simplu dacă în schema
prezentată anterior se consideră ieşirile complementare ale
bistabilelor.
Modulele de numărare asincrone sunt realizate sub formă integrată pe
scară medie, astfel: numărător modulo 16, modulo 8, ş.a.m.d. (M=2n,
unde n=1,2,3,4)

51
 Avantaj: sunt mai rapide
 Dezavantaj: conţin mai multe elemente logice
 se proiectează astfel încât toate bistabilele să primească comanda
de basculare simultan, şi anume în momentul apariţiei impulsului
de tact

Schema bloc a numărătorului sincron

 Ieşirile sunt legate la intrările de comandă sincrone prin intermediul


unor circuite logice astfel încât să realizeze secvenţa de numărare
dorită

52
 Exemplu: numărător sincron cu trei ranguri si secvenţă de
numărare in codul binar natural realizat cu CBB J-K
Tabelul 2.2.
A B C A’ B’ C’ JA KA JB KB JC KC
0 0 0 0 0 1 0 x 0 x 1 x
Secventa de numarare

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

Starea prezenta Starea urmatoare

 se vor determina: JA= f1(A, B, C), JB = f2(A, B, C), ..., KC = f6(A, B, C)


Tabelul 2.6.
Q Q’ J K
0 0 0 x
0 1 1 x
1 0 x 1
53
1 1 x 0
 Se observă imediat: JC = KC = 1
A A

0 X X 0 X 0 0 X
JB = C KB = C
C 1 X X 1 C X 1 1 X
1
B B1

A A

0 0 X X X X 0 0
JA=B*C KA = B*C
C 0 1 X X C X X 1 0

B B
 trebuie analizată problema erorilor de decodificare
 Avantajul oferit de libertatea de alegere a secvenţei de numărare ne
oferă o modalitate simplă de eliminare totală a eroriilor,
 - se va impune condiţia ca tranziţia de la un cuvânt
din secvenţa de numărare la cel următor să se facă
prin modificarea unei singure variabile de stare
54
 Exemplu: numărător sincron cu 3 ranguri care funcţioneaza
fără erori, realizat cu CBB de tip J-K
Tabelul 2.3.
A B C JA KA JB KB JC KC
0 0 0 0 x 0 x 1 x
0 0 1 0 x 1 x x 0
0 1 1 0 x x 0 x 1
0 1 0 1 x x 0 0 x
1 1 0 x 0 x 0 1 x
1 1 1 x 0 x 1 x 0
1 0 1 x 0 0 x x 1
1 0 0 x 1 0 x 0 x
0 0 0
 Atentie! – la completarea diagramei
A

1 0 1 0
 JC = A  B + A  B
C X X X X

B
55
 O altă posibilitate de determinare a expresiilor funcţiilor:
 se scriu din tabel expresiile stării următoare ca funcţii de
variabile A,B,C şi apoi prin identificare cu ecuatiile de stare
ale CBB se determină expresiile intrărilor CBB A, B şi C
A
0 0 1 1
A' = A  B  C + A  B  C
C 0 1 0 1
A*B
B B
dar:
A' = J A  A + K A  A

Prin identificare se obtine:

JA = KA = B  C

56
 se cere ca decodificarea stărilor să se facă fără erori

Schema bloc a numărătorului binar zecimal sincron

 Etapa I: alegerea secvenţei de numărare


 Pentru a evita apariţia eroriilor de decodificare se
alege un cod continuu şi ciclic – este indicată
utilizarea unei diagrame de minimizare

57
Tabelul 2.4.
CD\AB 00 01 11 10
00 0 4 12 8
01 1 5 13 9
11 3 7 15 11
10 2 6 14 10

 Exemplu de cod Tabelul 2.5.


A B C D
0 0 0 0 0
4 0 1 0 0
12 1 1 0 0
8 1 0 0 0
10 1 0 1 0
14 1 1 1 0
6 0 1 1 0
2 0 0 1 0
3 0 0 1 1
1 0 0 0 1

58
 Etapa a II-a: - determinarea ecuaţiilor intrărilor bistabilelor
 Alegem CBB de tip J-K "Master-Slave“
Tabelul 2.7.
ABCD JA KA JB KB JC KC JD KD E
Tabelul 2.6. 0000 0 x 1 x 0 x 0 x 0
Q Q’ J K 0100 1 x x 0 0 x 0 x 0
0 0 0 x 1100 x 0 x 1 0 x 0 x 0
0 1 1 x 1000 x 0 0 x 1 x 0 x 0
1 0 x 1
1010 x 0 1 x x 0 0 x 0
1 1 x 0
1110 x 1 x 0 x 0 0 x 0
0110 0 x x 1 x 0 0 x 0
0010 0 x 0 x x 0 1 x 0
0011 0 x 0 x x 1 x 0 0
0001 0 x 0 x 0 x x 1 0
0101 x x x x x x x x 1
1101 x x x x x x x x 1
1001 x x x x x x x x 1
0111 x x x x x x x x 1
1111 x x x x x x x x 1
1011 x x x x x x x x 1
59
 Etapa a III-a: - determinarea FMD ale funcţiilor JA, KA, JB, KB,
JC, KC, JD, KD

CD\ AB 00 01 11 10 CD\ AB 00 01 11 10
0 0 0 1 x x 0 0 1 x x 0
0 1 0 x x x 0 1 0 x x x
1 1 0 x x x 1 1 0 x x x
1 0 0 0 x x 1 0 0 x x 1

JA = B  C (2.10)JB = A  C + A  C  D

CD\ AB 00 01 11 10 CD\AB 00 01 11 10
0 0 x x 0 0 0 0 x 0 1 x
0 1 x x x x 0 1 x x x x
1 1 x x x x 1 1 x x x x
1 0 x x 1 0 1 0 x 1 0 x
KA = B  C (2.11)
KB = A  C + A  C

60
CD\ AB 00 01 11 10 CD\ AB 00 01 11 10
0 0 0 0 0 1 0 0 0 0 0 0
0 1 0 x x x 0 1 x x x x
1 1 x x x x 1 1 x x x x
1 0 x x x x 1 0 1 0 0 0

JC = A  B (2.14) J = C  B  A
D

CD\ AB 00 01 11 10 CD\ AB 00 01 11 10
0 0 x x x x 0 0 x x x x
0 1 x x x x 0 1 1 x x x
1 1 1 x x x 1 1 0 x x x
1 0 0 0 0 0 1 0 x x x x

KC = D (2.15) K D = C

61
 Deci, s-au obţinut următoarele ecuaţii:

JA = B  C KA = B  C
JB = A  C + A  C  D KB = A  C + A  C
JC = A  B KC = D (2.18)
JD = C  B  A KD = C
 Dacă dintr-o eroare apare vreuna dintre ultimele 6 secvenţe de
numarare (nefolosite aici) trebuiesc luate măsuri de blocare a
numărătorului sau de semnalizare a apariţiei erorii (a unei
combinaţii nepermise)
 expresia funcţiei care semnalizează eroarea (E) şi care are rolul
de a inhiba decodificarea şi a iniţializa numărătorul:

CD\ AB 00 01 11 10
E = A D + BD 0 0 0 0 0 0
0 1 0 1 1 1
1 1 0 1 1 1
1 0 0 0 0 0
62
 Se determină expresiile ieşirilor decodificatorului, z0, z1, ..., z9,
utilizând diagrame de minimizare

CD\ AB 00 01 11 10
0 0 1 0 0 0
0 1 0 x x x
1 1 0 x x x
1 0 0 0 0 0

Z0 = A  B  C  D  E Z5 = A  B  C  E
Z1 = A  B  C  E Z6 = A  B  C  E
Z2 = A  B  C  E Z7 = A  B  C  D  E (2.21)
Z3 = A  B  C  E Z8 = C  D  E
Z4 = A  B  C  E Z9 = C  D  E
 Observatie: secvenţa de numărare are importanţă numai
atunci când se cere decodificarea fără erori. În restul
cazurilor, ea poate fi arbitrară.
 În exemplele care urmează, pentru o mai uşoară urmărire
a expunerii, vom alege secvenţe de numărare binar
naturale.
63
 Exemplu: numărător binar modulo 12, utilizând circuite
basculante bistabile de tip D
Tabelul 2.8.
ABCD DA DB DC DD E
0 0000 0 0 0 1 0
1 0001 0 0 1 0 0
2 0010 0 0 1 1 0
3 0011 0 1 0 0 0
4 0100 0 1 0 1 0
5 0101 0 1 1 0 0
6 0110 0 1 1 1 0
7 0111 1 0 0 0 0
8 1000 1 0 0 1 0
9 1001 1 0 1 0 0
10 1010 1 0 1 1 0
11 1011 0 0 0 0 0
1100 x x x x 1
1101 x x x x 1
1110 x x x x 1
1111 x x x x 1

64
CD\ AB 00 01 11 10 CD\ AB 0 0 0 1 1 1 1 0
0 0 0 0 x 1 0 0 0 0 x 0
0 1 0 0 x 1 0 1 1 1 x 1
1 1 0 1 x 0 1 1 0 0 x 0
1 0 0 0 x 1 1 0 1 1 x 1

DA = A  C + B  C  D + A  D (2.23) DC = C  D + C  D

CD\ AB 0 0 0 1 1 1 1 0 CD\ AB 0 0 0 1 1 1 1 0
0 0 0 1 x 0 0 0 1 1 x 1
0 1 0 1 x 0 0 1 0 0 x 0
1 1 1 0 x 0 1 1 0 0 x 0
1 0 0 1 x 0 1 0 1 1 x 1

DB = B  C + B  D + A  B  C  D (2.24) DD = D

 Funcţiile determinate au fost implementate utilizând porţi


logice ŞI-NU

65
Schema numărătorului binar modulo 12

66
 face parte din categoria numărătoarelor neautonome
 funcţie de comanda dată numărătorul reversibil parcurge
secvenţa de numărare (în mod obişnuit binar-naturală) fie în
sens crescător fie în sens descrescător
 Exemplu: numărător sincron reversibil cu 4 poziţii, care
numără în cod binar-natural, şi este construit cu circuite
basculante bistabile de tip T
Tabelul 2.9.
 tabelul caracteristic al bistabilului T Q Q’ T
0 0 0
0 1 1
1 0 1
1 1 0

67
Tabelul 2.10.
ABCD TA TB TC TD
0000 0 0 0 1
0001 0 0 1 1
0010 0 0 0 1
0011 0 1 1 1
0100 0 0 0 1
0101 0 0 1 1
0110 0 0 0 1
0111 1 1 1 1
1000 0 0 0 1
1001 0 0 1 1
1010 0 0 0 1
1011 0 1 1 1
1100 0 0 0 1
1101 0 0 1 1
1110 0 0 0 1
1111 1 1 1 1

 la comanda de incrementare (INC) va numera în sens crescător


 expresiile intrărilor bistabilelor:

68
A A A

0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1
D D D
0 1 1 0 1 1 1 1 1 1 1 1
C C C
B B B
0 0 0 0 0 0 0 0 0 0 0 0

B B B

TA' = B  C  D TB' = C  D TC' = D TD' = 1

 În cazul în care numărătorul numără în sens descrescător,


- la comanda DEC - succesiunea stărilor va fi cea
prezentată în tabelul 2.11

69
Tabelul 2.11.  se determină si ecuaţiile
ABCD T’’A T’’B T’’C T’’D intrărilor (atentie la
1111 0 0 0 1 completatrea diagramei!)
1110 0 0 1 1
1101 0 0 0 1 TD" = 1 TB" = C  D
1100 0 1 1 1 TC" = D TA" = B  C  D
1011 0 0 0 1
1010 0 0 1 1
1001 0 0 0 1  la un moment dat se execută
1000 1 1 1 1 fie operaţia de incrementare,
0111 0 0 0 1 fie cea de decrementare
0110 0 0 1 1 INC  DEC = 0
0101 0 0 0 1
0100 0 1 1 1 TA = INC  TA' + DEC  TA"
0011 0 0 0 1
0010 0 0 1 1
TB = INC  TB' + DEC  TB"
0001 0 0 0 1 TC = INC  TC' + DEC  TC"
0000 1 1 1 1
şi TD = INC + DEC = 1

70
 în cazul în care are loc o decrementare numărătorul trebuie adus în
starea 1111 şi trebuie activat semnalul INIT”
 în cazul în care are loc o incrementare se activează INIT’

INIT ' = INC  INIT

INIT ' ' = DEC  INIT

71
 Exemplu: Se cere să se proiecteze un numărător sincron cu
patru ranguri, prevăzut pe lângă posibilitatea de numărare cu
posibilităţi de anulare şi de încărcare. În toate cazurile se vor
folosi doar intrările sincrone.

 bistabile de tipul J-K "Master-Slave"

I - intrare de numărare
Ai  Di - intrări de încărcare
E, F - semnal de comandă a
modului de funcţionare.

Numărătoare fără intrări asincrone – schema bloc

72
 Stabilim intrările pentru aceste condiţii. Semnificaţiile celor
patru situaţii care pot să apară la intrările de comandă,
corespunzătoare operaţiilor:

E F Semnificaţia comenzii
0 0 numărare N
1 1 ştergere AN
1 0 numărare N
0 1 încărcare IN
n n n n n n n n
 Pt. operatia de numarare se determina: J A , K A , JB , K B , JC , K C , JD , K D
 Pentru operaţia de încărcare se determină un nou set de
ecuaţii:
JiA = Ai K iA = Ai Pentru ca fiecare bistabil să
preia valorile corespondente
JiB = Bi K iB= Bi (2.32)
intrărilor Ai, Bi, Ci, Di, se
JiC = Ci K iC = Ci transformă CBB de tip J-K
JiD = Di K iD = Di "Master-Slave" în bistabil de
tip D

73
 Pentru operaţia de anulare ar trebui ca intrarea J să aibă
valoarea 0 iar intrarea K să fie egală cu 1:

J aA = 0 K aA = 1
JBa = 0 K Ba = 1
J Ca = 0 K Ca = 1 (2.33)
JDa = 0 K Da = 1

 ⇒ J A = N  JnA + IN  JiA + AN  JaA


 Ţinând cont de expresiile lui N, IN, AN, JA devine:

( )
J A = E  F + E  F  JnA + E  F  JiA + E  F  JaA
J A = F  JnA + E  F  A i + E  F  0 
J A = F  JnA + E  F  A i

74
K A = N  K nA + IN  K iA + AN  K aA
K A = F  K nA + E  F  A i + E  F (2.36)

 Similar se determina expresiile funcţiilor de intrare ale


celorlalte trei bistabile

 Observaţie:
Acest numărător se poate realiza cu o funcţionare în mod de
lucru asincron, caz în care s-ar putea folosi intrarea de tact ca
intrare de numărare, iar intrările J şi K pentru efectuarea
celorlalte operaţii de încărcare, respectiv de anulare.

75
Capitolul 3
CIRCUITE SECVENŢIALE CU INTRĂRI DE
COMANDĂ
MODELE DE REPREZENTARE ALE CIRCUITELOR
SECVENŢIALE
Modelul MEALY
 Q = {q1, q2, q3} - mulţimea stărilor unui sistem
 I = {i1, i2} - mulţimea intrărilor
 W = {w1, w2} - mulţimea ieşirilor sistemului
  - aplicaţia tranziţiilor - precizează pentru fiecare pereche (q, i)
starea tranziţiilor
  - aplicaţia tranziţiilor - precizează ieşirea circuitului pentru
oricare pereche stare-intrare (q, i)
 (q1, i1) = q2  (q1, i1) = w1
 (q2, i1) = q3  (q2, i1) = w1
 (q3, i1) = q1  (q3, i1)(3.1)
= w2
 (q1, i2) = q2  (q1, i2) = w2
 (q2, i2) = q2  (q2, i2) = w1
 (q3, i2) = q3  (q3, i23) = w2
77
 Un automat care este complet definit atât din punct de
vedere al tranziţiilor cât şi din punct de vedere al ieşirilor,
se numeşte automat complet definit.
 Reprezentarea grafica:
 graf orientat ale cărui noduri simbolizează stările, iar
arcele simbolizează tranziţiile

q1 i1i2/w
/w22
 (q1, i1) = q2 q3 i2/w2
 (q2, i1) = q3 i1/w1
 (q3, i1) = q1 (3.1)
 (q1, i2) = q2 i2/w2
 (q2, i2) = q2
i1/w1 
 (q3, i2) = q3 q2
(q1, i1 ) = w1
 (q2, i1 ) = w1
automat de tip  (q3, i1 ) = w2
Mealy complet  (q1, i2 ) = w2
i2/w1  (q2, i2 ) = w1
definit
 (q3, i3 ) = w2
i
78 2
Figura 3.1. Graful tranziţiilor pentru automatul A
 Modelul MOORE
 automatul A* : Q* = {q1, q2, q3};
I* = {i1, i2};
 * (q1, i1 ) = q2 W* = {w1, w2}
 * (q2 , i1 ) = q1
 * (q3 , i1 ) = q2 (3.3)
 * (q1, i 2 ) = q3
 * (q2 , i 2 ) = q2
 * (q3 , i 2 ) = q1

* (q1 ) = w 1
* (q 2 ) = w 2 (3.4)
* (q3 ) = w1

79
 când într-un automat nu este definită tranziţia sau ieşirea,
în graf lipsesc arcul respectiv ieşirea corespondentă

ik / - qj
qi / -
qi

ik
ik / w 1 qi/w2
qi
a. b.

Figura 3.3. Modul de reprezentare în grafuri a situaţilor în care nu este definită


ieşirea sau tranziţia pentru: a.- automatul Mealy, b.- automatul Moore

CUITE SECVENTIALE CU INTRARI DE COMANDA 80


MATRICEA CONEXIUNILOR
 are un număr de linii şi de coloane egal cu numărul stărilor
interne ale automatului
 elementele - reuniunea perechilor intrare-ieşire, pentru
automatul Mealy

Q = {q1, q2, q3}


I = {i1, i2}
W = {w1, w2}.

q1 q2 q3
q1 0 i1 / w1  i2 / w 2 0
CA1 : q2 i 2 / w 2 0 i1 / − (3.6)
q3 i1 / w1 i 2 / w1 0
81
 Moore :
◦ elementele - reuniunea intrărilor
◦ matricea conexiunilor este însoţită de o matrice coloană a
ieşirilor w - număr de elemente = numărul de stări ale
automatului, fiecare element wi reprezentând ieşirea
corespunzătoare stării qi.

Q = {q1, q2, q3}


I = {i1, i2}
W = {w1, w2}

q1 q2 q3

q1 0 i1 i2 w1
CA2 : q2 i
1 0 i2 ; W A2 : − (3
q3
0 i1  i2 0 w2
82
MATRICEA TRANZIŢIILOR

 Este asociata fiecărei intrări i a automatului


 indică dacă intrarea respectivă va determina sau nu o
tranziţie dintr-o stare în alta a automatului (1 indica
existenta tranzitiei, 0 – indica lipsa tranzitiei)
 ordinul matricii: nn unde n - numărul de stări interne
 sunt însoţite de:
◦ un vector al stărilor automatului
Mealy
◦ câte un vector al ieşirilor pt. fiecare intrare
◦ un singur vector al ieşirilor Moore

CUITE SECVENTIALE CU INTRARI DE COMANDA 83


 Exemplu: pentru automatul Mealy

Q = {q1, q2, q3}


I = {i1, i2}
W = {w1, w2}.

0 1 0 w1
Ti11 : 0 0 1 căreia i se asociazã Wi11 : – (3.8)
1 0 0 w1

CUITE SECVENTIALE CU INTRARI DE COMANDA 84


 Exemplu: pentru automatul Moore

Q = {q1, q2, q3}


I = {i1, i2}
W = {w1, w2}

0 1 0 w1
Ti11 : 1 0 0 căreia i se asociazã Wi11 : −
0 1 0 w2

CUITE SECVENTIALE CU INTRARI DE COMANDA 85


TRANSFORMAREA AUTOMATELOR

Observaţii:
 trecerea de la un tip de automat la alt tip de automat
este dictată de aplicaţia automatului
 dacă ieşirile circuitului trebuie să fie stabile pe durata de
timp dintre tranziţii se impune folosirea unui automat
de tip Moore
 automatul de tip Mealy are un caracter mai general şi
este realizabil la un preţ mai mic – are un număr mai
mic de stări
 proiectarea unui automat Moore cu o anumită
comportare este mai simplă decât a unui automat Mealy
echivalent
CUITE SECVENTIALE CU INTRARI DE COMANDA 86
TRANSFORMAREA MODELULUI MOORE ÎN MEALY

 Se pleacă de la un automat Moore A* = (Q* ,I* , W * , * , * )


 Se construieşte un automat Mealy A în care mulţimea
stărilor, a intrărilor, a ieşirilor şi tranziţiile sunt identice
cu cele din automatul Moore dat ⇒
Q = Q * =  q1, q2 ,, qn 
I = I* = i1,i2 ,,im  (3.10)
W = W * = w1, w2 ,, wp 
 = *
 Se defineşte aplicaţia , care aplică o submulţime a
mulţimii QI pe W.
 Dacă * (qi ,i j ) =qs şi  (qs ) = w r ⇒ (qi , i j ) = w r
*

CUITE SECVENTIALE CU INTRARI DE COMANDA 87


 Exemplu:

Transformarea automatului Moore în automat Mealy.


a – automatul Moore iniţial, b – automatul Mealy echivalent

Q*={q1*, q2*, q3*} Q={q1, q2, q3}


I*={i1, i2} I={i1, i2}
W*={w1, w2} W={w1, w2}

CUITE SECVENTIALE CU INTRARI DE COMANDA 88


TRANSFORMAREA MODELULUI MEALY ÎN MOORE

 numărul intrărilor şi al ieşirilor celor 2 automate trebuie


să fie acelaşi ⇒ I*=I şi W*=W
 după transformare automatele trebuie să rămână
echivalente - pentru orice secvenţă posibilă de intrări din
mulţimea intrărilor, automatele echivalente trebuie să
prezinte secvenţe de ieşiri identice
 pentru a putea preciza comportarea automatului pentru
o anumită secvenţă de intrare - trebuie precizată şi
starea iniţială q

CUITE SECVENTIALE CU INTRARI


DE COMANDA 89
 Exemplu: Se cere să se determine automatul Moore
echivalent automatului Mealy din figură:
i1/w2

q1 q2
i1/w1

i2/- i1/-
q3

A *
: I * =  i1 , i2  şi W * =  w1 , w2 
 Mulţimea Q*:
◦ se formează pentru fiecare stare qs din mulţimea Q ale
automatului A,, o mulţime PS a perechilor (qj, ik) din A,
pentru care tranziţia  şi aplicaţia  sunt definite
CUITE SECVENTIALE CU INTRARI DE COMANDA 90
(q j , ik ) = qS , qS  Q şi
(q j , ik ) = w r sunt definite.

 dacă starea qs este ţinta unor tranziţii cu ieşiri precizate,


starea qs trebuie multiplicată, de atâtea ori câte elemente
wr are mulţimea WS ⇒ se formează 2 mulţimi auxiliare:
◦ PS care conţin perechi (q j, ik) pentru care
(q j , ik ) = qS


(q j , ik ) = w r

◦ WS cu elemente wr pentru care :


(q j , ik ) = w r

CUITE SECVENTIALE CU INTRARI DE COMANDA 91


 Dacă pentru un anumit qSQ, PS=, se consideră 1 stare
corespondentă în Q* pentru care ieşirea este nedefinită.
 Dacă PS, iar WS are 1 element, atunci se ia 1 stare
corespondentă în Q* cu ieşirea corespondentă perechii
care asigură tranziţia.
 Dacă există 1 element în PS dar mai există perechi (qj, ik)
pentru care ieşirea este nedefinită, se mai adaugă o stare
corespondentă în Q*, stare pentru care ieşirea va fi
nedefinită.
 Dacă există mai multe elemente în PS, stării qS din Q îi
vor corespunde atâtea stări în Q* câte elemente are
mulţimea WS, în cazul în care toate ieşirile sunt definite,
sau cu una mai mult în caz contrar.

92
CUITE SECVENTIALE CU INTRARI DE COMANDA
 Pentru automatul din exemplu:
 Q = {q1, q2, q3};
 I = {i1, i2};
 W = {w1, w2}
(q1, i1 ) = q2 (q1, i1 ) = w 2
 
(q
 1 2 , i ) = nedefinitã (q1, i2 ) = nedefinitã
(q2 , i1 ) = q3
 (q2 , i1 ) = nedefinitã

: : 
(q2 , i2 ) = nedefinitã (q2 , i2 ) = nedefinitã
(q3 , i1 ) = q2 (q3 , i1 ) = w 1
 
(q3 , i2 ) = q1
 (q3 , i2 ) = nedefinitã

 P1= deoarece q1 este ţinta unei singure tranziţii ((q1,i2))


dar pentru perechea (q1,i2) aplicaţia  nu este definită.
 P2= (q1 , i1 ), (q3 , i1 ) şi W2= {w2,w1}
 P3=
CUITE SECVENTIALE CU INTRARI DE COMANDA 93
 stării q1 din Q îi corespunde o singură stare nedefinită în
Q* deoarece P1=
* *
 stării q2 din Q îi corespund 2 stări în Q*, q 21 , q 22 , iar
stare nedefinită nu este (dacă ar apărea o pereche pentru
*
care ieşirea să fie nedefinită s-ar mai adauga 1 stare, q 20 )
 stării q3 din Q îi corespunde 1 stare nedefinită în Q*
deoarece P3=.



Q * = q10
*
, q*21, q*22 , q30
*

 Aplicaţia * :
 dacă PS = atunci * este nedefinită


 *
q ( )
10 = nedefinită
*

 * *
 ( )
 q30 = nedefinită
CUITE SECVENTIALE CU INTRARI DE COMANDA 94
 Dacă PS ≠ , ieşirile corespondente stărilor se obţin
din mulţimea WS corespondentă
( )
⇒ * q*22 = w 2
 * *
( )
 q21 = w 1

 Tranziţia *
1. dacă în modelul Mealy  (qj,ik) este nedefinită ⇒
tranziţiile din stările corespondente lui qj, pentru aceeaşi
intrare vor fi nedefinite
2. dacă în automatul Mealy tranziţia  şi aplicaţia  sunt
definite, adică:

(q j , ik ) = q r este definit şi



⇒ *
q*
(, i = q*
)

(q j , ik ) = w n
jt k rn

CUITE SECVENTIALE CU INTRARI DE COMANDA 95


3. dacă în automatul Mealy tranziţia este definită dar
aplicaţia  nu este definită, adică:
(q j , ik ) = qS


(q j , ik ) = nedefinit

atunci tranziţia va fi: ( )
* q*jt ,ik = qS
*
0

 Pentru automatul (
 * q10
*
)
, i1 = q*22
din exemplu ⇒  (q
* *
10 , i ) = nedefinit
2

 (q
* *
21 1 ,i ) = q
*
30

 (q
* *
21 , i ) = nedefinit
2

 (q
* *
22 ,i ) = q
1
*
30

 (q
* *
22 , i ) = nedefinit
2

 (q
* *
30 ,i ) = q
1
*
21

 (q
* *
30 ,i ) = q
2
*
10
96
Graful automatului Moore echivalent

 Pentru a putea preciza comportarea automatului,


trebuie precizată starea iniţială.Vom considera ca stări
*
iniţiale stările q1 pentru automatul Mealy, respectiv 10
q
pentru automatul Moore echivalent.

CUITE SECVENTIALE CU INTRARI DE COMANDA 97


 Concluzii

1) Pentru calculul mulţimii Q*


a) Dacă PS=  qS* 0  Q *
b) Dacă PS  qS* 1  Q *
qS* 2  Q *

*
qSr  Q*
a) Dacă PS
q S* 1  Q *
(q j , ik ) = qS
 
şi  
(q j , ik ) = nedefinit
* *
(3
 q Sr Q
q S* 0  Q *

CUITE SECVENTIALE CU INTRARI DE COMANDA 98


2) Pentru determinarea aplicaţiei  - aceleaşi cazuri:
a) ( )
* qS* 0 = nedefinit
b)  (q ) = w
* *
S1
*
1

( )
* qSr
*
= w r*
c)  (q ) = w
* *
S1
*
1

( )
* qSr
*
= w r*
 (q ) = nedefinit
* *
S0

CUITE SECVENTIALE CU INTRARI


DE COMANDA 99
3) Pentru determinarea lui *:

( )
a) Dacă (qS , ik ) = nedefinit  * q*s t ,ik = nedefinit,

unde q*s t sunt stările care rezultã din qS în

automatul Moore.

( )
b) Dacã (qS , ik ) = qS şi (qS , ik ) = w1   q j t ,ik = qS1
* *

( )
c) Dacã (qS , ik ) = qS şi (qS , ik ) = nedefinit   q j t,ik = qS* 0
* *

CUITE SECVENTIALE CU INTRARI 10


DE COMANDA 0
EXPRESII REGULATE

 o altă modalitate exactă şi concisă de reprezentare a


comportării unui circuit secvenţial
 sunt folosite pentru descrierea secvenţelor de intrări ale
unui circuit secvenţial, intrări care conduc la o anumită
ieşire sau modifică starea ieşirilor circuitului secvenţial

10
CUITE SECVENTIALE CU INTRARI DE COMANDA 1
lacircuitele secvenţiale sincrone secvenţele de intrări
se modifică la intervale bine definite de timp, marcate prin
impulsuri de orologiu ⇒ o simplificare în raţionament
în
secvenţele de intrări sincrone o anumită intrare se
poate repeta de mai multe ori

Tact

t
x1

t
x2

t
X1X2 i1 i2 i2 i0 i3 i2 i0 i2

10
CUITE SECVENTIALE CU INTRARI DE COMANDA 2
 la circuitele secventiale asincrone secvenţa de intrări
se obţine considerând starea intrărilor în intervalul
dintre 2 modificări succesive ale intrărilor
 se consideră că modificarea stării intrărilor se face la
intervale de timp care nu depăşesc o anumită limită
inferioară, funcţie de vitezele de reacţie ale circuitelor
folosite.
 se impune condiţia ca la un moment dat să nu se modifice
starea decât a cel mult uneia dintre intrări

10
CUITE SECVENTIALE CU INTRARI DE COMANDA 3
 deosebirea în ceea ce priveşte forma celor 2 tipuri de
secvenţe constă în faptul că în secvenţele de intrări
sincrone o anumită intrare se poate repeta de mai
multe ori, în timp ce în secvenţele de intrări asincrone,
intrările trebuie să alterneze

 circuitul asincron este mai greu de stăpânit

10
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
 Exemplu: Fie un circuit secvenţial de tipul Moore,
complet definit, cu 2 ieşiri, W = {0, 1}, aflat în starea
iniţială q1.
 spunem că un circuit secvenţial acceptă o secvenţă
de intrări oarecare i1, i2, ..., ip, dacă toate tranziţiile
condiţionate de aceste intrări sunt definite şi ieşirea
corespunzătoare stării în care ajunge circuitul în urma secvenţei
este 1 :
(q j ,i j ) = q j + 1 ,
(q j+1 ) = 1 .
 dacă secvenţa de intrări aleasă nu acceptă condiţiile de mai
sus (adică (q j+1 ) = 0 ), spunem că secvenţa este respinsă

10
CUITE SECVENTIALE CU INTRARI DE COMANDA 5
 mulţimea secvenţelor de intrări acceptate de un circuit
secvenţial constituie secvenţele de intrări recunoscute
 o mulţime finită de secvenţe de intrări se numeşte
eveniment
 evenimentele care pot fi descrise prin expresii formale,
numite expresii regulate, se numesc evenimente regulate
 ⇒ expresiile regulate oferă o modalitate de descriere a
evenimentelor recunoscute de circuitele secvenţiale

10
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
Expresii regulate

 DEFINIŢIE:
O expresie se numeste expresie regulată dacă
ea poate fi scrisă sau formată prin aplicarea de
un număr finit de ori a următoarelor reguli:

CUITE SECVENTIALE CU INTRARI DE COMANDA 107


 expresia regulată este un şir de secvenţe de intrări format
dintr-un singur simbol de intrare i j  I , un singur simbol de
mulţime vidă  sau un singur simbol 
 dacă 1 şi 2 sunt expresii regulate, atunci şi 1* , 12, şi
12 sunt expresii regulate, unde:
◦ I = {i1,i2, ..., im} - mulţimea intrărilor sau alfabetul de intrare;
◦  - şirul nul privit ca secvenţă de intrări de lungime zero;
◦  - mulţimea de şiruri vidă;
◦ mulţimea 12 reprezintă reuniunea mulţimilor 1 şi 2
◦ mulţimea 1•2 reprezintă concatenarea lui 1 şi 2, adică
mulţimea de şiruri formată luând fiecare secvență de intrări
din şirurile din 1 urmate de fiecare şir din 2
◦ mulţimea  1* este reuniunea mulţimilor , 1, 11, 111,
… (iterare) CUITE SECVENTIALE CU INTRARI DE COMANDA
10
8
Observaţie: Operaţiile de reuniune (U) şi concatenare (•)
satisfac legea distributiviăţii.
Proprietăţi:
1.  1  2   1  3 =  1 (  2   3)
2. * =  (3.31)
3.  1   2 =  2   1 (3.32)
4.   * = *   =  *
(3.33)
5.   =   =  (3.34)

( )
6. 1*  *2 = (1  2 ) = 1* *2
*
( )
*
(3.35)
7. * =  (3.36)
8.  1  =   1 =  (3.37)
9.    1 =  1   =  1 (3.3

10
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
 Exemplul 3.5. Se consideră expresia regulată
(i1i2  i3 )  (i3  i2i4 )
Aceasta reprezintă mulţimea de secvenţe de intrări:
(i1i2  i3 )  (i3  i2i4 ) = i1i2i3  i1i2i2i4  i3i3  i3i2i4
Exemplul 3.6. Expresia regulată (i1  i2 ) ,
*

reprezintă mulţimea infinită de secvenţe de intrări:

(i
1 )
*
 i2 = , i1, i2, i1i1, i1i2, i2i1, i2i2, i1i1i1,…
,

 Exemplul 3.7. Expresia regulată (i1 i2 )* ,


reprezintă mulţimea infinită de secvenţe de intrări:
(i1i 2 )* = , i1 i 2 , i1 i 2 i1 i 2 ,…
,

11
CUITE SECVENTIALE CU INTRARI DE COMANDA 0
 Exemplul 3.8. Expresia regulată
( i1  i2 )* i3 ( i1  i2 )*
reprezintă mulţimea de secvenţe de intrări:
(i1  i2 )* i3 (i1  i2 )* = i3, i1i3, i2 i3, i1i1i3, i1i2 i3, 
…, i i , i i ,
3 1 3 2

i3 i1 i1, i3 i1 i2 , 
… , i1 i3 i1, i2 i3 i1,....

adică toate secvenţele de intrări care se pot forma cu


intrările i1, i2 şi i3 şi conţin o singură intrare i3.
 Exemplul 3.9. Expresia
(i1  i2 )* i1i2 i1
reprezintă toate secvenţele de intrări formate cu intrările
i1, i2 care se termină cu subsecvenţa i1 i2 i1.

11
CUITE SECVENTIALE CU INTRARI DE COMANDA 1
 Pentru obţinerea automatului care recunoaşte secvenţa
descrisă prin expresia regulată se procedează astfel:
1. Fiecărei apariţii a simbolului de intrare în expresia
regulată i se asociază o "poziţie", care se
numerotează începând de la stânga, spre dreapta.
 Denumim poziţia astfel introdusă, "poziţie iniţială",
dacă vreuna dintre secvenţele de intrări descrise de
expresia regulată respectivă începe cu simbolul
asociat acestei poziţii.
 Denumim o poziţie drept "poziţie finală" dacă
vreuna din secvenţele expresiei regulate se termină
cu simbolul asociat poziţiei respective.

11
CUITE SECVENTIALE CU INTRARI DE COMANDA 2
2. Numim "tranziţie" o pereche ordonată de poziţii
corespondente la 2 simboluri de intrare care formează
un segment iniţial al unei secvenţe de intrări conţinute
în mulţimea secvenţelor descrise de expresia regulată
3. O secvenţă admisă de poziţii este o secvenţă finită,
începând cu o poziţie iniţială şi terminând cu o poziţie
finală, astfel alcătuită încât orice pereche adiacentă de
poziţii din secvenţă este o tranziţie
4. Automatul care recunoaşte mulţimea secvenţelor de
intrări descrise de o expresie regulată are (2p+1) stări,
unde p este numărul de poziţii asociat expresiei iar +1
provine de la starea iniţială

CUITE SECVENTIALE CU INTRARI 11


DE COMANDA 3
 Observaţii:
◦ o intrare ij, aplicată unei stări a automatului, corespondentă
unei mulţimi de poziţii S conduce la o stare corespondentă
unei mulţimi S' de poziţii, unde S' este mulţimea formată
din acele poziţii P pentru care ij este simbolul asociat şi
pentru care există o tranziţie de la cel puţin o poziţie din
mulţimea S la o poziţie din S'. În cazul în care nu există
astfel de poziţii P, ij conduce în starea , asociată mulţimii
vide. Orice ij care părăseşte starea  se introduce sub
formă de buclă în .
◦ o stare are asociată ieşirea 1, dacă cel puţin o poziţie din
mulţimea de poziţii corespondente este o poziţie
terminală
◦ altfel starea are asociată ieşirea 0.
11
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
 Exemplu: Se consideră expresia regulată:
 = (i1  i2 )* i2
Se cere să se proiecteze un automat care să recunoască
secvenţele de intrări descrise de expresia de mai sus.
1. se notează poziţiile:

 = (i1  i2 )* i2 (3.
poziţia: 1 2 3

2. numărul de stări: 23+1=9 stări:


q0 - stare iniţială, q1, q2, …, q8.
3. fiecărei stări îi asociem o mulţime de poziţii posibile:

(1) (2) (3) (1,2) (1,3) (2,3) (1,2,3) ().


11
CUITE SECVENTIALE CU INTRARI DE COMANDA 5
4. Între cele opt mulţimi de poziţii şi stările automatului A
se stabileşte următoarea corespondenţă (convenție):

 q1  (1) q5  (1,3)
q2  ( 2 ) q6  ( 2,3 )
q3  ( 3 ) q7  ( 1, 2,3 )
q 4  ( 1, 2 ) q8  

 poziţiile iniţiale: 1, 2 şi 3,
 poziţie finală: 3 pentru că toate secvenţele expresiei
regulate se termină cu i2
 Deci: I = i1,i2 
W = 0,1
Q =  q0 , q1,
… ,q 
8

11
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
5. determinarea aplicaţiei  :
 (q1 ) =  (q2 ) =  (q4 ) =  (q8 ) = 0

deoarece nici o poziţie din mulţimea de poziţii


corespondente nu este o poziţie terminală
şi:  (q3 ) =  (q5 ) =  (q6 ) =  (q7 ) = 1
deoarece poziţia 3 este singura poziţie terminală
6. determinarea tranziţiei ( ):
◦ tranziţiile posibile între poziţii:
 = (i1  i2 )* i2 (3.44)[1,3], [2,2], [2,3], [2,1]
[1,1], [1,2],
1 2 3

◦ pentru a găsi tranziţiile posibile pornim de la poziţiile


iniţiale

11
CUITE SECVENTIALE CU INTRARI DE COMANDA 7
◦ Intrarea i1 corespunde poziţiei 1 căreia îi este asociată
q1 iar intrării i2 îi sunt asociate poziţiile 2 şi 3
◦ ⇒ tranziţia din starea iniţială q0 pentru intrarea i1 are
ca ţintă starea q1, iar pentru intrarea i2 are ca ţintă
starea q6

 = (i1  i2 )* i2 (3.44) (q0 , i1 ) = q1


1 2 3 (q0 , i2 ) = q6
q1  (1) q5  (1,3) (q1,i1 ) = q1
q2  ( 2 ) q6  ( 2,3 ) (q1, i2 ) = q6
q3  ( 3 )  ( 1, 2,3 )
q7
(q6 , i1 ) = q1
q 4  ( 1, 2 ) q8  
(q6 , i2 ) = q6

11
CUITE SECVENTIALE CU INTRARI DE COMANDA 8
Graful tranziţiilor corespunzător expresiei regulate  = (i1  i2 )* i2

 Observaţii:
 în stările q2, q3, q4, q5, q7, q8 nu se ajunge niciodată, dacă
se plecă din starea iniţială q0
 metoda devine greu de aplicat dacă numărul de poziţii
este mare.
11
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
GRAFUL DE TRANZIŢIE NEDETERMINIST
 reprezintă un caz mai general al diagramelor de stări (DS)
 rezultă în urma eliminării restricţiilor impuse asupra (DS)

(DS) Diagramă de stări

(GTN) Graf de tranziţie


nedeterminist

12
CUITE SECVENTIALE CU INTRARI DE COMANDA 0
 DS versus GTN
 DS: - fiecare stare are pentru o intrare i un singur
succesor
- pentru a determina în mod unic comportarea unui
automat se admite o singură stare iniţială

Observaţii:
 Cu toate că un GTN nu poate fi folosit pentru descrierea
unui automat finit, el este util în proiectarea acestora
deoarece permite descrierea unor evenimente
 Avantajul important oferit de GTN faţă de DS - se
întocmeşte mult mai uşor şi există posibilitatea transformării
GTN în DS

CUITE SECVENTIALE CU INTRARI DE COMANDA 121


TRANSFORMAREA GRAFULUI NEDETERMINIST ÎN
DIAGRAMĂ DE STARE
1. Se consideră nod iniţial în DS, nodul alcătuit din
mulţimea nodurilor iniţiale din GTN;
2. i-succesorul unui nod din DS este nodul format din
mulţimea i-succesorilor nodurilor care compun nodul
considerat în GTN;
3. Dacă unul dintre nodurile care alcătuiesc un nod al DS
este nod terminal în GTN, nodul considerat este nod
terminal în DS.
4. Dacă nici unul dintre nodurile care alcătuiesc un nod în
DS nu are i-succesori în GTN, se va considera drept i-
succesor al nodului respectiv în DS nodul , asociat
mulţimii vide.
12
CUITE SECVENTIALE CU INTRARI DE COMANDA 2
 Exemplu: Fie un GTN alcătuit din 4 noduri
-nodul iniţial: format de
mulţimea nodurilor {1,4}
şi notat 14
-14 este şi nod terminal
deoarece nodul 4, care
apare în componenţa sa,
este nod terminal
-i1-succesorul este nodul
format de mulţimea
nodurilor {1,2} şi notat
12,
-i2-succesorul este nodul
4, inclus în nodul 14.

12
CUITE SECVENTIALE CU INTRARI DE COMANDA 3
 Deoarece nici nodul 1, nici nodul 2, care alcătuiesc nodul 12,
nu au succesori pentru i2, intrarea i2 ne va conduce în nodul .
12
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
REDUCEREA NUMĂRULUI DE STĂRI ALE
CIRCUITELOR SECVENŢIALE COMPLET DEFINITE

 problema realizării unui circuit secvenţial cu o comportare


dată nu are o soluţie unică ⇒ vom alege cel mai simplu
circuit - cel realizabil cu o cheltuială minimă
 preţul de cost este proporţional cu numărul de stări al
circuitului ⇒ se caută circuitul echivalent cu număr minim
de stări
 faptul că se poate asigura o comportare dată cu circuite
având număr diferit de stări implică existenţa relaţiei de
echivalenţă între stările aceluiaşi automat sau a unor
automate diferite

12
CUITE SECVENTIALE CU INTRARI DE COMANDA 5
 două stări ale unui automat complet definit, sau făcând
parte din două automate diferite, sunt echivalente (q1q2),
dacă pentru orice secvenţă de intrări de lungime arbitrară
aplicată automatului aflat în starea q1 se obţine aceeaşi
secvenţă de ieşiri ca şi în cazul aplicării aceleaşi secvenţe
de intrări automatului aflat în starea q2
 Relaţia de echivalenţă este:
 reflexivă,
 simetrică
 tranzitivă
 împarte mulţimea stărilor circuitului în clase de
echivalenţă disjuncte
 Două circuite secvenţiale A1 şi A 2 sunt echivalente, notăm
A 1  A2, dacă pentru fiecare stare qi din A1 există cel puţin
o stare echivalentă qj în A2 şi invers.
12
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
 Exemplul 3.12. Circuitele descrise prin tabelele stărilor
şi al ieşirilor de mai jos sunt echivalente deoarece fiecărei
stări qi (i=1,2,3) din primul circuit îi corespunde o stare
echivalentă pj (j=1,2) din cel de-al doilea circuit

Tabelul 3.1. Automatul A1 Tabelul 3.2. Automatul A2


Intrare Intrare
Stare 0 1 Stare 0 1
prezentă prezentă
q1 q3/0 q2/1 p1 p1/0 p2/1
q2 q1/1 q2/0 p2 p1/1 p2/0
q3 q1/0 q2/1

12
CUITE SECVENTIALE CU INTRARI DE COMANDA 7
Stare iniţială Stare iniţială
Stare q1 q3 q1 q2 q2 q1 Stare q3 q1 q3 q2 q2 q1

Intrare 0 0 1 1 0 Intrare 0 0 1 1 0
Ieşire 0 0 1 0 1 Ieşire 0 0 1 0 1

Stare iniţială Stare iniţială


Stare q1 q2 q2 q2 q1 Stare q3 q3 q3 q2 q1

Intrare 1 1 1 0 Intrare 1 1 1 0
Ieşire 1 0 0 1 Ieşire 1 0 0 1

 aplicând secvenţa de intrări 00110 circuitului A1 aflat în


starea q1, respectiv în starea q3, se obţine la ieşirea
acestuia aceeaşi secvenţă de ieşiri - 00101.
 Aceaşi concluzie şi în cazul aplicării secvenţei 1110.
12
CUITE SECVENTIALE CU INTRARI DE COMANDA 8
 Aplicând aceste secvenţe de intrări, sau orice alte secvenţe
se obţine aceeaşi comportare pentru circuitul A1 aflat în
starea q1 sau q3 ca şi pentru circuitul A2 aflat în starea p1
 se pot stabili următoarele echivalenţe:
q1  q3 , p1  q1 , p1  q3
 similar: p1  q2
 În baza definiţiei echivalenţei stărilor (automatelor), putem
înlocui toate stările unui automat, echivalente între ele, cu
o singură stare ⇒ un automat echivalent cu un număr mai
mic de stări

12
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
DETERMINAREA CLASELOR DE ECHIVALENŢĂ

METODA PARTIŢIEI ÎN CLASE DE STĂRI


K-ECHIVALENTE
Pentru determinarea stărilor care fac parte din aceeaşi
clasă de echivalenţă se stabilesc perechile de stări
echivalente
două stări qj şi qi sunt echivalente dacă pentru orice intrare
din alfabetul de intrare:

(ii , qi ) = (ii , q j ) , respectiv (ii , qi ) = (ii , q j )

stări „evident echivalente”

13
CUITE SECVENTIALE CU INTRARI DE COMANDA 0
 Observaţie: Minimizarea numărului de stări se face
pentru modelul Mealy pentru că acesta are în general un
număr mai mic de stări decât modelul Moore.
 În multe cazuri de echivalenţă a stărilor nu este
respectată decât condiţia:

(ii , qi ) = (ii , q j )

 adică, cele două stări asigură pentru aceeaşi intrare


(oricare ar fi ea) aceeaşi ieşire - condiţie insuficientă
 Stările care îndeplinesc această condiţie se numesc stări
1-echivalente - lungimea secvenţei de intrare este 1.

CUITE SECVENTIALE CU INTRARI DE COMANDA 131


 pentru ca două stări să fie stări 2-echivalente trebuie ca ele
să îndeplinească condiţia de mai sus, iar apoi succesorii lor să
fie stări 1-echivalente
 Procedura poate fi continuată pentru succesorii succesorilor,
s.a.m.d., determinând astfel stările k-echivalente.
 Algoritmul este închis dacă se ajunge la situaţia în care toate
stările k-echivalente sunt şi k+1-echivalente.

 Exemplul 3.13. Se cere să se reducă numărul de stări ale


automatului definit de tabelul tranziţiilor şi al ieşirilor de mai
jos.

13
CUITE SECVENTIALE CU INTRARI DE COMANDA 2
Tabelul 3.3.
Intrare
Starea 1 2 3 4
prezentă
1 2/0 3/0 2/0 4/0 a
2 3/0 7/1 6/0 1/0 b
3 2/1 1/0 7/1 8/1 c
4 3/0 10/1 3/0 1/0 b
5 2/0 6/0 2/0 8/0 a
6 2/1 1/0 1011/1 4/1 c
7 1/1 4/1 3/1 5/1 d
8 6/0 1011/1 6/0 5/0 b
9 2/1 5/0 1011/1 4/1 c
10 1/1 2/1 6/1 5/1 d
11 1/1 2/1 6/1 5/1 d
12 1/1 3/1 2/1 1/1 d

 stările 10 şi 11 sunt stări „evident echivalente” - pentru


oricare dintre intrări, stările au aceleaşi ieşiri şi aceiaşi succesori
13
CUITE SECVENTIALE CU INTRARI DE COMANDA 3
 starea 11 este eliminată şi înlocuită cu starea 10
 pentru a găsi clasele de stări 1-echivalente - notate a, b,
c, d -, se inspectează ieşirile asociate stărilor pentru
diferite intrări.
 în clasa a: stările 1 şi 5,
 în clasa b: stările 2, 4 şi 8,
 în clasa c: stările 3, 6 şi 9
 iar în clasa d: stările 7, 10 şi12
 se întocmește tabelul tranziţiilor care conţine clasele 1-
echivalente.
 se renunţă la scrierea ieşirilor întrucât se ştie că toate
stările din aceeaşi clasă au ieşiri identice.
 Se notează fiecare succesor al stărilor 1-echivalente cu
indicele corespunzător clasei din care face parte.
13
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
Tabelul 3.4.
Clasa Intrare
Starea 1 2 3 4
prezentă
1 2b 3c 2b 4b
a
5 2b 6c 2b 8b
2 3c 7d 6c 1a
b 4 3c 10d 3c 1a
8 6c 10d 6c 5a
3 2b 1a 7d 8b
c 6 2b 1a 10d 4b
9 2b 5a 10d 4b
7 1a 4b 3c 5a
}d
d 10 1a 2b 6c 5a
12 1a 3c 2b 1a }e

13
CUITE SECVENTIALE CU INTRARI DE COMANDA 5
 Dacă pentru oricare dintre intrări succesorii unei clase de
stări 1-echivalente fac parte din aceeaşi clasă de stări 1-
echivalente, atunci stările respective devin stări 2-
echivalente.
 Dacă pentru cel puţin una dintre intrări succesorii stărilor
1-echivalente fac parte din clase de stări 1-echivalente
diferite, atunci clasa respectivă de stări 1-echivalente se
divide în mai multe clase de stări 2-echivalente, astfel încât
fiecare clasă de stări 2-echivalente să conţină stările ale
căror succesori fac parte din aceleaşi clasă de stări 1-
echivalente.
 În clasa (a) stările 1 şi 5 sunt şi stări 2-echivalente, ş.a.m.d.
 Pentru clasa d: din cele 3 stări 1-echivalente numai două
sunt şi stări 2-echivalente  clasa se separă în alte două
calse, notate d şi e.
13
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
Tabelul 3.5.
Intrare
Clasa Stare 1 2 3 4
prezentă
1 2b 3c 2b 4b
a
5 2b 6c 2b 8b
2 3c 7d 6c 1a
b 4 3c 10d 3c 1a
8 6c 10d 6c 5a
3 2b 1a 7d 8b
c 6 2b 1a 10d 4b
9 2b 5a 10d 4b
7 1a 4b 3c 5a
d
10 1a 2b 6c 5a
e 12 1a 3c 2b 1e
13
CUITE SECVENTIALE CU INTRARI DE COMANDA 7
 Se repetă procedura pentru determinarea stărilor 3-
echivalente ş.a.m.d.
 Dacă nu există stări echivalente se obţine în final o
partiţie formată din clase cu câte un singur element
 Pentru fiecare clasă se va alege un reprezentant, de
exemplu stările 1, 2, 3, 7 şi 12, şi se copiază din tabelul
iniţial numai rândurile corespunzătoare acestor stări
 Observaţie: în noul tabel, care va conţine reprezentanţii
claselor de echivalenţă, toate stările echivalente trebuie să
fie notate cu acelaşi simbol - simbolul reprezentantului ales

13
CUITE SECVENTIALE CU INTRARI DE COMANDA 8
Tabelul 3.6.
Intrare
Stare 1 2 3 4
prezentă
1 2/0 3/0 2/0 2/0
2 3/0 7/1 3/0 1/0
3 2/1 1/0 7/1 2/1
7 1/1 2/1 3/1 1/1
12 1/1 3/1 2/1 1/1

Observaţie:
 Această metodă de reducere a numărului de stări este
puţin aplicată, în primul rând pentru că automatele
complet definite sunt mai rare şi în plus metoda
presupune un volum mare de muncă
13
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
METODA TABELULUI IMPLICAŢIILOR

 Cunoscută şi sub denumirea metoda Paull-Unger


 Avantaje:
 poate fi aplicată şi pentru minimizarea numărului de
stări ale circuitelor incomplet definite
 poate fi mai uşor programabilă decât alte metode
 tabel de formă triunghiulară cu:
nr. de linii /coloane = nr. stărilor circuitului dat - 1
 în tabel se înscriu pentru fiecare pereche posibilă de stări
candidate la echivalenţă condiţiile necesare echivalenţei -
implicaţii ale echivalenţei - sau se fac alte observaţii
privind echivalenţa stărilor respective

14
CUITE SECVENTIALE CU INTRARI DE COMANDA 0
 Exemplul 3.13. Se cere să se reducă numărul de stări ale
automatului definit de tabelul tranziţiilor şi al ieşirilor 3.3
Tabelul 3.3.
Intrare
Starea 1 2 3 4
prezentă
1 2/0 3/0 2/0 4/0 a
2 3/0 7/1 6/0 1/0 b
3 2/1 1/0 7/1 8/1 c
4 3/0 10/1 3/0 1/0 b
5 2/0 6/0 2/0 8/0 a
6 2/1 1/0 11/1 4/1 c
7 1/1 4/1 3/1 5/1 d
8 6/0 11/1 6/0 5/0 b
9 2/1 5/0 11/1 4/1 c
10 1/1 2/1 6/1 5/1 d
11 1/1 2/1 6/1 5/1 d
12 1/1 3/1 2/1 1/1 d

CUITE SECVENTIALE CU INTRARI DE COMANDA 141


Algoritm:
1. se caută acele perechi de stări care nu pot fi echivalente, neavând
ieşiri identice pentru oricare dintre intrări - stări incompatibile - se
marchează în tabelul implicaţiilor cu X
 De exemplu, starea 1 este incompatibilă cu starea 2,
deoarece intrării 2 a stării 1 îi corespunde ieşirea 0 iar stării 2
ieşirea 1
2. se indică prin bifare celulele corespunzătoare perechilor de stări
evident echivalente stările 10 şi 11
3. Pentru perechile de stări rămase, candidate la echivalenţă, se
scriu în celulele implicaţiile echivalenţei stărilor respective
 pentru ca starea 11 să fie echivalentă cu starea 12, trebuie ca
2  3, 2  6 şi 1  5, adică şi succesorii lor să fie echivalenţi

14
CUITE SECVENTIALE CU INTRARI DE COMANDA 2

14
CUITE SECVENTIALE CU INTRARI DE COMANDA 3
4. Se urmăreşte stabilirea faptului dacă implicaţiile cerute
pentru echivalenţa unei perechi de stări sunt sau nu
satisfăcute: se inspectează tabelul implicaţiilor începând
cu celula din colţul din dreapta jos pentru a găsi
perechile de stări incompatibile şi implicaţiile lor
 Prima celulă marcată cu X apare pe coloana 9 şi ei îi
corespunde perechea de stări (9,12). Deoarece aceste
perechi de stări nu pot fi echivalente, rezultă că oricare
altă pereche de stări care pentru a fi echivalente
implică echivalenţa stărilor 9 şi 12 devine
incompatibilă, prin urmare celulele corespondente
trebuiesc tăiate cu 2 linii oblice

14
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
◦ Pentru a marca faptul că o incompatibilitate a fost luată
în considerare se încercuieşte celula respectivă.
5. După terminarea inspecţiei se reia procedura pentru a
lua în considerare eventualele incompatibilităţi apărute
şi de care nu s-a ţinut cont (nu sunt încercuite)

 Se extrag din tabelul implicaţiilor stările echivalente

10  11, 7  11, 7  10, 6  9, 3  9,


4  8, 2  8, 3  6, 1  5, 24

CUITE SECVENTIALE CU INTRARI


DE COMANDA 145
7.pe baza proprietăţii de tranzitivitate a relaţiei de echivalenţă
se grupează stările echivalente ⇒ clasele de echivalenţi

71011 sau {7, 10, 11} - reprezentant starea 7


3  6  9 sau {3, 6, 9} - reprezentant starea 3
2  4  8 sau {2, 4, 8} - reprezentant starea 2
1  5 sau {1, 5} - reprezentant starea 1
12 {12} - reprezentant starea 12

Observaţie: indiferent de metoda aplicată s-au obţinut


automate reduse cu acelaşi număr de stări

14
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
REDUCEREA NUMĂRULUI DE STĂRI ÎN
CIRCUITELE SECVENŢIALE INCOMPLET
DEFINITE
 Pentru a face posibilă reducerea numărului de stări se caută
stările care în condiţiile restrictive date (nu este definită fie
tranziţia fie ieşirea) şi pentru secvenţele de intrări care apar
în realitate se comportă identic
 2 stări care respectă condiţia de echivalenţă în toate
cazurile în care sunt specificate ieşirile şi stările următoare
se numesc stări compatibile
 Numim i1, i2, ..., ip secvenţă de intrări aplicabilă
circuitului aflat într-o anumită stare q1, dacă în urma
aplicării secvenţei se obţine o ieşire definită

14
CUITE SECVENTIALE CU INTRARI DE COMANDA 7
 Exemplul 3.14. În tabel stările 5 şi 6 sunt stări compatibile.

Tabelul 3.8.
Intrare
Stare 00 01 11 10
prezentă
… …
5 1/– –/– –/1 5/0
6 1/0 4/1 –/– –/–
… …

 Definitie: 2 stări qj şi qk se numesc compatibile, dacă şi


numai dacă pentru orice secvenţă de intrări aplicabile
ambelor stări se obţin secvenţe de ieşiri compatibile, în care
ieşirile corespondente sunt identice atunci când ambele sunt
specificate - se notează qj  qk 14
CUITE SECVENTIALE CU INTRARI DE COMANDA 8
 două stări qj şi qk sunt compatibile, qj  qk, dacă pentru orice
intrare ij  I
(q j , i j ) = (qk , i j )
atunci când ambele sunt specificate şi
( ) (
 q j , i j   qk , i j )
atunci când ambele sunt specificate.
 spunem că două stări sunt candidate la compatibilitate (se
consideră mai exact că este îndeplinită prima condiţie) dacă:
(qi , ii ) = – ; (q j , ii ) = – sau
(qi ,ii ) = wr ; (q j , ii ) = – sau
( )
(qi , ii ) = – ;  q j , ii = w r sau
( )
(qi ,ii ) =  q j ,ii = wr

14
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
 Pentru determinarea perechilor de stări compatibile în
tabelul implicaţilor - se consideră stările care nu respectă
condiţia de compatibilitate ca fiind 2 stări incompatibile.
 Pentru stările a căror compatibilitate este condiţionată se
înscriu în tabel implicaţile necesare.
Formarea claselor de compatibilităţi:
 definim drept clasă de compatibilităţi o mulţime de stări
pt. care fiecare pereche de stări din mulţimea respectivă este
o pereche de stări compatibile
 Numim compatibilitate maximă acea clasă de
compatibilităţi care nu mai rămâne clasă de compatibilităţi
atunci când se mai adaugă o stare care nu face parte din clasa
respectivă.
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 0
 În acord cu definiţia, o stare care nu este compatibilă cu nici
o altă stare este o compatibilitate maximă.
Selectarea mulţimii minime de clase de compatibilităţi

 Problemă dificilă deoarece relaţia de compatibilitate nu


respectă proprietatea de tranzitivitate
 ⇒ partiţia stărilor în cadrul claselor de compatibilităţi nu
conduce la o partiţie în clase disjuncte (una şi aceeaşi stare
poate face parte din mai multe clase de compatibilităţi)
 Exemplul 3.15.
Să se determine perechile de compatibilităţi folosind metoda
tabelului implicaţiilor pentru automatul definit prin tabelul
tranziţilor şi al ieşirilor 3.9.
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 1
Intrări
Stare 00 01 11 10
prezentă
1 2/– 5/0 5/0 2/–
2 3/0 4/– –/– –/–
3 –/– 5/– 1/0 2/0
4 1/– 2/1 –/– –/–
5 2/1 –/– –/– 4/1

1~ 2
1~ 3
1~ 5
2~3
2~4
4~5
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 2
 Pentru stabilirea claselor de compatibilităţi se grupează
numărul maxim de perechi reciproc compatibile
{1,2,3}
 Pentru a verifica dacă această compatibilitate este maximă,
încercăm să mai adăugăm o stare
 De exemplu dacă s-ar încerca adăugarea stării 5, având în
vedere că 1  5, ar trebui ca şi 3  5, ceea ce însă nu este
adevărat. Deci starea 5 nu poate face parte din această clasă
de compatibilităţi.
 În final se obţin următoarele clasele de compatibilităţi, care
se observă că nu sunt disjuncte:

{1,2,3} {1,5}
{2,4} {4,5}
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 3
 Operaţia de găsire a claselor de compatibilităţi maxime din
tabelul implicaţiilor poate fi formalizată prin inspecţia pe
coloane de la dreapta spre stânga a tabelului.
Tabelul 3.11.
Coloana Compatibilităţi
4 {4, 5}
3 {4, 5}
2 {4, 5} {2, 4} {2, 3}
1 {4, 5} {2, 4} {1, 2, 3} {1, 5}

 Găsirea claselor compatibilităţii maxime este doar una din


etapele de determinare a numărului minim de stări
 Una şi aceeaşi stare poate să apară în mai multe clase
 Având în vedere comportarea automatului iniţial şi a celui
redus trebuiesc găsite condiţii suplimentare pentru alegerea
reprezentantului clasei.
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
 Un reprezentant al unei clase de compatibilităţi trebuie să
înlocuiască cu succes oricare din stările clasei, în condiţiile
în care este definită comportarea
 Starea care realizează acest lucru şi poate fi aleasă
reprezentant al clasei, spunem că acoperă stările clasei
 Acoperirea - condiţie mai restrictivă decât
compatibilitatea
 Spunem că o stare qj dintr-un tabel de stări T, acoperă o
stare qi dintr-un alt tabel de stări S, notat q j  qi , dacă
pentru orice secvenţă de intrări aplicabilă circuitului dat
de tabelul T, aflat în starea qj şi circuitului dat de tabelul S,
aflat în starea qi, se obţin secvenţe de ieşiri identice,
acolo unde ieşirea din tabelul S este definită - în
tabelul de mai sus putem considera:
q j = n  T şi qi = { 1, 2, 3 }  S
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 5
 Analog, dacă pentru fiecare stare a tabelului S există o stare
în T care să o acopere atunci spunem că tabelul T acoperă
tabelul S.
 Pentru automatul din exemplu se formează tabelele S şi T
Tabelul 3.12.
00 01 11 10
1 2/– 5/0 5/0 2/–
S
2 3/0 4/– –/– –/–
3 –/– 5/– 1/0 2/0
T n 0 0 0 0

 Circuitele corespunzătoare celor 2 tabele au aceeaşi


comportare
 Reducerea numărului de stări constă în găsirea unui circuit T
care să acopere circuitul S dat, cu un număr cât mai mic de
stări. 15
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
 O mulţime de clase de compatibilităţi se numeşte
închisă dacă pentru oricare din clasele mulţimii, toţi succesorii
stărilor din clasa respectivă, pentru fiecare dintre intrări, fac
parte dintr-o singură clasă de compatibilităţi.
 Determinarea mulţimii cu un număr minim de clase care să
respecte condiţia de a fi închise:
 putem determina dacă este sau nu închisă, întocmind pe baza
informaţiilor deja obţinute, un nou tabel al implicaţiilor.
 Considerând compatibilităţile din tabelul 3.11 se obţine mulţimea
de clase de echivalenţe din tabelul 3.13, în care sunt trecute şi
compatibilităţile implicate de fiecare clasă pentru ca mulţimea să
fie închisă, determinate pe baza tabelului implicaţilor 3.10.
Tabelul 3.11.
Col. Compatibilităţi Clase de
{1, 2, 3} {1, 5} {2, 4} {5, 4}
4 {4, 5} compatibilităţi
3 {4, 5} (2, 3) (1, 3)
Perechi
2 {4, 5} {2, 4} {2, 3} (4, 5) (2, 4) (2, 4) (1, 2)
implicate
1 {4, 5} {2, 4} {1, 2, 3} {1, 5} (1, 5)
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 7
 Din tabelul 3.13 se vede că luând clasele de compatibilităţi {1,2,3} şi
{4,5} sunt cuprinse toate stările, dar mulţimea nu este închisă
deoarece compatibilitatea stărilor 1 şi 3 implică compatibilitatea
stărilor 1,5. Pentru ca mulţimea să fie închisă se poate împărţi
compatibilitatea maximă {1,2,3} în două submulţimi, {1,2} şi {2,3},
rezultând acoperirea închisă {{1,2},{2,3},{4,5}}, tabelul 3.14. O altă
soluţie o reprezintă mulţimea închisă {{1,3},{1,5},{2,4}}.
Tabelul 3.14.
Clase de
{1, 2, 3} {1, 5} {2, 4} {5, 4} Clase de
compatibilităţi {1, 2} {2, 3} {4, 5}
compatibilităţi
(2, 3) (1, 3)
Perechi
(4, 5) (2, 4) (2, 4) (1, 2) Perechi (2, 3) (4, 5) (1, 2)
implicate
(1, 5) implicate (4, 5)

 Dacă toate implicaţiile cerute sunt respectate atunci mulţimea


claselor de compatibilităţi este închisă şi sta la baza automatului T.
 Daca nr. de stări creşte, găsirea mulţimii închise cu un nr. minim de
elemente devine mai dificilă.
 Exista metode matematice care permit găsirea acoperirii minime
dar implică un volum mare de calcul.
15
CUITE SECVENTIALE CU INTRARI DE COMANDA 8
3.10. CODIFICAREA STĂRILOR
 stările notate simbolic în acest tabel precum şi intrările şi ieşirile
simbolice se înlocuiesc cu coduri binare
 pentru intrări codurile sunt cunoscute prin însăşi definirea funcţionării
circuitului
 alegerea codurilor pentru stările automatului şi adesea şi pentru ieşiri
rămân la latitudinea proiectantului
 există mai multe posibilităţi de codificare binară şi libertatea de alegere a
acestora
 Exemplu: pentru trei stări, a, b şi c:
a  0 0

b  0 1
c  1 0

 printre multiplele codificări posibile există vreuna care să se reflecte
asupra proiectării în aşa fel încât să conducă la cel mai simplu circuit?

15
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
 În general, pentru a codifica n stări cu r cifre binare, unde r
depinde de numărul de stări al tabelului stărilor, există

r
2! posibilitati
(2 − n ) !
r

unde 2r-1  n  2r deoarece cu r cifre binare se pot forma 2r


combinaţii diferite, adică se pot codifica 2r stări.

16
CUITE SECVENTIALE CU INTRARI DE COMANDA 0
3.10.1. METODE APROXIMATIVE DE CODIFICARE
A STĂRILOR
 Exemplul 3.16. Se dă automatul definit prin tabelul
tranziţiilor şi al ieşirilor 3.15, în care intrările şi ieşirile
sunt deja codificate.
Tabelul 3.15.
Intrare
Stare 00 01 11 10
prezentă
1 1/0 2/0 3/1 2/1
2 2/0 3/1 1/0 3/1
3 3/0 1/1 1/1 1/1

 codificăm stările Y1 şi Y2 prin variabile binare, fără a le da


însă valorile binare 0 şi 1 ci cu ajutorul variabilelor, a şi b

CUITE SECVENTIALE CU INTRARI DE COMANDA 161


 ţinând cont de faptul că sunt necesare 2 variabile de stare,
se obţine următoarea corespondenţă:
q1 a1 b1 unde ai şi bi (i = 1,2,3) reprezintă
q2 a2 b2 valorile variabilelor de stare Y1 şi
Y2 şi pot avea valoarea 0 sau 1.
q3 a3 b3
Tabelul 3.16.
Intrare
Stare 00 01 11 10
prezentă
a1b1 a1b1/0 a2b2/0 a3b3/1 a2b21
Y1 Y2
a2b2 a2b2/0 a3b3/1 a1b1/0 a3b3/1
a3b3 a3b3/0 a1b1/1 a1b1/0 a1b1/1

 expresia stării următoare Y1 ' şi Y2 ' în funcţie de starea


prezentă, Y1 Y2, şi de intrare, X1 X2.

16
CUITE SECVENTIALE CU INTRARI DE COMANDA 2
Tabelul 3.16.
Intrare
Stare 00 01 11 10
prezentă
a1b1 a1b1/0 a2b2/0 a3b3/1 a2b21
a2b2 a2b2/0 a3b3/1 a1b1/0 a3b3/1
a3b3 a3b3/0 a1b1/1 a1b1/0 a1b1/1

E1
 
Y1 ' = a1{X1 X 2 Y1a1 Y2b1 + X1X 2 Y1a 3 Y2b3 + X1X 2 (Y1a 2 Y2b 2 + Y1a 3 Y2b3 ) +
E1 E2
      
+ X1 X 2 Y1a 3 Y2b3 } + a 2 (X1 X 2 Y1a 2 Y2b 2 + X1X 2 Y1a1 Y2b1 + X1 X 2 Y1a1 Y2b1 )
E3
   
+ a 3 (X1 X 2 Y1a 3 Y2b3 + X1X 2 Y1a 2 Y2b 2 + X1X 2 Y1a1 Y2b1 + X1 X 2 Y1a 2 Y2b 2 )

CUITE SECVENTIALE CU INTRARI DE COMANDA 163


 Analog, pentru Y2 ' se obţine relaţia:

Y2 ' = b1 (E1 ) + b 2 (E 2 ) + b 3 (E 3 )

unde E1, E2 şi E3 sunt aceleaşi ca în expresia lui Y1 ' .

 2 posibile codificări ale stărilor sunt:

Tabelul 3.17.
Y1 Y2
1 a1 0 b1 0 01 E1’ E1’’ particulari-
2 a2 0 b2 1 10  E2’ E2’’ zare pentru
3 a3 1 b3 0 11 E3’ E3’’ codul I şi II
Cod I Cod II
ai bi ai bi

16
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
 Făcând notaţiile de mai sus, pentru cele două coduri se poate scrie:

Cod I: Y1’= E3’ Cod II: Y1’=E2’’+ E3’’


Y2’= E2’ Y2’= E1’’+ E3’’

 Regula 1. Când se pot alege codurile pe care să le folosim la


codificarea stărilor dintr-un număr mai mare de coduri, le vom
prefera pe cele cu cele mai multe zerouri. Ele vor fi atribuite
stărilor în funcţie de frecvenţa de apariţie a acestora în tabelul
tranziţiilor.
a1 = b1 = 0
a2 = 0 b2 = 1 sau a3 = 1 b3 = 0
 Această primă regulă conduce la reducerea numărului expresiilor Ei.
 Adesea este important nu numărul acestora ci simplitatea expresilor
 Regula 2. Stările care au aceiaşi succesori pentru toate intrările,
sau pentru anumite intrări, primesc coduri adiacente.
 pt. automatul din exemplu stările 2 şi 3 primesc coduri adiacente.
16
CUITE SECVENTIALE CU INTRARI DE COMANDA 5
 altă posibilitate de simplificare a unei expresii Ei:
 Regula 3. pentru a putea simplifica expresia reducând numărul
variabilelor de intrare este util ca succesorii unei stări să
primească pe cât posibil coduri adiacente.
 În acest caz în multe dintre expresiile stării următoare se vor putea
face simplificări prin reducerea variabilelor de intrare. Această regulă
este însă mai puţin prioritară.
 Când nici aceste 3 reguli nu pot furniza suficiente informaţii privind
codificarea, se vor considera şi ieşirea sau ieşirile circuitului.
 Regula 4. Pentru a simplifica funcţia ieşirii se cere ca stările care
au aceleaşi ieşiri pentru toate intrările sau pentru anumite intrări
să primească coduri adiacente.
 Astfel stările 2 şi 3 vor avea coduri adiacente.
Tabelul 3.18.
predecesori starea prezentă succesori
1, 2, 3 1 1, 2, 3
1, 2 2 1, 2, 3
1, 2, 3 3 1, 3
regula I regula II 16
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
3.10.2. METODA DE CODIFICARE A STĂRILOR PE
BAZA PARTIŢIEI
 urmăreşte reducerea dependenţei unei variabile de stări de celelalte
variabile de stare,
 starea următoare a unei variabile de stare depinde numai de întrări şi
de ea însăşi
 se poate realiza dacă se construieste o partiţie închisă a
mulţimii stărilor circuitului, astfel încât toţi i-succesorii fiecărei
dintre stările unui bloc al partiţiei, pentru orice i  I să fie
conţinuţi într-un singur bloc al partiţiei
Dacă:
y1 ,, y r = var iabile de stare

x1 ,, x n = var iabile de int rare
scopul pe care-l urmăreşte metoda cu dependenţă
redusă este ca: y1 ' = f1 ( x1,, x n , y1 )
16
CUITE SECVENTIALE CU INTRARI DE COMANDA 7
Exemplul 3.17. Fie automatul descris de tab 3.19.
Intrare
Stare i0 i1
prezentă
1 4 1
2 5 3
3 6 1
I = {i0, i1}
4 2 5
5 1 6
6 2 4

 se poate face următoarea partiţie: {{1, 2, 3}, {4, 5, 6}}


 partitia este închisă deoarece toţi i0-succesorii stărilor din primul bloc al
partiţiei fac parte dintr-un singur bloc al partiţiei:
(1, i 0 ) , ( 2, i 0 ) , ( 3, i 0 ) = {4, 5, 6}
 De asemenea i1-succesorii stărilor primului bloc respectiv i0-succesorii
şi i1-succesorii stărilor celui de al doilea bloc fac parte dintr-un singur
bloc al partiţiei: (1, i1 ) , ( 2, i1 ) , ( 3, i1 ) = {1, 3}
(4, i 0 ) , ( 5, i 0 ) , ( 6, i 0 ) = {1, 2}
( 4, i1 ) , ( 5, i1 ) , ( 6, i1 ) = {4, 5, 6}
16
CUITE SECVENTIALE CU INTRARI DE COMANDA 8
 daca există o partiţie închisă este posibilă specificarea tranziţiei de la un
bloc la altul printr-un număr redus de variabile
 Pentru exemplul considerat, sunt necesare trei variabile de stare, pe care
le notăm cu Y3,Y2 şi Y1. Se consideră că una dintre acestea,Y3, este folosită
pentru a distinge stările din primul bloc de cele din blocul al doilea
Y3 = 1 – pentru stătări din primul bloc

Y3 = 0 – pentru starile din al doilea bloc
'
 din tabelul stărilor: starea următoare a variabilei este 1, Y3 = 1, dacă
starea prezentă Y3=1 şi intrarea este i1 sau dacă Y3' =0 şi intrarea este i0.

Dacă i0 = X şi i1 = X rezultă: Y3 ' = Y3  X + Y3  X

adica starea următoare a variabilei Y3 depinde numai de starea ei


prezentă şi de intrări

 variabile de stare Y1 şi Y2 se folosesc pentru a distinge între ele stările din


cadrul unui bloc
 se pot forma 4 coduri care vor fi atribuite celor 3stări
16
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
 Observatie: ori de câte ori o variabilă de stare îşi modifică starea se
genereaza un semnal de modificare a stării bistabilelor  este
important pentru reducerea ecuaţiilor de intrare să se aleagă o
codificare a stărilor care să asigure modificarea unui număr minim de
variabile de stare la trecerea dint-o stare în alta.
 Regula: starea prezentă va avea un cod adiacent cu starea următoare.
 Pentru determinarea stărilor care trebuie să fie adiacente se
întocmeşte o diagramă a tranziţiilor
stările între care
Y2Y3 Y2Y3 4 01
există tranziţii 2 01
sunt unite
printr-o linie pe
care se indică
prin săgeţi 10
6
sensul
tranziţiei,deşi în 3 1 10 5
cazul când se 00 00
impune a. b.
respectarea
condiţiei de Figura 3.16. Diagrama tranziţiilor
17
adiacenţă sensul CUITE SECVENTIALE CU INTRARI DE COMANDA 0
 Ţinând cont de codul atribuit blocurilor partiţiei şi codul atribuit
stărilor din codul fiecărui bloc, indicat în figura 3.16, rezultă codificarea
din figura 3.17a.
 O altă codificare care rezultă aplicând aceleaşi reguli: figura 3.17b. În
ambele variante s-au ales în primul rând codurile cu mai puţine unităţi.

100 100
3 2 101 101
3 2
110 1 110 1

5 4 001 6 4 001

010 6 5
011 010
011
a. b.

Figura 3.17. Două variante de codificare a stărilor

17
CUITE SECVENTIALE CU INTRARI DE COMANDA 1
 Dificultatea metodei:determinarea tuturor partiţiilor închise pentru
mulţimea stărilor unui circuit secvenţial dat.
 O partiţie închisă poate fi obţinută sistematic plecând de la o anumită
pereche de stări şi determinând pe baza tabelului stărilor succesorii
acesteia, respectiv a tuturor perechilor de stări astfel obţinute, pentru
toate intrările posibile.
 Mulţimea perechilor astfel obţinute reprezintă în cazul în care include
toate stările o partiţie închisă, deoarece fiecare din perechile de stări
astfel obţinute are proprietatea că succesorii ambelor stări, pentru
aceaşi intrare, sunt incluşi în acelaşi bloc al partiţiei.
 Deoarece această proprietate este tranzitivă, perechile pot fi grupate
obţinându-se o partiţie cu blocuri formate din mai mult decât 2 stări

CUITE SECVENTIALE CU INTRARI 17


DE COMANDA 2
 Exemplul 3.18. Codificati stările circuitului definit prin tabelul stărilor şi
al ieşirilor 3.20.aplicând metoda partiţiei stărilor
Tabelul 3.20.
Intrare
Stare 00 01 11 10
prezentă
1 2/0 3/0 2/0 3/0
 2 6/0 4/0 6/0 4/0
 3 4/0 4/0 4/0 4/0
4 5/0 5/0 5/0 5/0
 5 1/0 1/0 1/0 1/0
6 7/0 5/0 7/0 5/0
 7 1/1 1/0 1/1 1/0

 determinăm partiţiile închise pe care le putem forma: alegem perechea


de stări (1,4) şi căutăm succesorii acestei perechi pentru fiecare intrare
(figura 3.18).
 perechile care se repetă, se iau o singură dată.
 perechile pentru care s-a încheiat căutarea pentru că au mai apărut
odată se încadrează într-un dreptunghi.
17
CUITE SECVENTIALE CU INTRARI DE COMANDA 3
 Se continuă cu căutarea succesorilor pentru perechile neîncadrate.

 pentru toate perechile de stări se iau perechile rezultate o singură


dată, în caz că se repetă, şi se obţine partiţia:
P1 = {(1,4), (2,5), (3,5), (2,7), (1,6)}
17
CUITE SECVENTIALE CU INTRARI DE COMANDA 4
 Perechile (1,4) şi (1,6), respectiv (2,5), (3,5) şi (2,7) pot fi grupate
folosind tranzitivitatea, prin urmare rezultând partiţia:
P2 = {(2,3,5,7), (1,4,6)}
notăm cu  
 O altă partiţie închisă cu 4 clase se mai poate obţine plecând de la
perechea (2,3).
P3 = {1, (2,3), (4,6), (5,7)}
 Aceste două partiţii sunt singurele partiţii închise, exceptând
partiţiile banale în care toate stările formează un singur bloc, sau
fiecare stare formează un bloc.
 Alegând pentru codificare partiţia P3 care are 4 blocuri, sunt
necesare pentru a distinge blocurile, 2 variabile de stare,Y1 şi Y2.
 Pentru a distinge stările din cadrul blocului se foloseşte a treia
variabilă de stare Y3.
17
CUITE SECVENTIALE CU INTRARI DE COMANDA 5
Starea Codul 100 101
Codul
Blocul Y1Y2Y3 1
Y1Y2
(1) 10 1 100
2 3
(2,3) 11 2 110 110 111
(4,6) 01 3 111
000 5 7
(5,7) 00 4 010
001
5 000 4 6
6 011 010 011
7 001

a. b. c.

Figura 3.19. Codificarea stărilor pe baza partiţiei P3

17
CUITE SECVENTIALE CU INTRARI DE COMANDA 6
 Dacă se alege pentru codificare partiţia P2, se obţin codificările:

1  110 5  001
2  000 6  101
3  010 7  011
4  100

Figura 3.20. Codificarea stărilor pentru partiţia P2

 Tabelul tranziţiilor se transformă într-un tabel binar care permite


cunoasterea stărilor următoare .
 Prin condensarea diagramelor de minimizare se reduce numărul de
variabile al diagramelor de minimizare pentru a putea scrie mai uşor
expresiile stărilor următoare.
17
CUITE SECVENTIALE CU INTRARI DE COMANDA 7
Tabelul 3.21.
X1X2
Y3Y2Y1 00 01 11 10

110 000 010 000 010


000 101 100 101 100
010 100 100 100 100
100 001 001 001 001
001 110 110 110 110
101 011 001 011 001
011 110 110 110 110

Pentru Y3 '  Y3 ' = Y3

17
CUITE SECVENTIALE CU INTRARI DE COMANDA 8
Pentru Y2 '

 Y2 ' = Y3 Y1 + ( X1 X 2 + X1X 2 )Y1 + ( X1X 2 + X1 X 2 )Y3 Y2

Pentru Y1'

 Y1' = Y3 Y2 + ( X 1 X 2 + X 1X 2 )Y2 Y2

Figura 3.21. Determinarea variabilelor de stare

17
CUITE SECVENTIALE CU INTRARI DE COMANDA 9
Dacă notăm C = X1 X 2 + X1 X 2

atunci:
Y3 ' = Y3
Y2 ' = Y3Y1 + C  Y1 + C  Y3Y2
Y1 ' = Y3 Y2 + C  Y2 Y1

18
CUITE SECVENTIALE CU INTRARI DE COMANDA 0

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