ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
prof. Dr. César Augusto M. Marconprof. Dr. Edson Ifarraguirre Moreno
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
3 / 13
CircuitoCombinacional
Memória(FFs)
CircuitoCombinacional
Entrada Saída
Saída muda somente na transição do relógio
Máquina de Moore
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;
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;
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
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;
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';
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?
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.
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
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.
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