Sunteți pe pagina 1din 28

3

Descrierea formal i implementarea automatelor finite

3.1 INTRODUCERE
n prima parte a acestui capitol vom discuta comparativ despre caracteristicile automatelor combinaionale i ale celor secveniale, vom prezenta schemele bloc pentru automatele combinaionale i pentru cele secveniale, sincrone i asincrone.Vor fi menionate restriciile impuse asupra semnalelor externe de intrare pentru automatele sincrone i pentru cele asincrone, pentru a ilustra diferena dintre aceste dou clase de automate secveniale. n paragraful urmtor vom prezenta principalele definiii i proprieti ale automatelor finite precum i structurile de baz ale acestora. La sfritul acestui paragraf vom dispune de noiunile de baz necesare pentru dezvoltarea unui aparat matematic pentru reprezentarea i descrierea automatelor secveniale Moore i Mealy. Aadar, acest capitol ar trebui s pregteasc cititorul pentru: construirea unei scheme care s reprezinte clasificarea automatelor digitale. desenarea schemelor bloc ale automatelor sincrone i asincrone. desenarea diagramelor de timp pentru automatele secveniale. caracterizarea, identificarea i reprezentarea celor dou clase importante de automate finite, automatele Moore i Mealy. stabilirea unei echivalene ntre automatele Moore i Mealy.
77

3.2 MODELUL AUTOMATELOR DIGITALE


Toate automatele digitale pot fi incluse n una din clasele menionate n capitolele anterioare: combinaionale sau secveniale, dup cum se prezint n Figura 3.1. Un automat este combinaional dac are proprietatea c ieirile lui sunt determinate numai de semnalele de intrare (externe). Un automat este secvenial dac ieirile sunt determinate nu numai de intrri ci i de istoria, de evoluia anterioar, a automatului. n acest capitol om prezenta modurile de analiz i proiectare a automatelor secveniale [2], [3], [4], [16]. 3.2.1 Modelul automatelor combinaionale n Figura 3.2 este reprezentat schema bloc a unui sistem automat de tip combinaional. Prin implementarea unui acestei scheme se obine un sistem ale crui semnale de ieire f1 , f 2 , ..., f m sunt determinate n mod univoc de semnalele de intrare aplicate din exteriorul sistemului, I1 , I 2 , ..., I m . La orice moment, semnalele de ieire F1 , F2 , ..., Fm ale unui sistem combinaional sunt obinute ca funcii de semnalele de intrare: F1 ( I 1 , I 2 ,..., I n ) , F2 ( I1 , I 2 ,..., I n ) , ..., Fm ( I 1 , I 2 ,..., I n ) , presupunnd c nu exist nici o ntrziere n propagarea i procesarea semnalelor. Dup o anumit perioad de timp, reprezentat de fiecare ntrziere t1 , t 2 , t m , se obin semnalele de ieire ale sistemului automat, f1 = F1 , f 2 = F2 , ..., f m = Fm . Pentru un set dat de semnale de intrare, semnalele de ieire f1 , f 2 , ..., f m se stabilizeaz la valorile date de F1 , F2 , ..., Fm dup ntrzierile specificate t1 , t 2 , ..., t m . Se spune c n acest moment automatul combinaional este stabil. Am presupus c blocul numit "Automat combinaional" din Figura 3.2 conine numai componente ideale, care nu introduc ntrzieri n propagarea semnalelor. ntrzierile cumulate, reale, n propagarea semnalelor sunt reprezentate prin t1 , t 2 , ..., t m . Acestea sunt ntrzierile n cazul cel mai defavorabil, introduse de calea de semnal cea mai lung dintre intrare i ieire.
Automate digitale Combinaionale Sincrone Modul fundamental Secveniale Asincrone Modul impuls

Figura 3.1 Clasificarea automatelor digitale.

78

I1 I2

Automat combinaional

F1 F2

Intrziere

t1
Intrziere

f1 f2

In

. . .

(componente ideale, fr ntrzieri)

. . .

t 2

Fm

Intrziere

. . .

fm

t m F1 = F1 ( I 1 , I 2 ,..., I n )
f 1 = F1 dup t1 f 2 = F2 dup t 2 . . .

F2 = F2 ( I 1 , I 2 ,..., I n ) . . . Fm = Fm ( I 1 , I 2 ,..., I m )

f m = Fm dup t m

Figura 3.2 Schema bloc general a automatelor combinaionale.

De fiecare dat cnd semnalele de intrare se modific i se stabilizeaz la anumite valori, semnalele de ieire devin stabile dup un anumit interval de timp (care depinde de ntrzierea introdus pe calea respectiv de semnal) asociat fiecrei ieiri. Modelul din Figura 3.2 este important dac este nevoie s se determine timpul de stabilire a ieirilor la noile valori pentru un automat combinaional. 3.2.2 Automate secveniale Pn n acest moment ne-am concentrat atenia asupra automatelor de tip combinaional. Automatele care nu sunt combinaionale formeaz clasa automatelor secveniale, dup cum se arat n Figura 3.1. n continuare, automatele secveniale se mpart n dou clase majore: sincrone (sau comandate de un semnal de ceas) i asincrone. Aceste din urm pot funciona n modul fundamental sau n modul impuls. Automatele secveniale, fie c sunt sincrone sau asincrone, au o trstur comun: la implementarea oricrei funcii logice secveniale se obine un sistem ale crui semnale de ieire sunt determinate de intrrile externe i de anumite semnale de reacie ale sistemului, aa cum se arat n schemele bloc din Figura 3.3. Semnalele externe de intrare mai sunt numite variabile primare de intrare iar semnalele de reacie mai sunt numite variabile secundare sau variabilele strii urmtoare. Aadar, un automat secvenial are proprietatea c valoarea curent a variabilelor de ieire (semnalele de ieire din dispozitivele de memorare sau din elementele de ntrziere) depind nu numai de semnalele externe de intrare ci i de starea anterioar (sau de semnalele de reacie). Datorit proprietii de memorare a automatelor secveniale, acestea pot executa diferite secvene de evenimente care necesit memorarea istoriei evenimentelor trecute
79

ik
Semnale de reacie Semnale de intrare

k
n
Automat combinaional Starea urmtoare

D1 , D2 ,..., Dk
k

k dispozitive de memorie de tip D, activate pe front.

k
Starea curent semnale de ieire

I 1 , I 2 ,..., I n
Semnale de control furnizate de un generator de ceas

Q1 , Q2 ,..., Qk

(a)

ik
Semnale de reacie Semnale de intrare

k
Automat combinaional Starea urmtoare

k ntrzieri de
propagare

k
Starea curent semnale de ieire

D1 , D2 ,..., Dk

I 1 , I 2 ,..., I n
(b)

Q1 , Q2 ,..., Qk

Figura 3.3 (a) Schema bloc a unui automat secvenial sincron, (b) schema bloc a unui automat secvenial asincron.

