Construindo um Contador Divisor-por-12 Assíncrono
Um contador módulo-12 (mod-12) sequencia através de 12 estados (0–11) antes de resetar. Como 24 = 16 > 12, quatro flip-flops JK são necessários. A arquitetura assíncrona (cascata/ripple) é simples mas exibe acúmulo de atraso de propagação — adequada para clocks de baixa a moderada velocidade.
Passos do Projeto
- Contagem de Estados: 12 estados → 4 flip-flops (Q3 Q2 Q1 Q0, Q0 = LSB).
- Sequência Binária Natural: 0000 (0) → 1011 (11) → Reset para 0000.
- Condição de Reset: Estado 12 (1100) deve disparar clear assíncrono. Detectar Q3·Q2 (já que 1100 = Q3=1, Q2=1, Q1=0, Q0=0). Melhor: detectar 1100 (12) ou 1101 (13) para garantir reset livre de glitches. Prática padrão: Detectar 1100 (Q3Q2) via porta AND → Clear todos FFs.
Lógica de Entrada JK para Contagem Binária Crescente
Para um contador crescente em cascata, cada estágio comuta quando todos os estágios inferiores estão em HIGH.
- FF0 (Q0): J=1, K=1 (comuta a cada clock)
- FF1 (Q1): J=Q0, K=Q0 (comuta quando Q0=1)
- FF2 (Q2): J=Q0·Q1, K=Q0·Q1
- FF3 (Q3): J=Q0·Q1·Q2, K=Q0·Q1·Q2
Conexão Simplificada (Usando Recurso Toggle do FF)
Como J=K=T para modo toggle, conecte cada J/K ao AND de todas as saídas Q inferiores. Para contador 4-bit:
CLK ───►|FF0|──► Q0 J=1, K=1 Q0 ────►|FF1|──► Q1 J=Q0, K=Q0 Q0·Q1 ──►|FF2|──► Q2 J=Q0·Q1, K=Q0·Q1 Q0·Q1·Q2►|FF3|──► Q3 J=Q0·Q1·Q2, K=Q0·Q1·Q2 RESET: Q3·Q2 ──► AND ──► CLR (todos FFs)
Implementação da Lógica de Reset
Uma porta AND monitorando Q3 e Q2 assere CLEAR assíncrono quando contagem atinge 12 (1100). O contador visita brevemente estado 12 antes de limpar — largura do glitch = atraso de propagação através FF3 + porta AND (~10–20 ns para 74LS/HC). Para saída livre de glitches, use reset síncrono (decodifique estado 11 → carregue 0 no próximo clock) ou contador síncrono (ex.: 74LS161/163).
Considerações de Tempo
- Frequência Máxima de Clock: fmáx ≈ 1 / (n × tpd). Para 4× 74HC74 (tpd≈15ns): fmáx ~ 16 MHz. Para 74LS: ~25 MHz.
- Skew de Propagação: Q3 muda ~3×tpd após Q0. Saída não simultaneamente válida — evite usar como barramento de endereço sem sincronização.
- Reset na Energização: Adicione rede RC nos pinos CLR para inicialização determinística.
Opções de Implementação em CI
- Discreto: 4× 74HC76 / 74HC112 (dual JK) + 74HC08 (AND).
- Chip Único Síncrono: 74HC161 (contador binário 4-bit síncrono, clear assíncrono) + AND externo em Q3Q2 para mod-12. Preferido para confiabilidade.
- Programável: 74HC163 (clear síncrono) ou GAL/PLD/FPGA.
Aplicações
- Divisores de clock (12 MHz → 1 MHz).
- Contador década BCD (mod-10) + mod-12 → relógio 12 horas.
- Sintetizadores de frequência, geradores de baud rate.