Fundamentos do Contador Mod-5
Um contador módulo-5 (Mod-5) sequencia através de 5 estados distintos (0, 1, 2, 3, 4) antes de reciclar para 0. O número mínimo de flip-flops é determinado pela contagem de estados.
Cálculo da Contagem de Flip-Flops
Número de estados = 2n onde n = número de flip-flops
- 2 FFs → 4 estados (0-3) — insuficiente
- 3 FFs → 8 estados (0-7) — suficiente
- 4 FFs → 16 estados — exagero
Codificação de Estado Binário
| Contagem | Q₂ Q₁ Q₀ | Decimal |
| 0 | 0 0 0 | 0 |
| 1 | 0 0 1 | 1 |
| 2 | 0 1 0 | 2 |
| 3 | 0 1 1 | 3 |
| 4 | 1 0 0 | 4 |
| 5 (reset) | 0 0 0 | → 0 |
Estados 5 (101), 6 (110), 7 (111) são não usados/don't-care — deve garantir que contador auto-corrige se entrar neles.
Abordagens de Implementação
Síncrono (Recomendado)
- Todos FFs clockados por clock comum
- Lógica próximo estado: D₂ = Q₂'Q₁'Q₀' + Q₂Q₁'Q₀' (simplificado via mapa-K)
- Lógica reset: Detecta estado 5 (101) → clear síncrono
- Vantagens: Sem glitches, timing previsível, STA mais fácil
Assíncrono (Ripple)
- FF0 clocka FF1 clocka FF2
- Reset: NAND(Q₂, Q₀) → clear assíncrono para todos FFs
- Desvantagens: Atraso ripple, risco glitch, condições corrida reset
Alternativa Contador Johnson / Anel
- 3 FF contador Johnson = 6 estados (use 5, detecta estado 5 para reset)
- Auto-decodificação — sem lógica decodificação externa necessária
- Requer inicialização para estado válido
Projeto da Lógica de Reset
Reset síncrono na contagem 5 (101):
Reset = Q₂ · Q₁' · Q₀
Isso asserta quando contador atinge 5, forçando próximo clock a carregar 000.
Checklist de Verificação
- Conta 0→1→2→3→4→0 ✓
- Sem travamento em estados não usados (5,6,7) — adicione lógica auto-correção
- Setup/hold atendidos para todos FFs na frequência clock alvo
- Largura pulso reset ≥ especificação mínima
- Fan-out do sinal reset dentro dos limites
Trecho VHDL (Síncrono)
process(clk, rst) begin
if rst = '1' then count <= "000";
elsif rising_edge(clk) then
if count = "100" then -- 4
count <= "000";
else
count <= count + 1;
end if;
end if;
end process;
Resposta: 3 flip-flops mínimo. 2 FFs fornecem apenas 4 estados; 3 FFs fornecem 8 estados, permitindo 5 usados + 3 não usados com lógica de reset adequada.