De exemplu, un ciruit de adunare n paralel a dou numere sau un comparator paralel care necesit mai multe cpii ale unui circuit simplu (iteraii ale aceluiai circuit) poate fi proiectat ca un automat secvenial (un sumator serial sau un comparator serial) cu ajutorul unui numr mai mic de componente, conducnd la o cretere a timpului de procesare (se utilizeaz acelai sumator sau comparator de mai multe ori). Atunci cnd viteza este esenial, sunt de preferat implementrile hardware care necesit mai multe circuite i mai puin timp de procesare; totui, n cele mai multe cazuri sunt de dorit implementri care conin mai puine circuite i mai mult timp de prelucrare. n acest mod, automatele secveniale permit proiectantului s decid ntre acordarea unei importane mai mari timpului sau spaiului. Construirea schemelor bloc pentru un sumator serial i pentru un comparator serial sunt dou exerciii lsate studenilor spre rezolvare. 3.2.3 Modelul automatelor secveniale sincrone Multe automate combinaionale au n componen blocuri combinaionale care transmit semnale ctre o unitate de memorie, dup cum se arat n Figura 3.3a. n acest tip de automat, semnalele de reacie se obin din liniile de ieire ale unor circuite basculante de tip D
80

(elemente de memorie) care sunt activate pe frontul semnalului de ceas. Este important s se neleag faptul c fiecare element de memorie are o intrare de control conectat la un semnal de sincronizare, obinut de la un dispozitiv astabil (generator de tact), numit ceasul sistemului. Schema bloc a ceasului sistemului este prezentat n Figura 3.4a. Ceasul sistemului furnizeaz un semnal a crui varia ie ideal este prezentat Figura 3.4b. Aceast form de und arat c semnalul de ieire din generatorul de tact nu pstreaz o stare logic stabil 0 sau 1 pentru foarte mult timp. Un semnal de ceas stabilete momente discrete de timp la care pot aprea evenimente n funcionarea unui sistem.

perioada ceasului =

1 . frecventa ceasului

(3.1)

Multe companii furnizeaz oscilatoare care au la baz cristale de cuar pentru utilizarea lor n construirea generatoarelor de tact. Aceste circuite astabile au frecvene de oscilaie standard i sunt livrate ca atare utilizatorilor, sub forma unui singur chip de circuit integrat. Schema bloc din Figura 3.3a reprezint unul dintre multele modele ale automatelor secvenial sincrone. Acest model indic tipurile de elemente logice sau dispozitive care sunt asociate cu automatele sincrone. Pentru acest model, exist n semnale externe de intrare, k semnale combinaionale, k semnale de ieire, i semnale de reacie i k semnale de control (aceste semnale de control sunt aplicate dispozitivelor de memorare i sunt furnizate de acelai ceas al sistemului). Valorile urmtoare ale celor k semnale de ieire depind de valorile curente ale semnalelor de intrare precum i de valorile variabilelor care reprezint starea curent (cele i semnale care sunt transmise prin reacie ctre intrarea automatului). Cele k semnale de ieire din automatul combinaional se mai numesc semnale de excitaie i se obin prin metodele prezentate n capitolele anterioare pentru sistemele combinaionale. Pentru a iniia un nou set de valori de ieire, nainte de apariia unui front activ al semnalului de ceas, cele k semnale de ieire vor fi stabile i pot fi observate. Dup frontul activ al semnalului de ceas, un nou set de valori de ieire devine stare curent (din nou, dup o ntrziere).
1 CLK 0
Tensiune (stare logic sau nivel)

Ceasul sistemului (generator de tact)

CLK

. . . . Timp

T = 1/ f
(a) (b) Figura 3.4 (a) Schema bloc a generatorului de tact, (b) diagrama de timp a unui semnal de ceas.

81

Valorile curente ale semnalelor de ieire, dup fiecare front activ al semnalului de ceas, depind de semnalele de excitaie. Pentru c semnalele de excitaie determin valorile pe care le vor lua semnalele curente de ieire, aceste semnale de excitaie fie determin semnalele strii curente fie sunt semnalele ce formeaz starea curent, n funcie de tipul de memorie care se folosete. Modelul din Figura 3.3a este acela al unui automat sincron care folosete elemente de memorie construite din circuite bistabile de tip D , iar semnalele D1 , ..., Dk formeaz starea urmtoare. Noile valori pentru cele k semnale ale ieirii se obin dup fiecare ciclu de ceas (dup fiecare front activ), realizndu-se astfel sincronizarea ieirilor cu semnalul de ceas. Automatele a cror funcionare se bazeaz pe un semnal de ceas se numesc automate secveniale sincrone. Restriciile impuse semnalului de ceas i semnalelor de intrare n funcionarea unui automat secvenial sincron sunt ilustrate n Figura 3.5. nainte de apariia fiecrui front activ al semnalului de ceas automatul trebuie s fie stabil. Aceasta nseamn c toate semnalele externe de intrare precum i semnalele de excitaie au avut suficient timp pentru a-i stabili noile. Timpul dintre apariia a dou evenimente temporale reprezint perioada ceasului, T , i se mai numete timp de stare. n automatele secveniale sincrone timpul de stare reprezint timpul minim pe durata cruia automatul poate rmne n starea specificat de variabilele sale de stare, adic timpul minim n care semnalele de ieire i pot pstra valorile curente. Dup apariia fiecrui eveniment temporal, reprezentat de frontul activ 0 1 al semnalului de ceas CLK n Figura 3.5, este permis schimbarea valorilor oricror semnale de intrare.
Tensiune (stare logic sau nivel) Timp Evenimente temporale

Timp de stabilire

Timp de meninere

t su
CLK

th

T
I1

....

I2
Figura 3.5 Restricii impuse semnalului de ceas i semnalelor de intrare pentru un automat secvenial sincron.

82

Toate semnalele de intrare care i modific valoarea, inclusiv semnalele de excitaie, trebuie s aib suficient timp pentru a se stabiliza (atingerea unei valori stabile) nainte de apariia urmtorului front activ al semnalului de ceas. Funcionarea corect a unor dispozitive de memorie impune ca semnalele de excitaie s fie stabile naintea intervalului t su (o scurt perioad de timp n care semnalele de date aplicate la intrarea memoriei trebuie s fie stabile nainte de apariia semnalului activ de ceas). Anumite memorii impun o perioad de meninere t h (o scurt perioad n care semnalele de date aplicate la intrarea memoriei trebuie s fie stabile dup fiecare front activ al semnalului de ceas). Semnalele de excitaie trebuie s fie meninute stabile pn la trecerea intervalului t h . n cazul n care semnalele de excitaie nu respect cerinele referitoare la timpii t su i t h , atunci trebuie s ne ateptm la o funcionare eratic, dezordonat, a automatului; totui, aceste cerine de timp sunt destul de uor de ndeplinit n automatele sincrone. Zonele haurate din Figura 3.5 ilustreaz posibili timpi t su i t h impui de anumite dispozitive de memorie. Perioada dintre momentul n care ncepe t su i momentul n care se ncheie t h este perioada n care semnalele de excitaie trebuie s fie meninute stabile. Amintii-v c semnalele de excitaie ntr-un automat secvenial sunt de asemenea i semnale de date pentru elementele de memorare, dup cum se arat n Figura 3.3a. Intervalul de timp care rmne pn la nceputul urmtoarei perioade t su reprezint perioada de tranziie n care semnalele de excitaie se pot modifica de ctr semnalele externe de intrare. Dac se folosete un ceas mai rapid, atunci vor trebui s se utilizeze circuite combinaionale mai rapide, astfel nct s se respecte timpul t su . Marea majoritate a automatelor secveniale sincrone care se proiecteaz i se construiesc astzi, sunt automate care utilizeaz un semnal de ceas; de aceea, proiectarea automatelor secveniale sincrone va ocupa un loc important n aceast carte. Pe scurt, putem defini un automat sincron ca fiind un sistem ale crui ieiri din blocul de memorie depind de semnalele de excitaie la momente discrete de timp, momente stabilite de ceasul sistemului. 3.2.4 Modelul automatelor secveniale asincrone Automatele secveniale a cror funcionare nu se bazeaz pe un semnal de sincronizare sunt numite automate secveniale asincrone. Acestea pot fi implementate cu ajutorul unor dispozitive combinaionale i conin semnale de reacie, ca n Figura 3.3b. Blocul " k ntrzieri n propagare" poate conine dispozitive de memorie controlate sau necontrolate. n ambele cazuri, intrrile de control ale memoriei nu sunt conectate la un semnal de ceas. Modelul din Figura 8.3b are n semnale
83

