Sunteți pe pagina 1din 43

CURS PDN

Automate Finite

Reducerea numarului de stari

In procesul de proiectare, etapa de eliminare


a starilor redundante este referita prin
reducerea starilor. Efectiv reducerea starilor
inseamna identificarea starilor echivalente si
apoi un numar de stari gasite ca echivalente
sunt substituite, in functionarea automatului,
cu o singura stare. Rezulta ca in tabelul de
tranzitie al starilor/iesirilor toate liniile care
corespund unor stari echivalente se vor
substitui cu o singura linie rezultanta.

Stari echivalente

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 qi , X f q j , X ; g qi , X g q j , X

Proprietati ale starilor echivalente:


1. Simetria: daca qi ~ qj atunci si qj ~ qi
2. Reflexivitatea: qj ~ qj pentru orice stare
3. Tranzitivitatea: daca qi ~ qj si qj ~ qk
atunci qi ~ qk.

Metoda grafica
Se considera un automat cu sase stari: A,
B, C, D, E, F, a carui functionare este descrisa
prin tabelul de tranzitie al starilor/iesirilor.
O mapa a implicantilor care compara pentru
echivalenta, fiecare stare cu fiecare stare este
o diagrama, ce are pe orizontala notate toate
starile mai putin ultima, in cazul nostru A, B, C,
D, E, iar pe verticala toate starile mai putin
prima, in cazul nostru B, C, D, E, F.

Fig. 1. Etapele reducerii numarului de stari prin metoda grafica a


mapei implicantilor
a) Tabelul de tranzitie a starilor/iesirilor automatului;

In casuta de coordonate care corespunde


intersectiei celor doua stari care se compara,
una de pe orizontala si una pe verticala, se
inscriu conditiile (starile) necesare pentru
echivalenta celor doua stari. Aceste conditii
necesare pentru echivalenta se deduc din
tabelul de tranzitie al starilor/iesirilor,
comparand fiecare stare cu fiecare, pentru
toate configuratiile de valori ale cuvantului de
intrare ce determina cele doua stari.

Verificarea conditiilor necesare pentru ca o


pereche de stari sa fie echivalenta se realizeaza
prin urmatorii pasi:
1. Se elimina (se diagonalizeaza) din mapa implicantilor
acele casute ale caror perechi de stari coordonate au
in tabelul de tranzitie al starilor/iesirilor iesiri diferite
pentru aceeasi valoare a cuvantului de intrare.
De exemplu: nu pot fi echivalente perechile A cu B,
A cu D si A cu F, deoarece au iesiri diferite, deci
casutele corespunzatoare intersectiei acestor
perechi se diagonalizeaza.

2. Pentru perechile de stari prezente la care s-a


verificat ca au iesiri identice, dupa inspectarea
tabelului, se inscrie in casutele corespunzatoare din
mapa implicantilor care perechi de stari urmatoare
ar trebui sa fie echivalente pentru ca perechea de
stari prezente comparate sa fie echivalenta.
De exemplu, pentru prima coloana din mapa pentru
ca A~C necesita echivalenta intre B si D, iar A~E
necesita C~E si D~F; pe coloana a doua B~D
necesita B~D, B~F necesita B~F si C~D; pe coloana
a treia C~E necesita C~E si B~F; iar pe coloana a
patra D~F necesita B~F si B~C.

3. Pentru fiecare casuta in care este inscrisa o conditie


de echivalenta (perechi de stari), se analizeaza
daca aceasta conditie de echivalenta este
indeplinita sau nu. Daca nu este indeplinita atunci si
casuta respectiva este diagonalizata. Se va
exemplifica aceasta analiza pentru prima coloana
din mapa implicantilor. Pentru ca A~C trebuie ca
B~D. Dar, tot din mapa implicantilor se deduce ca
B~D numai cand conditia din casuta de la intersectia
liniei D cu colona B este adevarata, adica B~D.
Deoarece echivalenta perechii (B, D) este
dependenta de propria sa echivalenta (B, D),
inseamna ca aceasta pereche este echivalenta
(reflexivitatea).

Pentru ca A~E necesita C~E si D~F. Privind in


