Você está na página 1de 82

MODELAGEM DE MQUINAS DE ESTADO FINITO

(Traduo do captulo 8 Livro HDL Chip Design)

CONTEDO DO CAPTULO

Introduo ---------------------------------------------------------------------------A Mquina de Estado Finito ---------------------------------------------------A tabela e o diagrama de estado ---------------------------------------------Questes sobre projeto e modelagem de MSF -------------------------Estilos de codificao HDL -----------------------------------------------Resets and fail safe behavior --------------------------------------------Codificao de estado -----------------------------------------------------Tipos de sada Mealy ou Moore -----------------------------------------Lgica de prximo estado ou lgica de sada -----------------------Mquinas de estado interativas -----------------------------------------Exemplos ----------------------------------------------------------------------------Exemplo 8.1 ------------------------------------------------------------------Exemplo 8.2 ------------------------------------------------------------------Exemplo 8.3 ------------------------------------------------------------------Exemplo 8.4 ------------------------------------------------------------------Exemplo 8.5 ------------------------------------------------------------------Exemplo 8.6 ------------------------------------------------------------------Exemplo 8.7 ------------------------------------------------------------------Exemplo 8.8 ------------------------------------------------------------------Exemplo 8.9 ------------------------------------------------------------------Exemplo 8.10 ----------------------------------------------------------------Exemplo 8.11 ----------------------------------------------------------------Exemplo 8.12 ----------------------------------------------------------------Exemplo 8.13 -----------------------------------------------------------------

3 3 3 5 6 6 7 8 8 9 10 13 18 20 22 26 37 40 42 44 46 50

Introduo
Projetistas de circuitos digitais tm sempre que enfrentar o problema de fazer circuitos com sequnciasespecificasdeoperaes,porexemplo,controladoresusadosparacontrolarasoperaes de outros circuitos. Maquinas de estado finito (MSF) tem se mostrado com um meios muito eficientesdemodelarcircuitossequenciais.AomodelarMSFnumalinguagemdedescrio de hardware usada como ferramenta de sntese, projetistas podem se concentrar em modelar as sequnciasdeoperaesdesejadassemsepreocuparmuitocomaimplementaodoscircuitos,isso deixadoparaaferramentadesntese.MSFsoumaparteimportantedoprojetodehardwaree consequentementeimportantenamodelagemdehardwareemHDL. OprojetistadeveconsiderarosdiferentesaspectosdeumaMSFantesdetentardescreveromodelo. Um modelo bem escrito essencial para um circuito correto e funcional que satisfaa os requerimentosdeformaprodutiva.Ummodelomalescritonocumprenenhumdessescritrios.Por essa razo importante entender completamente MSF para se familiarizar com os diferentes problemasdamodelagememHDL.

Amaquinadeestadofinito
Uma MSF qualquercircuitoprojetadoespecificamenteparasequenciaratravsdeespecficos padresdeestadosdemaneirasequencialprdeterminadaedeacordocomaestruturamostradana figura8.1.Umestadodeterminadopelovalorbinriomantidonoestadoatualdoregistrador.A estruturaMSFconsistedetrspartesepodeounoserrefletidanaestruturadocdigoHDLquefoi usadoparamodella.

1.Registradordeestadoatual. Registradordenbitsqueusamflipflopsparamanteroestado atualdaMFS.Oseuvalorrepresentaoestagioatualdentrodasequnciaparticulardeoperaes sendoexecutadas.Quandoemoperao,sincronizadoatravsdeumafonteclock. 2. Lgica do estado seguinte. Lgica combinacional usada para gerar o prximo estado na sequncia.Aprximasadadoestadoemfunodoestadoatualedasentradasdamaquina. 3.Lgicadesada. Lgicacombinacionalusadaparagerarossinaisdesadanecessrios.As sadassoemfunodoestadodesadadoregistradorepossivelmentedasentradasdamaquina.

ATabelaeoDiagramadeestados
Odiagramadeestadoumarepresentaogrficadaoperaosequencialdeumamaquinade estadoesofrequentementecolocadascomoentradadiretaparasntesedeferramentascomerciais dasquaissogeradoscircuitossintetizadosemodelosdesimulaoHDL.Quandousarodiagrama 3

deestadosoumtododeentradaHDLgeralmenteumaescolhaparaoprojetista,conhecendoas ferramentasqueestodisponveis.Algumasvezesoclienteiraexigirumametodologiadeprojeto particular,nessecasoaescolhajfoi feita. A figura 8.2 mostra duas representaes de diagramas de estadodamaquinadecincoestados; A tabela de estados equivalente indicadanatabela8.1. Crculos representam estados e linhas com setas representam as transiesentreestadosqueocorrem apscadaciclodeclock.Osinalde clockusado,masnoapareceno diagramadeestadosnemnatabela deestados. Onumerobinriorepresentaovalor nos flipflop do estado do registrador (Primeiro diagrama de estado) ou est associado ao nome do estado (Segundo diagrama de estado). As condies do sinal de entradaquecontrolamascondies deestadosoindicadasprximasa linhaapropriadaeantesdequalquer barra(/). A barra usada para separarossinaisdeentradaesada. As duas entradas A e Hold so mostradas antes da barra. Valores mostrados depois da barra, se existirem, indicam valores do sinal de sada que so uma funo de ambasasentradaseoestadoatual da maquina. Essas so chamadas sadas de tipo Mealy que sero descritas mais tarde. O valor de qualquer sinal de sada que uma funo que dependa somente do estado atual do registrado, so mostradas prximas ao circulo representando o estado apropriado. Esses so chamados as sados do tipo Moore que sero tambm descritas mais tarde. A maior diferena dentro do segundo diagramadeestadoqueossinais deentraesadasomostrados 4