externe de intrare, k semnale de excitaie (starea urmtoare), k semnale curente de ieire i i semnale de reacie. Pentru c automatele asincrone nu folosesc un semnal de ceas, ele trebuie s se bazeze pe semnalele externe pentru a obine o schimbare de stare specificat de variabilele de stare. Orice semnal care nu este sincronizat se numete semnal asincron pentru c momentul schimbrii valorii lui (0 1 sau 1 0) este impredictibil. Un automat asincron poate fi definit ca un automat a crui stare curent depinde de semnalele de excitaie la momente de timp determinate de modificarea uneia din intrrile externe. O modificare a unui semnal de intrare poate fi schimbarea 0 1, sau schimbarea 1 0. De asemenea, o modificare poate fi schimbarea 0 1 i napoi n 0 (impuls pozitiv) sau 1 0 i napoi n 1 (impuls negativ). Pentru ca automatele asincrone s funcioneze corect, ele trebuie s fie restricionate astfel nct s funcioneze fie n modul fundamental fie n modul impuls. n modul fundamental, semnalele externe de intrare se pot schimba fiecare la un anumit moment de timp (0 1 sau 1 0), iar automatul trebuie s fie ntr-o stare stabil (toate semnalele din automat s fie stabile) atunci cnd apare o schimbare. Fiecare modificare a unui semnal extern de intrare semnific apariia unui eveniment temporal, ca n Figura 3.6a. Restriciile impuse semnalelor externe de intrare pentru funcionarea automatelor asincrone n modul impuls sunt ilustrate n Figura 3.6b, pentru impulsuri pozitive. Fiecare impuls pozitiv (o schimbare din 0 n 1 i iar n 0) al unui semnal de intrare, semnific un eveniment temporal. Automatul trebuie s fie stabil la apariia fiecrui impuls. Desigur, pot fi realizate i automate care s funcioneze n modul impuls, cu impulsuri negative. Dac semnalele I1 i I 2 din Figura 3.6b se complementeaz, se obin trei impulsuri negative.
Tensiune (stare logic sau nivel) Timp Evenimente temporale

4
(a)

I1 I2
Evenimente temporale

....

I1 I2

....

(b)

Figura 3.6 Restricii impuse semnalelor externe pentru automatele asincrone: (a) modul fundamental, (b) modul impuls.

84

Proiectarea automatelor asincrone nu este la fel de simpl ca aceea a automatelor sincrone. Pentru a simplifica oarecum aceast sarcin, n blocurile notate "ntrziere n propagare" din Figura 3.3b pot fi folosite dispozitive de memorie. Chiar i aa, decizia de a proiecta un automat asincron se ia numai atunci cnd nu se poate utiliza sincronizarea oferit de un semnal de ceas. Acesta poate fi cazul n care un automat sincron funcioneaz prea lent din cauza frecvenei impuse a unui semnal de ceas, sau pur i simplu nu este disponibil un semnal de ceas pentru o aplicaie specific. Dispozitivele de memorie (latch-uri sau flip-flop) sunt de fapt automate asincrone pentru c funcionarea lor nu se bazeaz pe un semnal de ceas.

3.3 DEFINIII. PROPRIETI. STRUCTURI


n acest paragraf vom introduce principalele tipuri de automate i vom prezenta cteva definiii [2], [24] care vor ajuta la caracterizarea, descrierea i proiectarea automatelor digitale. Definiia 3.1 Un automat Mealy este un cvintet:

A = ( I , S , O, f , g ) ,

(3.2)

n care elementele componente sunt: I mulimea configuraiilor binare de intrare. Un element i I se numete cuvnt (vector) de intrare. De exemplu, i = in1in 2 ...i1i0 , cu ik {0,1} , k = 0,1,..., n 1 reprezint un vector binar de intrare cu n bii. S mulimea configuraiilor de stare. Un element s S se numete vector de stare (stare a sistemului). De exemplu, s = s m 1 s m 2 ...s1 s 0 , cu s k {0,1} , k = 0,1,..., m 1 reprezint un vector de stare sau starea automatului respectiv. O mulimea configuraiilor binare de ieire. Un element o O se numete cuvnt (vector) de ieire. De exemplu, o = o p 1o p 2 ...o1o0 , cu

ok {0,1} , k = 0,1,..., p 1 reprezint un vector binar de ieire cu p


bii.

f funcia de tranziie a strilor f : I S P * (S ) ,


(3.3)

unde P * ( S ) este mulimea nevid a prilor lui S . Modul n care s-a definit funcia f ne permite s caracterizm modul n care pot evolua strile unui automat Mealy: starea urmtoare este determinat de vectorul de intrare aplicat la momentul curent precum i de starea curent. g funcia de tranziie a ieirilor

85

g : I S P * (O) ,

(3.4)

unde P * (O) este mulimea nevid a prilor lui O . Modul n care s-a definit funcia g ne permite s caracterizm modul n care pot evolua ieirile unui automat Mealy: ieirea este determinat de combinaia curent de intrare i de starea curent. Definiia 3.2 Un automat Moore este un cvintet

A = ( I , S , O, f , ) ,

(3.5)

n care elementele componente au aceleai semnificaii ca la automatul Mealy, cu excepia fuciei de tranziia a ieirilor. n acest caz, este funcia de tranziie a ieirilor

: S P * (O) ,

(3.6)

adic, ieirile unui automat Moore sunt determinate numai de starea curent; intrrile nu influeneaz n mod direct ieirile. Pentru c, n general, unui anumit element din I S (Mealy) sau din S (Moore) i pot corespunde mai multe elemente din S sau din O , am folosit mulimea prilor acestor ultime mulimi, tranziia unui automat putnd fi i nederminist. Definiia 3.3 Un automat A se numete determinist dac

i I , s S , card ( f (i.s )) = 1 i card ( g (i, s )) = 1 ,


pentru un automat Mealy i

i I , s S , card ( f (i, s )) = 1 i card ( ( s )) = 1 ,


pentru automat Moore. Cu alte cuvinte, pentru orice vector de intrare i orice vector de stare, exist funcii unice de tranziie a strilor i ieirilor. Evident, dac un automat nu este determinist atunci el este nedeterminist. n cazul automatelor deterministe, funciile care apar n cele dou definiii sunt definite n modul urmtor:

f :I S S g :I S O

(3.7) (3.8)

(3.9) Definiia 3.4 n cazul n care mulimile I , S i O sunt finite, automatul se numete finit.
86

:S O

n aceast lucrare ne vom referi numai la automate deterministe finite, cu excepia cazurilor cnd vom specifica altfel. Definiia 3.5 Un ir de stri ale automatului A, {s 0 , s1 ,..., s n ,...} se numete evoluie a automatului, iar starea s0 se numete stare iniial. O evoluie admisibil este o evoluie cu proprietatea:

n N , i I , astfel nct s n +1 f (i, s n ) .


Uneori se impune pentru evoluiile admisibile ale automatului ca starea iniial s aparin unei submulimi S1 S . Definiia 3.6 Dac S1 S i card S1 1 , atunci automatul se numete automat slab iniial. n cazurile extreme card S1 = 1 , S1 = S , automatul se numete iniial respectiv neiniial iar pentru S1 S , card S1 > 1 , automatul se numete strict slab iniial. Definiia 3.7 Automatul A = ( I , S , O , f , g ) este un subautomat al automatului A = ( I , S , O, f , g ) dac: I I , S S , O O , f = f | S I i g = g | S I . Un automat nu ajunge n strile iniiale printr-o anumit evoluie. n mod curent, automatul este adus ntr-o stare iniial n urma unei comenzi din exterior (care poate fi diferit de semnalele aplicate la intrri). Definiia 3.8 O stare a unui automat iniial este inaccesibil dac orice evoluie n spaiul strilor, care pornete din stari iniiale, nu conine starea respectiv. Aadar, putem vorbi despre stri inaccesibile numai n cazul automatelor iniiale. Definiia 3.9 Dou stri sa, sb S sunt echivalente dac evoluia automatului, pornind din aceste stri, genereaz la ieire iruri de configuraii binare identice. Definiia 3.10 Un semiautomat este un triplet

S = (I , S , f ) ,

(3.10)

n care elementele componente au aceleai semnificaii ca i n Definiia 3.1. A = ( I , S , O, f , g ) este Semiautomatul ataat automatului semiautomatul A = (I , S , f ) . (3.11) Un semiautomat este finit i/sau determinist n sensul n care aceste proprieti au fost definite pentru automate. Conceptul de semiautomat
87

separ acea parte intern a unui automat care este responsabil de evoluia intern, de autonomia propriuzis. n general, optimizarea unui automat se reduce la optimizarea semiautomatului asociat. Dac dintr-un automat extragem componentele necesare pentru implementarea fuciilor de ieire, obinem semiautomatul asociat. Definiia 3.11 Un automat este imediat dac:

g (im (t ), s n (t )) = ok (t ) (Mealy),

( s n (t )) = ok (t ) (Moore).
Adic, starea curent (i eventual intrarea curent) determin ieirea la acelai moment t . Definiia 3.12 Un automat este cu ntrziere dac:

g (im (t ), s n (t )) = ok (t + 1) (Mealy),

( s n (t )) = ok (t + 1) (Moore).
Adic, ieirea curent depinde de starea (i eventual intrarea) din ciclul anterior de ceas. Aadar, modul n care se formeaz ieirea unui automat determin clasificarea prezentat n Tabelul 3.1.
Tabelul 3.1 Tipuri de automate n funcie de ieire.

Tip ieire Automat Mealy Moore

Imediat

Cu ntrziere

g (im (t ), s n (t )) = ok (t )

g (im (t ), sn (t )) = ok (t + 1)

( s n (t )) = ok (t )

( s n (t )) = ok (t + 1)

Structurile celor patru tipuri de automate sunt prezentate n Figura 3.7. Acestea conin un sistem combinaional i elemente de memorie (registre) comandate pe frontul semnalului de ceas. Rezult nc o dat modul n care aceste automate reacioneaz la variaiile semnalelor de intrare. Toate cele patru tipuri de automate sunt semnificative deoarece, n funcie de aplicaie, ele se integreaz n mod diferit, ca modalitate de a reaciona, ntr-o structur concret. Prin SLC am notat structurile logice de tip combinaional din componena automatelor iar prin R am notat elementele de memorie de tip registru (paralel paralel). Structura unui semiautomat este prezentat n Figura 3.8 i este destul de clar c ea nu corespunde nici unei realizri concrete. Un sistem fr ieire este lipsit de sens. Totui, din punct de vedere teoretic i n practica proiectrii acest concept se va dovedi util.
88

n schemele bloc de mai sus, am notat prin SLC sistemele logice asociate automatelor iar prin R am desemnat elementele de memorie de tip registru. Aceste elemente de memorie pot fi reprezentate de bistabile de tip D, de tip J-K, de tip T sau de tip S-R, toate acestea comutnd pe frontul (cresctor sau descresctor) al semnalului de ceas. Etapele care trebuie parcurse pentru proiectarea unui automat sincron sunt prezentate n Figura 3.9.

3.4 REPREZENTAREA AUTOMATELOR


A reprezenta un automat nseamn a reprezenta cele 3 funcii de tranziie f , g i . Exist mai multe moduri de reprezentare a acestort funcii, n funcie de etapa de proiectare sau de analiz a funcionrii automatului respectiv.
Mealy imediat
I I

Mealy cu ntrziere SLC


S S CLK O

SLC
O CLK

Moore imediat
I I

Moore cu ntrziere SLC1


S CLK

SLC1
CLK S

SLC2
O

SLC2

R1

R1
O

Figura 3.7 Structurile automatelor Mealy i Moore.

SLC1
CLK S
Figura 3.8 Structura unui semiautomat.

89

Etapa

Comentarii

2 3

Se micoreaz numrul de bistabile utilizate Determinarea numrului minim de Codificarea binar a strilor bistabile i asignarea variabilelor influeneaz complexitatea de stare (o variabil pentru fiecare sistemului combinaional bistabil), apoi codificarea strilor Alegerea tipului de bistabil, Ecuaiile de excitaie se obin determinarea ecuaiilor pentru mai uor pentru bistabile de semnalele de excitaie ale tip D. bistabilelor, determinarea ecuaiilor de ieire (Moore i/sau Mealy) Desenarea schemei logice cu pori Ceasul automatului se i circuite basculante bistabile conecteaz la intrrile de control ale tuturor bistabilelor astfel nct s fie comandate n mod sincron.
Figura 3.9 Etapele parcurse la proiectarea unui automat sincron.

Organizarea specificaiilor sub una din formele: tabel stare curent/stare urmtoare, graf de stri, organigram sau diagram de timp Reducerea numrului de stri

Grafuri de stare. Reprezentarea prin grafuri se face asociind fiecrei stri cte un nod al grafului n timp ce tranziiilor dintre stri li se asociaz arce din graful respectiv. Arcele vor fi orientate i marcate cu condiia care determin tranziia (atunci cnd aceast tranziie este condiionat). Ieirea este marcat distinct la automatele Mealy i la cele Moore. Astfel, pentru automatul Mealy, ieirea este reprezentat pe arc, iar pentru Moore ieirea este asociat nodului care reprezint starea. Exemplul 3.1 Vom folosi ca exemple n acest paragraf dou automate, unul Mealy i unul Moore. n Figura 3.10a este reprezentat un automat Mealy cu trei stri s0 , s1 , s 2 . Combinaiile binare acceptate la intrare sunt i1 , i2 , iar mulimea O are patru elemente, o0 , o1 , o2 , o3 . S = {s0 , s1 , s2 } , I = {i1 , i2 } , O = {o0 , o1 , o2 , o3 } . Dac starea curent este s1 , exist o singur tranziie, necondiionat, n starea urmtoare s0 . n acest caz, la ieire se genereaz vectorul o1 . Din starea curent s0 , dac la intrare se
90

