You are on page 1of 31
Maquinas de Estados Finitos ‘Objetivo: Este capitulo conclu o estudo de circuits sequencias,iniciado no Capitulo 13. Apresemtamos aqui um procedimento formal denominado maquina de estados fits (ite state machine — FSM) para projeto de circultos sequencias, Tl abordagem é muito util quando o funcionamento do cireuito pode ser deserto por meto de uma lista bem definida (¢ de preferéncia nao muito longa) contendo todos os estacos possiveis do sistema, untamente com as condigdes necessitias para o sistema passar de um estado @ outro, assim como os valores de safda que 0 sistema deve produzir em cada estado. Esse tipo de projto sea adicionalmente iustrado no Capitulo 23 wilizanco a linguagem VHDL. Sumario do Capitulo 15.1 Modelo para maquinas de estas fits 15.2 Frojeto de miquinas de estados 15,3 Resoucio de sseras digas egtches 154 Projeto de maquinas com grande numero de stds 15.5 Projet de maqinas com logics combinacionl complexa 15.6 Projeto de sistemas com maltiplas maguinas 15,7 Teenie genetics para projeto de geradores de snas 15.8 Projeto de dvizores de fequeneia com fase simericn 158 Ess de cdificagdo de maiquims de esados 15.10 Exerckios 15.11 Execiios com VHDL 15.1 MODELO PARA MAQUINAS DE ESTADOS FINITOS [Asespecificagdes de um sistema sequencial podem ser resumidas por mefo de um didgrama de transicGo dees tados, como aquele apresentado na Figura 15.1, © que esse diagrama diz € que a maquina tem quatro estas, dene tninados estadoA, etadob,estadaC eestadoD; diz também que a maquina tem uma saa, denominada y, que deve $5 “0° quando em estado, estadB ou estadoC, ou’ quando em estadoD: Finalmente, diz que essa FSM em cenitrada falem do clock, é claro, e possivelmente rest), denominada x, que contola as transigbes de estades (maul deve passa de exadoA para esadolina préxima borda do clock se x=" naquele momento, ou devs permanecer em danse nco contro: informagies semelhantes Sao fornecids tasbém pars as outastransies de estos) vr nceaoe de berdware, um modelo simphficado para uma FSM é mostrado na Figura 15.2(@), A seed aes rior Gequencial) contém alogiea sequencial(jodos os flip-flops), enquante que a segdo SuPET oT {combinaciona!) ven somnteeleuitos combinacionais. Como todos o flip-flops eso na sec80 inferior clack. AS N0 aplie somente aquele loco, e 350 erica Dagia! Nocera eVHOL | Vor A. Peston ELSEVIER i o FIGURA TEE. la modelo spice de FSM (para ardor) (0) Maqui de Meaby (€] Maquina de Moore, Hi) Osbits armazenados nos flip-flops no presente momento forma o sinal pr_state (present stale), enquanto dvs i osbite a serem armazenados por eles na préxima transi (positiva ou negativa, dependendo do projeto) do clock “ formant sinal rx state (next state). A seco superior ¢ responsivel pelo processamento de pr_statee da entrada do ¥ ircuito propriamente dita, produzinda nx. stat €a sada do sistema propriamente dit g ‘Os estados de uma FSM podem ser representados de diversas maneiras, Por exermplo, suponha que 0 seguinte tipo de dado tenha sido usado em VHDL para sintetizar a maquina da Figura 15.) 4 ‘TYPE machine_state IS (estadoA, estadoB, estadoC, estadoD); y esse caso, st 0 digo bindrio sequencial regular (Seco 2.1) for utlizado para codificaros estados da maa 0°, estadoB = "01", estadoC = “10” e estadoD = "11". odificagdo, os quals sero descritos na Secio 15.9. No caso particular mn frequéncia porque hi wma abun- na, as seguintes palavras resultardo: estado ‘Alem desse, existem outros estilos de c de circuitos sintetizados em FPGAs (Capitulo 18), 0 estilo one-hot € utilizado con dancia de flip-flops naqueles dispositivos. ‘Um imporaante aspecto referente 20 modelo FSM é que, embora em principio qualquer cieuito sequencial ‘Um contador € um bom exemplo, porque ele pode ter possa ser modelado como tal, iso nem sempre € vantajoso. eon mdamere enorme de estados, o que toma sua enumeragdo impraticsvel, Como simples rega prtica, # bord: gem FSM é aconselhavel em sistemas cuja arelasconstituem uma lista bem estruturad de preferéncia nao muito longa, tal que todos os estados possam ser devidamente nomeades ¢ especificados heh fof of of of of eat Capi 15. | Maqunas do Estatos Fntos AQUINAS DE MEALY VERSUS MAQUINAS DE MOORE ‘Um tiltimo comentario sobre o modelo FSM refere-se a sua divisao em duas categorias, denominadas meaquinas de Mealy e maguinas de Moore. Se a saida da maquina depende nao somente do estado armazenado na mesina, mas também das entradas do sistema, entto ela é uma maquina de Mealy (Figura 15.2(b)), Ao conteario, sea saida de pende somente do estado armazenado, € uma maquina de Moore (Figura 15.2(c)). Um contador convencional é um exemplo da ultima porque sua proxima saida depende somente de seu estado atual (0 circuito no tem nenhuma entrada — exceto clock. ¢ lara), A primeira é mais geral e corresponde & maioria dos projetos, 15.2 PROJETO DE MAQUINAS DE ESTADOS Nesta seg2o, uma técnica formal constituida por cinco etapas para projeto de FSMs ¢ descrita, Diversos exem- plos sto apresentados subsequentemente. Etapa 1: Desenhe (ou dlescreva) 0 diagrama de transigao de estados (como na Figura 15.1). Etapa 2: Com base nesse diagrama, escreva as tabelas-verdade para nx_statee para a saida. Entdo, rearranje as tabelas-verdade substituindo os nomes dos estados pelo valores binarios correspondlentes (lembre de que omimero minimo de bits — e, por consequencia, o numero minimo de flip-flops — necessi- rio para implementar uma FSM ¢ log.n, arredondado para cima, onde n é 0 niimero de estados). Etapa 3: Exctaia das tabelas-verdade rearvanjadas as expressbes booleanas para nx_state¢ para a saida. Certifi- que-se de que as expressbes (seja em forma SOP ou em forma POS, Segbes 5.3 € 5.4) sdo irredutiveis, Etapa 4:Desenhe o circuito correspondente colocando tocos os flip-flops (somente tipo D) na segao inferior ea lgica combinactonal para as expressoes derivadas na Etapa 3 na seco superior (como na Figura 15.2) Etapa 5 (opcional): Quando o circuito estiver sujelto a glitches na safda, porém glitches nao forem acetaveis, ‘erescente tum DPF extra para cada bit de satda a fim de produit sinais“limpos”. © DFF extra pode fancionar na borda ascendente ou descendente do clock. Note que, nesse caso, a nova saida estard um ciclo de clock ou meio ciclo de clock atrasada em relagio a sada original, dependiendo do emprego de um DFF de borda ascendente ou descendente, respectivamente (considerando que a maquina original opere na borda positiva). E importante ressaltar que nesse procedimento de projeto sto empregados somente flip-flops tipo D. Se for necessirio um TF, por exemplo, entdo a logica combinacional (da seco superior) que sera associada ao DF (ard com que 6 conjunto se assemelhe automaticamente a um TFF (esse [ato sera ilustrado no Exemplo 15.3). 1m EXEMPLO 15.1 FSM BASICA O diagrama de transigdo de estados de uma FSM ¢ apresentadlo na Figura 15.3. Ele contém trés estados (A, B € ©, uma saida (y) € uma entrada (x). Quando no estado A, a maquina deve produzir y = '0' na saida, prosse- sguindo ao estado B na proxima transicdo positiva do clock (considerando que a maquina ¢ de borda postiva) se a entrada for x = 0" naquele momento, ou permanecendo no estado A, caso contrario. Quando em B, deve produit y =°0'e prose ao estado Ce x= 1 no instante em que ocorrer a borda posta deck. Por fi, se em C, deve produzir y = x ¢retornar ao estado A incondicionalmente na proxima borda ascendents de ck, Projete um circuito que implemente essa FSM. 351 2 352 teint Moderna e MOL. |. ole A Peon ELSEVIER 4 FiGuRA TES. Fm do Bemplo 1S soLUGAO ° = ‘A solucio, usando o procedimento formal descrito, ¢ apresentada a seguir 4 uapa I: Esa etapa consist em consti 0 diagrama de transito de estados, que j4 foi apresentado na Figue 4 wal33, & Etapa 2:A tabela-verdade para nx_state €y pode ser cobtida a partir das especificagoes contidas no diagrama de unneicn de estados, €€ mostra na Figura 15.4(a). Essa tabel-verdade, J reartanjada, consta t na Figura 15.4(b), na qual todos os bits so ‘mostrados explicitamente. Como ha trés estados, $80 4 rnecessirios no minimo 2 bits (log,3] = 2 flip-flops) para representé-los. Além disso, como m_state ~ vera sempre ligado ts entradas dos fip-ops (Codos do tipo D) «prsate is S88 saidas, os pares de “4 pits dj e aut foram usados paa representa rsa © Pre respectivamente. “anlaerdade psy 0 eee Si as sie] [eae a 3 ase i aan i 3 eet 4 aoe tare 3 a8 0 al Mapa ce Kaa 69 es % - © otelxte “ Gan EA [oy baler ee) mapas de Karna pare FSM da Fgwe 153. “ft Etapa 3: Temos de derivar, da tabela-verdadé, a5 expressbes booleanas pata ye nx. state, Aplicando 0 tro 4/4 . dda Figura 15.4(b) aos trés mapas de Karnaugh (Se¢ao 5.6), um para y, um para d, ¢ um para 4, Fe a ura 15,4(€), resultam as seguintes expresses SOP irredutiveis (Seqao 5.3): 4 yeas aye 4 a= a's tH 4 apa 4: Por fim, poderos desenhar 0 ciruito correspondents 3$ conclusbes obtidas acima. O resultado ¢€ all mostrado na Figura 15.5(a), com os DFFs na parte inferior ¢ a logica combinacional que implements amos de deriva na parte superior. Para esclarecer mas ainda 2 relagio com as expressbes que aC do na Figura 15.5(b), na S modelo geral de FSM da Figura 152, o crcuito foi ligelraments sears {qual todos 0s sina (x, 9, prstate € mx state) podem ser observados com maior clareza ih Cope 15. | Waqunas de Estados Fntos Etapa 5; Nao ha nenhuma especificacdo referente a glitches. De qualquer modo, como nesse exemplo a saida deve obedecer diretamente a entrada (Isto ¢, y =x") quando no estado C, a Etapa 5 ndo deve ser em- pregada @ x FIGURA 15.5 (a) Circuito que implementa a FSM da Figura 15 3; (B) Verso rearanjadalustrando 0s principals snes, 1m EXEMPLO 15.2 A MENOR E MAIS SIMPLES FSM ‘Sabemos que um DFF é uina FSM de dois estados. Confirme essa observacto usando o modelo formal de FSM. SOLUGAO Ftapa 1:0 diagrama de transiao de estados de tal maquina é mostrado na Figura 15.6. Contém somente dois estados, Ae B,e os valores que devem ser produzidos na saida sao y ='0" quando no estado A ou y = 1" quando no estado B. A transigdo de um estado para o outro € controlada por x (portant, x é uma entrada). Como x =‘ produz y ='I',e x= ‘0’ produz y = '0' (na préxima borda ascendente de clk, considerando que € um circwito de borda positva), entao y € simplesmente uma copia sincrona de x (dai, um DEF). FIGURA 35.6. menar e mais Smples FM [um OFF) Etapa 2:As tabelas-verdade da Figura 15.7(a) foram extraidas do diagrama da Figura 15.6, Como ha somente dois estados, é necessério apenas um bit (um flip-flop) para representé-los, Considerando que os estados A e B foram declarados nessa ardem, entao a codificagdo correspondente € A = ‘Oe B= ‘I’, ‘mostrada nas tabelas-verdade rearranjadas da Figura 15.7(b). Etapa 3: Da primeira tabela-verdade, concluimos que y = pr_state. Da segunda, verificamos que mx_state = x. Etapa 4:Por fir, aplicando essas informagdes 20 modelo geral de FSM da Figura 15.2, obtemos como re- _sultado 0 circuito da Figura 15.7(€), que, como esperado, ¢ simplesmente um DFF A Etapa 5 io € necesséria porque a saida ja vem diretamente de um flip-flop. 353 C + (onan Ca ( ‘ (4 A 354 stovenicaDigtal Magora WHOL | Von A. asst ELSEVIER Toodb.vetate p87 ‘abies tay (psa mse | eS Pwo te sot teers Tablwerige prem se_Tabserodde parame ae ‘pestate x | rx state [oestatean x | msiate do ee we ee is {Es so ep @ SES wl 8! ie BGuRR TST weplesantago da Fu da Figura 156 Telos verdad [a originals) retranjads (9) Greta comespondente, ening de acordo com a modelo gerald Figure 15.2. - mt EXEMPLO 15.3 CONTADOR — UMA FSM CLASSICA ‘Como mnencignamos na Segio 14.2, contadores esto entre os circultos sequenciats mats frequentemente usados Por essa razto, ainda que o projeto dos mesmos jtenha sido estudado nas Secoes 14.2 ¢ 14:3, parte dele € r ae Capua 15. | Maquinas de Estados Fnios verifiengao para o leitor), Observe a interligacio mx_stave pr_statel, que é responsivel pelo sincronismo Observe também que nesse caso ambas as saidas (y,€ y,) esto sujeitas a glitches, portanto 2 Etapa 5 do pro- ceditmento dle projeto deve ser inclutda se forem exigidos sinais timpos, @) FIGURA 15.33, buss Sis sincronizadas (pela interligaqlo mx stated = pr sotel) que prodazem os sinais da Figure 153(c) Dowd Blea combinacional, ambos 9s saidas esto sueitasagitches. DE MULTIMAQUINAS A MAQUINA QUASE UNICA Quando as maquinas tem 0 mesmo miimero de estados, podem ser reduzidas a uma maquina quase nica como introduzido na Figura 15.32(c). Isso 6 conseguido incluindo a Etapa 5 do procedimento (Segao 15.2) na segunda FSM (veja o registrador em sua saida) e entdo fazendo a ligacao pr_state2 = pr_statel, que elimina a secao sequencial da segunda FSM. Observe, entretanto, que essa técnica nem sempre € vantajosa (Veja Exercicio 15.20; Veja também Exercicios 15.15, 15.16 ¢ 15.21), 15.7 TECNICA GENERICA PARA PROJETO DE GERADORES DE SINAIS Como vimos nos exemplos anteriores, o éstudo de geradores de sinais oferece uma oportunidade inestimavel para dominar néo somente técnicas de projeto de FSMs, mas também conceitos de logica digital em geral. Nesta secio, introduziremos outta técnica de projeto interessante, que pode ser aplicada a construcao de qualquer forma de onda binaria, ‘Tal écnica ¢ derivada da observacao que qualquer forma de onda bindria pode ser construida com a combi- nacio adequada dos sina 0‘, lle clk eolocagios Indo a lado, Dois exemplos sto mostrados na Figura 15.34. A forma de onda na Figura 15,.34(a) tem periodo T= 27, e pode ser construida com a sequéncia (clk —>‘I'} em cada periodo de y. O exemplo na Figura 15.34(b) € mais complexo; seu periodo ¢ T = 7T, ¢ ela pode ser construtda com asequencia {cll > 0" cl! >I’ > ce clk’ > chy. O circuito genérico (capaz de implementar qualquer forma de onda binatia) introduzido aqui esté representado na Figura 15.34(c). Fle consiste em dois multiplexadores controlados por duas FSMs que funcionam em bordas de clock diferentes, O par FSM1-MUXI é responsivel por gerara forma de onda desejada, enquanto que o pat FSM2- ‘MUX2 € responsivel pela remogao de glitches (lembre-se de que glitches nunca sto permitidos em geradores dle sinais) funcionamento de MUX2 € o seguinte: durante os intervalos de tempo nos quais salda de MUXI. (denomi- nada x) ndo exibe nenhum glitch, MUX2 deve selecionar x. Por outro lado, se ocorrer um glitch quando x deveria permanecer alto, entio l' deve ser selecionado para elimind-lo; de maneira anéloga, se ocorrer tm glitch quando x deveria permanecer baixo, entao '0" deve ser selecionado para suprimi-lo, A utilizacao dessa técnica €lustrada no exemplo a seguir. 367 3 ~ 3668 einai e\HOL | he eo ELSEVIER ~ por fim, observe que a5 FSMs da Figura 15.34(6) podem ser reduridas a uma mdquina quase Unica usndoa 2 deni desta na Segao 15.6. O deat resultante&mostradona Figura 15.34(d) (Veja Exeekios 19.19 € 15 ae | 2 : ~ Lee eat SEE 1 pat : - oo 7 @ 7 aU Hh bei kre - 1 ~ e Ft FM) 7 FiGURA 15.34, (a}1b) Formas de onda construides pela combinacio dos sinavs 0, ‘1. ‘lke clk Tado @ lado; (c] Circuito genérico corresponden- wnt clone pment om meagan ne 1m EXEMPLO 15.10 GERADOR DE SINAL PROJETADO COM TECNICA GENERICA y projete um ciecuito capac de gera snal da Figura 15.35, Observe quo mesmo tem (ransicoes em ass bordas de clock, portnto a resolueao do circuto deve ser maxima (isto é, metade de ur periodo de clock), ‘caso em que a utilizaglo de duas FSMs pode ser proveitosa. AIGURA 15.35. Gerador de snal do Bemplo 15.40. 4 soLucao “ Como mostra a Figura 15.35, cada pertodo de y pode serconstrudo coma sequencia (1° > eh» 1) Uma 4 solueho experimental, com apenas um par FSM-MUX, €'mostrada na Figura 15.36(@). As tnias entradas 4 do multiplexador do cl e', porque eses sio os sinais necessrios pera consruir y. Para gerar a sequenclt cima, a FSM deve produzirsl='l" (pra selcionar a entrada‘), seguda por sl (para seecionar cli) e- 4 finalmente, sel='l' (para selecionar I’ novamente). ‘ TMi, porém, um problema grave nesse circuit, Observe na‘Figura 15.36(6) que quafido o mux concla 8 transgdo de sua entrada superior (clk) para sua entrada inferior (1) o clock jest atxo G@lgum temPo de “ propagagdo no mux €inevitivel),o que causa wm glitch nasa Consequentemente, pars ess abordagem set 4 syavel, alguma tecnica de remogao de glitches deve ser inclutda. “I © problema pode ser resolvido com 0 acréscimo de outro par FSM-MUX, como mosttado anteriormente na “ Figura 15:34). Visto que o glith em x ocorre quando x est alto," deve ser stlesionado durante aquele 4 imtervalo de tempo, com x escoltido nos outras intervalos. 4 6 eivuito genético da Figara 15.344), adaptado para ese exemplo,€ mostrado pa Figura 15:37() (sere s aque nem todos os sins de entrada sio necessrios). Um diagram de tempo correspondents ¢ rmostrado na | ot Figura 15.370). MUXI deve gerarx, 0 que requer a sequencis (1° cllt-> 1, portanto seh = [1 ~> vw 11} deve ser produzido por FSML. A selecdo efetuada por MUX2 depende da localizacao dos pliches: nest “ exemplo, ha somente um glitch, que ocorte enquanto x-'l', portanto, MUX2 deve selecionar sua entrada aa Canto 15 | Miguras 6 fstados tes 369 | inferior Gel=1) durante aquele intervalo de tempo, ou sua entrada superior (se,~0} durante os outros dais = | imtervalos de tempo que compreendem cada petiodo de y. Resumindo, MUX2 deve gerar a sequéncia [x 1" ~ > x], 0 que requer que sel, = (0 -> ‘1’ > ‘01 seja produzido por FSM2. ~ te / FIGURA 15.36, (a) SolucSo (ndo OK] baseada em um par FSM-MUX para o garador de sinal da Figura 15.35; (b) Farmaelo de glitch durante - transigdo da entrada superior [ft] pare inferior (1) do mu. FIGURA 35.37, xemplo usando a abordagem gendrica com dols pares FONE MUX para projsta da um gerador de sal (a) Blagrama paragerar ‘sina da Figura 15.35 (b} Dagrara de tempo correspondente mostrando um glitch em x(c Valores de see sel, com respectivos nomes dos ‘estados das FSM; ()Diagrama de transigSo de estads de FSM e FSMD; (e) Circuit inl (multiplexadores no mostrados) (Vela também vercicos 15.15 015.16) O cliagrama de tempo ¢ repetido na Figura 15.37(c), mostrando os nomes para os estados (A, B, C) das FSMs. Dele, pode-se obtet as diagramas de transicio de estados de ambas as maquinas, exibides na Figura 15.37(4) Aplicando o procedimento de projeto de cinco etapas da Seco 15.2 a esses dois diagramas, resultam as ex- ~ pressbes a seguir. . Para FSML: dy = dy dy = yd! € seh, = Para FSM2: mx state, = pr_state, (para sincronismo) € sel, = 4, ‘Com essas expressbes, 0 circuito final pode ser desenhado (mostrado na Figura 15.37(e)). Observe a uulizagao do método de sincronizag2o descrito na Seco 15.6. Os multiplexadores aos quais sel, € sel, devern ser ligados podem ser construidos usando qualquer das técnicas descritas na Segdo 11.6. Observacées: 4) Na técnica genérica proposta nesta seg, ha quatro transighes sujeitas a glitches: clk >I’, clk —> cll’ elle» “0 ech’ —> dk (Exercicio 15.15). EE 370 terres gta oda e WHOL | YoRs A Peto ELSEVIER i) Basa tenicn€ vida para implementagdes como na Figura 15.344), na qual o primeito muy fe quatro - naradas eo segundo tem até tes (em VHDL, quando usando codificacto ane-hot, por exemple, 0 ‘compilador poce ciar mais do que quatto entradas para o primeiro murs, usando entio valores repetidos para as entradas hm excesso ~ por exemplo, ele pode criar diversas entradas com clt). Alem disso, a gia combinacional pode mux ¢ o clock do sistema (este ultimo controls © causar defasagem significativa entre o clock que atravessa 0 comuador da ESM, que, por sua vez, controla o mux), Nesse caso, mats duas transides poder aust glitches: ‘Go clk eT’ clk, A solugio para esses dois cas0s ¢ semethante aquelaacotada para os owtros quatro cASGS anteriores (Exercicio 15.16). 415.8 PROJETO DE DIVISORES DE FREQUENCIA COM FASE SIMETRICA tm gerador de sinalé um cieuito que toma o clock como entrada principale « part del, produz um sinal predefinido, livre de glitches, Como vimos na Segio 14.3, um divisor de frequéncis ¢ um caso particular de getador de sinal no qual a stida € siraplesmente um sinal com duas janelas de tempo Em algamas aplicagbes,éexigido que tai ancas apresentem corapeiments iguats (ly Oe 8 ciclo de tra- ¥ batho, de 50%), Nesee caso, se a frequencia do clock tver de se dividida por M, com M paso crculto sf Pres ciclo de clock, Segzo 15.3); no entanto, se M for impar, 0 crculto af operar numa das bordas de clock (resolugdo = um. requerendo, assim, uma solugto ~ deve funcionar em ambas as transicdes do clock (Tesolugdo = meio ciclo de clock), o sum pouco mais complexa. © projeto dese tipo de creuto uilizando a abordagem FSM € muito simples, © problema é ilustrado na Figu- a 15.38, para Me5. A Figura 15.38(a) mostra as formas de onda. Como jo necessirios cinco estados (A,B, C, eB. Ocareuito deve produzir una forma de onda x, que seja‘0" durante (M=172 pertodos de clock ¢ 9" durante 4 (let? celos de clock, Uma cbpia de x, (denominada x), atrasada ce meio periodo de clock, também deve ser al produzida, de modo que, efetuando-se uma operacao AND entre esses dois sinais (isto é, yex, %,), a forma de onda x dlesejada resute, Observe que y tem fase simétrica e sua fequenci &f/M. 4 ‘0 iveuito € apresemado na Figura 13.36(b). Ee contém uma FSM de botda postva gue prods seguida ‘na transigao negativa de clock para produit x,, Também fot mclutdo urn por umm estagio de saida que armazens x, esté sujeito a glitches. O exemplo a seguir ilustra @ flip-flop adicional (opcional), que s6 € necessério quando x, | utilizagao dessa técnica de projeto 4 feet | re i wel ¥ pa ee elit aT FiGURATE'Se-Cvauito de do por com fave smc’ a) Formas de onda (6) Diagrams gers do crcuko ‘@ EXEMPLO 15.11 DIVISAO POR 5 COM FASE SIMETRICA e ‘Usando a abordagem com maquina de estados descrita anteriormente, Projete um circuito que divida f,, por > J “dl ¢ produza uma saida com fase simétrica (ciclo de trabalho igual a 50%), “Hi “dh SOLUGAO | Noss circuito deve produzir as formas de ondas mostradas na Figura 15.38(2). Tal FSM deve possuit ig i co estalos, com sada (x) baixa durante (M-1/2=2 perfodos de clock e alta durante ¢ (M+H1Y/2=3 periodos: f | ‘A tabela-verdade correspondente para x, ¢€ nx_state € mostrada na Figura 15.39 (com codificacao binaria sequencial para os estados). A partir dela, com a ajuda de mapas de Karnaugh, as seguintes equacoes 80 obtidas: = 4G) #4 4d, = ty'4y' Portanto, 0 citeuito correspondente para essa FSM é aquele dentro dos retangulos escutos na Figura 15.39. Para concluir, precisamos examinar se sua saida (x,) esté ou nao sujeita a glitches. Anslisando (na, q,) Vetificamos, por exemplo, que, quando o sistema passa do estado D (¢,qjqy = “011") para o estado E (qqy = "100", trlos os bits mudam; portanto, se 4, for para ‘0’ antes de 4, ter tido tempo de cresoer até “1, ocorrera momentaneamente x=(07, 0 que constitui um glitch porque x, deverta permanecer alto durante aquela transigdo (veja Figura 15.38(a)). Consequentemente, € necessério o DFF extra mostrado na sada da FSM. O outro DEF mostrado na Figura 15.39, que funciona na transicdo negativa do clock, armazena x, pata produzir x,, dai resultando y=x,:x, na salda ‘sua expressao “Tobelaverdade pa ena stato wes |, | mae eae | | dado Wooo oe Twoor fleet | 0 [oro (ore 1 pwier | y ora pete] F creo paees] yi FiguRAIS, irclto da divsto por S de fase sméria do Exemplo 15.11 Nota: A maquina acima tem somente cinco estados (portanto, requer 3 flip-flops) e € projetada de modo tal aque a sada permanece baixa durante (M=1)2 periodos de clock ¢ alta durante (M+1)/2 perfodos. Lembre-se da abordagem usada para projetar prescalers na Seco 14.6, que requer[M/2 flip-llops para implementar um circuito, de divisao por M, Como M €5 no exerecio acima, so necessirios 3 DFFs para implementar o prescaler correspon. dente, que ¢ o mesmo niimero de DFFs necesstrio acima (porém, prescalers sto mals ripidos), Alem disso, cles procuizem uma saida baixa durante (M-LY2 pertodos de clock e alta durante (M+1)/2 perfodos automaticamente Restmindl, ao projetar pequenos ivisores de frequencia com fase simétrica, @ abordagem wilizanclo prescalers (sO para o contador, ¢ claro) pode ser vantajosa 15.9 ESTILOS DE CODIFICACAO DE MAQUINAS DE ESTADOS Como vimos nos exemplos anteriores, para projetar ums"FSM € preciso, em primeiro lugar, identificar e rela- cionar todos os seus estados. Por ser esse tum processo de “enumeracao”, o tipo de dado usado para representar os estados de uma méquina (em VHDL) é denominado tipo enumerado, Ha varios esquemas disponiveis para codifcar nentrica Dita Nodes eVHDL | Wore A, Peto PLSEVIER ais estado, os quais sto descritos a seguir, usando, como exemplo, 0 iP cenumerado denominado color mosttado aixo (usando sintaxe VHDL), que contém quatro estados TYPE color IS (eed, green, blve, white) Coding binarta sequel: Nese cas, © nbmero minim de bits €empregide, ¢ os cindos codifeados sequencialmente na mesma ordem em gue so telactonas. Pars o tHpo ol acim sito necessérios dois bits, (20) gieen="O1" (eI), be="10" (=2) white="11" (23). Sua vantagem € que el reve resultando etn 16 sooner numero de fip-llops; com W fip-lops(N bits), até 2” estas podem ser codificados, A desvantagem € que requer mais igicacombinacionl e, portant, o cireuito pode ser mais Fente do que os outros. Fsse ¢ 0 estilo vJeeedtcacao empregacto em todos os exemplos anteriores, exceto o Exemplo 15-4, qual foram empregadlos quatro DFS em vez de tr (aquele sistema tem somente sete estados) 12 Cfcasto one-hat: No outro extemo encontra-se 0 estilo de codificacao one hot (Geqa0 2.4), que usa um flip flop por estado. Portanto, com N flip-flops, somente N estados podem ser codificados. Ele demanda o maior nt tere de flip-flops, masa menor quantidade de logics combinacional resultando asim vi et) ripido, (Note que quantidade total de hardware pode ser muito maior do que na 9P529 anterior se 0 niimero de esta- dos codifcar for grande.) Para 0 tipo color acima, a codificago seria redo“0001", reer 1010", blue="0100" € vwhite="1000". 8 Codicarto two hot: Esse estilo € intermeditro aos dos estilo acim, pols uulzs dois bits ativos por estado. Com N fip-lops (N bits), até NON=1)/2 estados podem ser codificados. Para 0 tipo color acima, a codificagao seria ved="0011", green="0101", blue="1001" e white="0110" 1 Codifiasao Gray: Os valores sto codificados sequenciammente usando 0 cédigo Gray (Secio 2.3). A quantidade sereidhse «2 vlocidade sto comparveis asda opeio bindia sequential. Para o tipo colar acim a codifica- ‘co seria red="00", green="01", blue="11" € white="10" 1B Guifcaga Johnson: Os valores sio coaificados sequencialmente usando 0 Oia Johnson (Secio 2.5). Com N flip-flops, até 2N estados podem ser coificados, resultando ums ‘quantidade de hardware um pouco menor do 7 aque no cédigo one-hot. Para tipo colar acima, a coificacao seria red="00", _green="10", blue="11" e whites"01". 1 Codifeacao dfinida plo usudrio: Qualquer outro esqueme de comiicacto escolhido pelo projtista (Como no Exemplo 15.4) © exile one-hot € normalmentewtiizado em aplicagaes mas us fip-lops sto abundantes, foo FPGAS (Capitulo 18) evelocidade maxima ¢cesejads,enquanto que em implerenas®es compos em ASICS Capplication- specific integrated circuits) 0 estilo bindrio sequencial € frequenternent= escolhide, ‘Como exemplo, suponha que nossa FSM tenha oito estados, As codificacdes correspondentes seriam aquelas osttadis na Figita 15.40, © nmero de fip-flops exgido em cada caso € res para Biniia sequuencial, cinco para” ‘worhot, oto para one-hot e quatro para Johnson. Coa. esate [grit aeg [ Twoxnes | Onehot | Jonnson ‘amzoo [000 | oor | eono000r_[ 00 ‘eatasot [004 ‘o1o1 | ovon0010_ | 1900. SSadez_[__010 | o100t | ooto100_[/ 400 Saree [ort | oor anoot00_ | 440 Seis tes | —oor10 | oonso000_| st ‘Saws | 46i_[ rota | oosoao00 [ont Sgadee|_110_[10010 | otoa0000_| ott seer L111 ort00 | ro000900 [ooo GUNA TSO, Ngumas opcBes para couficario de uma FSM de cite estas alent Capi 15. | Manunas de Estagas Fates 373 Em VHDL, ha um atributo especial que permite que o usuario escolha qualquer estilo de codificacao, Deno- 1 enum_encoding ¢ sera estudado na Secao 19.17 1B EXEMPLO 15.12 CONTADOR CODIFICADO EM ESTILO ONE-HOT 7 Espera-se que um contador one-hot seja simplesmente um registrador de deslocamento circular (Seco 14.1) cor somente um bit alto, Projete um contador de cinco estados usando codificacto one-hot para verificar esse fat. ~ SOLUGAO © dliagrama de transi¢ao de estados é apresentado na Figura 15.41(a) e 2 tabela-verdade correspondent, wt lizando codificacao one-hot, é mostrada na Figura 15.41(b). Da tabela-verdade, obtemos d=. dy ¥ dina, dq que S80 as equacdes para um regisirador de deslocamento circular (Figura 15.41(¢)). Contudo, nenhum esquema de inicializacdo € dado nesse projeto (coma ocorre para qualquer registrador de desloca- mento). Sendo assim, ele precisa ser providenciado separadamente, 1880 foi feito na Figura 15.41(c), ligando ‘ sinal de reset & porta de preset do primeito flip-flop € a porta de reset dos demais, resultando 4,444.44 = S 00001" como estado intcial do sistema. ¥ rinses vy eran seem | were ¥ Toots sores u wErecetoseet = ® * © & @ & ; u oe Toba bes ry J aopP ne fl st m | be 1 E FIGURA 1541, Contador de onco estedos usando coaificapio one-hot (um regisrador de deslocomento cei. | EXEMPLO 15.13 CONTADOR CODIFICADO NO ESTILO GRAY x Este exemplo ilustra 0 uso de outro estilo de codificagio para FSMs. Projete o contador de cinco estados visto i no exemplo anterior, desta vez codificando seus estados com cédigo Gray r SOLUGAO diagrama de transicfo de estados correspondente € mostrado na Figura 15.42(a), com 03 valores Gray incluidos entre parénteses. Observe, no entanto, que nesse caso o cédigo nao é completamente Gray, pots a primeira e a tiltima palavras de cédigo diferem em mais do que uma posigao. (Esse efeito poderia ser minimi- zado utilizando-se as N palavras centrais do codigo, o que resultaria num cédigo completamente Gray para N par ou com duas divergéncias entre a primeira e ultima palavras para N tmpar.) ‘A tabela-verdade para a FSM da Figura 15.42(a) € apresentada na Figura 15.42(b), da qual, com a ajuda de . ‘mapas de Karnaugh, sao obtidas as seguintes equagies para nx. state r ————— 374 ELSEVIER ctoroca gia Modema evHOL [Vs A Peo 15 € mosttado na Figura 15.42(€). Urn eirenito que implemefta esas equacde GORA IS 42, Contador Gray do Exerplo 15.43. 15.10 EXERCICIOS Exercicio 15.1. Contador de 0.2 ‘a. Usando a abordagem FSM, d= qyag + 44% d= G4) + Gy + EA d= dyay + Gio d= 40 1 Compare o cicuito resultante (quacdes) com 0 projetado no Exemplo 14.3 (Figura 4-10), Qual doles tem equagbes mais simples? Por que? projete um contador de 0a 9, Prove que S095 cequagoes 520 Exercicio 15.2. Contador de modulo 7 (0 Exemplo 15.3 mostra 0 projeto do que agora ele deve ser um contador dem a. Contar de 0 a 6. b. Contarde La7, de um contador sincrono de médulo 8. Faga wm novo Pro} consideran- .édulo 7 com a seguinte especificacao: -exercieio 15:3. Contador de 3.29 com res flipslops . o Ugendo a abordagem FSM, projete um contador de 3 9 com o mimero minimo de flip-flops (3). Fre vente de que asada propriamente dita () deve ser de 4 bits a fim de representar todos 05 tretamto, lemby rnuimeros decimais de 3.a 9. Para reduzit & quantidade de logica cofibinacional na conversio de 3 para + tite tent encontrar uma representacio adequada (dé > pits) para os estados da FSM tb, Compare ocitcuito resultante com o projetado no Exemplo 146 (Figura 14.13). Observe, entretante, a eetfeagio sequencial de 0 6 foi empregaa nacuele, 80 PASSO GDS ‘aqui ser (provavelmente) escoThida uma codificagio diferente Exercicio 15.4. Contador com saida Gray aca um novo projet para o contador do Exemplo 13-9, desta vez com a saida operando com codigo GPY {como no Exernplo 15.13) 20 invés de cbigo binsrio sequencial Exereicio 15.5. Comparador de sequéncia #1 Projete uma FSM que tenha duas entradas seriais ae b e uma safda serial y, cuja funcao € comparar a com b, produzindo y = I’ sempre que trés bits consecutivos ce a eb forem iguais (da dieita para a esquerda), como ilustrado no seguinte exemplo: a= *..00110100 01110110", y =*..00110000" Exercicio 15.6. Comparador de sequencia #2 No Exemplo 15.5, foi projetado um detector de sequencia muito simples, que detecta a equuencia “110 Voce pode encontrar uma solucio mais simples (trivial) para aquele problema? (Sugestio: Pense em regis- tuador de destocamento e portas légicas.) Desenhe tal circuito e entao discuta suas vantagens e desvanta- gens (se houver) em relacio solucao baseada em FSM do Exemplo 15.5, . Suponha que agora deve ser detectaca uma cadeia com 6 uns em vantajosa? Explique. -z de 3 uns. Sua soluclo ainda seria ‘c. Suponha quic em vez de somente uns, a deteccao envolva também zeros (com uma composicao arbitrcia) [Esse fato afeta a abordagem usada em sua solucdo? Explique. Exercicio 15.7. Comparador de sequencia #3 Aplique a mesma discussio do Exercicio 15.6 a0 projeto do Exercicio 15.5. Yoct pode encontrar uma solugao mais simples (ndo baseada em FSM) para aquele problema? Em que sentido sua solucio é vantajosa? Exercicio 15.8. Registrador circular A Figura E15.8 mostra o diagrama de uma FSM que controla quatro chaves comutadoras..A maquine deve fechar uma chave por vez, em sequéncia (A, depois B, depois C, depois D, depois 4, etc), mantendo a chave fechada durante n periodos de clock. a. Projete uma FSM que resolva esse problema para 1 b. Pode esse exercicio ser resolvido com um registrador circular de deslocamento? (Veja Figura 14.2(c) € Exemplo 15.12.) ce. Repita a parte (b) acima para n=l em A, n=2 em B,n=3.em Ce ne em D. @. Como seria a sua solucio se n fosse muito maior (por exemplo, n=100)? a4 c 4 -@ FiGURAEIS. Exercicio 15.9. Extensio do Exemplo 15.6 ‘A FSM representada na Figura E15.9 6 um tanto semelhante a do Exemplo 15.6, mas com 0 acréscimo de ‘uma entrada variavel (x) (agora ela € uma maquina ce Mealy), Para 0 citcuito passar do estado A para o estado BB, nao somente deve transcorrer uma certa quantidade de tempo (time_up), mas também x='I" deve ocorrer. ‘A contagem de tempo s6 deve comecar depois de x= ser recebido, resetando-se se x~'0' acontecer antes de time_up ter sido concluido, Uma condicio semelhante € definida para o ciruito retomar de B para A, Projete 6 eirculto correspondente, considerando que time_up time. down sao tees € cinco periodos de clock, respec tivamente, como no Exemplo 15.6, 375 ~ CoO CHC onl whe cab oh A mk ‘ tires Digs Magara eVHDL | Vole A otro ELSEVIER 229 AND be come FiguAESS. Exercicio 15.10. Divisor de frequencia com fase simetrica Usando a abordagem FSM, projete um circuito que divida a frequeéncia de clocks por M e produza uma saida com ciclo de trabalho de 50%, Desenvolva duas solugdes, como indicado abaixo, entao compare os resulta- dos, a. Para M=6 b. ParaM=7. ‘¢, Como seria sua solucdo se M fosse grande (por exemplo, 60 ou 61 em vez de 6 ou 7)? Exercicio 15.11. Gerador de sinais #1 Projete uma FSM capaz de derivar, de ck, as formas de ondas xe y mostradas no centro da Figura E15.11-12 A Etapa 5 do procedimento de projeto € necessaria na sua solucao? oe UU a UE xi Li a Mi eo yew Ye ok goa ry Roum aaa Exereicio 15.12. Gerador de sinais #2 Projete uma FSM capac de derivar, de cll, as formas de ondas x € y mostradas no lado diteito da Figura E15.11-12, A Etapa 5 do procedimento de projeto € necessiria na sua solugao? Exercicio 15.13. Gerador de sinais #3 Projete uma FSM capaz de derivar, de clk, a forma de onda mostrada & esquerda na Piguta E15.13-14, onde 1,80 periodo do clock. on sen FL [ ————: as Feunesae Exercicio 15.14. Gerador de sinais #4 ‘a, Usando a abordagem descrita na Seco 15.4 (Exemplo 15.7), projete uma FSM capaz de derivar, de clk, a forma de onda mostrada a diteita na Figura E15.13-14 b. Voce pode sugerit urna outra abordagem para resolver esse problema? Exercieio 15.15. Projeto genérico de gerador de sinal #1 Este exereicio refere-se a técnica de projeto genérica para geradores de sinais deserita na Secao 15.7. ae Captule 19 | Magus de Estados Fitos 377 Nota: Considere neste exercicio que os arasos de propagagao de cll e cl através do mux nao sto suficientes para que as transigoes de ‘0’ a clk eI" a clk! causem glitches. No proxime exercicio, tals delays serio levaclos e a. Dada a observacao acima, mostre que 56 pode ocorrer um glitch em x durante as séguintes transicoes do nur: (de ll aT, Gi de cle a elle, (i) de cle a0" e iv) de cl ete b. Empregando a abordagem da Seedo 15.7, projete um circuito que produza a forma de onda da Figu- conta, ra 15.34(b). Lembre-se de considerar que Somente as quatro transicoes clo item (a) acima podem cavsar slitches no presente exercicio. . Aplicando a técnica para redugdo a uma maquina quase nica descrita obtido acima 4. Voce pode sugerir uma outra técnica “universal” para projeto de geradores de sins? 6, redesenhe 0 circuito Exercicio 15.16, Projeto genérico de gerador de sinal #2 Assim como o exercicio anterior, este também trata da técnica de projeto generica para geradores de sinais introduzida na Secdo 15.7 Nota: Considere agora que 0s atrasos de propagacio de clk e clk’ através do mux nao so mais despreziveis, de modo que as transigdes de‘0'a clk e‘1' a clk também podem causar glitches (além das quatro examinadas no exerccio acima) 4. Projete um circuito capaz de produzir a forma de onda mostrada na Figuta £15.16, qual compreende a sequencia (clk > 1’ —> ck! clk! 0" cl 'b. Apticando a técnica para reducio a uma méquina quase tinica descrita na Secio 15.6, redesenhe o circuito obtido acima, nb caer |, a op Soe by y t L Fiona cisa6, Exercicio 15.17. Alarme de carro Utilizadoa abordagem FSM, projete um circuito para um alarme de carro. Como indicado na Figura E15.17(@), le deve ter quatto entradas, denominadas remoto (comando vindo do controle remoto), sensores (comanlo vindo dos sensores para disparo do alarme), ch erst, ¢ uma saida, cenominada sirene (para ativagio da sire- ne). Um diagrama de transigao de-estados para essa FSM consta na Figura EL5.17(b), Fle possul tes estados, denominados desarmado, armado e alarme. Se ocorrer remoto = 'I',o sistema deve rudar de desarmado para ‘armado ou vice-versa, dependendo de seu estado atual. Quando armado, deve mudar para alarme se ocorrer sensokes = I’, ativando a sirena (sirene = 1). Para desarmé-ta, € necessirio outro comando remota = Nota: Observe que essa maquina, como representada na Figura E15.17(b), exibe um importante defeito por- que nto requer que remoto volte a ‘0’ antes de ser novamente valido, Por exemplo, quando o sistema muda de desarmado para armado, ele comeca a alternar-se entre esses dois estados se o comando remoto = "1" durar varios ciclos de clock. ‘Sugestao: A maquina da Figura E15.17(b) pode ser consertada com a introducao de estados intermediarios (temporirios) nos quais o sistema espera até ocorter remote = 0", Qutra soluio é utilizar algum tipo de sina~ lizador (flag) que monitore o sinal remoto, fazendo com que somnte depois de este sinal passar por zero urna nova mudanca de estado seja permitida Sugestdo: Depois de resolver esse exercicio, veja a Segto 23.3, 378 extrait ecara eno. |. Yi Peon ELSEVIER Y are] rs Lene @ * a Figura tI — = Exercicio 15.18. Controlader de porta de garagem % Utlizado a abordagem FSM, projete um citcuito para um controlador de porta eletrica de garagem. Como x indicado na Figura £15.18, ele deve te, além de clock ¢ reset, outras quatro entradas, denominaclas remoto o ("1 quando 0 controle remoto ¢ acionado), aberta (='l" quando a porta estiver completamente aber, forne- ¥ ido por um sensor), fechada («'V' quando a porta estiver completamente fechada, também fornecido por um SI sensor) € timer (=1' 308 apds ocorcer aberta ='1), Na safda, os segutintes sinais devem ser produsidos: gar _ (quando ‘1, liga o motor elétrico) e direcao (quando ‘0’, o motor gita na direcdo de abrir a porta; quando ‘l’ gira na diregao de fecha). 4 (Osistema deve apresentar as seguintes caracteristicas, 4 i. Seo controle remoto for acionado enquanto a porta estiver fechada, 0 motor deve ser ligado imediatamen- x te para abricla ~ Se o controle remote for acionado enquanto a porta estiver aberta, o motor deve ser ligado imedistamente sf para fechi-la ad Iii, Se 0 controle remoto for acionado enquanto a porta estiver abrindo ou fechando, ela deve parat imedia- of tamente. Se 0 controle remote for acionado novamente, a porta deve ir na direcao oposta Aquela em que a estava indo 4 fv. A porta nao deve permanecer aberta por mais do que uma cera quantidade de tempo (por exemplo, a 30 s); essa informagao ¢ fornecida por um timer extemo. a a. Dadas as especificagdes acima, qualquer glitch (durante transigdes de estados) seria um problema para esse sistema? b. Estime o nimero de flip-flops necessirios para implementar esse circuito, A frequéncia do clock afeta esse ~ rimero? Por qué? . Projete esse citcuito usando a técnica formal de projeto de FSMs descrita na Seco 15.2 (considere uma a frequencia razoavel para clk). Nota: Veja a observacao no Exercicio 15.17 sobre como evitar o efeito de wm comando remoto = ‘1’ muito longo. ml x eet] pgy 4 2 | aregso “4 AevRAESIe. “A Exercicio 15.19. Debouncer para chave mecanica q Quando mudamos a posicéo de uma chave mecanica (tanto do tipo toggle quanto do tipo pushbutton), esta 4 rormalmente “pica” (bounce) algumas vezes até finalmente acamodar-se na nova posigdo. Por isso, algumn tipo 4 de debouncer € frequentemente necessério quando uma chave mectnica precisa ser ligada a um circuito, 1ss0 ~ pode ser feito pela simples contagem de um niimero minimo de pulsos de clock para garantir que a chave Capt 15. | Miqunas de Estados Fos tenha permanecido na mesma posi¢éo por um tempo suficientemente longo (por exemplo, 5 milissegundos). Neste exercicio, os seguintes critérios de debouncing devem ser adotados para 0 caso de Figura E15.19 i. Chave fechada (y='0): x deve permanecer baixo por no minimo 5 ms sem interrupcao. ii, Chave aberta (y='1'): x deve permanecer alto por no minim 5 ms sem interrapcao. . Projete uma FSM que inplemente esse debouncer. Considere que a frequéncia do clock seja 1 kHz. En tretanto, antes de comecar,estime 0 niimero de DFFs que serio necessttios. \. Quantos DFFs seriam necessarios se a frequencia do clock fosse 1 MHz? Nota: No Capitulo 23 (Exercicio 23.3) esse problema deve ser resolvido usando VHDL, Verifique entao se a3 previsoes aqui fetas para o numero de flip-flops estayam corretas. fom. at FiGuRAETS.9, Exercicio 15.20, FSM quase nica #1 Compare as duas arquiteturas para projetos com multiplas maquinas descritas na Secdo 15.6 (Figuras 15.320) e (©). A reducio a uma maquina quase nica € sempre vantajosa? (Sugestio: Imagine uma FSM com pouicos estados, mas com um grande namero de bits de safda) Exercicio 15.21, FSM quase nica #2 a. Empregando o procedimento de reducao a uma maquina quase Unica descrto na Sec4o 15.6, redesenhe © circuito do Exemplo 15.9 (Figura 15.33) b, Foi vantajoso nesse caso? . Seria vantajoso no caso do Exemplo 15.10? 15.11 EXERCICIOS COM VHDL Veja Capitulo 23, Secio 235.

You might also like