apenasquandoelesestoativos,docontrarioelessodeixadosdeladoparaajudarnacompreenso funcionaleevitarapoluiododiagrama.Oexemplo8.8mostraosmodelosHDLdessediagrama deestadoemquesto.

QuestessobreprojetoemodelagemdeMSF
Projetodemaquinadeestadoeproblemasdemodelagemaseconsiderarso: 1.EstilodecodificaoHDL. 2.Resetsandfailsafebehavior. 3.Codificaodeestado. 4.TiposdesadaMealyouMoore. 5.Lgicadeestadoseguinteoulgicadesada. 6.Maquinasdeestadointerativas. AestruturadeumamaquinadeestadopodeterumadastrsformascomomostradonaFigura8.3,e consisteemumblococombinacionalchamadolgicadeestadoseguinte,umblocosequencialde estadoatualnoregistradoreumblocoopcionalcombinacionaldelgicadesada.Lgicade sadanonecessriaquandoassadasvemapenasdiretamentedoregistradordeestado.Oestado atualarmazenadoemflipflops.Latchscausariamoscilaesdeestadoquandotransparentes.Os blocosdelgicadesadaeestadoseguintepodemconterlgicasequencialadicionalintroduzidas dentrodocorpodomodelo,masnoconsideradapartedamaquinadeestado.Umamaquinade estadopodeestarapenasemumestadoemumdadomomento,ecadatransioativadoclockcausa umamudanadoseuestadoatualparaoprximocomodefinidonalgicadeprximoestado.

Amaquinadeestadocomnestadostemdoiselevadoanpossibilidadesquepodemserusadaspara representarestados.Frequentementenemtodasaspossibilidadessonecessriasentoasqueno foramusadasdevemserprojetadasparanoocorreremnumaoperaonormal.Umamaquinade estadocomcincoestadosporexemplonecessitadenomnimodetrsflipflopsparafuncionar.

1.EstilodecodificaoHDL
Existem diferentesmaneirasdemodelar amesma maquina de estado, entretanto,umapequena mudananocdigopodecausarumcomportamentoinesperado.Projetistastmqueestarcientes dosdiferentesestilosdemodelagemquesosuportadospelaferramentadesntesequeestasendo usada,devemconsiderarmaquinadeestadossendoindependentesdeferramentas;Issoseaplica paraamodelagemdequalquertipodecircuito.OcdigoHDLpodeserestruturadoemtrspartes separadas representando as trs partes de uma maquina de estado, veja a figura 8.3. Outra alternativaseriausardiferentescombinaesdeblocosquepodemsercombinadasnomodelo.De qualquermaneira,oestilodecodificaoindependentedamaquinadeestadosendoprojetada. Algicadoestadoseguintemelhormodeladausandoaestruturacase,apesardalgicadoestado seguinte doVHDLpodersermodelausandooutrasestruturas,issosignificaraqueaMSFno poderiasermodeladaemapenasumprocesso.Apalavrareservada Others (VHDL)ea Default (Verilog)usadasemumaestrutura case evitamdeexplicitamentedefinirtodososvaloresde2^n quenosopartedamaquinadeestado. Osexemplos8.1e8.2,mostramboasemspraticasdemodelagemparamaquinasdeestadocom trsequatroestados.Modelosnoexemplo8.2demonstramcomoastrspartesdeumamaquinade estadopodemsercombinadasouseparadasdentrodeummodelo,ecomoassegurarportabilidade entreasferramentasdesntese.Noexemplo8.3demonstraseumamaquinadeestadomodelada utilizandotantoasentradasquantooestadoatualparadefinirassadas.

2.Resetsandfailsafebehavior

Dependendodaaplicaoosinalderesetpodenoestardisponvel,podeapenasexistiroreset sncronoouassncronoassimcomoambos.Paragarantirumcomportamentosegurocontrafalhas, umadasduassituaesdeveocorrerdependendodotipodereset. Usandoumresetassncrono.Issoasseguraqueamaquinadeestadosejasempreinicializada emumestadovalido,antesdaprimeiratransiodeclockativoedoiniciodasoperaesnormais. Essapraticatemavantagemdenoprecisardecodificarquaisquerestadosatuaissemusoeento minimizaralgicadeestadoseguinte. Semresetouusandooresetsncrono.Nafaltadeumresetassncrononoexistemaneirade preverovalorinicialdoestadodoregistradorquandoimplementadodentrodeumcircuitointegrado ePoweredup.Amquinapoderiaficarpermanentementepresanumestadonocodificado.Nesse caso,todososvalores2^nbinriosprecisamserdecodificadosnalgicadeestadoseguinte,mesmo elesendopartedamaquinadeestadoouno.Geralmenteexisteapenasumapequenareadecusto dentrodalgicadeestadoseguinteeparcialmentealteradousandoflipflopsmenoresqueno tmqueterumaentradaderesetassncrono. Considere o exemplo, uma maquina de estado de dez estados modelada usando a codificao Johnson.Oregistradodeestadoconsistedecincoflipflopseexistem(2^510)estadossemuso.O resultadoumaotimizaode11%nalgicadeestadoseguinteseumresetsncronoforusadoem vezdeumassncrono.Issoparcialmentealteradoporumregistradorcomresetassncronosendo levementemaioresqueregistradorescomresetssncronos.Humamudanade3%emreaquando umresetassncronotrocadoporumsncrono. 6