aplic i1 , atunci se genereaz la ieire o2 , iar starea urmtoare devine s2 . Tot din s0 , dac la intrare se aplic i2 se obine la ieire o1 , iar starea urmtoare este s1 . Din starea s 2 , automatul va trece n s1 genernd la ieire o3 dac la intrare se aplic i1 . Dac n starea curent s 2 se aplic la intrare i2 , se genereaz la ieire o0 iar starea nu se schimb. n Figura 3.10b este reprezentat un automat Moore. Conform definiiei, fiecare stare are asociat o configuraie binar de ieire. n acest caz, mulimea strilor este S = {s 4 , s5 , s 6 , s 7 , s8 } , mulimea configuraiilor de intrare i cea a configuraiilor de ieire sunt aceleai ca i la automatul Mealy I = {i1 , i2 } , O = {o0 , o1 , o 2 , o3 } . n starea s 4 ieirea este o1 , n starea s5 ieirea este tot o1 , n starea s6 ieirea este o2 , n starea s7 ieirea este o3 iar n starea s8 ieirea este o0 . Tranziia strilor depinde de intrrile aplicate. Astfel, din starea curent s 4 automatul evolueaz n starea s5 sau s6 , dup cum la intrare se aplic i2 sau nu se aplic i2 (se aplic i1 ). Celelalte tranziii pot fi interpretate n mod similar. Diagramele de timp pot oferi uneori o reprezentare sugestiv a comportamentului unui automat. S presupunem c dorim s obinem un automat care s furnizeze la ieire un semnal cu frecvena f Z = f CLK / 4 . n diagramele de timp din Figura 3.11 s-a reprezentat semnalul de ceas al sistemului, CLK , mpreun cu semnalul de ieire Z ( TZ = 4TCLK , unde T = 1 f ). n continuare, ne vom referi la maina sincron care este reprezentat n diagramele de timp din Figura 3.11 ca fiind maina M1. Pentru c evenimentele temporale apar la tranziia semnalului de ceas din 0 n 1, pentru implementarea acestui automat se vor folosi circuite basculante bistabile care comut pe frontul semnalului de ceas.
( , o1 )

s 4 , o1
s1 i2

i1

s 6 , o2

s0
(i2 , o1 )
(i1 , o 2 )

s2

(i1 , o3 )

s 5 , o1 i1 s 7 , o3
i1
(b)

i2 i2

(i2 , o0 )
(a)

s8 , o0

Figura 3.10 (a) Graful de stare al unui automat Mealy, (b) graful de stare al unui automat Moore.

91

Evenimente temporale Stri Intrare CLK

1 a

2 b

3 c

4 d

5 a

6 b

TCLK
Ieire

Z
TZ
Figura 3.11 Diagramele de timp pentru maina M1.

a,1
Figura 3.12 Graful de stare pentru maina M1.

b,1 c,0

d ,0

Pentru a simplifica modul n care se utilizeaz diagramele de timp, ntrzierile de propagare pentru obinerea semnalului de ieire Z la momentele 1, 3, 5, etc. nu sunt reprezentate. Atunci cnd timpul este o variabil critic sau atunci cnd un automat nu funcioneaz dup cum ne ateptam (acest lucru se poate ntmpla la frecvene ridicate ale semnalului de ceas, dac se utilizeaz dispozitive lente i/sau circuite cu niveluri logice multiple), trebuie s se deseneze diagrame de timp separate, pentru a verifica intervalele critice pentru diferite trasee ale semnalelor; este cazul sistemelor de dimensiuni mari. Din diagramele de timp pentru maina sincron M1, putem obine graful de stare Moore din Figura 3.12. Pentru c la implementarea acestui automat vor fi utilizate bistabile activate pe frontul semnalului de ceas, tranziiile dintr-o stare n alta apar atunci cnd semnalul de ceas i schimb valoarea din 0 n 1. n diagrama de stri Moore sunt menionate valorile ieirii Z pentru fiecare dintre cele patru stri ale mainii a , b , c i d . Valorile ieirii Z sunt plasate n nodurile care reprezint strile, pentru c la o main Moore ieirea depinde univoc de starea curent. Exemplul 3.2 n Figura 3.13a este prezentat graful de stri al unui automat sincron de tip Moore, pe care-l vom numi M2, iar n Figura 3.13b este prezentat graful de stri a unui automat sincron de tip Mealy, pe care-l vom numi M3. Att M2 ct i M3 au o intrare extern X . Atunci cnd intrarea X
92

este 1, fiecare automat furnizeaz un semnal de ieire Z a crui frecven este 1/4 din frecvena semnalului de ceas al sistemului, ca i maina M1 reprezentat prin diagrama de timp din Figura 3.11. Atunci cnd X = 0 , la urmtorul front activ al ceasului, att M2 ct i M3 trec n starea d . Ambele maini, M2 i M3, rmn n starea d pn cnd X = 1 . Starea urmtoare este n acest caz a . S presupunem c la intrarea celor dou maini, M2 i M3, se aplic secvena de 17 bii 00111101100010110, unde bitul cel mai semnificativ al acestui numr binar reprezint prima valoare a intrrii X . Schimbrile care apar n intrarea asincron X cu aproximativ 1/4 de ciclu nainte de apariia urmtorului front activ al ceasului, sunt prezentate n Figura 3.14. Vom presupune c valoarea iniial a ieirii este Z = 0 , iar starea iniial a mainii este d . Ignornd ntrzierile care apar n semnalul de ieire, obinem diagrama de timp pentru M3 (Figura 3.14). Ieirea Mealy se poate modifica fie dup apariia unui front activ al semnalului de ceas, fie imediat dup apariia unei schimbri n semnalul de intrare. O ieire Moore i poate schimba valoarea numai dup apariia frontului activ al semnalului de ceas. Desenarea diagramei de timp pentru maina M2 este un exerciiu pentru cititor.
1

a,1
0 0

1,1

a
0,0 0,0

1,0

b,1
1

d ,0
0 0 1

b
1,1

d
0,0 0,0 1,0

c,0
(a)

c
(b)

Figura 3.13 (a) Graful de stri pentru maina M2, (b) graful de stri pentru maina M3.
Evenimente temporale Stri Intrare CLK Intrare

1 d

2 d

3 a

4 b

5 c

6 d

7 d

8 a

9 b

10 d

11 d

12 13 d a

14 15 16 d a b

X Z

Ieire

Figura 3.14 Diagramele de timp pentru maina M3.

93

