ELETRÔNICA DIGITAL II Parte 8 Máquina de Estados Professor Dr. Michael Klug 1
Lembrando Circuitos Combinacionais: o valor da saída no instante t depende apenas da combinação dos valores das entradas neste instante. Projeto utilizando tabela verdade, mapas de karnaugh (método conjuntivo ou disjuntivo) Circuitos Sequenciais: o valor da saída no instante t não depende apenas dos valores das entradas neste instante, mas também da sequência das entradas anteriores. Método de projeto: Máquina de Estados 2
Circuitos Sequenciais Circuito Combinacional + Elementos de Memória (FFs) Contadores, Registradores, Memórias Característica Fundamental: Realimentação 3
FSM (Finite State Machine): formalismo para construção de circuitos sequenciais Tipos: Moore e Mealy Estados: modos de operação Máquina de Estados Cada estágio através do qual o circuito sequencial avança; Em cada estado, o circuito armazena uma recordação de sua história passada, para saber o que fazer a seguir; Nem toda informação anterior é relevante Nem todo estado precisa ser armazanado 4
Composição Bloco de Memória: armazenar informações anteriores para definir o estado presente. Tem como entrada a lógica do próximo estado. Bloco(s) Combinatório(os): definir qual é o próximo estado e a saída externa. Tem como entradas o estado presente e as entradas externas. 5
Modelo de Moore Saídas dependem apenas do Estado Atual/Presente Entradas interferem apenas nos estados futuros 6
Modelo de Mealy Saídas dependem do Estado Atual e das Entradas Entradas interferem nos estados futuros e na saída 7
Máquinas de Moore: As saídas são função apenas do estado presente (não das entradas); As entradas só interferem no próximo estado (lógica). As saídas variam sincronamente; Durante o ciclo de clock as variações não afetarão diretamente a saída do sistema; Resposta mais lenta ou inexistente à variações na entrada Máquinas de Mealy: As saídas são função do estado presente e das entradas atuais; As saídas variam assincronamente com as entradas; Resposta mais rápida à variações na entrada. Moore ou Mealy? Moore e Mealy Em geral a versão Mealy de um circuito será mais econômica em termos de componentes físicos (hardware); Entretanto, como a saída depende da entrada, valores incorretos na entrada durante o ciclo de clock podem afetar a saída. 8
Diagrama de Estados Diagrama de Estados ou Diagrama de Fluxo de Estado Grafonoqualcadanó representa um estado e cada arco representa uma transição de estados (fluxo) Moore Mealy 9
Diagrama de Estados Exemplos: Latch RS Det. Paridade Ímpar CNT MOD4 (MOORE) CNT MOD4 (MEALY) 10
Diagrama de Estados Exercício: Desenhar o diagrama de estados para um contador MOD4 com os seguintes terminais: habilita e MAX (contagem máxima) 11
Passos: Projeto de Circuito Sequencial i) Interpretação do problema e construção do diagrama de estados * Inicialmente os estados ainda não estarão assinalados à valores binários (codificação), recebendo apenas nomes simbólicos que podem ser letras do alfabeto, números inteiros ou nomes. ii) Tabela de Transição (Próximo Estado) iii) Determinação e otimização de expressões (Para a lógica do próximo estado e para as saídas): com base no FF a ser utilizado iv) Implementação do circuito 12
Tabela de Transição de Flip Flop: FF D: Importante: FF JK: 13
Projetar um contador crescente, utilizando código gray, de 3 bits: 000, 001, 011, 010, 110, 111, 101, 100. OBS: utilizar modelo de Moore e FFs tipo D. PASSO 1: Diagrama de Estados Exemplo 1 14
PASSO 2: Tabela de Transição Exemplo 1 Eventualmente utiliza-se a notação Qn(t) para o estado presente/atual, e Qn(t + ) para o estado futuro/próximo 15
Exemplo 1 PASSO 3: Determinação e otimização de expressões Sendo: 16
PASSO 4: Implementação Exemplo 1 OBS: as saídas Q, se existentes, poderiam ser utilizadas para reduzir a quantidade de elementos do circuito combinacional 17
Projete um contador para a seguinte sequencia irregular: 001, 010, 101, 111 e recicla. OBS: utilizar modelo de Moore e FFs tipo D. PASSO 1: Diagrama de Estados Exercício 1 Este contador (4 bits) poderia ser implementado utilizando um contador de 2 bits sequencial (clássico), efetuando um circuito combinacional para transformar a saída: 00 em 001, 01 em 010... 18
PASSO 2: Tabela de Transição Exercício 1 PASSO 3: Determinação e otimização de expressões 19
PASSO 4: Implementação Exercício 1 20