Unidad 3 · Decodificador BCD a siete segmentos
lunes 28 de septiembre · 18:00–19:40 · en 37 días
GUÍA 28-09-26 Sistemas Embebidos
LA207 · lunes 28/09/2026 · 18:00-19:40 · Sesión 8
Unidad 3 · Decodificador BCD a siete segmentos
EL PROBLEMA
Convertir un número BCD de cuatro bits en las siete señales que encienden los segmentos de un display. Es el primer diseño completo del curso y el que se implementa físicamente.
ÁNODO COMÚN Y CÁTODO COMÚN
- Cátodo común — el segmento enciende con '1'.
- Ánodo común — el segmento enciende con '0'; la lógica sale invertida.
Es lo primero que hay que verificar en la tarjeta. La mitad de los displays que «no funcionan» en el laboratorio están descritos con la polaridad contraria.
DESCRIPCIÓN
La forma natural es un case sobre el valor BCD, con una constante de siete bits por cada dígito. Se sintetiza como un multiplexor plano y es fácil de leer y de corregir.
- Hay que cubrir los valores del 10 al 15 con un others, aunque no sean BCD válidos. Sin él se infiere un latch.
MULTIPLEXADO DE VARIOS DISPLAYS
Para mostrar varios dígitos con un solo bus de segmentos se enciende un dígito a la vez y se rota rápidamente. Si la rotación supera aproximadamente 60 Hz por dígito, el ojo los ve todos encendidos.
1. Un contador divide el reloj para generar la base de tiempo del barrido.
2. Ese contador selecciona qué dígito se muestra.
3. Un multiplexor elige el valor BCD correspondiente.
4. Otro selecciona el ánodo o cátodo del dígito activo.
DIVISOR DE RELOJ
Nunca se genera un reloj derivado con lógica combinacional para alimentar otros registros. Se usa una señal de habilitación generada por un contador, y todo el diseño conserva un solo reloj. Esa regla —diseño síncrono de reloj único— evita la mayoría de los problemas de tiempo en FPGA.
CONVERSIÓN BINARIO A BCD
Si el dato viene en binario hay que convertirlo. El algoritmo de doble dabble —desplazar y sumar 3 si el nibble excede 4— lo hace sin división y es directamente sintetizable.
AVISO
La próxima sesión, lunes 5 de octubre, es la Evaluación 2. Cubre la unidad 2 y el inicio de la 3.
Nada anotado en esta sesión todavía.