Aula 05 - Circuitos Sequenciais, Contadores, Registradores e Máquinas de Estados (FSM)

Navegação Rápida & Integração Curricular

📍 Disciplina: 02 Eletrônica Digital | 🏭 Área: 05 Eletrônica, Automação e Controle | 🏠 Hub Principal 📄 Apostila Base: Máquinas de Estados Finitos (Pedroni, V. A. — Circuit Design with VHDL) ⬅️ Aula Anterior: 04 - Latches, Flip-Flops e Temporização | ➡️ Próxima Aula: 06 - Memórias e Lógica Programável (PLDs e FPGAs)


1. Introdução à Lógica Sequencial Complexa

Os circuitos lógicos sequenciais complexos utilizam os elementos biestáveis estudados na aula anterior (Flip-Flops) associados a malhas combinacionais de realimentação para executar processamento temporal determinístico. Eles subdividem-se em três grandes pilares estruturais da arquitetura de computadores:

  1. Registradores de Deslocamento (Shift Registers): Manipulação, armazenamento temporário e conversão de formato de palavras binárias (serial/paralelo);
  2. Contadores Digitais: Geração de sequências numéricas periódicas, divisão de frequência de osciladores e controle temporal de ciclos de barramento;
  3. Máquinas de Estados Finitos (FSM - Finite State Machines): O cérebro controlador que dita a lógica de sequenciamento de unidades de controle (CPUs), protocolos de comunicação e automações industriais.


📌 Sumário da Aula

  1. 2. Registradores de Deslocamento (*Shift Registers*)
  2. 3. Contadores Digitais
  3. 4. Multivibradores e Circuitos Temporizadores
  4. 5. Máquinas de Estados Finitos (FSM)
  5. 6. Questões Resolvidas das Materiais Teóricos de Referência

2. Registradores de Deslocamento (Shift Registers)

Um registrador de deslocamento é uma cadeia síncrona de Flip-Flops configurados de modo que o dado binário é transferido de um estágio para o seguinte a cada borda ativa do sinal de clock compartilhado.

2.1 As Quatro Topologias Fundamentais de Transferência

TopologiaEntradaSaídaLatência TemporalAplicação Típica
SISO (Serial-In / Serial-Out)Serial (1 bit/clk)Serial (1 bit/clk) pulsos de clockLinhas de retardo digital, buffers FIFO
SIPO (Serial-In / Parallel-Out)Serial (1 bit/clk)Paralela ( bits) pulsos de clockReceptores seriais (UART, SPI, USB)
PISO (Parallel-In / Serial-Out)Paralela ( bits)Serial (1 bit/clk) carga shiftsTransmissores seriais, multiplexação de sensores
PIPO (Parallel-In / Parallel-Out)Paralela ( bits)Paralela ( bits) único pulso de clockRegistradores de uso geral de CPUs, buffers de dados

2.2 Registrador Universal Bidirecional de 4 Bits (CI 74194)

O registrador universal sintetiza todas as operações possíveis em um único chip através de multiplexadores 4:1 acoplados às entradas de cada flip-flop, comandados pelas linhas de seleção de modo e :

Modo de OperaçãoFunção e Impacto Algorítmico
00Retenção (Inibição / Hold)Mantém o dado inalterado ()
01Deslocamento à Direita (Shift Right)Equivale à Divisão Inteira por 2 ()
10Deslocamento à Esquerda (Shift Left)Equivale à Multiplicação Aritmética por 2 ()
11Carga Paralela Síncrona (Parallel Load)Carrega simultaneamente os dados

2.3 Contadores em Anel (Ring) e Contador Johnson

A. Contador em Anel (Ring Counter)

Realimenta a saída serial do último estágio diretamente na entrada serial do primeiro estágio: .

  • Utiliza a codificação One-Hot: exatamente um único bit ‘1’ circula pelos estágios ();
  • Número de estados válidos: (para flip-flops);
  • Vantagem: Dispensa qualquer lógica de decodificação adicional; cada saída de flip-flop fornece um pulso temporal sequencial limpo.

B. Contador Johnson (Twisted Ring Counter)