mapa implicantilor pentru echivalenta perechii D, F
este necesara B~F si B~C, iar pentru echivalenta
C~E este necesara C~E si B~C. Pentru ca B~F este
necesar ca B~F si C~D, dar din casuta de
coordonate C si D rezulta ca starile C si D nu sunt
echivalente. In concluzie, starile A si E nu sunt
echivalente si casuta de coordonate A si E de pe
prima coloana se diagonalizeaza.

Concluzie: Se aplica aceasta analiza si pentru celelalte


coloane/linii si se constata ca in afara de casuta de
coordonate B, D, toate celelalte se diagonalizeaza,
rezultand mapa implicantilor din fig.1.c).
Rezulta ca sunt echivalente starile A cu C si starile
B cu D.

Fig. 1. Etapele reducerii numarului de stari prin metoda grafica a


mapei implicantilor
b) Mapa implicantilor dedusa din tabelul de tranzitie;
c) Mapa implicantilor dupa validarea conditiilor de echivalenta;

4. Pentru fiecare pereche de stari echivalente se


pastreaza doar una din stari, eventual se
redenumesc starile (A=q0, B=q1, C~A=q0, D~B=q1,
E=q2, F=q3) si se construieste tabelul simplificat al
tranzitiei starilor/iesirilor, din fig.1.d).
Deci automatul initial cu sase stari poate fi substituit
in functionare cu un alt automat (echivalent) care are
numai patru stari.

Fig. 1. Etapele reducerii numarului de stari prin metoda grafica a


mapei implicantilor
d) tabelul de tranzitie al starilor/iesirilor pentru automatul echivalent
(redus).

Exemplu
Pentru automatul Mealy cu graful de tranzitie al
starilor/iesirilor din fig. 2.a) sa se elimine starile
redundante si apoi sa se redeseneze graful de
tranzitie.
Fig. 2. a) Graful
de tranzitie al
starilor/iesirilor;

Solutie
Din graful de tranzitie al starilor/iesirilor se obtine
tabelul de tranzitie al starilor/iesirilor din Fig.2.c),
Iar din tabelul de tranzitie se deduce:
1. Nu sunt echivalente urmatoarele perechi de
stari: A cu B, A cu C, B cu D, B cu E, C cu D
si C cu E.
2. Starile: A~D numai daca sunt echivalente B cu C
si D cu C si A cu B; A~E numai daca sunt
echivalente A cu E si B cu C; B~C numai daca
sunt echivalente B cu C si A cu E; D~E numai
daca sunt echivalente C cu D si B cu E si A cu C.

Fig. 2. c) Tabelul de tranzitie a starilor/iesirilor automatului;

3. Se constata ca: AD deoarece AB si DC;


DE deoarece AC, BE si CD; A~E numai
daca B~C, iar B~C numai daca A~E. Rezulta
ca A~E si B~C (simetrie daca qj~qi atunci
qi~qj). Mapa implicantilor rezultata este cea din
Fig. 2.f).

Fig. 2. e) Mapa implicantilor dedusa din tabelul de tranzitie;


f) Mapa implicantilor dupa validarea conditiilor de echivalenta;

.
4. Se redenumesc starile in felul urmator:
A=q0, B=q1, C~A=q0, D=q2, E~A=q0 pentru
care rezulta tabelul de tranzitie din Fig. 2.d).
Functionarea automatului echivalent (redus)
este descrisa prin graful de tranzitie al
starilor/iesirilor din Fig. 2.b).

Fig. 2. d) tabelul de tranzitie al starilor/iesirilor pentru automatul


echivalent (redus);
b) graful de tranzitie al starilor/iesirilor pentru automatul echivalent
(redus).

Observatii

In sinteza circuitelor combinationale se


intalnesc cazuri cand functia de transfer este
incomplet specificata, ceea ce in tabelul de
adevar se indica prin semnul indiferent (dont
care). Cazuri similare se intalnesc si la
circuitele secventiale cand fie functia de
transfer f, fie functia de tranzitie g, nu sunt
complet specificate ceea ce se reflecta prin
indicarea semnului indiferent respectiv pentru
anumite valori ale iesirii sau anumite stari
urmatoare. Cand anumite stari nu sunt
specificate automatul nu este predictibil.

