Tecnológico Nacional de México
Instituto Tecnológico de Lázaro Cárdenas
Carrera:
Ingeniería Electrónica
Materia:
Diseño Digital en VHDL
Práctica 2:
Decodificador de BCD a 7 Segmentos
Elaboraron:
Ruben Campos Rojas
Juan Antonio Paniagua Zuñiga
No. Control:
22560275
22560226
GRUPO 52S
Docente:
GALLO SANCHEZ JULIO CESAR
ÍNDICE
Introducción………………………………………………………………….3
Objetivo de la Práctica……………………………………………………..4
Material………………………………………………………………………4
Desarrollo……………………………………………………………………5
Conclusiones……………………………………………………………….9
2
INTRODUCCIÓN
En el mundo del diseño digital, los decodificadores desempeñan un papel
fundamental a la hora de convertir entradas codificadas en salidas que pueden
interpretarse fácilmente mediante varios dispositivos de visualización. Un ejemplo
común es un decodificador BCD (decimal codificado en binario) de 7 segmentos
que convierte números a binario en un circuito de señal que ilumina cada segmento
de una pantalla de 7 segmentos para representar un dígito decimal. Este trabajo se
centra en el diseño e implementación de un decodificador BCD de 7 segmentos
utilizando el lenguaje de descripción de hardware VHDL (VHSIC).
Usando este lenguaje, es posible describir el funcionamiento del decodificador a
nivel lógico y crear circuitos que pueden sintetizarse en dispositivos programables
como FPGA. El código desarrollado convierte la entrada en formato BCD de 4 bits
en señales de control apropiadas para cada segmento de la pantalla (a, b, c, d, e, f,
g). Todo el documento explica el proceso de diseño, los componentes del
decodificador y la lógica implementada para realizar la conversión. Además, los
resultados de la simulación presentados confirman la correcta funcionalidad del
sistema y su capacidad para procesar correctamente números decimales.
3
OBJETIVO DE LA PRÁCTICA
El objetivo de este trabajo es diseñar, implementar y probar un decodificador BCD
de 7 segmentos utilizando el lenguaje de descripción de hardware VHDL. El
decodificador está diseñado para convertir correctamente valores binarios
codificados en BCD de 4 bits en señales que activan los segmentos
correspondientes de una pantalla de 7 segmentos, permitiendo que los dígitos
decimales del 0 al 9 se muestren de forma clara y precisa. Además, tiene como
objetivo verificar el desempeño del diseño simulando y analizando el
comportamiento lógico del sistema.
MATERIAL
• Tabla FPGA Cyclone IV (EP4CE6F17C8N)
• Cable USB A – MicroUSB
• Computadora con Software Quartus II instalado
4
DESARROLLO
Nuevamente como primer paso realizaremos la caja negra, el modelo que nos
permite representar el sistema enfocándose en sus entradas y salidas, sin
considerar el funcionamiento interno.
Posteriormente conoceremos la tabla de verdad para este diseño.
Tabla de verdad
5
A partir de la tabla de verdad, es posible derivar las ecuaciones lógicas para cada
uno de los segmentos del display. Para esto, se utiliza una combinación de
miniterminos y maxiterminos. Los miniterminos son las combinaciones de las
entradas que generan un valor alto (1) en la salida, mientras que los maxiterminos
son aquellas que generan un valor bajo (0).
Miniterminos
Los miniterminos son las expresiones booleanas que describen cuando un
segmento se enciende (es decir, cuando su valor es 1). Para obtener la ecuación
de cada segmento, tomamos las filas de la tabla de verdad donde el valor de salida
es 1. Por ejemplo, para el segmento a, la salida es 1 para los dígitos 0, 2, 3, 5, 6, 7,
8 y 9. Estos corresponden a los miniterminos.
La ecuación del segmento a será la suma de productos de estos miniterminos:
𝑎 = 𝐴̅ ∙ 𝐵( ∙ 𝐶( ∙ 𝐷
( + 𝐴( ∙ 𝐵, ∙ 𝐶 ∙ 𝐷
( + 𝐴̅ ∙ 𝐵, ∙ 𝐶 ∙ 𝐷 + 𝐴̅ ∙ 𝐵 ∙ 𝐶̅ ∙ 𝐷 + 𝐴̅ ∙ 𝐵 ∙ 𝐶 ∙ 𝐷
( + 𝐴 ∙ 𝐵, ∙ 𝐶
∙ 𝐷 + 𝐴 ∙ 𝐵 ∙ 𝐶̅ ∙ 𝐷
(
Maxiterminos
Por otro lado, los maxiterminos representan las combinaciones en las que la salida
es 0.
Una vez que conocemos lo anterior, abrimos el software Quartus II y procedemos a
abrir un nuevo archivo y conectar la tarjeta para comenzar con la elaboración del
programa, en este comenzamos con los comentarios del programa, agregamos la
fecha de realización, nombre del programa y de que tratará, posteriormente,
agregamos la librería IEEE (Institute of Electrical and Electronics Engineers), así
como la entidad que en este caso fue “BCD_a_7seg”.
6
En la sección del código:
define una entidad llamada Decodificador con cuatro entradas (A, B, C, D) y
ocho salidas (sa, sb, sc, sd, se, sf, Kcu, sg). Estas entradas y salidas
probablemente se utilizan para controlar un display de 7 segmentos, donde cada
salida corresponde a un segmento del display
En la siguiente parte del código:
7
la arquitectura RTL para el decodificador define señales intermedias (D0 a D15)
que representan las salidas de un decodificador 4x16. Cada señal se activa
cuando una combinación específica de las entradas (A, B, C, D) es verdadera.
Por ejemplo, D0 se activa cuando todas las entradas
son 0, D1 cuando A, B, C son 0 y D es 1, y así sucesivamente hasta D15, que
se activa cuando todas las entradas son 1.
Y por ultimo en la parte:
arquitectura RTL completa el decodificador 4x16 asignando las señales
intermedias (D0 a D15) a las salidas del display de 7 segmentos (sa a sg). Cada
salida del display se activa mediante una combinación de las señales
intermedias, lo que permite representar diferentes números o caracteres en el
display. Por ejemplo, sa se activa cuando cualquiera de las
señales d0, d2, d3, d5, d6, d7, d8 o d9 es verdadera. Finalmente, Kcu se
establece en '0', probablemente como una señal de control adicional. Este
diseño permite que el decodificador convierta una entrada binaria de 4 bits en
una representación adecuada para un display de 7 segmentos.
8
CONCLUSIONES
Usar VHDL para diseñar un decodificador BCD de 7 segmentos nos permite
profundizar en proyectos digitales utilizando lenguajes de descripción de
hardware. Mediante implementación y simulación, se puede crear un circuito
funcional que convierta correctamente una entrada de formato BCD de 4 bits en
una señal que controle una pantalla de 7 segmentos para mostrar con precisión
números decimales del 0 al 9. Se realizaron simulaciones para verificar el
correcto funcionamiento del sistema, confirmando que cada combinación de
entradas excitaba las partes apropiadas.
Además, los resultados muestran que el decodificador es capaz de manejar
correctamente entradas fuera de la parte decimal (10 a 15), asegurando que
estos segmentos estén cerrados en estos casos. Este proyecto destaca la
utilidad de VHDL en el diseño de sistemas digitales eficientes y reconfigurables,
sentando una base sólida para implementaciones más complejas en dispositivos
como FPGA. En general, la experiencia adquirida en este trabajo es un paso
importante en el aprendizaje de técnicas de diseño digital y sus aplicaciones
prácticas.