Realimenta a saída invertida do último estágio na entrada do primeiro: .

  • Número de estados válidos: (o dobro da contagem do Ring Counter com a mesma quantidade de silício!);
  • Sequência de estados para 4 bits ( estados):
  • Propriedade Exclusiva: Apenas 1 bit comuta a cada transição (código unitário adjacente), tornando sua decodificação completamente imune a riscos estáticos (hazards) e glitches com portas AND de apenas duas entradas!

3. Contadores Digitais

Um contador digital é um circuito sequencial que percorre um ciclo prefixado de estados sob estímulo de pulsos de clock. O valor é denominado Módulo do Contador (Modulus). Para contar até estados, o número mínimo de flip-flops necessários satisfaz:

3.1 Contadores Assíncronos (Ripple Counters)

Nos contadores assíncronos, o sinal de clock externo é conectado apenas no primeiro flip-flop (LSB); a saída de cada flip-flop é utilizada como sinal de clock para disparar o estágio seguinte.

  • Vantagem: Topologia esquemática extremamente simples, sem necessidade de portas lógicas intermediárias;
  • Desvantagem Crítica (Gargalo de Ripple): Como cada flip-flop introduz um atraso de propagação , o atraso propaga-se em cascata por toda a cadeia: Durante essa transição transitória, surgem combinações falsas passageiras na saída que podem acionar circuitos externos de forma errônea (glitches). A frequência máxima de operação é severamente limitada:

3.2 Contadores Síncronos Paralelos

Nos contadores síncronos, todos os flip-flops compartilham exatamente a mesma linha de clock:

  • Todos os estágios disparam em sincronismo absoluto no mesmo instante;
  • A decisão sobre qual flip-flop deve comutar (toggle) é realizada por uma malha combinacional paralela de portas AND conectada às entradas e (ou ):
    • Estágio 0: (Comuta a todo pulso);
    • Estágio 1: (Comuta quando );
    • Estágio 2: ;
    • Estágio 3: .
  • Desempenho: A frequência máxima independe do número de estágios , dependendo apenas do atraso de um único flip-flop somado à porta lógica:

3.3 Contadores Truncados de Módulo Arbitrário

Quando o módulo desejado não é uma potência exata de 2 (por exemplo, um contador de década BCD com ):

  1. Empregam-se flip-flops tais que (para flip-flops, cuja contagem natural iria até 16);
  2. Utiliza-se uma porta lógica (geralmente NAND) para decodificar o estado transitório em binário;
  3. A saída dessa porta é conectada aos pinos de Reset Assíncrono () de todos os flip-flops;
  4. Ao atingir o estado , os flip-flops sofrem reset instantâneo em escala de nanosegundos, retornando imediatamente ao estado .
    • Exemplo CI 7490 (Contador BCD Módulo 10): O estado em binário é (). A condição de reinício é: Os estados válidos estáveis são de 0 a 9 ( estados estáveis)!

4. Multivibradores e Circuitos Temporizadores

Os multivibradores classificam-se quanto à estabilidade de seus estados:

Tipo de MultivibradorEstados EstáveisFuncionamento TípicoDispositivos e CIs
Astável0 estáveis (oscilador)Comuta continuamente entre níveis alto e baixoOscilador de Clock, CI 555
Monoestável (One-Shot)1 estável, 1 metaestávelAo ser disparado, gera um pulso de largura calibrada CI 74121 (Não-redisparável), CI 74123 (Redisparável)
Biestável2 estáveisMantém seu estado indefinidamente até novo pulsoLatches, Flip-Flops, interruptores eletrônicos

Distinção Crucial entre Monoestáveis:

  • Monoestável Não-Redisparável: Se novos pulsos de trigger chegarem enquanto o circuito estiver comutado no estado temporário, esses pulsos são ignorados;
  • Monoestável Redisparável: Cada novo pulso de trigger recebido durante a contagem reinicia o temporizador a partir do zero. É a base de circuitos de Watchdog Timer e detectores de presença por sensor PIR.

5. Máquinas de Estados Finitos (FSM)

Uma Máquina de Estados Finitos é um modelo matemático de um sistema sequencial composto por:

  1. Um conjunto finito de estados discretos;
  2. Entradas que induzem transições;
  3. Saídas geradas em resposta aos estados e estímulos;
  4. Um registrador de estado (Flip-Flops) e blocos lógicos combinacionais.

5.1 Modelos Canônicos: Moore vs Mealy

A. Máquina de Moore