Em VHDL o reset assncrono pode ser modelado usando apenas a estrutura if enquanto um sncronopodesermodeladousandotantoaestruturawaitquantoaestruturaif;Adesvantagemde usaraestruturawaitquetodoprocessosncronoentoasestruturasifsnopoderoserusadas comomodelosdelgicapuramentecombinacional.Emverilogapenasaestruturaifpodeserusada eseassncronodeveserinclusonalistadeeventosdaestruturaalwayscomaclausulaposedgeou negedge. Noexemplo8.4mostradaumamaquinadeestadocomalgicasatuaiseseguintes combinadasemodeladascomumresetassncrono,umresetsncrono,esemreset.Tambmmostra osefeitosmnimosquesetemnalgicadeestadoseguinteimplicada.Sealgicadeestadoatuale seguinteforemmodeladasseparadamenteoresetassncronodeveserincluindonalgicasequencial deestadoatualenquantoumresetsncronodeveserincludodentrodalgicaatualouseguinte. Claramenteporsempreincluiroresetnalgicadeestadoatualfcilmudloparaum reset assncrono ou sncrono ou viceversa se necessrio. Tem muitos exemplos de tais resets nesse capitulo.

3.Codificaodeestado

Omodocomonmerosbinriossoassimiladosparaestadoschamadodecodificaodeestado. Asdiferentescodificaesdeestadocomumenteusadasso: Sequencial; Gray; Johnson; OneHot; Definavocmesmo; Definidoporsntese. Essesformatosso mostradosnatabela8.2para 16estadosesuasrespectivas descries. Noexemplo8.6mostradaa maquinadeestadoparaum controlador do jogo de cartas vinte e um usando todos os formatos de codificao de estado, e inclui o formato de sntese definida.Oexemplotambm mostraoefeitoqueacodificaodeestadotemnocircuitosintetizadonessemodeloparticular.

Formatosdecodificaodeestado
Sequencial.Cadaestadoassimiladosimplesmentepeloaumentodenmerosbinrios. GrayandJohnson. Cadaestadoemambasascodificaessoassimiladosporsucessivos nmerosbinriosondeapenasumbitsealteradeumnumeroparaooutro.Oprincipalmotivopara usartalcodificaoreduzirapossibilidadedeerrosdetransiodeestadocausadosporentradas assncronasmudandoduranteoperododeestabelecimentodoflipflop. Todososnmeros2^nbinriospodemserusadosnacodificaoGray.Entretanto,porcausa 7

dopadrodezeroseunsdacodificaoJohnson,maisflipflopssonecessrios,eexistemsempre osnmerosbinriossemuso,issosignificaqueorestetassncronotempreferncia,casoocontrario algicadeestadoseguinteprecisaradecodificartodososnmerosbinrios2^n,resultandonum circuitomaior. Oexemplo8.5mostraumamaquinadeestadoparaumaplataformadecontroladordeposio usandoambosGrayeJohnsoncomocodificao. OneHot.Nacodificaodeestadoonehotcadaestadoassimilaseuprprioflipflop,enton estadosprecisamdenflipflopseapenasumflipflopestemumestadoverdadeiroporvez.O aumentodonumerodeflipflopsgeralmenteresultanumcircuitomaior. Defina voc mesmo. Cada estado assimilado a um numero binrio de acordo com o requerimentodoprojetista. Definidoporsntese.Essesformatossoescolhidospelaferramentadesnteseparaminimizar algicadeestadoseguinte.Claramenteasassimilaesdeverdadesodependentesdoprojeto. necessrioconsultaromanualdesnteseapropriadoparadescobrircomoissopodeserobtido.A ferramentadesntesefornecidapelacorporaoVeribestpermiteaentradadeparmetroparaMSF no qual ser escolhida uma codificao de estado para uma lgica de estado seguinte mnima usandoumdosseustrsdiferentesalgoritmos.TambmpropostoummodeloHDL(VHDLou Verilog)parafinsdesimulao.

4.TiposdesadaMealyouMoore

AestruturademaquinasdeestadoMealy,Mooreeambascombinadassomostradasnafigura8.3. AmaquinadeestadoMealytemsadasquesoemfunodoestadoatualeasentradasprimarias. UmamaquinadeestadoMooretemsadasquesofunoapenasdoestadoatual,entoincluem sadasdiretamentedoregistrador.Seassadasvemapenasdoregistradornohlgicadesada. Uma combinao de maquinas Mealy e Moore tem ambos tipos de sada. A escolha entre modelagensdetiposdesadaMealyouMooresoclaramentedependentesdoprojeto. Oexemplo8.7mostraamesmamaquinadeestadomodeladacomostiposdesadaMealyou Moore,enquantooexemplo8.8mostrarmodelosdomesmodiagramadeestadodafigura8.2que temumtipodesadaMealyeoutraMoore.

5.Lgicadeestadoseguinteoulgicadesada

