Sunteți pe pagina 1din 57

CURS PDN

Automate Finite

Definitie: Structura CLS sincron care


contine in bucla de reactie un circuit de
memorare/registru (care la randul sau
constituie un CLS), este referinta prin
termenul de automat (finit) sau cu
abreviatia FMS (Finite State Machine).

b)
Fig. 1. Circuitul secvential sincron:
a) Structura de principiu;
b) Structura de principiu pentru CLS sincron cu iesire intarziata.

a)

Definitii si clasificari ale automatelor


Definitia

unui automat finit este similara


cu cea a unui CLS asincron, cu
deosebirea ca timpul nu mai este o
variabila continua ci discreta, multiplu de
perioada semnalului de ceas, iT, adica
variabilele circuitului sunt esantionate,
dar pe fronturile active:
A=(X,Y,Q,f,g)

(3.1)

Definitie: Daca pentru oricare configuratie


de intrare si de stare prezenta functiile
de transfer, f si de tranzitie, g, au
cardinalul unitate (contine un singur
element), atunci automatul este
determinist, altfel este nedeterminist.
q Q, x X , f q, x 1, g q, x 1

Definitie: Un automat A este finit daca


cele trei multimi X, Y si Q sunt finite.
Definitie: Un automat A autonom, sau
orologiu, este un automat la care
multimea finita a intrarilor este cardinalul
unitate |X|=1.
Automatul genereaza variatii la iesire
fara sa se modifice configuratia de
intrare.

Definitie: O evolutie/traiectorie a
automatului A este un sir de stari
inlantuite q0 ->q1-> ->qi->qi+1->, iar
starea q0 este starea initiala a evolutiei.
O evolutie cu proprietatea:
qi Q, X i X , qi 1 g qi , X i
este o evolutie admisibila.

Definitie: Totalitatea starilor din care poate


porni automatul este multimea starilor
initiale Q0 , Q0 Q .
In functie de cardinalul multimii Q0
automatele pot fi:
- automat cu o singura stare initiala Q Q, Q
- automat cu mai multe stari initiale Q Q, Q
- automat neinitial (toate starile pot fi
initiale), Q0 Q .
0

Obs: Intr-o stare initiala nu se ajunge printro evolutie generata de configuratii din
multimea semnalelor de intrare X ci
printr-o alta comanda exterioara, de
exemplu printr-o comanda de initializare
sau prin conectarea la tensiune se
genereaza starea initiala.

Definitie: O stare a automatului este


considerata inaccesibila daca oricare
traiectorie in spatiul starilor ce porneste
din stari initiale nu o contine.
Obs: De exemplu, daca pentru un automat
cu trei biti de stare z2z1z0 pot exista opt
stari q0,q1,q2,q3,q4,q5,q6,q7, dar sunt
definite numai cinci stari, q0q4, in
functionarea automatului atunci cele trei
stari, q5, q6 si q7 sunt inaccesibile

Definitie: Doua stari qi si qj sunt


echivalente qi q j daca pentru oricare
configuratie de intrare aplicata X se
genereaza aceleasi iesiri, iar starile
urmatoare qi 1 g qi , X , q j 1 g q j , X
sunt identice sau echivalente.
f q i , X f q j , X ; g q i , X g q j , X

Obs: Daca un grup de stari se


demonstreaza ca sunt echivalente, toate
starile acelui grup sunt substituite printr-o
singura stare, astfel reducandu-se
numarul total de stari ale automatului.

Definitie: Un semiautomat, SA, este


definit prin tripletul:
SA = (X, Q, g)
Obs: Structural, semiautomatul se obtine
prin eliminarea din structura automatului
a partii care calculeaza functia de
transfer, f.

Automat Mealy si Moore


Definitie: Un automat Mealy este definit
prin cvintuplu A=(X, Y, Q, f, g) cu:
f : X Q Y
g : X Q Q

Definitie: Un automat Moore este definit


prin cvintuplu A=(X, Y, Q, f, g) cu:
f :Q Y
g : X Q Q

Obs: La automatul Mealy partea


combinationala calculeaza atat functia de
transfer f cat si cea de tranzitie g pe baza
produsului cartezian XxQ.
La automatul Moore functia de
tranzitie g se calculeaza la fel ca la
automatul Mealy, pe baza produsului
cartezian XxQ, pe cand functia de
transfer f este calculata doar pe baza
starii prezente Q.

Obs: Iesirea automatului Moore este


dependenta de intrare doar prin
intermediul tranzitiilor realizate in spatiul
starilor.
Fiecare din aceste doua tipuri de
automate poate fi realizat cu functionare
imediata sau intarziata, vezi figura
urmatoare.

a)

b)

Fig. 2. Variante de automate Mealy structurate