As saídas são função exclusiva do estado presente armazenado no registrador:

  • Vantagem: As saídas são perfeitamente síncronas com o clock e livres de ruídos ou glitches transitórios originados nas entradas externas;
  • Característica: Exige, em geral, maior número de estados para resolver o mesmo problema.

B. Máquina de Mealy

As saídas são função do estado presente E das entradas externas presentes :

  • Vantagem: Requer frequentemente menos estados que a máquina de Moore equivalente e responde a estímulos no mesmo ciclo de clock;
  • Desvantagem Crítica: Qualquer ruído de alta frequência ou variação assíncrona nas linhas de entrada propaga-se diretamente para as saídas no mesmo ciclo de clock, podendo gerar glitches espúrios.

5.2 Fluxo Sistemático de Síntese Digital em 5 Passos

  1. Diagrama de Transição de Estados (ASM): Mapeamento gráfico formal dos nós (estados) e arestas direcionadas (transições condicionadas pelas entradas);
  2. Tabela de Transição e Saída: Listagem tabular contendo Estado Atual (), Entradas (), Próximo Estado () e Saídas ();
  3. Atribuição e Codificação de Estados:
    • Codificação Binária Clássica: flip-flops;
    • Codificação Gray: Minimização de transições de bits simultâneas;
    • Codificação One-Hot: flip-flop por estado (ideal para FPGAs, simplifica as equações para custo quase nulo de portas);
  4. Minimização das Equações de Excitação: Aplicação de Mapas de Karnaugh para determinar as equações lógicas das entradas dos Flip-Flops ();
  5. Verificação de Auto-Recuperação (Self-Starting): Análise dos estados proibidos não-utilizados. O circuito deve obrigatoriamente convergir para o laço operacional válido em caso de corrupção por ruído, impedindo travamento (deadlock).

5.3 Síntese de Máquinas de Estados Finitos (FSM) em Hardware e VHDL

Na engenharia contemporânea de sistemas digitais com PLDs e FPGAs, o projeto de máquinas de estados finitos raramente é feito por minimização manual em Mapas de Karnaugh quando . Em vez disso, utiliza-se a descrição comportamental em VHDL (IEEE 1076), na qual o sintetizador lógico infere automaticamente o banco de registradores de estado e a rede combinacional de excitação/saída.

flowchart LR
    subgraph COMB1["Bloco Combinacional de Transição"]
        NEXT["Lógica de Próximo Estado\n(PROCESS combinacional:\npr_state, entradas -> nx_state)"]
    end
    subgraph SEQ["Bloco Sequencial (Registrador de Estado)"]
        REG["Flip-Flops Tipo D\n(PROCESS síncrono:\nclk, rst -> pr_state <= nx_state)"]
    end
    subgraph COMB2["Bloco Combinacional de Saída"]
        OUT_LOGIC["Lógica de Saída\nMoore: f(pr_state)\nMealy: f(pr_state, entradas)"]
    end
    IN["Entradas Externas (X)"] --> NEXT
    NEXT -- "nx_state" --> REG
    CLK["Clock / Reset"] --> REG
    REG -- "pr_state" --> NEXT
    REG -- "pr_state" --> OUT_LOGIC
    IN -. "Apenas em Mealy" .-> OUT_LOGIC
    OUT_LOGIC --> Y["Saídas (Y)"]

🕹️ Simulador Dinâmico Interativo: Máquina de Estados Finitos (FSM Moore vs. Mealy) & Codificação em FPGA (VHDL)

Simule passo a passo ou com clock automático uma Máquina de Estados de 4 estados (), comparando em tempo real no diagrama de estados e no analisador lógico temporal o atraso de 1 ciclo de clock da saída síncrona de Moore frente à resposta assíncrona imediata de Mealy, além de alternar entre as codificações Binária Sequencial (2 FFs), Código Gray (2 FFs sem glitches) e One-Hot FPGA (4 FFs) com geração automática do código VHDL em 2 processos: 👉 ▶️ Clique para Abrir o Simulador em Tela Cheia no Navegador (Arquivo no cofre: [[simulador_mapa_karnaugh_sintese_vhdl_fsm.html]])

A. Tipos Enumerados para Estados e Atributos de Codificação (State Encoding)

Em VHDL, o conjunto discreto de estados é declarado no cabeçalho da ARCHITECTURE através de um tipo enumerado definido pelo usuário (TYPE), acompanhado de dois sinais internos (pr_state para estado presente e nx_state para estado futuro):

