A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Lógica Sequencial e Máquina de Estados Finitos

Apresentações semelhantes


Apresentação em tema: "Lógica Sequencial e Máquina de Estados Finitos"— Transcrição da apresentação:

1 Lógica Sequencial e Máquina de Estados Finitos
Psi 3451

2 Lógica Sequencial Lógica com memória Lógica combiancional
Saída depende do valor de entrada Lógica sequencial Saída depende do valor atual de entrada e dos valores anteriores Registradores são necessários- o mais comum é utilizar flip-flops tipo D , DFF Um circuito sequencial é um circuito com memória, que tema função de formar estados internos. A saída de um circuito sequencia depende não só dos valores de suas entradas, mas também do estado interno em que se encontra.

3 DFF simples clk´event and clk=‘1’ Infere FF sensível à borda de subida
library ieee ; use ieee.std_logic_l164.all; entity d_ff is port ( clk: in std_logic; d: in std_logic; q: out std_logic) ; end d_ff; architecture arch of d_ff is begin process ( clk ) if (clk'event and clk = ' l ' ) then q <= d; end i f; end process; end arch; A linguagem VHDL através da sintaxe process permite a inferência de circuitos sequenciais controlados por flip-flops tipo D (DFFs) , sendo o modelo mais simples, o próprio DFF. Ao lado da figura, o código correspondente é apresentado; pode-se observar que a condição "clock´event and clock=´1´" define a borda de subida do clock como o evento ativador da transferência de d para q. clk´event and clk=‘1’ Infere FF sensível à borda de subida

4 DFF com reset assíncrono
architecture arch of d_ff is begin process ( clk , reset) if (reset=' l ' ) then q <= 0; elsif (clk'event and clk = ' l ' ) then q <= d; end i f; end process; end arch; É comum que um circuito sequencial seja colocado em um estado prédeterminado ou ao início de sua operação ou em um re-início. O sinal reset é comumente usado, podendo ser assíncrono ou síncrono. O slide ilustra o caso assíncrono e a tabela de operação indica que, independente do sinal de relógio, tão logo o sinal de reset é ativado (vai para o valor 1, o sinal de saída q o acompanha). O código VHDL à direita da figura mostra que o sinal de reset está na lista de sensibilidade, porém o código relativo à sua ativação está fora da condição de ativação do clock. Para simplificar a declaração de entity foi omitido. Acionamento do reset implica em q=´0´ imediatamente

5 DFF com reset síncrono architecture arch of d_ff is begin process ( clk , reset) if (clk'event and clk = ' l ' ) then if (reset=' l ' ) then q <= 0; else q <= d; end i f; end process; end arch; O slide apresenta uma outra configuração que é o DFF com reset síncrono, mais consistente com o paradigma síncrono. Neste caso, como pode-se ver na tabela de operação, que o código relativo à sua ativação está dentro da condição de ativação do clock. Acionamento do reset implica em q=´0´ após a subida do clock

6 O que é uma MEF ou FSM? Máquina de Estados Finitos (MEF) – Finite- State Machine (FSM) Modelo de computação composto de um número finito de estados, de transições entre estados e ações sobre sinais e estados Muito utilizado e controle de processos industriais, jogos eletrônicos, robôs, etc. O modelo de máquina de estados finitos é uma das formas mais importantes e tradicionais de representação do comportamento de sistema e, em particular, de circuitos digitais. É um modelo usualmente adotado para controle de diversas modalidades como para processos industriais, jogos eletrônicos, operação de elevadores, etc. O modelo é tipicamente reativo, baseando-se no paradigma de representar o comportamento do circuito ou da aplicação de acordo com o estado em que se encontra e, de acordo com estímulos externo, permanece no mesmo ou passa para um outro estado. Uma máquina de estados é definido por um conjunto de entradas e outro de saída, pelo conjunto de seus estados, pelas funções de transição de cada estado para um outro, e pelos valores de saída, que podem variar quando a máquina passa de um estado para o outro. Na prática, a FSM representa um comportamento de um circuito, que a partir de um estado conhecido, as sequências de entrada geram deterministicamente sequências de saídas. Nos circuitos sequenciais síncronos, é implícito que a transição de estados é regida pelo clock, sinal de relógio.

7 C) Modelo de Implementação
O que é uma MEF ou FSM? Descrição do Problema Deseja-se construir um divisor de frequência. O sinal de relógio, clock, original tem a sua frequência reduzida, de tal forma que a saída seja 1 a cada 4 ciclos. C) Modelo de Implementação D) Tabela de Estados (tipo Moore) 1 Entradas Q1 Q0 a Saídas I1 I0 x Lógica combinacional x a I0 I1 I0 Q0 Q1 Q0 1 2 3 x=0 x=1 a=1 a=0 B) Diagrama de Estados Registrador de Estado I1 I1 I0 Dado este modelo de implementação A lógica sequencial pode ser reduzida, sem dificuldades, a uma lógica combinacional Original de Frank Vahid, Embedded Systems Design: A Unified HW-SW Introduction