pe baza unui semiautomat, SA:
a) Structura fundamentala pentru automatul Mealy imediat;
b) Structura fundamentala pentru automatul Mealy cu intarziere.

a)

b)

Fig. 2. Variante de automate Moore structurate


pe baza unui semiautomat, SA:
a) Structura fundamentala pentru automatul Moore imediat;
b) Structura fundamentala pentru automatul Moore cu intarziere.

Descrierea automatelor cu
intarziere/imediat

Automatul Mealy imediat

Structura acestui automat se obtine prin completarea


semiautoamtului SA cu CLC2 care calculeaza iesirea
Y(iT) pe baza produsului cartezian dintre starea prezenta
si intrarea prezenta.
Y(iT)=f(X(iT), q(iT))
Iesirea Y(iT) citita inainte de consumarea perioadei de
regim tranzitoriu va fi afectata de hazard. Daca intrarea
nu este sincronizata, ci se modifica asincron oricand in
intervalul iT si (i+1)T, aceste modificari se simt in iesire.

Automat Mealy cu intarziere

Completarea SA se face atat cu circuitul CLC2 pentru


calculul functiei de transfer, f, cat si cu un registru, Reg2,
pentru memorarea iesirii Y(iT). Introducea unui registru
va face ca modificarile provocate de iesirea Y(iT) pe
intervalul iT-(i+1)T, datorate regimului tranzitoriu, de la o
intrare sincronizata, sau datorate variatiilor intrarii, de la
o intrare asincrona, sa nu mai poata ajunge la iesire.
Valoarea iesirii este asignata, doar in momentele de
aplicare a frontului activ de ceas la Reg2, cu valoarea
calculata pe baza intrarii si starii anterioare.
Y((i+1)T):=f(X(iT), q(iT)),
deci iesirea reflecta intrarea cu o intarziere de un tact.

Automatul Moore imediat

Deoarece la acest automat iesirea se calculeaza


ca functie numai de stare prezenta, la SA se adauga
circuitul CLC2 care are ca intrari doar starea prezenta.
Deoarece in starea prezenta se reflecta intrarea
anterioara si nu cea prezenta, iesirea este intarziata cu
un tact fata de intrare (la fel ca la automatul Mealy cu
intarziere). Deci pentru intrarea prezenta se obtine
iesirea numai peste un tact.
Y((i+1)T):=f(q((i+1)T))=f(g(X(iT), q(iT)))

Desi se obtine o izolare a iesirii fata de intrare, nu exista doar


CLC2 intre intrare si iesire, totusi automatul Moore imediat
poate genera hazard la iesire. Hazardul este generat de faptul
ca circuitul CLC2 poate avea de la intrarea (iesire Reg1) pana
la iesirea sa un numar diferit de niveluri logice pentru fiecare
traseu de transfer. Foarte frecvent, la acest tip de automat se
elimina circuitul CLC2, iesirea fiind identica cu starea YQ,
ceea ce elimina hazardul combinational din iesire.
Comportamental, un automat Moore imediat poate fi echivalent
cu un automat Mealy cu intarziere deoarece la ambele iesirea
calculata pe baza starii prezente si a intrarii prezente va fi
asignata la iesire, doar pe urmatorul front activ de ceas.

Automatul Moore cu intarziere

Pentru a se elimina posibilitatea de hazard pe iesire de la


automatul Moore imediat se adauga pe iesire un registru,
Reg2, obtinandu-se automatul Moore cu intarziere. La
intarzierea iesirii fata de intrare cu un tact de la Moore
imediat, de data aceasta se mai introduce inca o
intarziere de un tact, deci automatul Moore cu intarziere
simte o intrare transferata la iesire cu o intarziere de
doua tacte.
Y((i+2)T):=f(q((i+1)T))=f(g(X(iT), q(iT)))

Reprezentarea automatelor
Modalitatile de reprezentarea a automatelor
sunt prin:
Graficul de tranzitie a starilor
Tabelul de tranzitie a starilor
Diagrama de variatie in timp a semnalelor
Organigrama.

In general se va alege ca modalitate de


reprezentare varianta care duce la o
masura a complexitatii cat mai simpla.

Graful de tranzitie al starilor


Definitie:Pentru un CLS sincron graful de
tranzitie al starilor (diagrama de
tranzitie a starilor) este o reprezentare
grafica a functiei de tranzitie a starilor, g,
si a functiei de transfer intrare-iesire, f,
pentru toate configuratiile de intrare X.
In acest graf fiecarui nod (cerculet) ii este
asignata o stare, iar fiecare arc orientat
intre cele doua noduri reprezinta tranzitia
intre cele doua stari.

Pentru un automat Mealy pe un arc de