Ambas as lgicas de estado seguinte e de sada dentro de uma maquina de estado consistem somente de uma lgica combinacional. Entretanto dependendo da aplicao voc pode querer modelarumalgicasequencialadicionaldentrodessesblocos,quepodemserincorporadosdentro deumcdigodeummodelodemaquinadeestado.Notequepornodefinirossinaisdeestado seguinteoudalgicadesadaemtodasasderivaesdaestrutura case damaquinadeestado, fcilmodelarlatchesindesejados. Lgicadeestadoseguintesequencial.Algicasequencialdeestadoseguintecontrolaasderivaes deestadodesinaispreviamentedefinidos.Taissinaispoderiamserdefinidosquandoamaquinade estadoestiveremoutroestado,passandoporumasequnciaparticulardeestados,ouporcausade algumvaloracumuladoresultandonumloopsucessivodesequnciadeestado.Essessinaisde controledeestadoseguintepodemtambmpromoversadasdemaquinasdeestado.Oexemplo8.8 mostraummodeloquerepresentaumflipflopdecontroleindividualnalgicadeestadoseguinte. 8

Lgicadesadasequencial. Algicadesadasequenciallevaemcontaofatodequeumestado especificoouumasequnciadeestadosocorreram.Oexemplo8.9mostraumatpicaaplicao disso,ondeoumacumuladorincrementadotodavezqueamaquinadeestadopassaatravsdeum estadoespecifico.

6.Maquinasdeestadointerativas
Se o estado atualousinais de sadade umamaquinadeestadosousados parainfluenciar a operao de outras maquinas de estado elas so conhecidas como interativas. Interaes entre maquinasdeestadopodemserunidirecionaisoubidirecionais. Unidirecional. Maquinas de estado podem ser hierarquicamente estruturadas, de modo queemcadacasosejam uteis em quebrar uma longa e complicada sequncia de estruturas em pedaos mais maleveis. A figura 8.4 mostra a estrutura de duasmaquinasdeestado onde a MSF1 tem controle unidirecional sobre a MSF2, e o prximo estado da MSF2 so dependentes das suas prprias entradas e do estado atual, mais o estado da MSF1. O exemplo 8.10 mostra trs configuraes diferentes de maquinas de estado de um modelo de controle usado para controlar a mesma sequncia de dados. O controlador modelado em trs modos separados;(1)UmaMSF mestre controlando trs MSFs subhierrquicas, (2) trs MSFs com controle de series de uma para outra e (3) usandoumanicaMSF. 9

Bidirecional.Maquinasdeestadoquetemcontrolebidirecionalsouteisparamodelarcircuitosque precisamdemecanismosdecomunicao.AFigura8.5mostraaestruturadetrsmaquinasde estadointerativasondecadamaquinadeestadotemcontrolebidirecionalsobreasoutrasduas.O exemplo8.11mostra2maquinasdeestadobidirecionalmenteinterativas;cadaumatendo4estados representandoaposioangularde2rotacionadoresinterligados.

Exemplo8.1UmabomeummalmodelocodificadodeumaMSFdetrsestados
ModelosbonseruinsdeumaMSFdetrsestadossomodeladosparadiagramaodiagramade estadosnafigura8.6.OsdoismodelosVHDLusamumavariveldeumnicoestadodeumtipo enumerado,emeiosdaferramentadesnteseiramautomaticamenteassimilarnmerosbinrios sequenciaisparaosestados.OsdoismodelosVerilogusamumdostrsparmetrosparaosestados eentoosnmerosdeestadosodefinidosnoprpriomodelo.

Modeloruim Oprimeiromodelo,FSM1_badestaincorretopelasrazoeslistadasabaixo.Notequenesseexemplo particular,otipodeestadoesuadeclarao,solocaisparaoblocodoprocessdoVHDLeoalwys doverilog. 1.Amaquinadeestadotemtrsestadosqueprecisamdedoisflipflops,poremdoisflip flopstemquatrovalorespossveisbinrios,sendoumdelesnousado.Notemresetenotem valordoestadoseguintedefinidoparaoestadonousado.Issosignificaqueoestadofsicoda maquinapodiaserimplementadodeformaquepossaficarpresanesseestadosemuso. 2.Oestadoatual,prximoestadoealgicadesadasotodasdefinidasnomesmoblocodo processdoVHDLedoalwysdoverilog.PelofatodoprocessdoVHDLconterumaestruturawait, aassimilaodesadadeleituraeescritainferedoisflipflopsextras.Damesmamaneirapelofato doblocoalwysdoverilogserativadoporumabordadesubidadoclock,aassimilaodeleiturae escritatambminfereemumflipflopextra. 3.AdefiniodevarivelparaestadonaversoVHDLtemovalorinicialdeST_readisso 10

bomparasimulaomaisignoradoporferramentasdesntese.Variveisousinaisnodevemser inicializadosdessemodoseomodelovaisersintetizado;Issonorepresentaoestadoinicialdo Hardware fsico.Assimilaesproceduraisnoverilogsoapenasinicializadasatravsdobloco initialquenososuportadospelasferramentasdesntese,logoesseproblemanodeveocorrer.

