Finite State Machines.

Slides:



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

Introdução Revisão de Conceitos de Circuitos Lógicos e Estruturas para Arquitetura de Computadores.
Organização de Computadores I
Máquinas de Estado Sistemas Digitais.
Eletrônica Digital Flip-Flops e Registradores de Deslocamento
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
VISÃO GERAL Profa. Fernanda Denardin Walker
Máquinas de Estado Eletrônica Digital.
Introdução aos Sistemas Digitais
Unidades de Execução e de Controle Sistemas Digitais.
Eletrônica Digital Multiplexadores e Demultiplexadores
Circuitos Lógicos Sequenciais
MC542 Organização de Computadores Teoria e Prática
Introdução a circuitos lógicos
MC542 Organização de Computadores Teoria e Prática
Revisão de Circuitos Lógicos MO801/MC912. Conteúdo Níveis lógicos Portas lógicas Formas de onda Sinais básicos Elementos de armazenamento Registradores.
Análise de Circuitos Sequenciais Síncronos
Circuitos Sequenciais
Registradores de deslocamento (Shift Register)
Registradores de deslocamento (Shift Register)
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 FLIP-FLOP As 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.
Decodificador 2 para 4 (2 : 4)
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.
1. Circuitos seqüenciais - conceito 2. Flip-flops 3. Registradores 4
Circuitos sequenciais síncronos
Máquina de Estados Finito
Técnica de modelagem de Máquina de Estados em VHDL
Circuitos Combinacionais Básicos Descrição VHDL
Prof.Corradi Finite State Machines.
Í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
Informática Teórica Engenharia da Computação
Alterado para lógica positiva por Guilherme Arroz
Lógica reconfigurável por hardware
Fundamentos de Circuitos Sequenciais Modelos de Mealy e Moore
Validação de VHDL: técnicas e ferramentas
Circuitos Seqüenciais
Exercícios de Máquinas de Estado
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.
Circuitos seqüenciais síncronos
Lógica Seqüêncial Bruno Silvério Costa.
ENGA78 – Síntese de Circuitos Digitais
Autómatos de Pilha. UM NOVO MODELO PARA OS AUTÓMATOS FINITOS As linguagens regulares são aceites por autómatos finitos. E as linguagens não regulares?
Multiplexador O que é isso?.
Circuitos Sequenciais
Eletrônica Digital II ELT013
SISTEMAS DIGITAIS AULA 6 Prof. José Bezerra de Menezes Filho CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DA PARAÍBA DA PARAÍBA.
Aplicações com flip-flops
Hardware Description Language Aula 3 – AHDL (conclusão) Prof. Afonso Ferreira Miguel, MSc.
Eletrônica Digital II ELT013
Máquinas de Estados Finitos (cont)
Introdução às Máquinas de Estados Finitos (Finite State Machine - FSM)
Sistemas Digitais Aula 10 GRECO-CIN-UFPE.
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
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.
Projeto de Circuitos Integrados Semidedicados
Transcrição da apresentação:

Finite State Machines

Máquinas de Estados Finitos e Autômatos São uma Forma Muito Usada para Representar Sistemas que Possuem Memorização de Estados, não sendo Portanto Meramente Combinacionais. Podem ser usados para Representar: Protocolos em Redes Comportamento de Circuitos Eletrônicos Comportamento de Programas de Computador Comportamento de um Processo de Fabricação O Contrôle de Um Processo Físico Analógico de Uma forma Geral: Num Sistema Analógico a Relação entre Saída e Entrada Pode Ser Representada por Equações Diferenciais e Integrais Variáveis Assumem Valôres Contínuos no Tempo Somador/ Comparador Saída Analógica Entrada Analógica PROCESSO Realimentação

Lógica Combinacional e Lógica Sequencial A saída depende apenas de uma combinação lógica dos valores de entrada. A saída não precisa esperar nenhum “clock” para ser gerada. Saídas são geradas um tempo pequeno (atraso da lógica) após as entradas mudarem. Lógica Sequencial É a que faz uso de registros (memória) A saída pode depender apenas dos estados dos flip-flops ou da combinação dos estados e das entradas. Denomina-se “ESTADO” da lógica sequencial ao conjunto de “1s” e “0s” armazenados nos flip-flops (memória) da lógica O relógio demarca o momento em que os estados mudam. A S B T C U D A D Q S B C C D Q T D C CK

