Download
m quina de estados finito n.
Skip this Video
Loading SlideShow in 5 Seconds..
Máquina de Estados Finito PowerPoint Presentation
Download Presentation
Máquina de Estados Finito

Máquina de Estados Finito

168 Views Download Presentation
Download Presentation

Máquina de Estados Finito

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Máquina de Estados Finito

  2. MÁQUINA DE ESTADOS A • Elementos do Modelo • Estado • Transição • Relógio • Reset • Determinismo • Modelo determinístico • Modelo não determinístico • Tipos de Máquina • Mealy versus Moore • Representação de Máquina de Estados Finito • Um processo com um único sinal representando o estado • Dois processos, um representando a operação combinacional e outro representando o elemento de memorização para troca de estados E0 E1 reset A

  3. Máquina de Moore Entrada Saída Circuito Combinacional Memória (FFs) Circuito Combinacional Saída muda somente na transição do relógio

  4. MÁQUINA DE ESTADOS MOORE entity Moore is port ( ck: in std_logic; entrada: in std_logic; saida: out std_logic ); end Moore; architecture M of Moore is type STATE_TYPE is (S0, S1, S2, S3); signal estado: STATE_TYPE; begin process(ck, reset) begin if reset = '1' then estado <= S0; elsif ck'event and ck = '1' then << Máquina de estados >> end if; end process; end A_Moore;

  5. MÁQUINA DE ESTADOS MOORE case estado is when S0 => saida <= '0'; if entrada = '1' then estado <= S2; end if; when S1 => saida <= '1'; if entrada = '0' then estado <= S0; else estado <= S2; end if; when S2 => saida <= '1'; if entrada = '1' then estado <= S3; end if; when S3 => saida <= '0'; if entrada = '1' then estado <= S1; end if; end case;

  6. Máquina de Mealy Saída muda em função da entrada e do estado corrente Entrada Saída Circuito Combinacional Memória (FFs) Circuito Combinacional

  7. MÁQUINA DE ESTADOS MEALY entity Mealy is port ( ck: in std_logic; entrada: in std_logic; saida: out std_logic ); end Mealy; architecture A_Mealy of Mealy is type STATE_TYPE is (S0, S1, S2, S3); signal estado: STATE_TYPE; begin <PROCESSO DE CONTROLE DE ESTADO> <PROCESSO DE CONTROLE DE SAÍDA> end A_Mealy;

  8. MÁQUINA DE ESTADOS MEALY case estado is when S0 => if entrada = '1' then estado <= S2; end if; when S1 => if entrada = '0' then estado <= S0; else estado <= S2; end if; when S2 => if entrada = '1' then estado <= S3; end if; when S3 => if entrada = '1' then estado <= S1; end if; end case; Processo de controle de estado process(ck, reset) begin if reset = '1' then estado <= S0; elsifck'event and ck = '1' then << Máquina de estados >> end if; end process; Processo de controle da saída Saída <= '0' when entrada = '1' and (estado = S0 or estado = S3) else '1';

  9. MÁQUINA DE ESTADOS • Moore  saídas são calculadas dependendo apenas do ESTADO ATUAL • Mealy saídas são calculadas à partir do ESTADO ATUAL e ENTRADAS 1) O tipo “state” está bem especificado ? Não precisa definir quem é S0,S1,S2,S3? 2) O que deve ser alterado no código anterior para transformar de Moore para Mealy?

  10. Exercícios • Descreva em VHDL o sistema SAgua através de uma máquina de estados. Deve ser representado o comportamento da água frente a mudança de temperatura, sabendo que a água pode estar em um de três estados: sólido, líquido ou gasoso (use uma biblioteca para representar o estado da água). Considere que SAgua tem como entradas: (i) temp - uma porta de um bit, que em 0 representa frio e em 1 representa calor; (ii) estInic – porta com o estado da água codificado; (iii) ck - sinal de controle para efetuar as transições em SAgua; e (iv) start - porta de controle que, em 1, indica que o valor de estInic deve ser armazenado em SAgua – considere que start é síncrono com ck. Como saídas SAgua tem: (i) tempExc – porta contendo os valores 0 ou 1 para informa que o calor ou frio recebidos foram devolvidos para o ambiente, respectivamente; e (ii) estado que é um sinal codificado com o valor do estado da água.

  11. Exercícios • Faça a descrição de uma máquina reconhecedora de padrões. Esta máquina deve reconhecer os seguintes padrões: • Ao reconhecer um padrão válido, a saída reconheceu deve ir para 1, enquanto não tiver uma nova entrada e o contador cont deve ser incrementado. Este deve conter o número de vezes que um padrão foi reconhecido desde a máquina ter sido inicializada com o sinal de reset em 1 A A B B S0 S1 S2 S3 reset A A B B S7 S6 S5 S4 A B A B A