s istemas d igitais m Áquina de e stados · • a máquina de moore é um sistema seqüencial cuja...

20
SISTEMAS DIGITAIS MÁQUINA DE ESTADOS Professor Carlos Muniz

Upload: vuongthu

Post on 26-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

SISTEMAS DIGITAISMÁQUINA DE ESTADOSProfessor Carlos Muniz

MÁQUINA DE ESTADOS

• Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por

estados, transições e ações

• Um estado armazena informações sobre o passado

• Uma transição indica uma mudança de estado e é descrita por uma condição que precisa ser realizada para que a transição ocorra

• Uma ação é a descrição de uma atividade que deve ser realizada em determinado momento

MÁQUINA DE ESTADOS

• Uma máquina de estados é um sistema seqüencial

• O número de estados são finitos

• As entrada e saídas são consideradas em instantes de tempo discretos que são definidos por pulsos de um sinal de sincronização chamado relógio (clock)

MÁQUINA DE ESTADOS

• Representação de máquinas de estados

1. Tabela de Transição

EA – Estado AtualPE – Próximo Estado

MÁQUINA DE ESTADOS

• Representação de máquinas de estados

1. Diagrama de Estados

MÁQUINA DE ESTADOS

• Exemplo 1:

MÁQUINA DE ESTADOS

• Exemplo 1:

MÁQUINA DE ESTADOS

• Exemplo 2:

• Considere um sistema seqüencial descrito abaixo:

Entrada : x(t ) ∈ {a, b, c}Saída : z(t) ∈ {0, 1}Estado : s(t) ∈ {S0 , S1 , S2 , S3 }

Estado Inicial: s(0) = S0

Funções : As funções de transição e de saída são:

EA – Estado AtualPE – Próximo Estado

TABELA DE TRANSIÇÃO ESTADOS

MÁQUINA DE ESTADOS

• Representação de máquinas de estados

1. Diagrama de Estados da máquina do Exemplo 2

TABELA DE TRANSIÇÃO ESTADOS

DIAGRAMA DE ESTADOS

MÁQUINA DE ESTADOS

• As máquinas de estados são classificados de acordo com o tipo de função de saída, em dois tipos:Máquina de Mealy e Máquina de Moore

• A máquina de Mealy é um sistema seqüencial cuja saída no tempo t depende do estado e da entrada no tempo t, ou seja:

z(t) = H(s(t), x(t))

• A máquina de Moore é um sistema seqüencial cuja saída no tempo t depende somente do estado no tempo t, ou seja:

z(t) = H(s(t))

MÁQUINA DE ESTADOS

• Exemplo 1:

Máquina de Mealy

z(t) = H(s(t), x(t))

MÁQUINA DE ESTADOS

• Representação de máquinas de estados

1. Diagrama de Estados da máquina do Exemplo 2

TABELA DE TRANSIÇÃO ESTADOS

DIAGRAMA DE ESTADOS

Máquina de Moore

z(t) = H(s(t))

MÁQUINA DE ESTADOS

• Descrição de máquinas de estados usando VHDL

1. Os dois componentes do sistema seqüencial , ou seja, a função

de transição de estado e a função de saída são descritas como

processos (process) separados.

2. O primeiro processo descreve a função de transição de estado e é ativado sempre que há um evento no sinal de relógio (clock).

3. O segundo processo descreve a função de saída e é ativado

sempre que há uma transição de estado ou um evento nos sinais de entrada

MÁQUINA DE ESTADOS

• Descrição de máquinas de estados usando VHDLExemplo 3 :

Faça uma descrição VHDL da máquina de estados especificada pelo diagrama

de estados abaixo:

1/0Sinic

0/01/0

0/0

0/0

1/0

0/0

1/1

S1 S11 S110

DESCRIÇÃO VHDL – EXEMPLO 3

library IEEE;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY detetor_de_padroes IS PORT ( x : IN STD_LOGIC;

y : OUT STD_LOGIC; clk : IN STD_LOGIC

); END detetor_de_padroes;

1/0Sinic

0/01/0

0/0

0/0

1/0

0/0

1/1

S1 S11 S110

