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


Top Related