TYPE state_type IS (state_A, state_B, state_C, state_D);
SIGNAL pr_state, nx_state : state_type;

Para controlar fisicamente como o sintetizador mapeia esses símbolos abstratos em vetores binários nos Flip-Flops, utilizam-se esquemas de codificação (State Encoding) ou atributos de síntese (ATTRIBUTE enum_encoding):

Esquema de CodificaçãoNº de Flip-Flops () para EstadosExemplo para Estados ()Impacto em Área de Flip-Flops vs. Lógica CombinacionalPlataforma Alvo Ideal
Binária Sequencial (Sequential / Binary)
Mínimo uso de Flip-Flops, porém exige lógica combinacional de decodificação de estado e próximo estado mais densa (múltiplos níveis de LUTs).CPLDs e ASICs limitados por área de registradores.
Código Gray (Gray Encoding)
Apenas 1 bit comuta entre estados adjacentes sequenciais. Reduz drasticamente o consumo de potência dinâmica () e elimina glitches na decodificação de saídas.Contadores assíncronos de baixa potência, ponteiros de FIFOs de cruzamento de domínio de clock (CDC).
Código Johnson (Twisted Ring)Adjacência unitária sem hazards; decodificação de qualquer estado requer apenas uma porta AND de 2 entradas.Geradores de fases de clock polifásicos e controle de alta velocidade.
One-Hot (1-entre-M)
Máximo uso de Flip-Flops ( FF por estado), mas mínima lógica combinacional (apenas 1 bit precisa ser testado para identificar o estado atual). Alcança a maior frequência máxima de clock ().FPGAs (ricas em Flip-Flops dentro de cada CLB/Slice e limitadas por atraso de cascateamento de LUTs).

Para forçar manualmente uma codificação específica no sintetizador VHDL:

TYPE state_type IS (A, B, C, D);
ATTRIBUTE enum_encoding : STRING;
ATTRIBUTE enum_encoding OF state_type : TYPE IS "1000 0100 0010 0001"; -- Força codificação One-Hot

B. A Estrutura Canônica em 2 Processos (Two-Process FSM Design Pattern)

A metodologia padrão recomendada na literatura de síntese (Pedroni) divide a descrição VHDL da máquina de estados exatamente nas duas partes físicas que compõem o hardware:

  1. Seção Sequencial (Inferência do Registrador de Estado):
    • Implementada por um PROCESS sensível exclusivamente ao clk e ao sinal de rst (reset);
    • Aplica o estado inicial padrão quando rst = '1' e transfere pr_state <= nx_state na borda ativa do relógio (rising_edge(clk)).
  2. Seção Combinacional (Lógica de Próximo Estado e Lógica de Saída):
    • Implementada por um segundo PROCESS sensível ao estado atual (pr_state) e a todas as entradas externas que determinam transições ou saídas;
    • Utiliza uma estrutura CASE pr_state IS para descrever todas as transições (nx_state <= ...) e as atribuições de saída (s <= ...), prevenindo a inferência acidental de latches.

Taxonomia de Transições Temporais em FSMs

Conforme sistematizado por Pedroni, a transição de um estado para outro em VHDL pode depender de três categorias de eventos:

  1. Apenas Condição Lógica: Transição governada puramente por entradas assíncronas/síncronas avaliadas a cada ciclo de clock (ex.: detector de sequência de bits);
  2. Apenas Tempo: Transição incondicional após um número fixo de ciclos de clock contados por um temporizador auxiliar (ex.: semáforo de trânsito com tempos fixos);
  3. Condição Lógica E Tempo: A máquina aguarda uma entrada lógica ou estoura por timeout após ciclos de clock (ex.: controladores de protocolos industriais e watchdogs).

C. Exemplo Completo Comentado: Projeto VHDL em 2 Processos (Moore vs. Mealy)

Considere a máquina de estados de 4 estados () do diagrama de transição clássico com entrada binária e saída :

  • Estado A: Saída . Se ; se .
  • Estado B: Saída . Se ; se .
  • Estado C: Saída . Se ; se .
  • Estado D: Saída (detector da sequência "10"). Se ; se .
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
 