Este indicat sa se evite asemenea cazuri fie


prin alegerea numai acelor configuratii de
intrare care conduc automatul numai prin stari
deja specificate sau, fie sa se specifice starile
nespecificate daca prin aceasta nu se
contravine rezultatului dorit. Odata specificate
starile, care initial erau nespecificate,
automatul nu mai este incomplet specificat.
Pentru automatele incomplet specificate exista
algoritmi (grafici sau analitici) de reducere a
numarului de stari.

In procesul de reducere al numarului de stari,


specificarea iesirilor nespecificate poate fi
facuta fara a se produce nici un impact asupra
secventei starilor automatului final. Este
indicat ca iesirile nespecificate sa fie lasate
nespecificate in tabelul de tranzitie al
starilor/iesirilor cat se poate de mult in
procesul de reducere, deoarece prezenta
semnului indiferent duce la o mai mare
flexibilitate in compararea starilor din tabelul
de tranzitie.

In validarea echivalentei a doua stari, trebuie ca


iesirile sa fie identice pentru oricare configuratie
de intrare. Cand se compara doua stari ale caror
iesiri sunt incomplet specificate in locul notiunii
de echivalenta se utilizeaza notiunea de stari
compatibile.
Doua stari qi si qj sunt stari compatibile daca,
pentru oricare secventa de configuratii aplicate
pe intrare, se obtine o aceeasi secventa a iesirii
cand iesirile nespecificate vor fi specificate,
indiferent daca starile qi, qj sunt stari initiale sau
nu.

Asignarea starilor
Procesul

de asignare al starilor
(codificarea starilor) unui automat cu s
stari consta in alocarea pentru fiecare
simbol de stare q0, q1, , qs-1 a cate unui
cuvant de cod cu lungimea de minimum
k biti. Valoarea lui k rezulta din relatia
2k-1s<2k
deci k=[log2 s]

Prin

asignarea starilor, automatul definit


simbolic este transformat intr-un automat
cu o structura specificata si functiile de
transfer f si de tranzitie g sunt fixate.
Codificarea starilor este cea mai
importanta etapa in proiectarea unui
automat.

Pentru un automat cu s stari din multimea 2k


cuvinte, cu lungimea de k biti, se pot forma un
numar de 2k!/(2k -s)!s! grupuri distincte, fiecare
grup contine s cuvinte. Apoi, prin maparea
celor s stari ale automatului pe un grup cu s
cuvinte rezulta un numar de s! asignari
(codificari) diferite.
Deci numarul total de codificari, Nc, va fi:
Nc= 2k!/(2k -s)!

1.
2.

Din numarul total de codificari Nc (de asignari


posibile) unele sunt echivalente. Doua asignari
ale starilor sunt echivalente daca pentru cele
doua implementari ale automatului functiile f si
g au aceleasi marimi de dimensiune si
complexitate.
Se obtin doua asignari echivalente in 2 cazuri:
Cand codul unei asignari se obtine prin
complementarea codului celeilalte.
Cand codul unei asignari se obtine din codul
altei asignari prin interschimbarea coloanelor z1
si z0. (spre exemplu, cand k=[log24]=2 - stari)

Numarul

total de asignari neechivalente,


Ncne, pentru un automat cu s stari si
cuvant de lungime de k biti se calculeaza
cu urmatoarea relatie
Ncne=(2k-1)!/(2k-s)!s!
Valoarea lui Ncne creste dramatic in
functie de numarul de stari s ale
automatului, cateva din aceste valori
sunt date in tabelul 1.

Tabelul 1. Valori pentru numarul asignarilor neechivalente, Ncne

Un procedeu simplu de asignare a starilor care


are o probabilitate destul de ridicata pentru a
duce la o solutie apropiata de cea optima se
bazeaza pe conceptul de locusul starilor.
Locusul starilor este numarul de modificari
ale bitilor din cuvantul de stare cand pentru un
automat se parcurg toate caile de tranzitie.
Se va alege acea codificare a starilor care sa
realizeze o valoare cat mai mica pentru
locusul starilor.