tranzitie se noteaza expresia logica a
variabilelor de intrare (expresia logica a
tranzitiei) sau configuratia valorilor
variabilelor de intrare pentru care aceasta
expresie este adevarata, care va provoca
tranzitia respectiva, precum si valoarea
configuratiei de iesire Y generata de
aceasta tranzitie.

Pentru un automat Moore, deoarece iesirile


sunt functii doar de starea prezenta, f:Q->Y, pe
arce nu sunt trecute configuratiile de iesire Y
generate de tranzitiile respective, configuratia
de iesire este inscrisa in cerculetul starii
prezente din care se genereaza iesirea
respectiva, iar pe arce se inscrie doar expresia
logica a tranzitiei sau configuratia valorilor
variabilelor de intrare pentru care expresia
logica a tranzitiei este adevarata.

Exemplu
Automat cu doua intrari x1x0 si o iesire y,
tranzitia din starea q0 in una din urmatoarele
patru stari posibile q1, q2, q3, q4, graful de
tranzitie este reprezentat in figurile urmatoare,
unde in
a) avem graful pentru o functionare de tip Mealy,
iar in
b) avem graful pentru o functionare de tip Moore.

Fig. 3. Graful de tranzitie a starilor:


a) Segment de graf pentru automat de tip Mealy;
b) Segment de graf pentru automat de tip Moore.

La graful de tip Mealy in noduri sunt


inscrise numai starile, iar pe fiecare arc
este trecuta expresia logica a
tranzitiei/valoarea configuratiei de iesire; la
graful de tip Moore in noduri pe langa stare
este inscrisa si configuratia de iesire, iar pe
fiecare arc este trecuta doar expresia logica
a tranzitiei.

Daca la ceas iT automatul ajunge in q0 la


cel de tip Moore se genereaza iesirea y=1,
iar la cel de tip Mealy in aceasta stare q0 se
genereaza iesirea y=1 numai daca
configuratia de intrare este 01 (x1x0=1),
pentru celelalte trei configuratii (00, 10, 11)
se genereaza y=0.

La urmatorul impuls de ceas (i+1)T se trece


in starea urmatoare pentru care expresia
logica a variabilelor de intrare este
adevarata, de exemplu pentru 10 (x1x0=1)
se trece in starea q3 (unde y=0 pentru
automatul Moore, valoarea pentru y la
automatul Mealy nu este precizata
deoarece din aceasta stare, in acest caz,
nu mai este figurat nici un arc de tranzitie la
o alta stare).

Constructia unui graf de tranzitii al starilor


trebuie sa fie fara ambiguitati, ceea ce
impune pentru expresiile de tranzitie
inscrise pe arcele care pornesc dintr-o
stare sa fie mutuale exclusive sau toate
incluse.

Tranzitii mutual exclusive


Tranzitiile sunt mutual exclusive, daca dintr-o
stare, pentru aceeasi configuratie a valorilor de
intrare nu exista simultan transferuri la doua sau
mai multe stari (exista transfer pe un arc numai
atunci cand expresia respectiva de transfer are
valoarea 1).
Se poate verifica daca dintr-o stare nu exista
transferuri simultane, efectuand produsul logic
intre expresiile de transfer de pe doua arce de
transfer care pornesc din starea respectiva, aceste
produse trebuie sa aiba totdeauna valoarea zero
pentru oricare configuratie a valorilor variabilelor
de intrare.

Pentru

n arce care pornesc dintr-o stare


numarul total de perechi pentru care se
face produsul expresiilor de transfer este
egal cu n(n-1)/2.
Configuratiile valorilor de intrare testate,
pentru care produsul logic al expresiilor
de transfer de pe doua arce are valoarea
1, sunt referite ca fiind dublu acoperite
(de doua transferuri).

Tranzitii toate incluse


Tranzitiile

sunt toate incluse, daca suma


logica a expresiilor de pe arcele care
pornesc dintr-o stare este totdeauna
egala cu 1 pentru oricare configuratie a
valorilor variabilelor de intrare testate;
configuratiile de valori ale variabilelor de
intrare testate pentru care aceasta suma
logica este egala cu zero sunt referite
prin configuratii neacoperite.

Concluzie
Cu

ajutorul unei diagrame VK, de toate


variabilele care se testeaza in starea
respectiva, se pot determina
configuratiile neacoperite precum si
configuratiile dublu acoperite.
Pentru aceeasi functionare o
implementare sub forma de automat
Moore necesita mai multe stari decat
implementarea sub forma de automat
Mealy.

In

general, modelul Mealy este uzual


pentru circuitele secventiale sincrone, iar
modelul Moore pentru circuitele
asincrone.
Graful de tranzitie al starilor/iesirilor este
un instrument potrivit pentru verificarea
functionarii automatului.