ENTITY fsm_detector_moore IS
    PORT (
        clk : IN  STD_LOGIC;
        rst : IN  STD_LOGIC;
        x   : IN  STD_LOGIC;
        s   : OUT STD_LOGIC
    );
END ENTITY fsm_detector_moore;
 
ARCHITECTURE comportamental OF fsm_detector_moore IS
    -- 1. Declaração do tipo enumerado para os estados e sinais de estado
    TYPE state_type IS (A, B, C, D);
    SIGNAL pr_state, nx_state : state_type;
BEGIN
 
    -- =========================================================================
    -- PROCESSO 1: SEÇÃO INFERIDORA DE MEMÓRIA SEQUENCIAL (Registrador de Estado)
    -- =========================================================================
    processo_sequencial : PROCESS (rst, clk)
    BEGIN
        IF (rst = '1') THEN
            pr_state <= A; -- Estado padrão de inicialização assíncrona
        ELSIF rising_edge(clk) THEN
            pr_state <= nx_state; -- Atualização síncrona na borda de subida
        END IF;
    END PROCESS processo_sequencial;
 
    -- =========================================================================
    -- PROCESSO 2: SEÇÃO COMBINACIONAL (Lógica de Próximo Estado e Saída Moore)
    -- =========================================================================
    processo_combinacional : PROCESS (pr_state, x)
    BEGIN
        CASE pr_state IS
            WHEN A =>
                s <= '0'; -- Em Moore, a saída depende APENAS de pr_state
                IF (x = '1') THEN
                    nx_state <= B;
                ELSE
                    nx_state <= A;
                END IF;
 
            WHEN B =>
                s <= '0';
                IF (x = '0') THEN
                    nx_state <= D;
                ELSE
                    nx_state <= C;
                END IF;
 
            WHEN C =>
                s <= '0';
                IF (x = '0') THEN
                    nx_state <= D;
                ELSE
                    nx_state <= C;
                END IF;
 
            WHEN D =>
                s <= '1'; -- Pulso de detecção validado estritamente pelo estado D
                IF (x = '1') THEN
                    nx_state <= B;
                ELSE
                    nx_state <= A;
                END IF;
        END CASE;
    END PROCESS processo_combinacional;
 
END ARCHITECTURE comportamental;

Adaptação Direta para Máquina de Mealy e Depuração em Simulação

  • Conversão para Modelo de Mealy: Se a saída depender também da entrada dentro de um estado (por exemplo, no estado , imediatamente quando ), basta mover a atribuição s <= '1' para dentro do bloco condicional IF (x = '0') THEN no processo combinacional!
  • Inspeção de Estados Internos no Simulador (ModelSim / Quartus / Vivado): Como pr_state e nx_state são sinais internos (SIGNAL) e não portas da ENTITY, para visualizá-los no diagrama de formas de onda durante a simulação com Testbench, deve-se expandir a hierarquia testbench -> uut (Unit Under Test), selecionar os sinais pr_state e nx_state, adicioná-los à janela Waveform (Add to Waveform) e reexecutar a simulação (Restart Run).

6. Questões Resolvidas das Materiais Teóricos de Referência

Questão 1 (Apostila 04 - Módulo 1)

Enunciado: Um contador binário síncrono crescente de 4 bits com saídas possui entrada de Clear assíncrono ativada em nível baixo (). Sabendo que o pino de Clear é alimentado pela saída de uma porta lógica que calcula , qual é o módulo deste contador?

A) 10
B) 11
C) 9
D) 4
E) 15

Resolução Passo a Passo:

  1. O contador inicia a contagem no estado zero () e avança monotonicamente a cada pulso de clock:
  2. Analisa-se a condição de disparo do Clear:
  3. Em termos de contagem binária de 4 bits ():
    • Para as contagens de 0 a 9 ( a ), a condição nunca ocorre;
    • O primeiro número a satisfazer essa condição é o número 10 ().
  4. Efeito do Clear Assíncrono:
    • Ao atingir o estado 10, o Clear é ativado imediatamente (em escala de poucos nanossegundos);
    • Como o Clear é assíncrono, o estado 10 não é estável e não permanece para o próximo pulso de clock; os flip-flops são resetados diretamente para ;
    • Portanto, os estados estáveis do circuito são: .
  5. Total de estados estáveis: estados O contador é de Módulo 10 (Contador BCD / Década).

Resposta Correta: A (Módulo 10)


