Lógica Sequencial Síncrona: O Anel Andante
Contador Johnson (também contador anel torcido, contador anel andante, contador Möbius) é registrador deslocamento onde saída complementada último realimenta à entrada do primeiro. Esta única inversão transforma contador binário 2n estados em gerador sequência 2n-estados com propriedades únicas.
Definição Estrutural
- n flip-flops tipo D (ou JK) cascateados: Qi → Di+1.
- Realimentação: Q̅n-1 → D0 (realimentação invertida).
- Clock: Clock síncrono comum a todos estágios.
- Reset: Clear assíncrono ou síncrono para "00…0" (preferido para início determinístico).
Sequência Estados (n=4 Exemplo)
Clock | Q3 Q2 Q1 Q0 | Decimal | Notas
------|-------------|---------|------
0 | 0 0 0 0 | 0 | Estado reset
1 | 1 0 0 0 | 8 | 0 invertido realimentado
2 | 1 1 0 0 | 12
3 | 1 1 1 0 | 14
4 | 1 1 1 1 | 15
5 | 0 1 1 1 | 7 | 1 invertido realimentado
6 | 0 0 1 1 | 3
7 | 0 0 0 1 | 1
8 | 0 0 0 0 | 0 | Ciclo repete (8 estados = 2n)
Observação-Chave: Apenas um bit muda por clock (estados adjacentes código Gray). Isso elimina glitches decodificação.
Características Definidoras
- Módulo = 2n: 4 FFs → Mod-8; 8 FFs → Mod-16.
- Auto-Início (com ressalvas): De qualquer dos 2n estados, contador entra ciclo principal 2n dentro ≤ n clocks. Porém, pode travar em ciclos "mortos" (ex: 1010… para n=4) se não resetado. Sempre inclua reset power-on.
- Decodificação Simples: Cada estado é padrão one-hot único em bits adjacentes (ex: 0001, 0011, 0111…). Porta AND 2 entradas por estado decodifica limpo sem glitches.
- Ciclo Dever: Saída qualquer estágio é onda quadrada fCLK / 2n com duty cycle 50%.
Comparação: Johnson vs. Anel vs. Binário
| Tipo Contador | FFs (n) | Estados | Decodificação | Freq Máx | Auto-Início |
| Binário (Ripple) | n | 2n | Complexa (portas n-entradas) | Baixa (atraso prop) | Sim |
| Binário (Síncrono) | n | 2n | Complexa | Alta | Sim |
| Anel (Reto) | n | n | Trivial (1 FF por estado) | Mais Alta | Não (precisa preset) |
| Johnson (Torcido) | n | 2n | Simples (AND 2 entradas) | Alta | Sim (c/ reset) |
Aplicações Clássicas
- Divisão Frequência: Divide-por-2n com duty cycle 50% (ex: 4 estágios → ÷8 clock).
- Sequenciadores Máquina Estados: Acionamento motor passo (4-fases), LED chasers, controladores semáforo.
- Decodificação Sem Glitches: Gerando fases clock não-sobrepostas (φ1, φ2, φ3, φ4) para bombas carga ou lógica dinâmica.
- Gerador Padrão Pseudo-Aleatório: Com XOR realimentação taps selecionados, torna-se tipo LFSR mas com runs maiores.
- Temporização ADC: Sequenciamento controle successive-approximation register (SAR).
Nota Implementação (74HC4017 / CD4017)
O onipresente CD4017 / 74HC4017 é contador Johnson 5-estágios (10 saídas decodificadas). Inclui carry-out (Q5̅) para cascata. Para Mod-8, use 4-estágios (74HC164 + inversor realimentação) ou gateie Q8 do 4017 para Reset.