Valoarea minima s-ar obtine cand codurile


intre doua stari succesive pe oricare linie de
tranzitie, in afara de buclele la aceeasi stare,
ar diferi doar printr-un singur bit.
Aceasta modalitate de codificare, prin care
codul unei stari difera doar printr-un singur bit
fata de codurile starilor urmatoare, inspre care
exista o cale de tranzitie, este referita ca o
codificare cu variatie minima.

Codificarea cu variatie minima, pe langa faptul


ca pot duce la suprafete mai mari intr-o
digrama VK, prin realizarea unei singure
comutatii in cuvantul de stare la trecerea de la
o stare la alta, mareste siguranta in
functionare a automatului, mai ale la cele
asincrone.
Codificarea cu diferenta numai de un singur
bit, intre doua stari succesive, nu este
totdeauna posibila.

Uneori, pentru realizarea unei codificari cu


distanta de cod unu intre oricare doua stari
succesive este necesara introducerea unei stari
suplimentare, dar aceasta suplimentare de stari
pe intreaga organigrama ar putea duce la
cresterea numarului de biti in cuvantul de cod.
Aceasta rezolvare pentru codificarea cu variatie
minima implica definirea si a unei iesiri in starea
suplimentara. Iesirea dependenta de starea
suplimentara poate fi repetarea iesirii y din
starea anterioara sau nici o iesire NOOPERATION daca functionarea automatului
permite.

Pentru un automat valoarea locusului starilor


nu poate fi mai mica decat numarul s de stari.
O valoare minima egala cu s pentru locusul
starilor se poate obtine doar la un automat la
care exista s tranzitii neconditionate intre
starile succesive si codificarea starilor este cu
variatie minima, de exemplu un numarator in
cod Gray, uzual valoarea minima a locusului
starilor este mai mare decat s.

Codificarea cu dependenta redusa

Presupune ca starile urmatoare ce se obtin


prin tranzitia din aceeasi stare, in urma testarii
unor variabile de intrare, sa difere intre ele
printr-un singur bit.
Aceasta inseamna ca expresia celor doua
stari, care se obtin in urma testarii unei singure
variabile x0, sa se exprime cat mai simplu in
functie de aceasta variabila adica, sa fie de
forma, de exemplu, z4z3x0z1z0. Cele doua stari
urmatoare sunt z4z30z1z0 si z4z31z1z0.

Incercarea de a codifica cu dependenta


redusa simultan dupa doua variabile, spre
exemplu, x1, x0 nu este posibila, deoarece
cuvintele obtinute nu difera intre ele numai
printr-un singur bit.
Deci codificarea cu dependenta redusa poate
fi realizata doar in functie numai de o variabila
testata.

Codificarea de tip unic-activ (onehot)

La aceasta codificare cuvantul de cod nu mai


are lungimea de [log2s] ci are lungimea de s biti,
adica atatia biti in cuvantul de cod cate stari are
automatul, in plus, creste dimensiunea
registrului din calea de reactie.
Acest registru, pentru un automat cu s stari, va
avea s celule de memorare (bistabile) si nu
[log2s] celule ca la asignarile prezentate pana
acum. Datorita acestui avantaj, se considera
codificarea de tip unic-activ o codificare
preferata mai ales la implementarile integrate.

Proiectarea unui automat sincron


In proiectarea unui automat sincron se
parcurg urmatoarele etape:
1. Descrierea functionarii automatului.
Descrierea poate fi direct sub forma
unei organigrame, a unui graf de
tranzitie al starilor/iesirilor sau se
transpune sub una din aceste forme
dintr-o descriere verbala.

Construirea tabelului de tranzitie al


starilor/iesirilor si reducerea starilor
redundante.
3. Codificarea starilor si construirea
tabelului de tranzitie asignat pentru
stari si iesiri.
4. Sinteza functiilor de excitatie (starea
urmatoare) si a iesirilor.
2.

Implementarea, intr-o anumita


tehnologie, si apoi testarea.
6. Elaborarea documentatiei.
5.

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