Modelo bom Osegundomodelo,FSM1_goodmostraumaversocorrigida.Algicadeestadoatualseqencial foiseparadadalgicacombinacionaldeestadoseguinteedesadacombinadas.AversoVHDL aindausaaestruturawaitapesardecomoumaregrageralfreqentementemelhorusaraestrutura IF.AestruturaIFdoVHDLpodemodelartodasasnecessidadeslgicassncronasouassncronas etemavantagemadicionaldepermitirlgicacombinacionaleseqencialseremmisturadasno mesmoprocess. 11

12

Exemplo8.2UmmodeloruimequatrobonsdeumaMSF.
Um mau e quatro bons exemplos de modelagem da maquina de estado, Figura 8.7, so mostrados nesse exemplo. Este possui quatro estados e usa um reset assincrono. Como no exemplo anterior modelos VHDL usam tipos de dados enumerados, enquanto Verilog usa valores de parmetros. O primeiro modelo FSM2_BAD incorreto por razes similares ao modelo BAD do exemplo 8.1, ou seja, flip-flops so sintetizados na lgica de sada. As sadas no modelo VHDL so dessa vez assimilados pela estrutura IF rising_edge(Clock). Os bons modelos (FSM2_GOOD1 ate FSM2_GOOD4)mostramdiferentescombinaesemqueoestadoatual,estadoseguinteelgica desadapodemsercombinadosouseparadasdentrodeummodelo.Oprojetomodeladoaseguir:

13

14

15

16

17

Exemplo8.3Entradasouvaloresdeestadocomoprincipaldirecionamento
A maquina de estado correspondente a figura 8.8 modelada de 2 maneias diferentes.ODiagramadeestado e representado como um controladordevelocidadedeum carro. Asprimeirasversesdomodelo usamasentradasdebrequeede acelerao em duas vias j que ramo direcionado, e ento, usando uma clausula case em cadavia,assimilaseumvalordeestado.Paraestamaquinadeestadoparticularavelocidadedo incrementadoredecrementadorpodeserclaramentevistapelasduasclausulascase.Asegunda versodomodelonaprximapaginamostramaisdomtodomaisusualdeassimilaodoprimeiro valordeestadocomoprincipaldirecionamentodoramo.

18

19

Exemplo8.4ConfiguraoderesetsemMSF
Parasedemonstrarosdiferentesformasqueresetspodemsermodeladosparaumamaquinade estadofinito,somenteasclausulasprocess/always soincludas.Assessesdoscdigosso da maquinaestadousadonoexemplo8.8,ecujodiagramadeestadofoiindicadonafigura8.2. As primeirasduassessesdecdigossoparaumresetassncronoeosltimostrsdapaginaseguinte soparaoresetsncrono.

20

21

Exemplo8.5Posioangulardamaquinadeestadousandomtodosde codificaoGrayeJohnson
Odiagramadeestadoparaa maquina de estado nesse exemplo,figura8.9,mostra8 estados. Os estados so codificados usando tanto Gray quanto Johnson e representam uma incrementao de uma posio angular de um rotacionador em 45 graus. Transiesdeestadoocorrem deseuestadoatualparauma mudananorotacionadorem sentido horrio ou anti horrio. Pelo fato de foras externas poderem movimentar o rotacionador para a posio desejada, a entrada posio fisicapodesofreralteraes eamesmaassncronapara o clock. Por essa razo, a codificao Grayou Johnson ideal, pois, se a entrada assncrona mudardurante otempo de estabelecimentodosregistradoresflipflops,nohaverummetaestadoestvel,eentonohaver riscodamaquinadeestadofazerumatransioerrnea.Comoutrosformatosdecodificaode estado,existeumpequeno,masfinitoriscodequeomovimentodorotacionadordentrode180 grauspoderiaserrequisitadodentrodeumciclodeclock.Acodificaodeestadoeobtidademodo diferentenosmodelosdeVHDLeverilog,esodescritosseparadamenteabaixo.Nohlgicade sada,poisovalordoestadorepresentaaposioangularporsis. ModeloVHDL.Existemduasmaneirasespecficasparacodificarosestados: 1. Use o sinal de um tipo enumerado para o qual um atributo especifico de sntese aplicado.Issoummodoconvenientedeseespecificarodacodificaodeestado,maspelofatodo nomedoatributoserespecificodaferramentadesntese,omesmopodeseralteradoparafinsde portabilidade para outras ferramentas. O primeiro pacote ENUM_STATE_ENCODE_TYPES define2tiposdecodificaoenumeradasidnticos,umparaGray,eoutroparaJohnson.Atributos diferentessoaplicadosparaessestiposqueespecificamacodificaodeestado,queso3bitsde tamanhoparaoGray,e4bitsparaoJohnson.OatributochamadoENUM_TYPE_ENCODING dentrodaferramentadesnteseveribest,maspodeserdiferenteparaoutrasferramentas. 2. Uso de constantes para representar os valores individuais de cada estado; esses so atribuidosaumsinalrepresentandoumestadoemparticular,ediretamenteportvelaoutras ferramentasdesntese.Omodelomostra2pacotespara2mtodosdecodificao.Aentidade arquiteturadamaquinadeestadoamesmaparaosdoismodosdecodificao,excetopelaclausula 22

use,quereferenciaparaum pacoteapropriado.Osegundopacotemostraumadefiniono assinada para os valores de estado Gray e Johnson, e as constantes de estados individuais. A maquinadeestadoemodeladausandoumprocessonicosimilaraoultimomodelonoexemplo8.2 (FSM2_GOOD4). A entrada posio fsica e a sada nova posio , so tanto do tipo GRAY_POS_EncodeEstates quantodotipoJOHNSON_POS_EncodeEstatesdependendo do mtododecodificao,eapenasanicamudananecessria.