Autômatos – Variáveis Assumem Valores Discretos no Tempo Representação: E0 E1 E2 E3 E4 10/0 00/0 11/1 01/0 00/1 11/0 01/1 10/1 Reset Saída (z) Entradas(x, y) Estado A- Diagrama de Transição A- Tabela de Transição PRÓXIMO ESTADO SAÍDAS (z) ESTADO ATUAL ENTRADAS x, y   00 01 10 11 E0 E2 E1 1 E3 ? E4

Autômatos Determinísticos e Não Determinísticos Autômato Finito Determinístico (AFD) Um Conjunto Q de Elementos Denominados Estados Um conjunto finito I denominado alfabeto de entrada Uma função F de mapeamento de Q X I em Q Um estado inicial q0 em Q Um Conjunto (não vazio) de Estados Terminais Z Autômato Finito Não Determinístico (AFND) Um Conjunto Q de Elementos Determinados Estados Um Conjunto finito I denominado alfabeto de entrada Uma função F de mapeamento de Q x I em subconjuntos de Q Um conjunto de estados iniciais em Q Um conjunto (não vazio) de estados terminais Z contido em Q NOTA: Um AFND pode estar em vários estados simultaneamente (paralelismo – vários caminhos podem ser percorridos ao mesmo tempo para chegar ao resultado final)

Mealy and Moore Machines Flip Flops Output Combinatorial Logic Next State Mealy Machine Inputs Outputs Clock Flip Flops Output Combinatorial Logic Next State Moore Machine Inputs Outputs Clock