Tabele de tranziie. Tabelele de tranziie reprezint tot o form primar de descriere a funcionrii unui automat. n Figura 3.15 sunt reprezentate sub forma unor tabele de tranziie funciile de tranziie ale automatelor Mealy i Moore care au fost introduse n Figura 3.10. n Figurile 3.15a i 3.15b sunt tabelele care reprezint funciile de tranziie a strilor, f , pentru automatele Mealy i respectiv Moore. n Figurile 3.15c i 3.15d sunt tabelele ce reprezint funciile de tranziie a ieirilor, g i , pentru automatele Mealy i respectiv Moore. Pentru tabelul de tranziie a strilor, pe coloane se reprezint starea curent iar pe linii se reprezint combinaiile de intrare. n tabel se trece starea urmtoare n care ajunge automatul pornind de la o stare curent i aplicnd o anumit combinaie de intrare (Mealy i Moore). Pentru tranziia ieirilor, pe coloane se reprezint starea curent iar pe linii se reprezint combinaiile de intrare (Mealy) sau ieirile. n tabel se trece ieirea automatului n funcie de starea curent combinaia de intrare (Mealy) sau n funcie de starea curent (Moore). Astfel, pentru automatul reprezentat prin tabelul de tranziie a strilor din Figura 3.15a, din starea s2 , dac la intrare se aplic i1 , starea urmtoare va fi s1 ; dac starea curent este s1 iar la intrare se aplic i2 , starea urmtoare devine s0 . La fel pot fi interpretate i celelalte tabele. Observm n tabelul din Figura 3.15d c fiecrei stri i se asociaz o configuraie binar de ieire (Moore). Organigrame. Organigramele pot fi reprezentate sub dou forme: organigrame simbolice, n care strile, combinaiile de intrare i de ieire apar cu numele lor s0 , s1 , i1 , i2 , .a.m.d;
S

s0
s2 s1
(a)

s1

s2 s1 s2

s4

s5
s4 s4
(b)

s6 s7 s8

s7 s5 s5

s8 s7 s8

i1 i2

s0 s0

i1 i2

s6 s5

s0
o2 o1
(c)

s1 o1 o1

s2

s4 o1

s5
o1

s6
o2

s7 o3

s8 o0

i1 i2

o3 o0

(d)

Figura 3.15 (a) Tranziia strilor pentru automatul Mealy descris n Figura 3.10, (b) tranziia strilor pentru automatul Moore descris n Figura 3.10, (c) tranziia ieirilor pentru automatul Mealy descris n Figura 3.10, (d) tranziia ieirilor pentru automatul Moore descris n Figura 3.10.

94

organigrame binare, n care n locul numelor apar codurile binare ale strilor, vectorilor de intrare i ai celor de ieire. Pentru ambele tipuri de organigrame se folosesc simbolurile: cercuri pentru a reprezenta strile; dreptunghiuri pentru a reprezenta ieirile; romburi pentru a reprezenta configuraiile binare de intrare. Pentru automatele de tip Moore nu se utilizeaz un simbol separat pentru stare, dar vom nota alturi de dreptunghiul asociat ieirii numele strii respective. Organigramele simbolice asociate automatelor prezentate n Figurile 3.10a i 3.10b sunt prezentate n Figura 3.16a i respectiv Figura 3.16b. Pentru a trece de la organigrame simbolice, n care se folosesc numele strilor i ale combinaiilor de intrare i de ieire, la organigrame binare, trebuie s se stabileasc codurile binare asociate elementelor celor trei mulimi care definesc automatul I , S , O . ntr-o problem concret de proiectare, mulimile I i O sunt codificate indirect prin enunul problemei. Mulimea S poate fi definit de proiectant deoarece ea depinde de structura intern a automatului care nu este transparent la borne. Vom alege pentru vectorii de intrare o codificare pe un bit ( A ), pentru stri o codificare pe doi bii ( Q1 , Q0 , respectiv Q2 , Q1 , Q0 pentru automatul Moore), iar pentru ieiri o codificare pe trei bii ( O2 , O1 , O0 ).
o1
DA NU

s0
NU

s4
DA

i1

i1

o1 s1
NU

o2 s2
DA

o1

o2

s6
DA

s5

NU

i2

o3 s7
DA

o0
i1

s8
NU

o1

i1

o3

o0

(a)

(b)

Figura 3.16 (a) Organigrama simbolic pentru automatul Mealy introdus n Figura 3.10a, (b) organigrama simbolic pentru automatul Moore din Figura 3.10b.

95

Tabelele din Figura 3.17 prezint codificrile alese pentru automatele introduse n Figurile 3.10a i 3.10b. Se obin astfel organigramele din Figurile 3.18a i 3.18b. Tabele de adevr. Tabelele de adevr sunt reprezentri secundare care se obin dintr-o reprezentare primar, de exemplu dintr-o organigram binar. Aceste tabele reprezint tabelele de adevr asociate structurilor logice combinaionale care intr n structura automatului. n exemplele care urmeaz variabilele care reprezint starea urmtoare vor + + fi notate prin Q2 , Q1+ , Q0 . Ele sunt obinute la ieirea SLC asociat automatului i se aplic la intrrile registrului de stare R. Automatul Mealy al crui tabel de tranziie este prezentat n Figura 3.15, poate fi + reprezentat prin tabelul de adevr din Figura 3.19a. Pentru Q1+ Q0 = 00 funcia de tranziie nu a fost definit pentru c acest cod nu este folosit, automatul avnd numai trei stri. O variant posibil pentru tabelul de adevr este aceea n care variabilele care descriu intrarea automatului sunt incluse n celulele tabelului, ca n Figura 3.19b. Am notat prin variabilele don't care. Tabelul de adevr cu variabilele de intrare incluse pentru automatul Moore este prezentat n Figura 3.20. Starea 000 este urmat de starea 111 dac A = 0 sau 011 dac A = 1 , aadar succesorul poate fi reprezentat prin A11 n tabelul de tranziie. Celelalte linii care definesc tranziia strii au fost completate n mod similar.
i i1 i2 A 0 0
S Q1 0

s0 s1 s2

Q0 1
0 1
(a)

o0 o1 o2 o3

O2 1

O1 0

O0 0
1 0 1

1 1

0 1 1

0 1 1

i i1 i2

A 0 0

S s4

Q2 0

Q1 0

s5 s6 s7 s8

0 0 1 0

1 0 1 1
(b)

Q0 1 0
0 1 1

O o1 o2

o0
o1 o2

O2 1

O1 0

O 0
0

0 1 1

0 1 1

o3
o4

o3

Figura 3.17 (a) Codificrile binare pentru elementele celor trei mulimi care definesc automatul Mealy introdus n Figura 3.10a, (b) codificrile binare pentru elementele celor trei mulimi care definesc automatul Moore introdus n Figura 3.10b.

96

01
1

Q1Q0

O2 O1O0

001
0

001

Q2 Q1Q0

O2 O1O0
110 001
010 0

001 10
0

110

000

11
1

111
111 0

100

011

001

111
(a)

100
(b)

Figura 3.18 (a) Organigrama binar pentru automatul Mealy introdus n Figura 3.10a, (b) organigrama binar pentru automatul Moore introdus n Figura 3.10b.

Stare curent Intrare Stare urmtoare

Ieire
O1

Q1
0 0 0 0 1 1 1 1

Q0
0 1 0 1 0 1 0 1

A
0 1 0 1 0 1 0 1

Q1+ 1 1 0 0 1 1

Q0+ 1 0 1 1 0 1

O2

O0

1 0 0 0 1 1