Omodelodamaquinadeestadousaoincluaadiretivadocompiladorparaselecionaraoarquivo desejadoparaacodificaodeestado.Alternativamente,definirdiretivadocompiladorpoderia ser usado para permitir a substituio de texto simples dos nomes dos estado para os valores binrioscodificados.Novamente,essespoderiamsercolocadosemdiferentesarquivosdesistemae includosnomodelocomincluaadiretivadocompilador 23

24

25

Exemplo8.6:formatosdecodificaoFSMjogoblackjack
O modelo de uma maquina de estado, com codificao estados aleatria mostrado. O efeito que a codificao de estado tem na temporizao e rea dessa maquina de estado particular tambm mostrado. As diferentes codificao de estado usadas so: sequencial, Gray, Johnson, one-hot e trs tipo novos. Os primeiros quatro definidos nos modelos HDL, enquanto os trs tipos de codificao novos so escolhidos pela sntese veribest e tem a necessidade que a maquina de estado esteja dentro de um formato grfico que nos seja VHDL ou verilog. Isso j foi feito e os resultados se encontram na figura 8.10. O modelo de um jogo de uma maquina que executa o jogo blackjack. O modelo inclui um controlador de maquina de estado para cada formato de codificao aplicado, mais acumuladores da parte operativa. Os acumuladores no so afetados pela codificao de estado, mas so includos nesses modelos para fins de complemento. Ele detm o valor de cartas acumulado e o numero de ases contados como tendo o valor de 11. A maquina de estado tem 16 estados, como visto no diagramas de estado, figura 8.11. Quando um modelo HDL sintetizado, a sntese veribest cria arquivos de design de banco de dados separados para cada process (VHDL) e blocos always(verilog), que podem ser independentemente otimizados e analisados. Por causa disso, e da necessidade de analisar o efeito de codificao de estados, tem-se modelado em processos separados a lgica de estado seguinte, de estado atual e de lgica de sada. Todos esses foram modelados em diferentes instancias Process (VHDL)/always (verilog). A arquitetura projetada para uma maquina de blackjack (figura 8.12) representa a estrutura do process (VHDL) e always (Verilog) nos modelos HDL. Essemesmoprojetoeremodeladonoexemplo8.10comvriosblocoscombinados,etemamesma lgicasequencialdentrodaFSM,resultandoemcdigoreduzido. Definindoacodificaodeestado Existem4instanciaesdecadamodelo(VHDLeVerilog),queestorelacionadosacodificaode estado.Umadasinstanciaes habilitadaparaacionarparaacodificaode estadodesejada, enquantoasoutrastrsprecisamsercommentedout.Afrasecommentingoutsignificatornar uma particular linha de cdigo em um comentrio prefixionado ela com (VHDL) ou // (Verilog).Osmodelosmostrandotemcodificaosequencialdeestadohabilitado. CodificaodeestadoVHDL:especificadonomodeloVHDL2sinais,CurrentStatee Nextstate, para ser um dos 4 tipos definidos dentro do pacote VHDL STATE_ENCODE_TYPES.Essepacotedefineprimeiramenteumatributochamado 26

ENUM_TYPE_ENCODING Para ser um tipo de string. Esse atributo conhecido como ferramentadesnteseVeriBest,eusadoespecificamenteparadefinirumastringrepresentando umacodificaoenumeradadetiposenumeradosdedados. Amaioriadasferramentasdesntese permitemumatributoserusadodessamaneira,apesardoseunome,ENUM_TYPE_ENCODING, serdiferente.Quatrotiposdedadosidnticosenumeradossodeclaradosdentrodopacote,cadaum tendo16possveisvaloresrepresentandooestadodamaquinadeestado.CadatipotemoAtributo, ENUM_TYPE_ENCODING, atribudo a ele mesmo, e contem tambm uma string binria representandoacodificaodeestadoespecifica. CodificaodeestadoVerilog:definidadentrodomodeloverilogselecionandoumdas4 instanciassimilaresaversoVHDL.CadainstnciausaoIncluaadiretivadocompiladorpara referenciaumarquivodosistemaetemoefeitodesubstituiodoincluaainstanciadocontedo doarquivo.Cadainstanciareferenciaumarquivodiferentedependendodacodificaodeestado desejada.CadaarquivodefineocomprimentoembitsdossinaisCurrentStateedoNextState, quemudadependendodacodificaodeestadousada.Cadaarquivotambmdefineos16valores deparmetrosquerepresentamovalorbinriodecadaestado.

27

28

29

30

31

32

33

34

35

36

Exemplo8.7FSMscomasadaMealyouMoore
Asduasmaquinasdeestadonesseexemplodiferemem:Umatemasadadotipomealy,eaoutraa Moore.Odiagramadeestado,figura8.14,eocdigoHDLmostracomoasada(NewColor)uma funodasentradas(Red,GreeneBlue)noexemploMealy.

37

38

39

