Sunteți pe pagina 1din 26

UNIVERSITATEA TEFAN CEL MARE SUCEAVA

FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR


LABORATOR nr. 8
Circuite logice secveniale - FSM
Proiectarea unui microprocesor.
1. Scop! !"#or"$or!%
n cadrul acestei lucrri se prezint modul n care se realizeaz analiza i sinteza
circuitelor logice secveniale i implementarea acestora utiliznd lima!ul "#$%.
&. Con'%()r"*%% $)or)$%c)
2.1 Circuite secveniale
n laoratorul anterior am aruncat o privire asupra proiectrii i implementrii unui
istail & elementul de memorare cel mai important utilizat n circuitele cu microprocesor.
'm vzut c un singur istail este capail s memoreze doar un singur it de in(ormaie
sau un singur it de istoric. Circuitul treuie s conin mai multe istaile pentru ca un
circuit secvenial s-i poat aminti mai multe intrri i o istorie mai lung. 'ceast
colecie de istaile )$* care sunt utilizate pentru a memora istoria complet a intrrilor
anterioare este denumit ca (iind o memorie de stare (stare memorat). ntreg
coninutul memoriei de stare de la un moment de timp dat (ormeaz o codi(icare inar
care reprezint istoria complet a intrrilor pn la acel moment de timp. +e re(erim la
aceasta codi(icare inar memorat n memoria de stare ca (iind o instan a strii unui
sistem din acel moment.
Semnalele de ieire ale circuitului secvenial sunt generate de ctre circuitul
logic de ieire. ,eamintim c ieirile circuitelor secveniale sunt dependente de intrrile
anterioare i curente. $eoarece toate intrrile sunt -reamintite. ca stri din memoria de
stare/ putem spune c ieirile sunt dependente de coninutul memoriei de stare. $e
aceea/ logica de ieire este pur i simplu un circuit cominaional care este dependent
de coninutul strii memorate i poate sau nu poate (i dependent de intrrile curente.
Semnalele de ieire care genereaz logica de ieire constituie aciunile i operaiile care
sunt e0ecutate de ctre circuitul secvenial. Prin urmare, un circuit secvenial poate
executa diferite operaii n stri diferite prin simpla generare de semnale diferite de
ieire.
$ac dorim ca un circuit secvenial s e0ecute/ s spunem/ patru operaii di(erite/
atunci vom avea nevoie de patru stri & cte o stare pentru (iecare operaie. 1ineneles
dac pot (i e0ecutate cteva operaii n paralel/ atunci le putem trans(era la o singur
stare. $ar deocamdat/ pentru a pstra lucrurile mai simple/ vom atriui pur i simplu o
operaie unei stri. Mai departe/ este posiil s e0iste o operaie care vom dori s se
repete de/ s spunem/ o sut de ori. n loc s trans(erm aceeai operaie ctre o sut
de stri di(erite/ vom (olosi doar o singur stare i cteva (orme de ucle capaile s
repete aceast stare de o sut de ori.
$e aceea/ un circuit secvenial (uncioneaz prin trecerea de la o stare la alta/
genernd di(erite semnale de ieire. Partea din interiorul unui circuit secvenial care este
responsail pentru a determina care este starea urmtoare care treuie s (uncioneze
este numit circuit logic al strii urmtoare. 1azndu-ne pe starea curent n care se
1
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
a(l sistemul )de e0./ intrrile anterioare* i pe intrrile curente/ logica pentru urmtoarea
stare va determina care ar treui s (ie starea urmtoare. 'ceast declaraie/ de (apt/
este ec2ivalent cu a zice c ieirile sunt dependente de intrrile trecute i curente/ n
timp ce starea este (olosit pentru a aminti intrrile trecute i/ de asemenea/ determin
ce ieiri s (ie generate. 3otui/ urmtoarea stare logic este doar un circuit
cominaional care are ca intrri coninuturile unor istaile care genereaz starea
memorat i intrrile curente. 4eirile circuitului pentru urmtoarea stare logic sunt
utilizate pentru a sc2ima coninuturile istailelor care memoreaz starea. Circuitul
sc2im starea atunci cnd se sc2im coninutul memoriei de stare iar acesta se
realizeaz la un (ront activ al (iecrui ciclu de ceas deoarece valorile sunt scrise ntr-un
istail la un (ront activ al ceasului.
"iteza cu care circuitul secvenial trece prin stri este determinat de ctre viteza
semnalului de ceas. 1istailele de memorare a strii sunt ntotdeauna activate/ ast(el c
la (iecare (ront activ al ceasului este stocat o nou valoare n istaile. Factorul de
limitare pentru viteza ceasului este timpul necesar pentru a realiza toate operaiile care
sunt asignate unei anumite stri. 3oate operaiile asignate unei stri treuie s se
termine ntr-un singur perioad de ceas ast(el nct rezultatele s poat (i scrise n
regitri la urmtorul (ront activ al ceasului.
5n circuit secvenial este de asemenea cunoscut ca i o main cu stri finite
(!") deoarece numrul de stri ale memoriei este (init i prin urmare/ numrul total de
stri di(erite posiile este de asemenea (init. 5n circuit secvenial este ca i o main
care opereaz trecnd pas cu pas printr-o secven a strilor. $ei e0ist doar un numr
(init de stri di(erite/ FSM poate/ totui/ s mearg la oricare dintre aceste stri ori de
cte ori este necesar. Ca urmare/ secvena strilor pe care le poate parcurge un FSM
poate (i in(init.
5nitatea de control dintr-un microprocesor este o main cu stri (inite/ de aceea/
ca s (im capail s construim un microprocesor/ vom avea nevoie s nelegem
construcia i e0ecuia FSM-urilor. n acest laorator/ vom vedeam mai nti cum s
descriem ct mai precis operaia unei maini cu stri (inite utiliznd diagramele de stare.
Pe urm/ vom studia analiza i sinteza mainilor cu stri (inite.
&.1.1 Mo()!) () +",%n% c '$-r% .%n%$) /FSM0
'a cum am mai menionat/ circuitul logic de ieire este dependent de starea
curent i poate sau nu (i dependent de intrrile curente. Faptul c logica de ieire poate
sau nu poate (i dependent de intrrile curente d natere la dou modele di(erite de
FSM.
Figura 6.7. )a* prezint o sc2em general pentru un FSM Moore unde ieirile
sunt dependente doar de starea curent/ de e0./ coninutul memoriei de stare. Figura
6.7. )* prezint o sc2em general pentru un FSM Meal8 unde ieirile acestuia sunt
dependente de starea curent a mainii i de asemenea de intrrile curente. Singura
di(eren dintre aceste dou (iguri este aceea c pentru un FSM Moore/ circuitul logic de
ieire are doar starea curent ca intrare/ pe cnd/ pentru un FSM Meal8/ circuitul logic
de ieire are ca intrri att starea curent ct i semnalele de intrare. Pentru amele
modele intrrile circuitului logic pentru urmtoarea stare sunt intrrile primare ale
automatului i starea curent a mainii. Circuitul logic al strii urmtoare genereaz
valori pentru a sc2ima coninuturile memoriei de stare )strii*. $in moment ce memoria
de stare este alctuit din unul sau mai multe istaile de tip $ iar coninutul istailului
de tip $ se sc2im la orice valoare ia intrarea $ la urmtorul (ront activ al ceasului/
pentru a sc2ima o stare/ circuitul logic a strii urmtoare treuie s genereze valori
&
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
pentru toate intrrile $ pentru toate istailele. 'ceste valori ale intrrilor istailelor $
sunt denumite valorile de excitaie/ deoarece aceste 9excit. sau determin istailele
de tip $ s-i sc2ime starea.

F%1r" &.1. Mo()!) () +",%n% c '$-r% .%n%$)2 /"0 FSM Moor)3 /#0 FSM M)"!4
Figura 6.6. )a* i )* prezint e0emple de automate cu stri (inite )FSM* de tip
Moore i respectiv Meal8. Cele dou circuite sunt identice cu e0cepia ieirilor. Pentru
automatul Moore/ circuitul de ieire este o poart '+$ cu 6 intrri care i ia valorile de
intrare de la ieirile a dou istaile de tip $. S ne amintim c starea unui FSM este
reprezentat de ctre valoarea de ieire a memorie de stare/ adic a lui : )sau :;*. Prin
urmare/ acest circuit este dependent doar de starea curent a mainii.
Pentru FSM Meal8/ circuitul de ieire este o poart '+$ cu < intrri. Pe lng cele
dou intrri de la istaile/ a treia intrare de la aceast poart '+$ este conectat la
intrarea principal C. Cu aceast cone0iune/ acest circuit de ieire este dependent att
de starea curent ct i de intrare/ rezultnd ast(el un automat )FSM* de tip Meal8.
Pentru amele circuite/ memoria de stare este alctuit din dou istaile de tip
$. 'vnd dou istaile/ pot (i reprezentate patru cominaii de valori di(erite. $e aceea/
aceast main cu stri (inite poate (i n oricare din cele patru stri di(erite. Starea n
care acest FSM va trece mai departe depinde de valoarea intrrilor $ a istailelor.
Fiecare istail din memoria de stare necesit un circuit cominaional pentru a
genera urmtoarea valoare a strii pentru intrare )-ri*. $in moment ce avem dou
istaile de tip $/ (iecare are cte o intrare )$*/ prin urmare/ circuitul logic a strii
urmtoare este alctuit din dou circuite cominaionale= unul pentru intrarea $
>
i unul
pentru $
7
. 4ntrrile pentru aceste dou circuite cominaionale sunt :;-urile/ care
reprezint starea curent a istailelor/ i intrarea principal C. $e notat c nu este
necesar ca intrarea C s (ie o intrare pentru toate circuitele cominaionale. n circuitul
simplu/ doar circuitul cominaional de dedesut este dependent de intrarea C.
5
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR

F%1r" &.&. E6)+p!) () +",%n% c '$-r% .%n%$)2 /"0 Moor)3 /#0 M)"!4.
&.1.& D%"1r"+)!) () '$"r)
#iagramele de stare sunt utilizate pentru a descrie precis operarea mainilor cu
stri (inite. ? diagram de stare este un gra(ic orientat cu noduri i arce direct conectate
la noduri. @0ist cte un nod pentru (iecare stare a FSM-ului iar aceste noduri sunt
denumite cu numele strii sau cu codarea acestora. Pentru (iecare tranziie de stare a
FSM-ului e0ist un arc direct conectat la dou noduri. 'rcurile pot avea sau nu nume pe
ele.
Figura 6.<. )a* prezint o diagram de stare simpl avnd patru stri/ un semnal
de intrare C i un semnal de ieire A. Cele patru stri sunt etic2etate cu patru valori
inare codi(icate >>/ >7/ 7> i 77. Se va (olosi ntotdeauna o stare > ca start sau stare de
reset dac nu se pornete alt(el. @0ist trei tranziii necondiionale/ de la starea >> la >7/
de la 7> la >> i de la 77 la >>. @0ist doar o singur tranziie condiional de la starea
>7 la 7> sau 77. Pentru aceast tranziie condiional de la starea >7/ dac condiia
)CB>* este true este realizat tranziia de la >7 la 7>. 'lt(el/ dac condiia )CB>* este
(alse/ ceea ce nseamn c )CB>*; este true sau )CB7* este true/ atunci este realizat
tranziia de la >7 la 77.
7
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR

F%1r" &.5. E6)+p!) () (%"1r"+)2 /"0 n FSM Moor) c p"$r '$-r%8 n ')+n"! ()
%n$r"r) C ,% n ')+n"! () %),%r) 93 /#0 n FSM M)"!4 c p"$r '$-r%8 n ')+n"! ()
%n$r"r) C ,% n ')+n"! () %),%r) 93 /c0 n FSM c c%nc% '$-r% ,% (o- ')+n"!) ()
%n$r"r) A ,% B.
Semnalul de ieire A din (igura 6.<. )a* este etic2etat n interiorul (iecrui nod ceea
ce denot c (iecare ieire este dependent doar de starea curent. $e e0emplu/ atunci
cnd FSM este n starea >7/ ieirea A este setat pe 7/ pe cnd/ n starea 77/ A este
setat pe >. Prin urmare/ aceast diagram a strii este pentru un FSM Moore.
'utomatul din (igura 6.<. )* este de tip Moore deoarece ieirile sunt reprezentate
pe arce/ deci depind att de starea curent ct i de intrare.
Figura 6.<. )c* prezint o diagram de stare cu cinci stri/ dou semnale de intrare
i (r semnale de ieire. n practic/ toate FSM-urile treuie s ai semnale de ieire/
alt(el/ nu vor realiza nimic. Cele cinci stri din aceast diagram au primit numele logice
s
>
/ s
7
/ s
6
/ s
<
i s
C
. Cele dou semnale de intrare sunt ' i 1. $in nou vom (olosi starea s
>
/
ca (iind starea de pornire. $in starea s
>
/ e0ist doar un singur arc necondiional care
merge spre s
7
. $cest arc nedenumit este ec%ivalent ca i cum am avea etic%eta
$&'xx, ceea ce nseamn c acest arc preia orice cominaie a celor dou semnale de
intrare. $in starea s
7
/ e0ist patru arce de plecare cu patru cominaii di(erite ale celor
dou semnale de intrare. Starea s
6
are doar dou arce de plecare. 3otui/ cele dou
etic2ete de pe ele acoper cele patru condiii de intrare posiile din moment ce 1 nu
conteaz n amele cazuri. Starea s
<
are doar trei arce de plecare dar din nou/ etic2etele
de pe ea acoper toate condiiile celor patru intrri posiile.
:
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
$up cum putem vedea/ o diagram de stare este similar cu o organigram a
unui program pentru calculator unde nodurile sunt pentru instruciuni sau operaii asupra
datelor/ iar arcurile sunt pentru controlul secvenei programului. $in cauza acestei
similariti/ ar treui s (im capaili s convertim orice program la o diagram de stare. n
e0emplul 7 se prezint modul cum poate (i convertit un simplu pseudo-code n C la o
diagram de stare.
(xemplul 1)
S se derive diagrama de stare pornind de la urmtorul pseudo-codD
x ' *
+%ile (x , -).
output x
x ' x / 1
0
Pseudo-codul are trei instruciuni de operare a datei i o condiie de test. Fiecare
instruciune de operare a datei este trans(erat ctre un nod )stare*/ aa cum s-a
prezentat n (igura 6.C. )a*.
Pe urm/ vom trans(era arcele directe ctre diagram azndu-ne pe secvena
e0ecuiei. Pornind de la starea s
>
unde este e0ecutat instruciunea 0 B E/ programul va
testa condiia )0 >*. $ac condiia este true/ atunci ieirea instruciunii este e0ecutat/
alt(el/ ucla )i programul* este terminat. Pe de alt parte/ dac condiia este (alse/ ucla
treuie terminat. $in moment ce nu e0ist nici o instruciune dup ucl/ prin urmare/
treuie s aducem o e0tra stare (r operare s
<
la diagrama de stare pentru ca aceasta
s (uncioneze. 'rcul de la s
>
la s
<
este etic2etat )0 F >* G/ ceea ce nseamn c arcul
este preluat atunci cnd condiia )0 F >* este (alse.
$up ce se e0ecut instruciunea de ieire este e0ecutat instruciunea de
decrementare. 'ceast secven este re(lectat n arcul necondiional care pornete
de la starea s
7
ctre s
6
. $up e0ecuia instruciunii de decrementare din s
6
/ este din nou
testat condiia )0 F >* din ucla H2ile. $ac condiia este true/ va (i preluat de arcul cu
etic2eta )0 F >* ctre starea s
<
. $in starea s
<
/ nu se mai iese dect la iniializarea uclei.
Starea ucleaz pe ea nsi i nu produce nimic i nu duce nicieri.

F%1r" &.7. D%"1r"+" () '$"r) p)n$r E6)+p!! 12 /"0 op)r"r)" ("$)% "'%1n"$-
no(r%!or3 /#0 (%"1r"+" () '$"r) co+p!)$- c "rcr% $r"n;%$or%%.
<
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
&.1.5 An"!%;" c%rc%$)!or ')c=)n*%"!)
Se (olosete (oarte des circuitul secvenial i prin urmare treuie s-i cunoatem i
operaiile. $nali1a circuitelor secveniale este procesul n care se d un circuit
secvenial )aa cum este dat i n (igura 6.6.* i dorim s oinem o descriere precis a
operrii circuitului prin derivarea diagramei de stare. Paii pentru analiza circuitelor
secveniale sunt urmtoriiD
7. Se determin ecuaiile de e0citaie de la circuitul logic a strii urmtoare.
6. Se determin ecuaiile strii urmtoare prin mprirea ecuaiilor de e0citaie n
ecuaii caracteristice istailelor.
<. Se determin taelul strii urmtoare din ecuaiile strii urmtoare.
C. Se determin ecuaiile de ieire de la circuitul logic de ieire.
E. Se determin taela de ieire de la ecuaiile de ieire.
I. Se realizeaz diagrama de stare din taela cu stare urmtoare i taela de ieire.
a. (cuaia de excitaie
(cuaiile de excitaie sunt ecuaiile pentru circuitul logic a strii urmtoare din
FSM. Cu alte cuvinte/ sunt doar ecuaii de intrare pentru istailele de memorare a strii
din FSM. $in moment ce logica strii urmtoare este un circuit cominaional/ de aceea/
determinarea ecuaiilor de e0citaie este doar o analiz a circuitului cominaional.
Circuitul logic a strii urmtoare care este derivat din aceste ecuaii -e0cit. istailele
provocndu-le sc2imarea de stare/ de aici numele de -ecuaii de e0citare.. 'ceste
ecuaii (urnizeaz semnale intrrilor istailelor i sunt e0primate ca o (uncie a strii
curente i intrrile pentru FSM. Starea curent este determinat de ctre coninutul
curent al istailului/ care este semnalul de ieire a istailului : )i :;*. @0ist cte o
ecuaie pentru (iecare intrare a istailului.
n continuare sunt date dou e0emple de ecuaii de e0citaie pentru cele dou
istaile utilizate n circuitul din (igura 6.6. )a*. @cuaia )7* este din circuitul logic a strii
urmtoare pentru intrarea $
7
a istailului 7/ iar ecuaia )6* este din circuitul cu
urmtoarea stare pentru intrarea $
>
a istailului >.
$
7
B :
7
;:
>
)7*
$
>
B :
7
;:
>
; J C:
7
; )6*
2. (cuaia strii urmtoare
(cuaiile stri urmtoare speci(ic care este starea urmtoare a istailului i va
(i dependent de dou lucruriD 7* de intrrile istailelor i 6* comportamentul (uncional
al istailelor. 4ntrrile istailelor sunt (urnizate de ctre ecuaiile discutate anterior.
Comportamentul (uncional al istailului este descris/ cum s-a artat n
laoratorul precedent/ prin ecuaia sa caracteristic. @cuaia caracteristic ne spune ce
va (i :
ne0t
/ adic starea urmtoare/ n (uncie de starea curent i intrrile curente. $e
aceea/ pentru a deduce ecuaiile strii urmtoare/ vom sustitui ecuaiile de e0citaie n
ecuaiile caracteristice ale istailelor.
$e e0emplu/ ecuaia caracteristic pentru istailul de tip $ esteD
:
ne0t
B $
$e aceea/ nlocuind ecuaiile de e0citaie )7* i )6* de mai sus n ecuaia
caracteristic pentru istailul de tip $ ne va da urmtoarele dou ecuaii a strii
urmtoareD
:
7ne0t
B $
7
B :
7
;:
>
)<*
:
>ne0t
B $
>
B :
7
;:
>
J C:
7
; )C*
>
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
c. 3a2ela strii urmtoare
3a2ela strii urmtoare este o simpl tael de adevr provenit din ecuaiile
strii urmtoare. Pentru (iecare cominaie a valorilor strii curente ):* i a valorilor
intrrilor/ se prezint care ar treui s (ie valorile strii urmtoare ):
ne0t
*.
Figura 6.E. prezint taela strii urmtoare oinut din cele dou ecuaii a strii
urmtoare )<* i )C*. 'vnd dou istaile/ :
7
:
>
/ vom avea C codi(icri/ >>/ >7/ 7> i 77
pentru starea curent. @0ist un singur semnal de intrare C/ cu dou valori posiile/ > i
7. $e e0emplu/ pentru a oine valoarea :
7ne0t
pentru intrarea prima intrare din tael
coloana din stnga/ itul din stnga/ vom nlocui n ecuaia )<* valorile strii curente cu
:
7
B > i :
>
B > iar valoarea de intrare cu C B > i ecuaia care ne va daD
:
7ne0t
B :
7
;:
>
B >; K >
B 7 K >
B >
nlocuind aceleai valori n ecuaia )C* va rezulta valoarea :
>ne0t
pentru aceeai
intrare
:
>ne0t
B :
7
;:
>
; J C:
7
;
B >; K >; J > K >;
B 7 J >
B 7

Starea curent
:
7
:
>
Starea urmtoare
:
7ne0t
:
>ne0t
C B > C B 7
>> >7 >7
>7 7> 77
7> >> >>
77 >> >>
F%1r" &.:. Un $"#)! c '$"r)" r+-$o"r) c p"$r '$-r% ,% n ')+n"! () %n$r"r) C
d. (cuaia de ieire
(cuaiile de ieire sunt ecuaiile derivate din circuitul logic cominaional de
ieire de la FSM. $epinznd de tipurile FSM-ului )Moore sau Meal8*/ ecuaiile de ieire
pot (i dependente numai de starea curent sau att de starea curent ct i de intrri.
Pentru circuitul Moore din (igura 6.6. )a* ecuaia de ieire esteD
A B :
7
;:
>
)E*
Pentru circuitul Meal8 din (igura 6.6. )*/ ecuaia de ieire esteD
A B C:
7
;:
>
)I*
e. 3a2ela de ieire
Ca i la taela strii urmtoare/ ta2ela de ieire este o tael de adevr care
este rezultat din ecuaiile de ieire. 3aela de ieire pentru FSM-urile Moore i Meal8
sunt complet di(erite.
Figura 6.I. )a* i )* prezint taelele de ieire pentru FSM-urile Moore i Meal8
care sunt rezultate din ecuaiile de ieire )E* i respectiv )I*. Pentru FSM-ul Moore/
semnalul de ieire A este dependent doar de valoarea strii curente :
7
:
>
i/ pentru
FSM-ul Meal8/ semnalul de ieire A este dependent att de starea curent ct i de
intrarea C.
8
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
Starea curent
:
7
:
>
4eirea
A
>> >
>7 7
7> >
77 >
/"0
Starea curent
:
7
:
>
4eirea A
C B > C B 7
>> > >
>7 > 7
7> > >
77 > >
/#0
F%1r" &.<. T"#)!" () %),%r)2 /"0 p)n$r FSM Moor)3 /#0 p)n$r FSM M)"!4.
f. #iagrama de stare
5ltimul pas n analiz este s (igurm diagrama de stare. $iagrama de stare este
oinut direct din taela strii urmtoare i taela de ieire i au (ost prezentate n (igura
6.<. )a* i )*.
g. (xemplul 2) ! se reali1e1e anali1a unui !" "oore pre1entat n figura 2.4.

F%1r" &.>2 Un )6)+p! () +",%n- c '$-r% .%n%$) () $%p Moor)
?
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
%. (xemplul 5) ! se reali1e1e anali1a unui !" "eal6 pre1entat n figura 2.7.

F%1r" &.8. Un )6)+p! () +",%n- c '$-r% .%n%$) () $%p M)"!4
&.1.7 S%n$);" c%rc%$)!or ')c=)n*%"!)
!inte1a circuitelor secveniale este e0act reversul analizei circuitelor
secveniale. n sintez/ ncepem cu ceea ce este o descrierea (uncional amigu a
circuitului pe care l dorim. $in descrierea aceasta/ avem nevoie s generm o diagram
de stare care s descrie precis (uncionarea circuitului. $iagrama de stare ne permite s
construim starea urmtoare i taelele de ieire. $e la aceste dou taele/ vom oine
starea urmtoare i ecuaiile de ieire i n (inal circuitul FSM complet.
n timpul procesului de sintez/ e0ist multe posiiliti de optimizare a circuitului
n (uncie de mrimea circuitului/ viteza i puterea consumat pe care le poate realiza. n
aceast seciune/ ne vom concentra doar pe sinteza (uncionrii corecte a circuitului
secvenial.
Paii pentru sinteza circuitelor secveniale sunt dup cum urmeazD
7. ,ealizarea unei diagrame de stare pornind de la descrierea (uncional a circuitului.
6. Se determin taela strii urmtoare din diagrama de stare.
<. Se (ace trans(ormarea taelei strii urmtoare n tael de implementare.
C. Se determin ecuaiile de e0citaie pentru (iecare intrare a istailului din taela de
implementare.
E. Se determin taela de ieire din diagrama de stare.
I. Se determin ecuaiile de ieire din taela de ieire.
L. Se deseneaz diagrama circuitului FSM azndu-ne pe ecuaiile de e0citaie i
ecuaiile de ieire.
a. #iagrama de stare
Primul pas n procesul de sintez a circuitului secvenial este s-i determinm
diagrama de stare. Construcia unui circuit este de oicei descris utiliznd un lima!
natural amiguu. +u doar lima!ul creeaz adesea amiguiti/ dar n multe cazuri i
descrierea circuitului este de asemenea incomplet. 'ceast descriere incomplet apare
1@
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
atunci cnd nu sunt speci(icate toate situaiile posiile ale unui eveniment sau
comportament. Pentru a trans(orma o descriere ntr-o diagram de stare/ proiectantul
treuie s ai un aga! de cunotine complet despre (uncionarea comportamental a
circuitului. n completare/ proiectanii ar putea avea nevoie de puin ingeniozitate i
creativitate pentru a de(ini aspectele lips. 'cesta este primul pas n procesul de
proiectare unde nu e0ist rspunsuri pentru toate situaiile. n acest pas/ ne azm pe
cunotinele i e0periena unui proiectant pentru a veni cu o diagram de stare inteligiil
i corect.
n loc s (olosim un lima! natural pentru a descrie circuitul/ poate (i (olosit o
metod mult mai precis. 5na dintre aceste metode de a descrie un circuit mult mai
precis include i utilizarea unui lima! de descriere 2ardHare precum "#$%/ o tael de
stare a aciunilor sau o sc2em 'SM )algorit2mic state mac2ine*. 5tilizarea sc2emei
'SM i a taelelor de stare a aciunilor strii sunt descrise ntr-un laorator viitor.
n aceast seciune/ vom construi un circuit FSM care se azeaz pe o secven
de cod n C aa cum este prezentat n (igura 6.M. ' nu se ncerca s se interpreteze
e0ecuia logic a codului deoarece nu realizeaz nimic. n acest capitol/ atenia este ca
s nvm cum poate (i trans(ormat orice pseudo-cod din C/ aa cum este/ ntr-un circuit
FSM care s-l implementeze.

F%1r" &.?. A')(oBco(! Cn C p)n$r '%n$);-
Pseudo-codul prezentat n (igura 6.M conine instruciuni de asignare a semnalelor
dou pentru A B > i dou pentru A B 7. "om asigna cte o stare la (iecare din cele patru
instruciuni. Primul asignare A B > este alocat strii s
>
/ al doilea AB> este alocat strii s
7
.a.m.d/ precum este prezentat n pseudo-cod.
$up prima instruciune AB>/ instruciunea if determin automat cnd s se
e0ecute a doua instruciune AB> sau instruciunea AB7. $e aceea/ din starea s
>
/ e0ist
un singur arc care pleac ctre starea s
7
i un singur arc pleac ctre starea s
6
.
@tic2etele de pe aceste dou arce sunt condiiile pentru instruciunea 4F. 'rcul care
pleac ctre starea s
7
are etic2eta )1B>* iar arcul care pleac ctre starea s
6
are etic2eta
)1B7*. Fie din starea s
7
sau din starea s
6
/ este e0ecutat starea s
<
/ de aceea/ e0ist dou
arce necondiionate din aceste dou stri ctre s
<
. n (inal/ din cauza instruciunii repeat
e0ist un arc necondiionat din starea s
<
care se ntoarce n starea s
>.
,ezultatul este
diagrama de stare este prezentat n (igura 6.7> )a*.
2 3a2ela strii urmtoare
$ac se d o diagram de stare/ este uor s derivm amele taele/ a strii
urmtoare ct i cea de ieire. $in moment ce taelele de ieire i cea a strii
11
repeat {
Y = 0 -- s0
if (B = 0){
Y = 0 -- s1
else
Y = 1 -- s2
}
Y = 1 s3
}
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
urmtoare/ precum i diagrama de stare a(ieaz aceeai in(ormaie dar ntr-un alt
(ormat/ este necesit doar o translatare de la un (ormat la altul.
Figura 6.7> )* arat taela strii urmtoare pentru diagrama de stare prezentat
n )a*. ,ndul cu etic2ete reprezint starea curent iar coloana cu etic2ete conine
condiiile de intrare. 4ntrrile n tael sunt strile urmtoare. $in diagram din starea
curent/ de e0emplu s
>
/ aplicnd intrarea 1 pe >/ a!ungem la starea urmtoare s
7
. 'a i
n taela strii urmtoare/ intrarea pentru intersecia strii curente s
>
i intrarea 1B> este
s
7
.
/"0
Starea curent
:
7
:
>
Starea urmtoare
:
7ne0t
:
>ne0t
1 B > 1 B 7
s
>
>> s
7
>7 s
6
7>
s
7
>7 s
<
77 s
<
77
s
6
7> s
<
77 s
<
77
s
<
77 s
>
>> s
>
>>
/#0
Starea curent
:
7
:
>
4mplementarea
$
7
$
>
1 B > 1 B 7
>> >7 7>
>7 77 77
7> 77 77
77 >> >>
/c0
/(0
1&
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
Starea curent
:
7
:
>
4eirea
A
s
>
>> >
s
7
>7 >
s
6
7> 7
s
<
77 7
/)0
/.0
F%1r" &.1@. /"0 O (%"1r"+- '%+p!- " '$-r%%3 /#0 $"#)!" '$-r%% r+-$o"r)3 /c0
%+p!)+)n$"r)" $"#)!)% $%!%;Dn( #%'$"#%!) () $%p D3 /(0 )c"*%%!) () )6c%$"*%)3 /)0
$"#)!" () %),%r)3 /.0 c%rc%$! FSM.
n taela strii urmtoare/ este de asemenea dat i codi(icarea actual pentru
stri. Pentru a codi(ica cele patru stri/ sunt necesare 6 istaile/ :
7
i :
>
. n e0emplu/
codi(icarea dat celor patru stri/ s
>
/ s
7
/ s
6
i s
<
sunt doar patru cominaii di(erite a valorii
istailelor/ >>/ >7/ 7> i 77. 5tilizarea sc2emelor de codi(icare di(erite ne pot da
rezultate di(erite privind mrimea circuitului/ viteza i consumul de putere.

2. 3a2ela de implementare
3aela de implementare rezult din taela cu starea urmtoare. 3aela cu starea
urmtoare este independent de tipul de istail (olosit/ n timp ce taela de
implementare este dependent de alegerea istailului utilizat. 5n FSM poate (i
implementat (olosind oricare din cele patru tipuri de istaile sau cominaii ale acestora.
5tiliznd istaile di(erite sau cominaii ale istailelor poate rezulta circuite de mrimi
di(erite dar cu aceeai (uncionalitate. 3rend8ul curent n proiectarea
microprocesoarelor este s folosim 2ista2ile de tip # deoarece sunt uor de utilizat.
"om dori ca s (olosim doar istaile de tip $ n sinteza noastr privind circuitelor
secveniale.
3aela de implementare ne arat ce intrare treuie aplicat istailului pentru a
implementa taela strii urmtoare. Cu alte cuvinte/ sunt prezentate intrrile necesare
pentru istailele care vor realiza strile urmtoare care sunt date n taela strii
urmtoare. 3aela strii urmtoare rspunde ntrerii care este starea urmtoare a
15
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
istailului dat de starea curent a istailului i de valorile de intrare. 3aela de
implementare/ pe de alt parte/ rspunde ntrerii ce ar treui s (ie intrrile istailului
pentru a realiza corespondena strii urmtoare prezentat n taela strii urmtoare.
4ntrrile istailului le-am considerat c sunt intrri sincrone. Pentru istailul de
tip $/ este c2iar intrarea $. Pentru alte tipuri de istaile/ e0ist intrrile S i , pentru
istailul de tip S,= intrrile N i O pentru istailul NO i intrarea 3 pentru istailul 3. +u
vom lua n considerare intrrile asincrone precum intrrile Set i Clear/ i nici semnalul
de ceas )clock).
$e aceea/ pentru a determina taela de implementare utiliznd istailele de tip
$/ avem nevoie s determinm valoarea care treuie s (ie asignat intrrii $ ast(el nct
aceasta va produce corespondena cu valoarea :
ne0t
dat n taela strii urmtoare.
3otui/ din moment ce ecuaia caracteristic pentru istailul de tip $ )de e0./ ecuaia
care descrie operarea istailului de tip $* esteD
:
ne0t
B $
valorile pentru :
ne0t
i $ sunt aceleai.
$e aceea/ intrrile taelului de implementare care (olosete istailele de tip $
sunt identice cu intrrile taelului cu starea urmtoare. Singura di(eren dintre aceste
dou taele este n nelesul intrrilor. n taela strii urmtoare prezentat n (igura
6.7>)*/ etic2eta pentru intrri este :
ne0t
pentru starea urmtoare care treuie atins/ n
timp ce n taela de implementare/ prezentat n (igura 6.7> )c*/ etic2eta pentru intrri
este $/ adic intrarea istailului de tip $. $in moment ce sunt dou istaile/ :
7
i :
>
(iecare avnd cte o intrare $/ taela de implementare are dou intrri corespunztoare
$
7
i $
>.
1itul cel mai semni(icativ este pentru istailul 7 iar itul cel mai puin
semni(icativ este pentru istailul >. $e notat c dac este utilizat unul dintre celelalte
tipuri de istaile/ cele dou taele nu vor mai (i la (el.
d. (cuaia de excitaie i circuitul urmtoarei stri
,eamintim c ecuaiile de e0citaie sunt ecuaiile pentru intrrile sincrone ale
istailelor. @0ist cte o ecuaie de e0citaie pentru (iecare intrare a (iecrui istail. $e
reamintit c nu se includ intrrile asincrone i intrarea de ceas. @cuaiile de e0citaie sunt
dependente de codi(icarea strii curente/ de e0./ coninutul istailelor i semnalele de
intrare principale a FSM-urilor.
@cuaiile de e0citaie sunt acelea care provoac istailele din memoria de stare
s se sc2ime starea. Circuitul care rezult din aceste ecuaii este circuitul strii
urmtoare din FSM. Circuitul strii urmtoare este un circuit cominaional/ ast(el c
dac se proiectarea acestui circuit este la (el ca i sintetizarea oricrui circuit
cominaional .
3aela de implementare rezultat din paii anteriori este doar o tael de adevr
pentru ecuaiile de e0citaie. Pentru e0emplul nostru/ avem nevoie de dou ecuaii pentru
intrrile celor dou istaile/ $
7
i $
>
. n e0emplu/ e0tragerea itului cel mai din stnga
din (iecare intrare din taela de implementare ne va da taela de adevr pentru $
7
/ i
prin urmare/ ecuaia de e0citaie pentru $
7
. Similar/ e0tragerea itului cel mai din dreapta
din (iecare intrare din taela de implementare ne va da taela de adevr i ecuaia de
e0citaie pentru $
>
. 3aela de adevr/ diagramele O i ecuaiile de e0citaie pentru $
7
i
$
>
sunt date n (igura 6.7> )d*.
e. 3a2ela i ecuaia de ieire
3aela de ieire i ecuaiile de ieire sunt utilizate pentru a proiecta circuitul de
ieire din FSM. 3aela de ieire poate (i oinut direct din diagrama de stare. n
diagrama de stare din (igura 6.7> )a*/ semnalul de ieire A este dependent doar de stare.
17
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
n strile s
>
i s
7
/ A este asignat cu valoarea >. n strile s
6
i s
<
/ A este asignat cu 7.
,ezultatul taelei de ieire este prezentat n (igura 6.7> )e*.
@cuaia de ieire rezultat din taela de adevr a ieirii este simplD
A B :
7


f. Circuitul !"
5tiliznd (igura 6.7> )a* ca model/ circuitul nostru FSM are nevoie de dou
istaile de tip $ pentru a-i memora starea. +umrul de istaile (olosite s-a determinat
atunci cnd s-au codi(icat strile. 3ipul de istail care este (olosit este determinat atunci
cnd se scrie taela de implementare. Circuitul strii urmtoare este realizat din ecuaiile
de e0citaie/ iar circuitul de ieire este dat de ecuaia de ieire. %egnd aceste trei pri/
memoria strii/ circuitul strii urmtoare i circuitul de ieire/ mpreun se realizeaz
circuitul FSM (inal prezentat ca n (igura 6.7> )(*.
g. (xemplu 9) ! se reali1e1e sinte1a !"8ului "oore pre1entat n figura 2.11
Pentru e0emplul nostru de sintez/ vom proiecta un numrtor modulo I utiliznd
istaile de tip $/ cu o intrare C de activare a numrtorului/ i un semnal de ieire A
care este activat atunci cnd numrtorul este egal cu cinci. +umrtorul este
reprezentat direct prin coninuturile istailelor.

/"0
/#0
1:
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
/c0
F%1r" &.11. S%n$);" p)n$r n FSM Moor) p)n$r )6)+p!! 7 2 /"0 (%"1r"+" ()
'$"r)3 /#0 (%"1r"+)!) E ,% )c"*%%!) () )6c%$"*%)3/c0 c%rc%$! FSM.
Primul pas este s construim o diagram de stare. $in descrierea (uncionrii
anterioare/ avem nevoie s construim o diagram de stare care ne va arta operaiile
precise ale circuitului. 5n numrtor modulo I numr de la > la E i apoi napoi la >. $in
moment ce numrtorul este reprezentat de ctre valorile istailelor i avem I numere
di(erite )de a > la E*/ vom avea nevoie de trei istaile ):
6/
:
7/
:
>
* care va realiza
secvena >>>/ >>7/ >7>/ >77/ 7>>/ 7>7/ >>>/ att timp ct C este activat/ atunci cnd C
este dezactivat/ numrtoare se oprete. Cu alte cuvinte/ din starea >>>/ care este
countB>/ va e0ista un arc care va trece n starea >>7 cu etic2eta CB7. $in starea >>7/
e0ist un arc care trece n starea >7> cu etic2eta CB7 .a.m.d. Pentru ca numrtorul s
opreasc (iecare numrare/ vor e0ista arcuri la (iecare stare care se rentorc cu aceeai
stare cu etic2eta CB>. Mai departe/ vom dori s activm A n starea 7>7/ ast(el c n
aceast stare/ am setat A pe 7. Pentru restul strilor/ A este setat pe >. $eci/ vom oine
o diagram de stare ca n (igura 6.77 )a* pentru un numrtor modulo I.
Pasul 6 treuie s determinm taela strii urmtoare/ care este o translatare
direct din diagrama de stare. "om avea trei istaile :
6
/ :
7
i :
>
i o singur intrare
principal C.
Pasul < este s convertim taela strii urmtoare n taela de implementare.
Pasul C este s derivm ecuaiile de e0citaie pentru toate intrrile istailelor
con(orm cu starea curent i intrarea principal.
Pasul E i I sunt pentru a rezulta taela i ecuaia de ieire.
Pi n (inal/ vom putea construi circuitul pentru FSM.
(xemplul *) !inte1a unui !" "eal6
n acest e0emplu/ vom (ace sinteza pentru un FSM Meal8 azat pe diagrama de
stare prezentat n (igura 6.76 utiliznd istaile de tip $. Cele patru sunt de!a codi(icate
1<
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
cu valorile celor dou istaile. @0ist dou semnale de intrare condiionale )0B>* i
)0B8*. @0ist un semnal de ieire '/ care poate (i setat (ie pe valoarea > (ie pe 7.

/"0
/#0
/c0
F%1r" &.1&. S%n$);" n% FSM M)"!4 p)n$r )6)+p!! : 2 /"0 (%"1r"+" () '$"r)3 /#0
)c"*%" () %),%r) ,% +"p"r)" E3 /c0 c%rc%$! FSM.
1>
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
$eterminarea strii urmtoare i taela de implementare pentru un FSM Meal8
este e0act ca i cea pentru FSM Moore.
3aela de ieire este un pic di(erit (a de cea Moore. n completare semnalul de
ieire ' dependent de starea curent :
7
:
>
/ este de asemenea dependent de cele dou
semnale de intrare )0B>* i )0B8*. $e aceea taela ar treuie s ai patru coloane
pentru cele patru cominaii posiile pentru semnalele de intrare. 4ntrrile n tael treuie
s (ie valorile pentru '.
&.1.: Co(%.%c-r%!) '$-r%!or n).o!o'%$) ,% Co(%.%c"r)" '$-r%!or
ntr-o situaie real/ numrul de stri utilizate ntr-o diagram de stare nu este
oligatoriu o putere a lui 6. $e e0emplu/ diagrama de stare prezentat n (igura 6.76. )a*
pentru numrtorul modulo I (olosete I stri. Pentru a codi(ica cele ase stri/ am avea
nevoie de cel puin trei istaile din moment ce dou istaile pot codi(ica doar patru
cominaii di(erite. 3otui/ trei istaile ne o(er opt cominaii di(erite. 'st(el c dou
cominaii nu sunt (olosite. ntrearea care se pune este ce vom (ace cu aceste codi(icri
ne(olositeQ n taela strii urmtoare/ ce valori a strii urmtoare vom asigna acestor
stri ne(olositeQ Putem s le ignormQ
$ac FSM-ul nu poate (i n niciuna din strile ne(olosite/ atunci nu conteaz ce
sunt strile urmtoare. n acest caz/ putem pune valorile -nu conteaz. pentru strile
urmtoare. ,ezultatul va (i c circuitul strii urmtoare poate (i mult mai mic din cauza
valorilor -nu conteaz..
$ar ce se ntmpl dac/ din ntmplare/ FSM a!unge n una dintre aceste stri
ne(olositeQ Funcionarea FSM-ului va (i impredictiil deoarece nu tim care este starea
urmtoare. $ar/ acest lucru nu este c2iar adevrat deoarece c2iar dac (olosim valori
-nu conteaz./ ele vor (i mapate n ecuaia de e0citaie (i0ate. Ca urmare/ aceste stri
ne(olosite vor avea strile urmtoare de(inite. $ar aceste stri urmtoare nu sunt dintre
strile dorite. $e aceea/ rezultatul (uncionrii FSM-ului va (i incorect dac se a!unge
ntmpltor n una din strile ne(olosite.
? soluie ar (i s utilizm starea de iniializare sau starea de nceput ca stare
urmtoare pentru aceste codi(icri a strii urmtoare. n acest mod/ FSM va porni de la
nceput c2iar dac este introdus una din aceste stri ne(olosite.
Pn acum s-a (olosit codi(icarea inar secvenial pentru a codi(ica strile
ast(el/ starea s
>
este codi(icat ca >>/ starea s
7
cu >7/ starea s
6
cu 7> .a.m.d. 3otui/ nu
e0ist nici un motiv pentru care s nu putem (olosi o codi(icare di(erit pentru stri. $e
(apt/ dorim s (acem o codi(icare di(erit dac va rezulta un circuit mai simplu.
@0emplul I prezint un FSM cu o codi(icare a strii ne(olosite i o codi(icare
di(erit a strilor.
(xemplul :
n acest e0emplu/ vom (ace sinteza unui FSM care genereaz un impuls scurt
dac la intrare se aplic un semnal lung. n acest circuit FSM/ lungimea unui impuls va (i
de un ciclu de ceas. $iagrama de stare pentru acest circuit va (i prezentat n (igura 6.7<
)a*.
Starea s
>
/ codi(icat ca >>/ este starea de reset iar n aceast stare FSM-ul va
atepta apsarea unei taste. 'tunci cnd este apsat tasta/ FSM va merge n starea s
7
/
codi(icat ca >7 n care va genera impulsul. $in aceast stare FSM trece automat )la
urmtorul ciclu de ceas* n starea s
6
. $e aceea/ pulsul va dura doar un ciclu de ceas.
Pentru a ntrerupe ucla i a trece la ateptarea altei apsri/ FSM treuie s atepte
18
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
elierarea tastei n starea s
6
. Cnd tasta este elierat/ FSM se va ntoarce la starea s
>
/
pentru a atepta o alt apsare a tastei.
'ceast diagram de stare (olosete doi ii pentru a codi(ica cele trei stri/ iar
starea de codi(icare 7> nu este (olosit. $iagrama de stare arat c dac FSM introduce
starea 7>/ va merge necondiionat ctre starea de reset >> la urmtorul ciclu de ceas.
4mplementarea este prezentat n (igura urmtoare.
(a)
Starea curent
:
7
:
>
Starea urmtoare
:
7ne0t
:
>ne0t
C2eie apsat
> 7
>> >> >7
>7 77 77
77 >> 77
7> >> >>
/#0
$
7
B :
7
;:
>
J :
>
Oe8pressed $
>
B :
7
;Oe8pressed J :
7
;:
>
J :
>
Oe8pressed
/c0
Starea curent
:
7
:
>
4eirea
?nes2ot
>> >
>7 7
77 >
7> >
/(0
1?
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
/)0
F%1r" &.15. FSM p)n$r c%rc%$! (%n )6)+p!! <2 /"0 (%"1r"+" () '$"r)3 /#0 $"#)!"
'$-r%% r+-$o"r)3 /c0 )c"*%%!) () )6c%$"*%) ,% (%"1r"+" E p)n$r D
1
,% D
@
3 /(0 $"#)!"
() %),%r) ,% )c"*%" () %),%r)3 /)0 c%rc%$! FSM.
&.1.< Co( VFDL p)n$r c%rc%$)!) ')c=)n*%"!)
Scrierea codului "#$% pentru circuitele secveniale este de oicei realizat la
nivel comportamental. 'vanta!ul scrierii codului "#$% comportamental este c treuie s
sintetizm manual circuitul. Sintetizarea va produce automat lista de legturi )netlist*
pentru circuit din codul comportamental.
?rdinea n care scriem codul "#$% pentru un circuit secvenial/ este aceea c
avem nevoie s (olosim in(ormaia din diagrama de stare pentru circuit. Poriunea
principal a codului conine dou proceseD procesul pentru logica strii urmtoare i un
proces pentru logica de ieire. 'rcele )att cele condiionale ct i necondiionale* din
diagrama de stare sunt (olosite ca s de(inim procesul pentru logica strii urmtoare/
care va genera circuitul logic al strii urmtoare. 4n(ormaia semnalului de ieire din
diagrama de stare este (olosit pentru a de(ini procesul pentru logica de ieire.
Se va prezenta codi(icarea "#$% comportamental a circuitelor secveniale cu
cteva e0emple.
(xemplul 4
n acest e0emplu/ vom scrie codul "#$% comportamental pentru un FSM Moore
prezentat n (igura 6.6.)a*. $in moment ce sintetizatorul va avea automat gri! de
codi(icarea strii/ strile vor avea nevoie s (ie etic2etate cu numele lor logice. Codul
"#$% comportamental pentru acest FSM Moore azat pe diagrama de stare i taela de
ieire este prezentat n (igura 6.7E.
&@
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
F%1r" &.17. D%"1r"+" () '$"r) p)n$r )6)+p!! >.
n seciunea de entitate se declar semnalele de 4R? primare pentru circuit. @0ist
intrrile gloale cloc; i reset. Semnalul cloc; determin viteza cu care circuitul
secvenial va tranzita de la o stare la alta. Semnalul de reset va iniializa toate istailele
de memorare a strii pe >. n completarea semnalelor standard generale cloc; i reset/
seciunea entitii va declara de asemenea toate semnalele de intrare i de ieire. Pentru
acest e0emplu/ e0ist un semnal de intrare C i un semnal de ieire A= amele sunt tipuri
ale stdSlogic.
Seciunea ar2itecturii va ncepe prin utilizarea instruciunii 3AP@ pentru a de(ini
cele patru stri/ s
>
/ s
7
/ s
6
i s
<
/ (olosite n diagrama de stare. 4nstruciunea S4T+'%
declar starea semnalului pentru a stoca starea curent a FSM-ului. @0ist dou procese
n seciunea ar2itecturii care se e0ecut concurentD procesul pentru logica urmtoarei
stri i procesul pentru logica de ieire. 'a cum se sugereaz i din nume/ procesul
pentru logica urmtoarei stri de(inete logica urmtoarei stri din unitatea de control/ i
procesul pentru logica de ieire de(inete circuitul logic de ieire din interiorul unitii de
control. 4nstruciunea principal main din interiorul acestor dou procese este
instruciunea C'S@ care determin care este starea curent.
n procesul pentru logica urmtoarei stri/ starea curent a FSM-ului este
iniializat cu s
>
la reset. 4nstruciunea C'S@ este e0ecutat doar la un (ront cresctor al
ceasului datorit testului )clocU;@"@+3 '+$ clocU B ;7;* din instruciunea 4F. $e aceea/
semnalului state i este asignat o valoare nou a strii la (iecare (ront cresctor al
ceasului. "aloarea nou este/ ineneles/ este dependent de starea curent i de
semnalele de intrare/ dac acestea e0ist. $e e0emplu/ dac starea curent este s
>
/
este selectat cazul pentru s
>
. $in diagrama de stare/ vedem c n starea s
>
/ starea
urmtoare depinde de semnalul de intrare C. Prin urmare/ n cod/ este (olosit o
instruciune 4F. $ac C este 7 atunci noua starea s
7
este asignat semnalului state/
alt(el/ s
>
este asignat lui state. Pentru ultimul caz/ c2iar dac nu dorim s sc2imm
valoarea strii s
>
/ tot vom (ace ca aceast asignare pentru a prevenii sintetizatorul "#$%
de la utilizarea unui element de memorare pentru semnalul de stare. 'a cum s-a
discutat n laoratorul anterior/ "#$% sintetizeaz un semnal (olosind un element de
memorare dac semnalul nu are valori pentru toate cazurile posiile. Celelalte cazuri din
instruciunea C'S@ sunt scrise similar azndu-se pe arcurile rmase n diagrama de
stare.
n procesul pentru logica de ieire/ toate semnalele de ieire treuie s ai
asignat o valoare pentru (iecare caz. $in nou/ motivul este acela c nu dorim ca aceste
semnale de ieire s provin de la elementele de memorare. n modelul FSM/ circuitul
de ieire este un circuit cominaional i prin urmare n-ar treui s conin nici un
element de memorare. Pentru (iecare stare din instruciunea C'S@ din procesul de
ieire/ valorile asignate (iecrui semnal de ieire sunt luate direct din taela de ieire.
Pentru acest e0emplu/ e0ist doar un singur semnal de ieire A.
&1
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
5n e0emplu de trasare a simulrii acestui circuit secvenial este prezentat n
(igura 6.7I. n trasarea simulrii/ ntre timpul 7>>ns i V>>ns atunci cnd , este inactiv i
C este activ )pe 7%* starea se sc2im la (iecare (ront cresctor al ceasului )la
momentele <>>ns/ E>>ns i L>>ns*. %a momentul L>> ns atunci cnd starea curent este
s
<
/ vom vedea c semnalul de ieire A este de asemenea activat )pe 7%*.
%a timpul V>>ns/ C este dezactivat iar la (inal/ FSM nu va sc2ima starea la
urmtorul (ront cresctor al ceasului la timpul M>> ns.
&&
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MooreFSM IS PORT (
clock: IN STD_LOGIC;
reset: IN STD_LOGIC;
C: IN STD_LOGIC;
Y: OUT STD_LOGIC);
END MooreFSM;
ARCHITECTURE Behavioral OF MooreFSM IS
TYPE state_type IS (s0, s1, s2, s3);
SIGNAL state: state_type;
BEGIN
next_state_logic: PROCESS (clock, reset)
BEGIN
IF (reset = '1') THEN
state <= s0;
ELSIF (clock'EVENT AND clock = '1') THEN
CASE state IS
WHEN s0 =>
IF C = '1' THEN
state <= s1;
ELSE
state <= s0;
END IF;
WHEN s1 =>
IF C = '1' THEN
state <= s2;
ELSE
state <= s1;
END IF;
WHEN s2=>
IF C = '1' THEN
state <= s3;
ELSE
state <= s2;
END IF;
WHEN s3=>
IF C = '1' THEN
state <= s0;
ELSE
state <= s3;
END IF;
END CASE;
END IF;
END PROCESS;
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
F%1r" &.1:. Co(! VFDL co+por$"+)n$"! " n% FSM Moor) p)n$r )6)+p! >.

F%1r" &.1<. Tr"'"r)" '%+!-r%% " n% FSM Moor) p)n$r )6)+p!! >.
(xemplul 7
'cest e0emplu arat cum este scris un FSM Meal8 utiliznd codul "#$%
comportamental. "om utiliza FSM Meal8 din e0emplul <. $iagrama de stare pentru FSM
este prezentat n (igura 6.6.)*. 'cest FSM este (oarte asemntor cu cel anterior cu
e0cepia c generarea semnalului de ieire A este de asemenea dependent de semnal
de intrare C. Codul "#$% este prezentat n (igura 6.7L. n acest cod/ am vzut c
procesul pentru logica strii urmtoare este identic cu codul FSM-ului anterior. n
procesul pentru logica de ieire/ singura di(eren este starea s
<
unde instruciunea 4F
este utilizat pentru a determina valoarea semnalului de intrare C. Semnalul de ieire A
asigneaz o valoare n (uncie de rezultatul acestui test.
Simularea trasrii pentru acest FSM Meal8 este prezentat n (igura 6.7V. $e
notat c singura di(eren dintre aceast trasare i cea anterioar este la semnalul A
ntre momentele V>>ns i 7us. n timpul acestei perioade/ semnalul de intrare C este
dezactivat n trasarea anterioar/ aceasta nu avea nici un e(ect asupra lui A/ totui/
pentru trasarea FSM-ului Meal8/ A este de asemenea dezactivat.
&5
---continuare program ---
output_logic: PROCESS (state)
BEGIN
CASE state IS
WHEN s0 =>
Y <= '0';
WHEN s1 =>
Y <= '0';
WHEN s2 =>
Y <= '0';
WHEN s3 =>
Y <= '1';
END CASE;
END PROCESS;
END Behavioral;
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR

&7
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MealyFSM IS PORT (
clock: IN STD_LOGIC;
reset: IN STD_LOGIC;
C: IN STD_LOGIC;
Y: OUT STD_LOGIC);
END MealyFSM;
ARCHITECTURE Behavioral OF MealyFSM IS
TYPE state_type IS (s0, s1, s2, s3);
SIGNAL state: state_type;
BEGIN
next_state_logic: PROCESS (clock, reset)
BEGIN
IF (reset = '1') THEN
state <= s0;
ELSIF (clock'EVENT AND clock = '1') THEN
CASE state IS
WHEN s0 =>
IF C = '1' THEN
state <= s1;
ELSE
state <= s0;
END IF;
WHEN s1 =>
IF C = '1' THEN
state <= s2;
ELSE
state <= s1;
END IF;
WHEN s2=>
IF C = '1' THEN
state <= s3;
ELSE
state <= s2;
END IF;
WHEN s3=>
IF C = '1' THEN
state <= s0;
ELSE
state <= s3;
END IF;
END CASE;
END IF;
END PROCESS;
output_logic: PROCESS (state)
BEGIN
CASE state IS
WHEN s0 =>
Y <= '0';
WHEN s1 =>
Y <= '0';
WHEN s2 =>
Y <= '0';
WHEN s3 =>
IF (C = '1') THEN
Y <= '1';
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
F%1r" &.1>. Co(! VFDL co+por$"+)n$"! p)n$r n FSM M)"!4 p)n$r )6)+p!! 8.
F%1r" &.18. Tr"'"r)" '%+!-r%% p)n$r n FSM M)"!4 (%n )6)+p!! 8.
(xemplul <
'cesta este un alt e0emplu al FSM-ului Moore care a (ost scris utiliznd codul
"#$% comportamental. 'cest FSM este pentru e0emplul E/ iar diagrama de stare pentru
acest e0emplu este rezultatul rezolvrii e0emplului E. Codul comportamental pentru
acest FSM este prezentat n (igura 6.7M/ iar trasarea simulrii n (igura 6.6>.
&:
---continuare program ---
ELSE
Y <= '0';
END IF ;
END CASE;
END PROCESS;
END Behavioral;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MooreFSM IS PORT (
clock: IN STD_LOGIC;
reset: IN STD_LOGIC;
start, neq9: IN STD_LOGIC;
x,y: OUT STD_LOGIC);
END MooreFSM;
ARCHITECTURE Behavioral OF MooreFSM IS
TYPE state_type IS (s0, s1, s2, s3);
SIGNAL state: state_type;
BEGIN
next_state_logic: PROCESS (clock, reset)
BEGIN
IF (reset = '1') THEN
state <= s0;
ELSIF (clock'EVENT AND clock = '1') THEN
CASE state IS
WHEN s0 =>
IF start = '1' THEN
state <= s1;
ELSE
state <= s0;
END IF;
WHEN s1 =>
state <= s2;
WHEN s2 =>
UNIVERSITATEA TEFAN CEL MARE SUCEAVA
FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR
F%1r" &.1?. Co(! VFDL co+por$"+)n$"! p)n$r n FSM Moor) (%n )6)+p!! ?.
F%1r" &.&@. Tr"'"r)" '%+!-r%% p)n$r n FSM Moor) " )6)+p!!% ?.
5. D)'.-,r"r)" !cr-r%%
7. Se studiaz analiza circuitelor logice secveniale )FSM*. Se vor rezolva e0emplele
6 i <.
6. Se va studia sinteza circuitelor logice secveniale. Se vor rezolva complet
e0emplele C i E.
<. Se vor testa e0emplele scrise n "#$%.

&<
---continuare program ---
IF neq9 = '1' THEN
state <= s3;
ELSE
state <= s1;
END IF;
WHEN s3=>
state <= s0;
END CASE;
END IF;
END PROCESS;
output_logic: PROCESS (state)
BEGIN
CASE state IS
WHEN s0 =>
x <= '0';
y <= '1';
WHEN s1 =>
x <= '1';
y <= '1';
WHEN s2 =>
x <= '1';
y <= '1';
WHEN s3 =>
x <= '1';
y <= '0';
END CASE;
END PROCESS;
END Behavioral;

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