1 0 0 0 1 0 Ieire
O1

0 1 1 1 1 0

(a)

Stare curent

Stare urmtoare

Q1
0 0 1 1

Q0
0 1 0 1

Q1+ 1 0 1

Q0+ A 1 A

O2

O0
A 1 A
(b)

A 0 1

A 0 A

Figura 3.19 (a) Tabelul de adevr pentru automatul Mealy introdus n Figura 3.10a, (b) tabelul de adevr cu variabile incluse pentru acelai automat.

97

Stare curent
Q2 Q1

Stare urmtoare
+ Q2

Ieire
O2 O1

Q0

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

A 0 0 A 0

Q1+ 1 A 0 1 1

Q0+ 1 0 1 1 0

O0

1 0 0 1 1

1 0 0 0 1

0 1 1 0 1

Figura 3.20 Tabelul de adevr cu variabile incluse pentru automatul Moore introdus n Figura 3.10b.

Diagrame de tranziie. Diagramele de tranziie se obin direct din tabelele de adevr i ofer o reprezentare mai compact a automatelor, cu posibilitatea de minimizare a funciilor ce caracterizeaz CLC-ul asociat. n Figura 3.21 sunt prezentate diagramele Karnaugh asociate automatului Mealy introdus n Figura 3.10a. n Figura 3.21a sunt obinute funciile f i g pornind de la o diagram de referin. Aceste diagrame sunt detaliate n Figura 3.21 b, astfel nct s se obin expresiile minimizate pentru funciile de transfer:

Q1+ = Q0 ,
+ Q0 = Q0 + Q1 A + Q1 A ,

(3.12) (3.13) (3.14) (3.15) (3.16)

O2 = Q1 Q0 + Q1 A , O1 = Q0 A , O0 = Q0 + Q1 A + Q1 A .

Diagramele de tranziie asociate automatului Moore introdus n Figura 3.10b sunt prezentate n Figura 3.22. Din aceste diagrame se obin expresiile simplificate pentru funciile f i :
+ Q2 = Q2 Q1 Q0 A + Q1 Q0 A

(3.17) (3.18)

Q1+ = Q1 Q0 + Q1 Q0 + Q0 A ,
98

Q1

11
Q0

01 00

f Q0

Q1

g
1 A
(a)

Q1 Q0

1 A 01
Q1+ Q0+

10

1 A A 00 1
O2 O1O0

A A A

Q1

Q1

Q1

Q1

Q1

1
Q0

1
Q0

Q0

1 0
O2
(b)

A
Q0

Q0

0
Q1+

1
Q0+

0
O1

A 1
O0

Figura 3.21 (a) Diagramele Karnaugh pentru automatul Mealy introdus n Figura 3.10a, (b) Diagramele Karnaugh detaliate pentru variabilele de stare i pentru cele de ieire.

Q2

Q1 1 1 0 1 1 1 0 1 1 0 1 0

Q2

Q1


+ 2 + 1 + 0

010
Q0
(a)

A 11

001

100 101 001 000

0 A 0

A 11

Q2 Q1

Q0

Q Q Q
111 001
Q0


Q2

111

001 110
Q2

O2 O1O0

Q2

Q1


+ Q2

0
Q0
Q2

Q1


Q1+
Q2

1
Q0

1
A

0 1

Q1

0
Q0
Q2

1 0

1 1

Q0+
0 0 0 1
Q1

Q1


O2

1
Q0

1 0

0 1

Q1


O1

1
Q0
(b)


O0

1
Q0

0 1

1 0

Figura 3.22 (a) Diagramele Karnaugh asociate automatului Moore descris n Figura 3.10a, (b) Diagramele detaliate pentru variabilele de stare i pentru cele de ieire.

99

+ Q0 = Q 0 + Q2 Q1 ,

(3.19) (3.20) (3.21) (3.22)

O2 = Q1 Q0 + Q1 Q0 , O1 = Q2 + Q1 Q0 , O0 = Q2 + Q1 Q0 + Q1 Q0 .

3.5 CODIFICAREA STRILOR


Problema fundamental care se pune n realizarea concret a automatelor finite este aceea a optimizrii semi-automatului SA = f ( I , S , f ) care intr n structura automatului finit. Inginerul proiectant are maxim libertate n obinerea funciei de tranziie a strii. Efecte importante de minimizare global sau de realizabilitate n condiii concrete se pot obine printr-o convenabil codificare binar a strilor automatului. Codificarea elementelor mulimilor I i O este strict determinat prin definirea iniial a automatului. Aceste coduri sunt impuse de contextul n care va funciona automatul. Codificarea elementelor mulimii S ntr-un nod sau altul nu afecteaz funcionarea automatului la nivul definiiei abstracte, ci este afectat numai mrimea (complexitatea) structurii care implementeaz automatul finit. Codurile elementelor din S nu sunt niciodat accesibile la borne. Efectele codificrii sunt ns foarte importante [24], dup cum vom vedea n continuare, n realizarea concreat a unui automat. Exemplul 3.3 Vom reface calculele ce definesc SLC (sistem logic de tip combinaional) asociat automatului Mealy descris prin organigrama simbolice din Figura 3.16a. Vom modifica numai codul asociat strii s1 care devine 00 in loc de 10, cum a fost n Figura 3.18a. n Figura 3.23 este prezentat noua organigram iar n Figura 3.24 sunt prezentate diagramele de tranziie a strii. Din diagramele de tranziie se obin expresiile pentru starea urmtoare:

Q1+ = A Q1 + A Q1 Q0 ,
+ Q0 = Q1 A + Q1 A + Q0 .

(3.23) (3.24)

Se poate observa c funciile logice care definesc tranziia strii sunt mai complexe dect cele obinute cu prima variant de codificare. Aadar, codificarea strilor influeaneaz complexitatea automatului.
100

01

1
001 s1 00
001

0
110

11
0
A

1
100

111

Figura 3.23 Organigrama binar modificat pentru automatul Mealy introdus n Figura 4.10a.

Q1

Q1

11
Q0

01 00
Q0

10

A A A A 01

Figura 3.24 Tranziia strilor pentru automatul Mealy, cu noua codificare a strilor.

Pentru implementarea mainii M1 sunt necesare minim trei elemente bistabile, pentru c automatul are patru stri. Dac din tabelul de implicaii am fi gsit c M1 necesit numai trei stri (adic dac dou stri ar fi fost identice sau echivalente), am fi avut nevoie tot de minim trei bistabile pentru M1. Dac am fi descoperit din tabelul de implicaii c M1 are numai dou stri (dou perechi de stri ar fi fost identice sau echivalente), am fi avut nevoie de cel puin un element bistabil pentru implementarea mainii M1. Pentru c avem nevoie de dou bistabile, exist dou variabile de stare (cte una pentru fiecare bistabil) pe care le putem numi Q1 i Q2 . Aceste ieiri ale elementelor bistabile formeaz patru stri diferite, a , b , c i d , crora le putem asigna codurile Q1Q2 = 00 01 10 i 11 n orice ordine. Secvena sau ordinea de asignare a codurilor pentru toate strile automatului este arbitrar n proiectarea automatelor sincrone, dar alegerea unei anumite codificri afecteaz complexitatea att a ecuaiilor de excitaie pentru elementele bistabile, a ecuaiilor care determin starea urmtoare precum i a ecuaiilor de ieire. Au existat multe ncercri de obinere a unei proceduri generale care s conduc la o codificare optim a strilor automatelor; adic, selectarea acelor coduri care s conduc la o implementare cu un unumr minim de componente. Aceast problem
101

