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.

Slides:



Advertisements
Apresentações semelhantes
Flip-Flops e Dispositivos Correlatos
Advertisements

Diagrama de Atividades
Máquinas de Estado Sistemas Digitais.
Sistemas Digitais Projeto RTL – Unidade de Controle
Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain
Desenvolvimento de Sistemas Baseado na Transformação de Modelos
Máquinas de Estado Eletrônica Digital.
Sistemas Digitais Projeto RTL – Unidade de Execução
Unidades de Execução e de Controle Sistemas Digitais.
Verilog AULA - 3.
Circuitos Lógicos Sequenciais
DIAGRAMA DE ESTADOS DIAGRAMA ESTADO TRANSIÇÃO ENTRE ESTADOS.
Finite State Machines.
Professora: Aline Vasconcelos IF Fluminense
Análise de Circuitos Sequenciais Síncronos
Curso UML Diagramas de Atividade
Circuitos Sequenciais
Flip-Flop J-K.
VERILOG HDL (HARDWARE DESCRIPTION LANGUAGE)
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.
O FLIP-FLOP Os latches e os flips-flops são os blocos elementares com os quais se constrói a maior parte dos circuitos sequenciais. Um flip-flop é um dispositivo.
Hardware Description Language (HDL)
O latch RS QN (QN)inv 1 S R QN+1 (QN+1)inv
O Flip-Flop Mestre/Escravo
Máquina de Estados Finito
Prof.Corradi Finite State Machines.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Índice SUMÁRIO Introdução ao projeto de lógica seqüencial.
Engenharia de Software para Computação Embarcada
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Lógica reconfigurável por hardware
Fundamentos de Circuitos Sequenciais Modelos de Mealy e Moore
Circuitos Seqüenciais Contadores
Circuitos Seqüenciais
Técnicas Digitais e de Microprocessadores II
UTFPR – Prof. Carlos Raimundo Erig Lima.  Circuitos compostos por lógica seqüencial e por lógica com binacional.  Baseados em flip-flops sincronizados.
BRAZIL IP The BrazilIP Network Verilog Curso do Brazil-IP Elmar Melcher UFCG
ENGA78 – Síntese de Circuitos Digitais
Silas Juccelino Artulanez.  O que é?  Notação  Estado  Mudança de estado  Condições e ações  Diagramas subdivididos  Passos na construção  Verificação.
Unidade Central De Processamento: Processador
Circuitos Sequenciais
Hardware Description Language Aula 8 –Verilog HDL
Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco.
Hardware Description Language Aula 9 –Verilog HDL Prof. Afonso Ferreira Miguel, MSc.
VERILOG.
VERILOG Monitoria Infra-Estrutura de Hardware Álvaro João – ajss Húgaro Bernardino – hbb Fred Rabelo - ferrf Leonardo Leandro – lsl2 Jéssica de.
Diagrama de estado ? Exemplo:
Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco.
Projetando Sistemas Digitais com SystemVerilog
Eletrônica Digital II ELT013
FLIP-FLOPs.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Máquinas de Estados Finitos (cont)
Latches e Flip-Flops (1/2)
Introdução às Máquinas de Estados Finitos (Finite State Machine - FSM)
Sistemas Digitais Aula 10 GRECO-CIN-UFPE.
Análise e Conceção de Sistemas
Cap. V – Análise e Síntese de Circuitos Sequenciais Síncronos
Lei de Moore O número de transistores num circuito integrado duplica todos os 18 meses. Isto é extremamente relevante porque... as gates são feitas a partir.
Circuitos Lógicos Sequenciais
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Circuitos Sequenciais: Latch e Flip-Flop
Lógica Programável e VHDL Prof. Marcio Cunha Aula 04 – Projeto de Máquina de Estados.
Máquina de Estados Finitos com Dados (FSMD)
Lógica Sequencial e Máquina de Estados Finitos
Lógica Programável e VHDL
Prof. Marcio Cunha Aula 13 – Máquina de Estados
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.
Transcrição da apresentação:

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)

Diagrama Tradicional de uma Máquina de Estados entrada saída Lógica Combinacional Estado atual próximo estado Lógica Sequencial clock reset

Representação de máquinas de estados 1. Tabela de Transição Máquina de Estados Representação de máquinas de estados 1. Tabela de Transição EA – Estado Atual PE – Próximo Estado

Representação de máquinas de estados 1. Diagrama de Estados 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 Atual PE – 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 DIAGRAMA DE ESTADOS TABELA DE TRANSIÇÃO 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 Máquina de Moore z(t) = H(s(t)) Representação de máquinas de estados 1. Diagrama de Estados da máquina do Exemplo 2 DIAGRAMA DE ESTADOS TABELA DE TRANSIÇÃO ESTADOS