ARCHITECTURE comportamental OF detetor_de_padroes IS TYPE estados IS (Sinic, S1, S11, S110); -- tipo define os estadosSIGNAL estado_atual: estados; -- sinal do tipo estadosSIGNAL estado_anterior: estados; -- sinal do tipo estadosBEGINPROCESS (clk)BEGINIF RISING_EDGE (clk) THEN – mudança de estadoCASE estado_atual ISWHEN Sinic => IF x = '0' THEN estado_atual <= Sinic;

ELSE estado_atual <= S1;estado_anterior <= Sinic;

END IF;WHEN S1 => IF x = '0' THEN estado_atual <= Sinic;

estado_anterior <= S1;ELSE estado_atual <= S11;

estado_anterior <= S1;END IF;

WHEN S11 => IF x = '0' THEN estado_atual <= S110;estado_anterior <= S11;

ELSE estado_atual <= S11;estado_anterior <= S11;

END IF;WHEN S110 => IF x = '0' THEN estado_atual <= Sinic;

estado_anterior <= S110;ELSE estado_atual <= S1;

estado_anterior <= S110;END IF;

END CASE;END IF;END PROCESS;

DESCRIÇÃO VHDL – EXEMPLO 3

PROCESS (estado_atual, estado_anterior, x) -- processo responsável BEGIN -- pela função de saída CASE estado_atual IS

WHEN Sinic => y <= '0'; WHEN S1 => IF estado_anterior = S110 THEN y <= '1';

ELSE y <= '0'; END IF;

WHEN S11 => y <= '0'; WHEN S110 => y <= '0';

END CASE; END PROCESS;

END comportamental;

1/0Sinic

0/01/0

0/0

0/0

1/0

0/0

1/1

S1 S11 S110

DESCRIÇÃO VHDL – EXEMPLO 3library IEEE;

use ieee.std_logic_1164.all; PROCESS (estado_atual, estado_anterior, x) -- processo responsável

use ieee.std_logic_unsigned.all; BEGIN -- pela função de saída

ENTITY detetor_de_padroes IS CASE estado_atual IS

PORT WHEN Sinic => y <= '0';

( x : IN STD_LOGIC; WHEN S1 => IF estado_anterior = S110 THEN y <= '1';

y : OUT STD_LOGIC; ELSE y <= '0';

clk : IN STD_LOGIC END IF;

); WHEN S11 => y <= '0';

END detetor_de_padroes; WHEN S110 => y <= '0';

ARCHITECTURE comportamental OF detetor_de_padroes IS END CASE;

TYPE estados IS (Sinic, S1, S11, S110); -- tipo define os estados END PROCESS;

SIGNAL estado_atual: estados; -- sinal do tipo estados END comportamental;

SIGNAL estado_anterior: estados; -- sinal do tipo estados

BEGIN

PROCESS (clk)

BEGIN

IF RISING_EDGE (clk) THEN – processo responsável pela mudança de estado

CASE estado_atual IS

WHEN Sinic => IF x = '0' THEN estado_atual <= Sinic;

ELSE estado_atual <= S1;

estado_anterior <= Sinic;

END IF;

WHEN S1 => IF x = '0' THEN estado_atual <= Sinic;

estado_anterior <= S1;

ELSE estado_atual <= S11;

estado_anterior <= S1;

END IF;

WHEN S11 => IF x = '0' THEN estado_atual <= S110;

estado_anterior <= S11;

ELSE estado_atual <= S11;

estado_anterior <= S11;

END IF;

WHEN S110 => IF x = '0' THEN estado_atual <= Sinic;

estado_anterior <= S110;

ELSE estado_atual <= S1;

estado_anterior <= S110;

END IF;

END CASE;

END IF;

END PROCESS;

1/0Sinic

0/01/0

0/0

0/0

1/0

0/0

1/1

S1 S11 S110

MÁQUINA DE MEALY

DESCRIÇÃO VHDL – EXEMPLO 3

1/0Sinic

0/01/0

0/0

0/0

1/0

0/0

1/1

S1 S11 S110

DESCRIÇÃO VHDL – EXEMPLO 3

1/0Sinic

0/01/0

0/0

0/0

1/0

0/0

1/1

S1 S11 S110

0 1 1 0 1 1 1 0 1

PADRÃO

FONTE:

http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0CEYQFjAJ&url=http%3A%2F%2Fwww.di.ufpb.br%2Fjose%2Faula18.ppt&ei=p_hQVe7pO8ifgwT794DACw&usg=AFQjCNFEnTGJAtHfNbTszcBZqc0HKABXcA