aula18

18
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

Upload: danilo-lindo

Post on 10-Nov-2015

8 views

Category:

Documents


0 download

DESCRIPTION

aula18

TRANSCRIPT

  • Mquina de Estados Uma mquina de estados finitos ou autmato finito uma modelagem de um comportamento composto por estados, transies e aes

    Um estado armazena informaes sobre o passado

    Uma transio indica uma mudana de estado e descrita por uma condio que precisa ser realizada para que a transio ocorra

    Uma ao a descrio de uma atividade que deve ser realizada em determinado momento

  • Mquina de Estados Uma mquina de estados um sistema seqencial

    O nmero de estados so finitos

    As entrada e sadas so consideradas em instantes de tempo discretos que so definidos por pulsos de um sinal de sincronizao chamado relgio (clock)

  • Mquina de Estados Representao de mquinas de estados

    1. Tabela de Transio

    EA Estado AtualPE Prximo Estado

  • Mquina de Estados Representao de mquinas de estados

    1. Diagrama de Estados

  • Mquina de EstadosExemplo 1:

  • Mquina de EstadosExemplo 1:

  • Mquina de Estados Exemplo 2:

    Considere um sistema seqencial descrito abaixo:

    Entrada : x(t ) {a, b, c} Sada : z(t) {0, 1} Estado : s(t) {S0 , S1 , S2 , S3 } Estado Inicial: s(0) = S0

    Funes : As funes de transio e de sada so:

    EA Estado AtualPE Prximo EstadoTABELA DE TRANSIO ESTADOS

  • Mquina de Estados Representao de mquinas de estados

    1. Diagrama de Estados da mquina do Exemplo 2

    TABELA DE TRANSIO ESTADOSDIAGRAMA DE ESTADOS

  • Mquina de EstadosAs mquinas de estados so classificados de acordo com o tipo de funo de sada, em dois tipos: Mquina de Mealy e Mquina de Moore

    A mquina de Mealy um sistema seqencial cuja sada no tempo t depende do estado e da entrada no tempo t, ou seja:

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

    A mquina de Moore um sistema seqencial cuja sada no tempo t depende somente do estado no tempo t, ou seja:

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

  • Mquina de EstadosExemplo 1:

    Mquina de Mealyz(t) = H(s(t), x(t))

  • Mquina de Estados Representao de mquinas de estados

    1. Diagrama de Estados da mquina do Exemplo 2

    TABELA DE TRANSIO ESTADOSDIAGRAMA DE ESTADOSMquina de Moorez(t) = H(s(t))

  • Mquina de Estados Descrio de mquinas de estados usando VHDL

    1. Os dois componentes do sistema seqencial , ou seja, a funo de transio de estado e a funo de sada so descritas como processos (process) separados.

    2. O primeiro processo descreve a funo de transio de estado e ativado sempre que h um evento no sinal de relgio (clock).

    3. O segundo processo descreve a funo de sada e ativado sempre que h uma transio de estado ou um evento nos sinais de entrada

  • Mquina de EstadosDescrio de mquinas de estados usando VHDL Exemplo 3 :

    Faa uma descrio VHDL da mquina de estados especificada pelo diagrama de estados abaixo:

  • Descrio 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;

    ARCHITECTURE comportamental OF detetor_de_padroes IS TYPE estados IS (Sinic, S1, S11, S110); -- tipo define os estados SIGNAL estado_atual: estados; -- sinal do tipo estados SIGNAL estado_anterior: estados; -- sinal do tipo estados BEGIN PROCESS (clk) BEGIN IF RISING_EDGE (clk) THEN mudana de estado CASE estado_atual IS WHEN Sinic => IF x = '0' THEN estado_atual

  • Descrio VHDL Exemplo 3 PROCESS (estado_atual, estado_anterior, x) -- processo responsvel BEGIN -- pela funo de sada CASE estado_atual IS WHEN Sinic => y IF estado_anterior = S110 THEN y
  • Descrio VHDL Exemplo 3 library IEEE;use ieee.std_logic_1164.all; PROCESS (estado_atual, estado_anterior, x) -- processo responsvel use ieee.std_logic_unsigned.all; BEGIN -- pela funo de sada ENTITY detetor_de_padroes IS CASE estado_atual IS PORT WHEN Sinic => y IF estado_anterior = S110 THEN y
  • Descrio VHDL Exemplo 3

  • Descrio VHDL Exemplo 3 0 1 1 0 1 1 1 0 1PADRO