Máquina de Estados Finito

13
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Máquina de Estados Finito

description

Máquina de Estados Finito. 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 - PowerPoint PPT Presentation

Transcript of Máquina de Estados Finito

Page 1: Máquina de Estados Finito

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

prof. Dr. César Augusto M. Marconprof. Dr. Edson Ifarraguirre Moreno

Máquina de Estados Finito

Page 2: Máquina de Estados Finito

2 / 13

MÁQUINA DE ESTADOS

• 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 E1reset

A

A

Page 3: Máquina de Estados Finito

3 / 13

CircuitoCombinacional

Memória(FFs)

CircuitoCombinacional

Entrada Saída

Saída muda somente na transição do relógio

Máquina de Moore

Page 4: Máquina de Estados Finito

4 / 13

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;

Page 5: Máquina de Estados Finito

5 / 13

MÁQUINA DE ESTADOS MOORE

case estado iswhen 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;

Page 6: Máquina de Estados Finito

6 / 13

Máquina de Mealy

CircuitoCombinacional

Memória(FFs)

CircuitoCombinacional

Entrada Saída

Saída muda em função da entrada e do estado corrente

Page 7: Máquina de Estados Finito

7 / 13

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;

Page 8: Máquina de Estados Finito

8 / 13

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;

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;

Processo de controle de estado

Processo de controle da saída

Saída <= '0' when entrada = '1' and (estado = S0 or estado = S3) else '1';

Page 9: Máquina de Estados Finito

9 / 13

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?

Page 10: Máquina de Estados Finito

10 / 13

Exercícios

1. 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.

Page 11: Máquina de Estados Finito

11 / 13

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 0 X X 0 0 1 1B 1 X 1 X X 0 1

S0 S1 S2 S3

S7 S6 S5 S4

reset

A

A B

A B

B

A B A B A

A

B

Page 12: Máquina de Estados Finito

12 / 13

Exercícios(POSCOMP 2008) INSTRUÇÃO: As questões 47 e 48 devem ser respondidas com base no circuito digital

mostrado na figura abaixo

(POSCOMP 2008 - 47) Analise as seguintes afirmativasO circuito mostrado é um circuito sequencial.O circuito mostrado é um circuito combinacional.O circuito mostrado implementa uma máquina de Mealy de quatro estados.O circuito mostrado implementa uma máquina de Moore de quatro estados.

A análise permite concluir quea. Somente as afirmativas I e II são verdadeiras.b. Somente a afirmativa III é verdadeira.c. Somente a afirmativa IV é verdadeira.d. Somente a afirmativa I é verdadeira.e. Somente a afirmativa II é verdadeira.

(POSCOMP 2008 - 48) Considerando o circuito digital mostrado, analise as seguintes afirmativasI. A função booleana implementada pelo circuito pode ser definida por: S = AB + CD + EII. A função booleana implementada pelo circuito pode ser definida por: S = (A + B)(C +D) EIII. A função booleana implementada pelo circuito pode ser definida por: S = (ABC) + (DE)

A análise permite concluir quea. Todas as afirmativas são verdadeiras.b. Nenhuma das afirmativas é verdadeira.c. Somente a afirmativa I é verdadeira.d. Somente a afirmativa II é verdadeira .e. Somente a afirmativa III é verdadeira.

Page 13: Máquina de Estados Finito

13 / 13

Resposta de Exercícios(POSCOMP 2008) INSTRUÇÃO: As questões 47 e 48 devem ser respondidas com base no circuito digital

mostrado na figura abaixo

(POSCOMP 2008 - 47) Analise as seguintes afirmativasI. O circuito mostrado é um circuito sequencial.II. O circuito mostrado é um circuito combinacional.III. O circuito mostrado implementa uma máquina de Mealy de quatro estados.IV. O circuito mostrado implementa uma máquina de Moore de quatro estados.

A análise permite concluir quea. Somente as afirmativas I e II são verdadeiras.b. Somente a afirmativa III é verdadeira.c. Somente a afirmativa IV é verdadeira.d. Somente a afirmativa I é verdadeira.e. Somente a afirmativa II é verdadeira.

(POSCOMP 2008 - 48) Considerando o circuito digital mostrado, analise as seguintes afirmativasI. A função booleana implementada pelo circuito pode ser definida por: S = AB + CD + EII. A função booleana implementada pelo circuito pode ser definida por: S = (A + B)(C +D) EIII. A função booleana implementada pelo circuito pode ser definida por: S = (ABC) + (DE)

A análise permite concluir quea. Todas as afirmativas são verdadeiras.b. Nenhuma das afirmativas é verdadeira.c. Somente a afirmativa I é verdadeira.d. Somente a afirmativa II é verdadeira .e. Somente a afirmativa III é verdadeira.