Exemplo8.8FSMcomsadaMealyesadaMoore
Essesmodelossooexemplodeumdiagramadeestadodescritosnoiniciodessaparte,vejaa figura8.1.OmodelotemasadadotipomealyedotipoMoore(Y_MeeY_Mo).Otipodesada Mooreclaramentevistocomodependentesobovalordeestadoapenas,enquantootipodesada mealydependentedovalordeestadoedeentradaAeHold.Porqueotipodesadamealy dependentedeentradas,modeladoeumaseodecdigoqueinfereumblococombinacional lgico,comotodasassadasMealy.

40

41

Exemplo8.9.FSMcomlgicasequencialdeestadoseguinte
A maquina de estado nesse exemplo modela um flip-flop extra na lgica de estado seguinte. O diagrama de estado, figura 8.15, indica operao funcional do modelo. A arquitetura modelada mostrada depois do cdigo HDL. Comamaquinadeestadopassandopeloloopde5estados,AstrsentradaA,BeC,fazamaquina deestadosegmentarparaosestadoThreeA,ThreeBeThreeC,respectivamente,dentrodeuma codificaobaseadaemprioridade.Oresetssncronogarantidoasermantidoemaltoparapelo menos5ciclosdeclock,entoassegurandoamaquinadeestadonoestado1.Depoisdeumreset, asaidaY1altaparaumciclodeclockdecorrentede5ciclosdeclockenquantoApermanece alto.OmesmoocorreparaaentradaCesuacorrespondentesadaY3.Entretanto,quandooB alto, suasadacorrespondenteY2vaipraaltoapenasumavez.Arazoparaisso,quandoa mquinadeestadoestnoestadothreeB,osinalBeenInState3Bacionadoparaalgica1de umflipflopadicionalnalgicadeestadoseguinte,queserusadoparainibiraentradadothreeB denovo,atqueumresetocorra.

42

43

Exemplo8.10:FSMcomlgicadesaidasequencial
Umamaquinadeestadocomumcontadoracopladomodeladoparaodiagramadeestadonafigura 8.16.Ocontadorfazpartedasadalgicadamaquinadeestadocomomostradonafigurainferida. Depoisdeumreset,amaquinadeestadoseinicianoestadoum,eocontadornalgicadesada estabelecidodeformaquetenhaovalor0.Depoisdoreset,amaquinadeestadooperanumciclo dentrodeumloopde4estados.Existeduassegumentaesparaosegundoestagiodoloopqueso representadospor2estados,TwocounteTwonocount.Quandoaentradaenablecountest destacada (ou ativada), o stado twocount usado no loop, caso contrrio, twonocount . Portando,enquantoenablecountestativado,ocontadorincrementadoacada4ciclosdeclock. Asadadocontadortambmsadadomodelo,juntocomaindicaoseomesmomaiorouigual a25. Notequeessaestruturafazoscontadoresseremincrementadosumciclodeclockapsamaquinade estadoestarnoestadotwocount.parafazerocontadorincrementaraomesmotempo,amaquina deestadoentraroestadotwocount,oprximosinaldeestadodeveserpassadoalgicadesado emvezdalgicadeestadoatualcomomodeladonesseexemplo. 44

45

Exemplo8.11FSMcomlgicadeprximaestadoesadasequencialBalckjack
Os modelos nesse exemplo so funcionalmente os mesmo, implica a mesma arquitetura e sintetiza o mesmo circuito como os do exemplo 8.6. O diagrama de estado , portanto, o mesmo. Figura 8.11 e sua arquitetura implicada tambm a mesma da figura 8.12. Exemplo 8.6 foi especificamente projetado com uma entrada, prximo estado, estado atual, sada e passagem de dados separados para mostrar os efeitos de diferentes codificaes de estado. Esse exemplo combina todos esses blocks em um nico process(vhdl) ou always(verilog), reduzindo o cdigo consideravelmente. No existe mtodo de codificao certo ou errado para qualquer modelo, exceto que o mesmo deve ser fcil de compreender, isso , no troque compreenso pelo mnimo ou mais eficiente uso do cdigo. Exemplo 8.6 e esse em questo demonstram esses dois extremos. Codificaodeestadosequencialusadae,diferentedoexemplo8.6,definidadentrodomodelo. Noexistereferenciaparanenhumsinaldeestadoseguinte,masessesexistemporimplicaes; sinaiscurrrentStateenextstatedoexemplo8.6foramsubstitudospelosinalstate.Onumero reduzidodesinaispodeservistospeloondasdesinaissimuladasnafigura8.17. 46

47

48

49

Exemplo8.12:FSMinterativaseunidirecionais
Trs diferentes modelagens de mquinas de controle so usados para controlar a mesma parte operativa,vejaaFigura8.18.Apartedecontrole1modeladausandoumamquinadeestado mestrequecontrolatrsmquinasescravas.Apartedecontrole2usatrsmquinasdeestadocom umcontroleemsrieentreelas.Apartedecontrole3modeladausandoumanicamquinade estado.Todasastrspartesdecontrolesoequivalentes. ParteOperativa Aestruturadaparteoperativa,Figura8.19eosmodelosHDLestoinclusosnesseexemplo.Aparte operativanodesempenhanenhumafunoparticular,mascapazdedemonstrarasdiferentes configuraesdeMSFsusadasparaseucontrole.Aparteoperativaaceitasequnciascomtrsou quatrovaloresde4bitsnaentradaeosprocessaatravsdaparteoperativaparafornecersequncias comdoisoutrsvaloresde9bitsnasada.Aparteoperativacontroladapelapartedecontrole pararealizarasseguintesequaes.OsdadosdeentradasoA,B,C,eD,osdadosdesadasoY1, Y2eY3. Sequnciade4entrada(Threeonly=0) Y1=A.B+A.C Y2=A.D+B.C Y3=B.D+C.D Sequnciade3entradas(ThreeOnly=1) Y1=A.B+A.C Y4=B.C Ofluxodedadosdasequnciaquepassaatravsdaparteoperativaindicadopelodiagramade tempodossinais;Figura8.23.Porcausadasseismultiplicaesquesonecessriasquandoquatro entradas de quatro bits so utilizadas, e h somente um multiplicador, a mais rpida taxa de transfernciadedadosconsecutivosestemcadaseisciclosdeclock.Quandosomentetrsentradas dequatrobitssoutilizadas,somentetrsmultiplicaessonecessrias,eentoassequncias consecutivasdeentradassopossveis. 50