Questão 2 (Apostila 04 - Módulo 1)

Enunciado: Quais tipos de multivibradores podem compor os seguintes equipamentos:

  1. Uma campainha musical que, ao ter seu botão pressionado momentaneamente, toca um trecho de música por um tempo predeterminado e desliga automaticamente.
  2. Um sistema que liga a iluminação automaticamente ao detectar movimento e, se novo movimento for detectado durante o intervalo, mantém a contagem reiniciada.
  3. Um interruptor digital de lâmpada que comuta de desligado para ligado a cada clique, mantendo o estado indefinidamente.

A) I – Biestável; II – Monoestável não-redisparável; III – Astável
B) I – Biestável; II – Astável; III – Biestável
C) I – Monoestável; II – Monoestável redisparável; III – Biestável
D) I – Astável; II – Biestável; III – Monoestável
E) I – Monoestável; II – Monoestável não-redisparável; III – Biestável

Resolução Passo a Passo:

  1. Equipamento 1 (Campainha Musical):
    • Possui um estado estável de repouso (desligada);
    • O pulso do botão leva o sistema temporariamente para um estado quase-estável (tocando) por um intervalo calibrado, retornando sozinho ao repouso;
    • Esta é a definição exata de um Multivibrador Monoestável.
  2. Equipamento 2 (Iluminação por Sensor de Movimento):
    • Opera como monoestável, mas com a capacidade vital de reiniciar a temporização sempre que novo movimento for detectado antes do fim do tempo;
    • Esta característica define estritamente um Multivibrador Monoestável Redisparável (Retriggerable Monostable).
  3. Equipamento 3 (Interruptor Digital):
    • Possui dois estados perfeitamente estáveis (aceso e apagado), alternando entre eles a cada comando externo e retendo o estado sem limite de tempo;
    • Trata-se de um Multivibrador Biestável (Flip-Flop).

Resposta Correta: C


Questão 1 (Apostila 04 - Módulo 2 / Petrobras 2014)

Enunciado: (Prova Petrobras 2014 — Engenheiro de Equipamentos Júnior). Uma máquina de estados síncrona implementada por 4 Flip-Flops do tipo D () percorre a seguinte sequência de estados codificados em binário: A lógica combinacional mínima em soma de produtos (SOP) que implementa a entrada de excitação do Flip-Flop mais significativo () é:

A)
B)
C)
D)

Resolução Passo a Passo:

  1. Como os elementos de memória são Flip-Flops tipo D, a regra de excitação é direta:
  2. Monta-se a tabela de transição da sequência:
Estado Atual ()DecimalPróximo Estado ()Decimal Próx.
010
130
370
7151
15141
14121
1281
800
  1. Identificação dos mintermos onde :
    • Para estados da sequência: têm ;
    • Estados têm ;
    • Os demais 8 estados não pertencentes à sequência () são condições Don’t Care ()!
  2. Montando o mapa de Karnaugh para :
    • Células 7 e 15 com , agrupadas com Don’t Cares formam o termo essencial:
    • Células 12, 14, 15 com , agrupadas no laço de borda com :
  3. Expressão mínima canônica final:

Resposta Correta: B


Questão 2 (Apostila 04 - Módulo 2)

Enunciado: Assinale a alternativa que completa corretamente as lacunas: “Na máquina de estados síncrona, os estados só podem mudar nos momentos definidos pelo bordo designado do relógio. Contudo, no Modelo _________ a saída depende ___________________, podendo variar de forma assíncrona.”

A) Assíncrono, do estado futuro.
B) Mealy, apenas das entradas.
C) Moore, apenas do estado presente.
D) Mealy, do estado presente e das entradas.
E) Moore, do estado presente e das entradas.

Resolução Passo a Passo:

  1. No modelo canônico de Moore, as saídas dependem estritamente do estado presente (). Como o registrador de estado só atualiza na borda do clock, as saídas são estritamente síncronas.
  2. No modelo canônico de Mealy, a equação de saída é , dependendo conjuntamente do estado presente e das entradas.
  3. Como as entradas externas podem variar a qualquer instante no meio do ciclo de clock, essa variação propaga-se de maneira puramente combinacional e assíncrona para as saídas, fazendo com que a saída de Mealy varie assincronamente.

Resposta Correta: D (Mealy, do estado presente e das entradas)