Mealy Machine and “C” Encoding State = Initial_State; While (1) { // Loop forever Switch (State) { case 0: // Initial_State = 0 { if (A==0 && B==1) { State = 3; Out2 = 1; // depends on inputs & // present state } else State = 4; Out2 = 0; break; case 1: // Second State - - - - - - - - - I Flip Flops Outputs Out1, Out2 Next State Logic Output Logic Inputs Q Ck Inputs A, B CK State 0 State 1 State 2 A B OUT2

Moore Machine and “C” Encoding State = Initial_State; While (1) { // Loop forever Switch (State) { case 0: // Initial_State = 0 { Out1 = 0; // depends on state only Out2 = 1; // depends on state only if (A==0 && B==1) { State = 3; } else State = 4; break; case 1: // Second State Out2 = 0; Out1 = 1; - - - - - - - - - Flip Flops Output Logic Next State Outputs Out1, Out2 Ck Q I Inputs Inputs A, B CK State 0 State 1 State 2 A B OUT2

Mealy Finite State Machine Mealy and Moore Representation for VHDL Description S0/0 1/0 0/0 S1/0 1/1 S2/1 reset

VHDL Description of a FSM entity sm is port ( clk, In, reset : in std_logic; Mealy : out std_logic; Moore : out std_logic ); end sm;  architecture behavior of sm is type states is (S0,S1,S2); signal present_state, next_state : states;begin state_register: process (clk) begin if (clk'event and clk='1') then if (reset = '1') then present_state <= S1; else present_state <= next_state; end if; end process; next_state_transition: process (present_state, In) begin  next_state <= present_state; Mealy <= '0'; // JUST A SIGNAL NAME Moore <= '0'; // JUST A SIGNAL NAME case (present_state) is when S0 => if (In='1') then next_state <= S1; else next_state <= S0; end if;  when S1 => if (In='0') then next_state <= S2; Mealy <= '1'; when S2 => Moore <= '1'; end if; end case; end process;

Máquina de Mealy Est. Próx. Estado/Saída Atual Entrada (x) Reset 0/1 A- Exemplo: 1/0 E0 1/1 1/0 0/0 E2 1/0 E1 0/0 0/1 B- Tabela de Transição E4 0/1 E3 1/0 Est. Próx. Estado/Saída Atual Entrada (x) E x=0 x=1 E0 E0/1 E2/0 E1 E3/1 E1/1 E2 E1/0 E4/1 E3 E0/0 E2/0 E4 E1/1 E3/0

Máquina de Moore Est. Próx. Estado Saída (y) Reset A- Exemplo: 1 E0/1 1 E2/1 E3/0 E4/0 1 B- Tabela de Transição 1 Est. Próx. Estado Saída (y) Atual Entrada (x) y = F (E) E x=0 x=1 E0 E0 E2 1 E1 E3 E1 0 E2 E1 E4 1 E3 E0 E2 0 E4 E1 E3 0 1 E1/0

Os estados são equivalentes a variáveis booleanas em um programa Algumas Características de Máquinas Não Determinísticas (simplificando inicialmente) Os estados são equivalentes a variáveis booleanas em um programa Sua construção é mais intuitiva que a determinística A atribuição de estados é simples, normalmente associados com as saídas. Normalmente não se usa codificação de estados. As equações são extraídas diretamente do diagrama, sem tabelas ou mapas Máquinas não determinísticas são ineficientes para sequências de contagem pois usam mais flip-flops que máquinas determinísticas com codificação de estados.

Geração das Equações de Estado Em Máquinas Determinísticas Atribui-se a Codificação dos Estados Mapeiam-se os Estados e Eventos em uma Tabela Verdade Simplifica-se com o Mapa de Karnaugh (ou programa específico) Em Máquinas Não Determinísticas: Cada estado é representado por um bit (“One Hot Encoding”) Cada termo produto é o produto do evento com o estado origem O estado é ativado pelo “ou” dos produtos que chegam a ele O estado é desativado pelos produtos que efetivamente o abandonam. Na verdade, um estado é desativado pela ativação de um estado gerado a partir dele. Portanto, não é necessário especificar as equações para desativar estados.

Mealy x Moore Mealy Machine: Output is specified based on transitions, that is, this type of machine model should be used when the output signals must change almost simultaneously (combinational delay logic only) with the input signals and not only with state transitions. The designer has to recognize the need for this type of behavior. There can be “glitches” on output signals because input signals are allowed to change at any time. Mealy machines typically have fewer states. Because it can associate outputs with transitions, a Mealy machine can often generate the same output sequence in fewer states than a Moore machine. Moore Machine: output is specified based on states only. This means that output signals will vary only just after clock transitions and not at any moment. This minimizes the possibilities of glitches on output signals. The two are equivalent, one can be constructed from the other

More States in Moore Than in Behavioral Equivalent Mealy Mealy Moore Moore/Mealy More States in Moore Than in Behavioral Equivalent Mealy Mealy Usually pulse output (during transition) Moore Usually level output (during state)

State Encoding Binary Coded State “One-Hot” Encoding n flip-flops used to store 2n states Most efficient Need to account for unused states The number of flip-flops is reduced by enconding states (e.g: 3 flip-flops -> 8 states) “One-Hot” Encoding Requires one flip-flop (one bit) for each state (uses more flip-flops than the minimum required) There is no need for state decoding logic The flip-flop that stores the state can also be used as an output signal. Very good encoding for simple FSMs. Maps well to FPGAs since each CLB contains a FF 3 bits – 8 states 000 – S0 001 – S1 010 – S2 011 – S3 100 – S4 101 – S5 110 – S6 111 – S7 One bit for each state 001 – state 1 010 – state 2 100 – state 3

Washing Machine Control Panel Molho 10 Enxaguar LIGADA OPERANDO RESET INICIAR AG AA EA TA MC Entradas (de Sensores e Botões de Contrôle): RESET – Botão Reset – Reinicia Programa M10 – Especifica Molho 10 minutos INIC – Botão Iniciar após escolher Molho ou Enxaguar ENX – Enxaguar TA – Tampa_Aberta CC – Cesto_Cheio CV – Cesto_Vazio Sinais de Saída : LED Ligada LED Operando LED M10 – Molho 10 LED - Enxaguando LED AG - Agitando LED AA – Abre_Água LED EA – Esvazia_Água LED TA – Tampa_Aberta LED MC – Motor_Centrifugar