PartedeControle A configurao estrutural de trs partesdecontroleilustradasnafigura 8.18.Cadapartedecontrolefornece osmesmossinaisdecontroleparaa parteoperativa. Segue a descriodetrspartesde controle; seus diagramas so ilustrados das figuras 8.20, 8.21 e 8.22.

Parte de controle 1. A mquina de estado mestre FSM_MASTER, tem comosadaumnicosinaldecontroleparacontrolartrsmquinasescravasStartFSM1,StartFSM2 eStartFSM3.EssessinaisacionamasdevidasmquinasescravasFSM1,FSM2ouFSM3numciclo atravsdesuasequnciaparticulardeeventos.AmquinadeestadoFSM1dedicadaafornecer quatrosinaisativosusadosparacronometrarasentradasemsrieparaoregistradorapropriado.A mquina de estado FSM2 fornece sinais usados para selecionar quais das duas entradas sero multiplicadas. E fornece tambm sinais de ativao usados para cronometrar o resultado da multiplicaonoregistradorapropriado.AmquinaFSM3,forneceaslinhasusadasparaselecionar qualoresultadodassadas.

Partedecontrole2.AstrsmquinasdeestadoFSM1,FSM2eFSM2geramosmesmossinaisde controleparaaparteoperativaqueosdapartedecontrole1.AdiferenaqueFSM1tambmtem comosadaosinaldecontroleStartFSM2,eFSM2temcomosadaStartFSM3paraFSM3. Partedecontrole3.Foimodeladausandoumanicamquinadeestado.Asduasprincipaiscurvas nodiagramadeestado,Figura8.22,indicamascondiesemqueastrsouquatropalavrasde entradasousadas.51

54

55

ModeloHDLParteOperativa Osmodelosdaparteoperativasodivididosemtrsestgios:STAGE1,STAGE2eSTAGE3.Cada estgiocontroladopelamquinadeestadocorrespondente,FSM1,FSM2eFSM3,napartede controle1e2.AsfunesdossinaisconcorrentesemVHDLeasfunescontnuasemVerilog paraossinaisSum1,Sum2,Sum3eNoSum,socomandadaspelocontroladoreestoposicionadas entreosestgios2e3.Estasfunesnosonecessriasquandoelesestiveremcombinadosno estgio3.porexemploafuno Sum<=AB+AC; podeserresumida,eSum1substitudaporAB+ACnoscasesdeescolhadoSTAGE3.Asfunes explcitasparaSum1,Sum2,Sum3eNoSumsousadosparaqueelasexistamcomoobjetode dados nomodelo,podendosermonitoradasduranteasimulao.Issotambmcompreendido facilmentepelaoperaofuncional.

57

58

ModeloHDLPartedeControle Asseguintesdescriessereferemanmerosnocdigodapartedecontrole1,masseaplica igualmentenapartedecontrole3. 1AcodificaodeestadoemVHDLdefinidacomocomeandoemST0enoemST1.Isso porqueaferramentadesnteseindicaautomaticamenteestadossequnciaisqueiniciamemzero,e quandosimulados,ST1temovalorde1enodezero.Entretanto,seotipodecodificaode estadoparaFSM2fosse type StateTypeFSM2 is (One, Two, Three, Four, Five, Six) acodificaodeestadoaindaseria 0000,0001,0010,0011,0100,0101,0110 istoexcelente,masquandosimulado,ossinaisdeCurrentStateFSM2eNextStateFSM2sona lgica0quandonoestado1,e1quandonoestado2,etc.Istogeraumaconfusodesnecessria. 2Definirumalgicapadro0paraasquatrosadasantesdadeclaraocaseevitaadefinio explcitadeseusvaloresemcadaramodadeclarao case incluindoosramos others (VHDL)e defaut (Verilog). De qualquer forma, necessrio para evitar a inferncia de latchs na parte combinacionaldamquinadeestado.Oprximosinaldeestado,NextStateMasterFSM,noprecisa deumvalorpadrodesignadoparaeleantesdadeclarao case,jquesempredesignadoum novovalordadeclaraoparaele. 3Osvalorespadrodesadasodefinidosantesdadeclarao case,desaformaelesno precisam ser repetidos nas clusulas others e default. Entretanto, quando um valor padro de prximo estado no definido antes da declarao case , necessrio que nas clusulas others/default,evitandoosurgimentodelatchsindesejados.

59

70

71

72

73

74

75

76

77

78

79

80

81

82

Você também pode gostar