este destul de complex i, n general, necesit folosirea unui algoritm de cutare dificil de implementat. Totui, putem ncerca recomandri pentru codificarea strilor astfel nct s obinem rezultate practice utile. Codificarea strilor conform principiului dependenei reduse n funcie de o variabil, presupune ca strile care urmeaz unei stri date trebuie s fie codificate astfel nct un singur bit al codului s depind de aceast variabil. Fragmentul de organigram din Figura 3.25a are strile codificate cu dependen redus fa de variabila de intrare B . n adevr, codurile strilor care sunt separate prin variabila B sunt s 2 i s3 , adica 010 i 011 sau 01B adic, numai bitul cel mai puin semnificativ depinde de variabila B . n fragmentul din Figura 3.25b codificarea este realizat cu dependen redus fa de variabila A astfel: pentru b = 0 codurile care sunt separate prin variabila A sunt 101 i respectiv 111, 1A1 , iar dac b = 1 strile separate prin A sunt 101, respectiv 100, adic 10 A . Codificarea strilor cu variaie minim presupune ca strile succesive s fie codificate astfel nct codurile s difere printr-un numr minim de bii (dac este posibil numai printr-un singur bit). n Figura 3.26 se exemplific o codificare cu variaie minim. Starea s1 (010) poate fi urmat de una din strile s 2 (000), s3 (110) sau s 4 (011). Toate aceste stri, s2 , s3 i s 4 , difer printr-un singur bit de starea s1 , adic s-a realizat o codificare cu variaie minim. Codurile strilor separate prin B sunt 110 i 011, adic B1B , adic nu s-a realizat o codificare cu dependen redus fa de variabila B .

0
s1 101 s2 010

A
0

1 1
s3 011
(a)

s1 101

A*
0

1 1
s3 100
(b)

B*

s2 111

Figura 3.25 Dou exemple de codificare a strilor conform principiului dependenei reduse (a) fa de variabila de intrare B , (b) fa de variabila de intrare A .

102

s1 010

s0
s1

0
s2 000

A
0

1 1
s4 011
s2

A
s3 110

A
s3

Figura 3.26 Exemplu de codificare Figura 3.27 Imposibilitatea a strilor conform principiului variaiei codificrii cu variaie minim pe o bucl cu trei stri. minime.

Nu n orice situaie e posibil o codificare cu variaie minim. S considerm de exemplu fragmentul de organigram din Figura 3.27. n acest caz nu poate fi realizat o codificare cu variaie minim pentru toate strile. Dac s1 difer de s0 printr-un singur bit, iar fa de s2 ( s1 s2 ) tot printr-un singur bit, atunci s2 i s0 vor trebui s difere prin cel puin 2 bii. Aadar, pe o bucl cu trei stri nu poate fi realizat codificarea cu variaie minim n cazul cel mai favorabil, adic al diferenei de un singur bit. Cele dou modaliti de codificare sunt incompatibile. Ele pot fi folosite mpreun la codificarea strilor unui automat, dar numai pe poriuni distincte ale organigramei. Automatele cu intrri asincrone vor fi proiectate astfel nct codificarea strilor s respecte principiul dependenei reduse fa de variabilele de intrare care nu comut sincron cu ceasul automatului. Vom lua n considerare din nou fragmentul de organigram din Figura 3.26, cu A = 1 i B o variabil de intrare care comut asincron fa de ceas. Starea care urmeaz strii 010 va fi, B 1 B . Bitul cel mai semnificativ al strii va fi calculat de un sistem logic de tip combinaional iar bitul cel mai puin semnificativ al strii va fi calculat + de alt sistem logic de tip combinaional, rezultnd astfel c ieirile Q2 i
+ Q0 nu vor comuta sincron una fa de celalt. Mai mult, timpii de set-up

ai bistabilelor asociate celor doi bii de stare nu pot fi identici. De aici rezult c starea care urmeaz strii 010 poate fi, n egal msur, 010, 011, 110 sau 111, deoarece frontul activ al ceasului fiind complet + + asincron fa de comutarea ieirilor Q2 i Q0 poate surprinde orice configuraie de doi bii. Dac n bistabilele de stare se nscrie configuraia 011 sau 110, atunci ne aflm n faa unui comportament
103

normal. Dar, se poate nscrie i configuraia 010 sau 111, fapt care corespunde unei tranziii eronate, aceste dou stri neaflndu-se printre succesoarele strii 010 cnd A = 1 . Ce se ntmpl n cazul codificrii cu dependen redus (Figura 3.25a) ntr-o situaie identic? Automatul va comuta din starea 000 n + 0 1 B . Bitul Q0 este singurul care depinde, n acest caz, de variabila asincron de intrare. Automatul va trece n starea 010 sau 011, ambele comportamente fiind la fel de acceptabile. Indiferent cnd comut B , nu va exista o alt posibilitate de tranziie. Deci, dac funcia de tranziie a strii depinde n fiecare moment numai de cel mult o singur variabil de intrare asincron, atunci este asigurat evoluia corect a automatului n spaiul strilor. Vom folosi, n consecin, codificarea cu dependen redus pentru a evita efectele disfuncionale ale intrrilor asincrone. Codificrile combinate pot fi uneori utile. ntr-o zon a organigramei n care tranziiile sunt preponderent condiionate, vom prefera o codificare cu dependen redus, pentru ca n diagramele de tranziie s apar n ct mai mic msur variabilele de intrare. de asemenea, vom prefera codificarea cu variaie minim n cazul tranziiilor necondiionate deoarece diagramele de tranziie difer minim de diagrama de referin. Se obin astfel premisele unor funcii de tranziie simple. Codurile nefolosite sunt asociate unor stri posibile n care automatul poate ajunge la punerea sub tensiune a circuitului sau printr-o funcionare incorect. Aceste coduri pot aprea n registrul de stare, deci pot avea asociate stri ce nu vor putea fi evitate. n etapa de proiectare va trebui s inem cont i de ele i s definim o evoluie oarecare n spaiul acestor stri parazite. Vom putea opta pentru dou tipuri de evoluii. O prim variant permite automatului s revin n spaiul strilor utile. A doua variant pstreaz automatul n spaiul strilor parazite. Ambele variante trebuie luate n considerare n diverse contexte de funcionare a automatului. Prima asigur o "resetare" automat iar cea de-a doua permite punerea n eviden a unor disfuncionaliti prin blocarea automatului ntr-un ciclu eronat.

3.6 EXEMPLE DE PROIECTARE PENTRU AUTOMATE DE TIP SECVENIAL


Aplicarea consideraiilor teoretice legate de proiectarea automatelor finite se cere amplu exemplificat deoarece exist o serie de tehnici concrete care sunt mai greu de teoretizat. De asemenea, n practic exist o mare varietate de automate finite cu aplicaii n diverse domenii: calculatoare, industrie, viaa social, informatic, etc. Un prim exemplu va ncerca s evidenieze efectul celor dou tipuri de codificri asupra structurii interne a automatului.

104

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