ORGANIZAÇÃO E ARQUITETURA DE
COMPUTADORES I
Máquina de Estados
Finito
prof. Dr. César Augusto M. Marcon
prof. Dr. Edson Ifarraguirre Moreno
2 / 13
MÁQUINA DE ESTADOS
A
• Elementos do Modelo
– Estado
– Transição
• Relógio
E0
E1
reset
– Reset
A
• 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
3 / 13
Máquina de Moore
Entrada
Circuito
Combinacional
Saída
Memória
(FFs)
Saída muda somente na transição do relógio
Circuito
Combinacional
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 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 / 13
Máquina de Mealy
Saída muda em função da entrada e do estado corrente
Entrada
Circuito
Combinacional
Saída
Memória
(FFs)
Circuito
Combinacional
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
Processo de controle de estado
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;
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;
Processo de controle da saída
Saída <= '0' when entrada = '1' and
(estado = S0 or estado = S3) else
'1';
when S3 =>
if entrada = '1' then
estado <= S1;
end if;
end case;
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:
A 0 X X 0 0 1 1
•
B 1 X 1 X X 0 1
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
S0
B
S1
S2
S3
reset
A
A
B
B
S7
S6
A
B
S5
A
B
S4
A
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 afirmativas
O 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 que
a.
b.
c.
d.
e.
Somente as afirmativas I e II são verdadeiras.
Somente a afirmativa III é verdadeira.
Somente a afirmativa IV é verdadeira.
Somente a afirmativa I é verdadeira.
Somente a afirmativa II é verdadeira.
(POSCOMP 2008 - 48) Considerando o circuito digital mostrado, analise as seguintes afirmativas
I.
II.
III.
A função booleana implementada pelo circuito pode ser definida por: S = AB + CD + E
A função booleana implementada pelo circuito pode ser definida por: S = (A + B)(C +D) E
A função booleana implementada pelo circuito pode ser definida por: S = (ABC) + (DE)
A análise permite concluir que
a.
b.
c.
d.
e.
Todas as afirmativas são verdadeiras.
Nenhuma das afirmativas é verdadeira.
Somente a afirmativa I é verdadeira.
Somente a afirmativa II é verdadeira .
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 afirmativas
I.
II.
III.
IV.
O 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 que
a.
b.
c.
d.
e.
Somente as afirmativas I e II são verdadeiras.
Somente a afirmativa III é verdadeira.
Somente a afirmativa IV é verdadeira.
Somente a afirmativa I é verdadeira.
Somente a afirmativa II é verdadeira.
(POSCOMP 2008 - 48) Considerando o circuito digital mostrado, analise as seguintes afirmativas
I.
II.
III.
A função booleana implementada pelo circuito pode ser definida por: S = AB + CD + E
A função booleana implementada pelo circuito pode ser definida por: S = (A + B)(C +D) E
A função booleana implementada pelo circuito pode ser definida por: S = (ABC) + (DE)
A análise permite concluir que
a.
b.
c.
d.
e.
Todas as afirmativas são verdadeiras.
Nenhuma das afirmativas é verdadeira.
Somente a afirmativa I é verdadeira.
Somente a afirmativa II é verdadeira .
Somente a afirmativa III é verdadeira.
Download

Maquinas de Estado