8 Tipos Moore e Mealy Existem dois modelos de FSMs, as máquinas de Moore e de Mealy, cujas diferenças se expressam no momento em que as saídas são ativadas . Como apresentado no slide, na máquina de Moore, uma saída qualquer, denominada genericamente por mo, pode ter o seu valor alterado quando um novo estado é alcançado ( a designação do valor para a saída é descrita dentro do círculo representativo do estado); por outro lado, na máquina de Mealy, o valor de qualquer uma das saída, denominada genericamente por me, pode ser alterado quando uma entrada tem o seu valor alterado, o que pode também provocar uma transição para outro estado ( a designação do valor para a saída é descrita junto à aresta de transição de um estado para outro. É interessante observar que na máquina de Moore, a saída independe da entrada, mas apenas do seu atual estado (o qual depende dos valores da entradas no estado anterior e é definido após a ativação do sinal de relógio); já na máquina de Mealy, a saída depende diretamente da variação do sinal de entrada e não é regido pelo sinal de relógio.

9 Tipos Moore e Mealy $$ Exemplo: detector de sequência 10 Moore: Mealy:
As figuras do slide exemplificam diagramas de estados de uma máquina de Moore e outra de Mealy, respectivamente, ao capturarem o comportamento de uma circuito detector da sequência ´10´, o que provoca um valor de saída 1. O comportamento resultante será mostrado no próximo slide $$ Mealy:

10 Tipos Moore e Mealy Exemplo: forma de onda clock 1 input
input Na máquina de Moore, a referência deve ser a subida do clock que determina a mudança de estado de S0->S1->S2 devido à presença de ‘10’ na entrada. Ao se alcançar o estado S2, a saída apresenta ‘1’ (há um pequeno atraso devido ao caminho combinacional percorrido após a subida do clock. Na máquina de Mealy, para a saída, a referência é a variação à entrada. Uma vez no estado S1 na subida do clock (decorrência da entrada =´1´), tão logo a entrada apresente um ‘0’, a saída já transita para ´1´. Há um pequeno atraso devido ao caminho da lógica combinacional. As lógicas combinacionais das máquinas de Moore e Mealy são apresentadas nas figuras seguintes. output Moore S0 S1 S2 S0 S0 output Mealy S0 S1 S0 S0 S0

11 Tipos Moore e Mealy Implementação – representação geral
Esta é uma representação genérica da implementação da máquina de Moore. Esquematicamente, somente “um bit” é representado, i.e., na verdade, há um conjunto de FFs formando o estado. Para uma mesma aplicação, o diagrama de estados das máquinas de Moore e Mealy são diferentes (ver o exemplo dos slides anteriores), portanto a lógica de estados são diferentes, mas tem a mesma configuração como mostrado nesta figura. Já as lógicas são bem distintas. Os caminhos da lógica combinacional para a saída comentadas no slide anterior podem ser observados no diagrama.

12 Tipos Moore e Mealy Implementação – Máquina de Moore
Estado Futuro depende de Estado Presente e Entradas Saídas dependem do Estado Presente

13 Tipos Moore e Mealy Implementação – Máquina de Mealy
Estado Futuro depende de Estado Presente e Entradas Saídas dependem do Estado Presente e Entradas

14 Projeto Semidedicado Projetista descreve a máquina de estados em VHDL
Ferramenta de Síntese : captura VHDL e gera lógica automaticamente Projeto de ASIC  lógica em forma de portas lógicas (células padrão) Projeto de FPGAs  lógica em forma de células de memória (look-up-tables, LUTs)

15 Codificação Padrão de FSMs

16 Codificação Padrão de FSMs
Template do modelo VHDL da FSM Entity LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY <nome_entidade> IS PORT ( rst : IN STD_LOGIC; clk : IN STD_LOGIC; entrada0 : IN <tipo de dado>; ... entradaN : IN <tipo de dado>; saida0 : OUT <tipo de dado>; .. saidaN : OUT <tipo de dado>); END <nome_entidade>;

17 Codificação Padrão de FSMs (Moore)
Arquitetura 1: declarações e lógica sequencial ARCHITECTURE <nome_arquitetura> OF <nome_entidade> IS TYPE state_type IS (estado0, estado1, estado2, ,estadoN); // veja quantos estados hah no seu projeto SIGNAL state, next_state : state_type; BEGIN Lógica Sequencial SEQ: PROCESS (rst, clk) IF (rst='1') THEN state <= estado0; ELSIF Rising_Edge(clk) THEN state <= next_state; END IF; END PROCESS SEQ;

18 Codificação Padrão de FSMs (Moore)
Arquitetura 2: lógica de transição de estados Lógica Combinacional do estado seguinte – COMB: PROCESS (entrada0,..,entradaN, state) // completar com sinais de entrada + state BEGIN CASE state IS // para cada estado, preencha as condicoes para transicao de estado WHEN estado0 => IF ( entrada0 = ………) THEN next_state <= estado1; ELSE ... next_state <= estado0; END IF; WHEN estado1 => next_state <= estado2; ... WHEN estadoN => IF ( entradaN = ………) THEN next_state <= estadoN; END CASE; END PROCESS COMB;

19 Codificação Padrão de FSMs (Moore)
Arquitetura 3: lógica de saída Lógica Combinacional de saidas SAI: PROCESS (state) BEGIN CASE state IS // para cada estado, defina as atribuicoes de saida WHEN estado0 => saida1 <= <valor>; ... saidaN <= <valor>; WHEN estado1 => WHEN estadoN => END CASE; END PROCESS SAL; END <nome_arquitetura>;


Carregar ppt "Lógica Sequencial e Máquina de Estados Finitos"

Apresentações semelhantes


Anúncios Google