O Que é Código BCD Inválido?
Decimal Codificado Binário (BCD) codifica cada dígito decimal (0–9) em um nibble de 4 bits (0000–1001). Os seis padrões binários 1010 (10) a 1111 (15) são inválidos — não têm significado decimal. Um detector de código BCD inválido sinaliza estes.
Por Que a Detecção Importa
- Erros Aritméticos: Somadores BCD (ex: 74LS83 + lógica correção) produzem lixo se entradas inválidas.
- Corrupção Display: Decodificadores 7 segmentos (74LS47) mostram padrões estranhos para 1010–1111.
- Corrupção Dados: Códigos inválidos propagando por registradores/ULAs corrompem cálculos (financeiros, instrumentação).
- Indicação Falha: Detecta contenção barramento, bit-flips RAM, falhas codificador, erros transmissão.
Lógica de Detecção (Combinacional)
Um nibble de 4 bits D₃D₂D₁D₀ é inválido se seu valor > 9 (1001). Expressão booleana:
Inválido = D₃·D₂ + D₃·D₁ = D₃(D₂ + D₁)
(Já que D₃=1 para 8–15; dentro de 8–15, D₂ ou D₁ =1 indica 10–15).
Opções de Implementação
| Método | Descrição | Prós / Contras |
| Portas Discretas | 1 AND + 1 OR (ou AND-OR-INVERT 2 entradas) | Rápido, barato, 1 encapsulamento (74LS08/32). Bom para nibble único. |
| ROM / LUT | PROM 16×1 ou LUT FPGA | Flexível (pode detectar outros padrões), usa 1 LUT. |
| Comparador | Comparador magnitude 4-bit (74LS85) vs constante 9 | Exagero para nibble único; bom para multi-dígito. |
| Microcódigo / Software | Verifica (val > 9) em firmware | Lento, mas custo hardware zero. |
Uso em Nível Sistema
- Multi-Dígito: Um detector por nibble. Saídas OR juntas → flag sistema "Erro BCD".
- Interrupção/Exceção: Flag dispara interrupção CPU para tratamento erro (log, retry, shutdown seguro).
- Circuitos Auto-Verificáveis: Verificadores dual-rail / código resíduo usam princípios similares.
Exemplo
Entrada: 0001 1010 0011 (pretendia "1 2 3" mas nibble do meio corrompido).
- Nibble 0 (0011) = 3 → Válido.
- Nibble 1 (1010) = 10 → INVÁLIDO (D₃=1, D₁=1). Detector asserta ERRO.
- Nibble 2 (0001) = 1 → Válido.
Em sistemas críticos de segurança (aviónica, médico, ferroviário), verificação validade BCD frequentemente mandatada (DO-254, IEC 61508).