Diagrama Tradicional de uma Máquina de Estados entrada saída Lógica Combinacional Estado atual próximo estado Lógica Sequencial clock reset

Máquina de Estados Descrição de máquinas de estados usando Verilog 1. Os dois componentes da máquina, ou seja, a função de transição de estado e a função de saída são descritas em blocos always separados. 2. Um dos blocos always descreve a função de transição de estado e é ativado sempre que há um evento no sinal de relógio (clock) e representa a parte sequencial da máquina 3. O segundo bloco always descreve a função de saída e é ativado sempre que há uma transição de estado ou um evento nos sinais de entrada e representa a parte combinacional da máquina

Máquina de Estados Exemplo 3: Máquina de estados simples (Máquina de lavar) O diagrama de blocos abaixo representa uma máquina de estados com 5 entradas (ínicio, cheio, tempo, secar, reset_n) e o clock A máquina possui 3 saídas (válvula_água, modo_agitar e modo_girar) clock início cheio tempo secar válvula_água modo_agitar modo_girar FSM reset_n FSM – Finite State Machine

Máquina de Estados O diagrama de estados abaixo especifica a máquina: Os sinais: válvula_água, modo_agitar e modo_girar são os sinais de saída A máquina possui 4 estados (Espera, Encher, Agitar e Girar) Espera início = 1 Encher Agitar Girar início = 0 cheio = 0 cheio = 1 tempo = 0 tempo = 1 secar = 1 secar = 0 válvula_água = 0 modo_agitar = 0 modo_girar = 0 válvula_água = 1 modo_agitar = 1 modo_girar = 1 reset_n

Máquina de Estados Descrição Verilog module maquina_de_lavar (output reg valvula_agua, modo_agitar, modo_girar, input clock, reset_n, inicio, tempo, cheio, secar); reg [1:0] estado_atual; parameter espera = 0, encher =1, agitar = 2, girar = 3; always @ (*) begin // parte combinacional case (estado_atual) espera: begin valvula_agua =0; modo_agitar=0; modo_girar=0; end encher: begin valvula_agua=1; modo_agitar=0; modo_girar=0; agitar: begin valvula_agua=0; modo_agitar=1; modo_girar=0; girar: begin valvula_agua =0; modo_agitar=0; modo_girar=1; endcase always @ (posedge clock, negedge reset_n) // parte sequencial if (~reset_n) estado_atual <= espera; else case (estado_atual) espera: if (inicio == 1) estado_atual <= encher; encher: if (cheio == 1) estado_atual <= agitar; agitar: if (tempo == 1) estado_atual <= girar; girar: if (secar == 0) endcase endmodule

início válvula_água cheio modo_agitar tempo secar modo_girar reset_n clock início cheio tempo secar válvula_água modo_agitar modo_girar Máquina de Lavar reset_n Simulação

Exemplo 4 : Máquina de Estados Descrição de máquinas de estados usando Verilog Exemplo 4 : Faça uma descrição Verilog da máquina de estados especificada pelo diagrama de estados abaixo: 1/0 Sinic 0/0 1/1 S1 S11 S110

Descrição Verilog – Exemplo 4 always @ (posedge clock, negedge reset) // parte sequencial if (~reset) estado_atual <= Sinic; else case (estado_atual) Sinic: begin if (x == 0) else begin estado_atual <= S1; estado_anterior <= Sinic; end end S1: begin if (x == 0) begin estado_atual <= Sinic; estado_anterior <= S1; end estado_atual <= S11; estado_anterior <= S1; end S11: begin estado_atual <= S110; estado_anterior <= S11; end estado_atual <= S11; estado_anterior <= S11; end S110: begin estado_atual <= Sinic; estado_anterior <= S110; end estado_atual <= S1; estado_anterior <= S110; end endcase endmodule module maquina_de_estados_detetor_de_padroes_2 (output reg y, input clock, x, reset); reg [1:0] estado_atual, estado_anterior; parameter Sinic = 0, S1 =1, S11 = 2, S110 = 3; always @ (*) begin // parte combinacional case (estado_atual) Sinic: y = 0; S1: begin if (estado_anterior == S110 ) y = 1; else y = 0; end S11: y = 0; S110: y = 0; endcase 1/0 Sinic 0/0 1/1 S1 S11 S110

Descrição Verilog – Exemplo 4 1/0 Sinic 0/0 1/1 S1 S11 S110 0 1 1 0 1 1 1 0 1 PADRÃO