Exemplu:
Un automat cu doua intrari x1, x0 si o singura
iesire y, genereaza iesirea egala cu 1 numai
cand din sirul de succesiuni aplicate pe
intrare se identifica secventa 00, 01, 11, 10.
Pentru acest automat sa se deseneze graful
de tranzitie al starilor atat pentru o functionare
de tip Mealy, cat si pentru o functionare de tip
Moore.

Fig. 4. Grafuri de tranzitie pentru automatul care identifica


succesiunea 00 01 11 10:
a) Pentru un model Mealy cu marcarea pe arce a configuratiilor de
intrare si iesire;

Fig. 4. Grafuri de tranzitie pentru automatul care identifica


succesiunea 00 01 11 10:
b) Pentru un model Mealy, dar cu inscrierea pe arce a expresiei
logice a functiei de tranzitie;

Fig. 4. Grafuri de tranzitie pentru automatul care identifica


succesiunea 00 01 11 10:
c) Pentru un model Moore.

Tabelul de tranzitie al starilor


Informatia

continuta in graful de tranzitie


al starilor/iesirilor poate fi transpusa intro forma mult mai practica pentru sinteza
automatului tabelul de tranzitie al
starilor (al iesirilor).
In tabelul de tranzitie al starilor exista
atatea linii cate stari distincte prezinta
automatul si atatea coloane cate cuvinte
diferite se pot aplica la intrare.

Un

element al tabelului tranzitiilor, aflat la


intersectia unei linii cu o coloana, va
reprezenta starea urmatoare/iesirea a
automatului obtinuta la tranzitia din
starea prezenta corespunzatoare acelei
linii prin aplicarea la intrare a cuvantului
de pe acea coloana.

Uneori,

elementele tabelului cuprind


numai starea urmatoare, pentru iesiri se
intocmeste un tabel de aceeasi forma ale
carui elemente sunt iesirile
corespunzatoare - denumit tabelul
iesirilor. Tabelul iesirilor pentru automatul
Moore se reduce doar la o singura
coloana, avand atatea elemente cate
stari distincte exista (iesirile sunt functii
numai de starea prezenta).

Concluzie
Tabelul

de tranzitie al starilor, este o


reprezentare abstracta a automatului, si
permite o comparare sistematica a
starilor pentru identificarea perechilor de
stari echivalente.

Exemplu:
Sa

se construiasca tabelele de tranzitie


ale starilor/iesirilor pentru automatul
reprezentat in cele doua modele Mealy si
Moore, din Fig. 4.

Fig. 5. Tabel de
tranzitie/iesire
pentru modelul Mealy

Fig. 5. Tabel de
tranzitie/iesire
pentru modelul Moore

Diagrama de variatie in timp ale


semnalelor

Functionarea automatului poate fi descrisa prin


variatia in timp a semnalelor de intrare, de
stare si de iesire.
Diagrama de semnale este potrivita in general
la automatele generatoare care depind minimal
de intrare sau chiar de loc (functionare
automata).
Pornind de la diagrama de semnale, in care se
identifica starile automatului, se poate deduce
tabelul de tranzitie al starilor/iesirilor si apoi se
poate construi graful de tranzitie.

Exemplu
Pentru

automatul a carui functionare este


prezentata prin variatia in timp a
semnalelor din Fig. 6, sa se deduca
graful de tranzitie al starilor/iesirilor.

a)
Fig. 6. a) Descrierea functionarii automatului prin diagrame
de variatie in timp ale semnalelor

b)

c)

Fig. 6. b) Tabelul de tranzitie dedus din diagramele de semnal


c) Graful de tranzitie al starilor/iesirilor.

Organigrama
Descrierea fara ambiguitati a functionarii
unui automat printr-un graf de tranzitie al
starilor/iesirilor poate deveni destul de
greoaie si cu dificultati.
Pentru a evita aceste dificultati s-a preluat
modalitatea de descriere a algoritmilor
utilizata in dezvoltarea de soft, adica
organigrama (flow chart).

Simbolurile grafice utilizate in constructia unei


organigrame sunt urmatoarele trei:
- Cerculet sau dreptunghi: reprezinta o stare a
automatului;
- Rombul: reprezinta elementul de decizie binar;
- Dreptunghi sau dreptunghi rotunjit: simbol pentru
iesire conditionata, corespunde unei iesiri de tip
Mealy intr-un graf de tranzitii.

Simbolurile grafice pot fi


combinate impreuna pentru
a forma celula de baza a
unei organigrame numita
blocul de stare.

Concluzie
Diferenta principala intre un bloc de stare
si o organigrama pentru un program este
modul cum se interpreteaza timpul; la o
organigrama operatiile sunt realizate
succesiv in timp, una dupa alta, pe cand
intr-un bloc de stare, care este o unitate
dintr-o diagrama, toate operatiile se
realizeaza in acelasi timp, concurent.

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