Informe Nª5– Sistemas digitales
ARQUITECTURA FLUJO DE DATOS
EN VHDL
Matheo Nicolas Chinchin Cilio;
Ingeniería Eléctrica y Electrónica, Laboratorio Sistemas Digitales, GR1-2
Escuela Politécnica Nacional
Quito, Ecuador
[Link]@[Link]
Un decodificador o descodificador es un circuito combinacional
Resumen. - El presente documento, corresponde a la práctica cuya función es inversamente proporcional a la del codificador, es
número 9 del Laboratorio de Sistemas digitales en el cual se decir, convierte un código de entrada binario, ya sea natural, BCD,
presentará diferentes tipos de formas en las que se puede
utilizar la arquitectura en un código de vhdl, utilizando Quartus etc., con N bits de entrada y M líneas de salida, donde N puede ser
prime lite. cualquier número entero. y M es un número entero que es menor o
igual a 2𝑁, de modo que cada línea de salida estará habilitada solo
Keywords: Quartus prime lite, VHDL. para una de las posibles combinaciones de entrada.
El tipo de conexión de estos LED determina si la pantalla de 7
I. OBJETIVOS segmentos es de ánodo común o de cátodo común. La Figura 1
muestra dos tipos de pantallas de 7 segmentos y su representación
LED.
1.1 Familiarizar al estudiante con la sintaxis y
funcionamiento de las sentencias concurrentes para
el control de flujo de datos en VHDL.
1.2 Codificar e implementar programas utilizando
sentencias concurrentes de control de flujo para la
resolución de circuitos combinacionales básicos
escritos en VHDL.
1.3 Relacionar conceptos de sistemas digitales con el
funcionamiento de dispositivos lógicos
programables.
II. INTRODUCCIÓN Figure 1Tipos de display 7 segmentos
VHDL es un lenguaje de descripción de circuitos A continuación, se muestra la tabla de verdad para iluminar
electrónicos digitales que utiliza diferentes niveles de cada segmento según el código BCD.
abstracción. VHDL no es un lenguaje de programación
porque conocer su sintaxis no significa necesariamente
saber diseñar con él.
Una de las formas de pre diseñar un circuito en VHDL es
utilizando el estilo de flujo de datos. Este estilo busca
describir las coincidencias de un diagrama lógico, es
decir, elementos que se encuentran en paralelo; que estará
representado por la descripción de la puerta de enlace, y
el procedimiento especificado se puede realizar usando
declaraciones "While" o usando una descripción lógica.
III. DESARROLLO
1. Realizar un programa que permita convertir de
BCD (1 digito) a 7 segmentos (ánodo común) Figure 2 tabla de verdad para cada uno de los segmentos
utilizando ecuaciones booleanas. Presentar la
tabla de verdad del circuito a implementarse, así Donde se puede observar en la tabla que cero representa a un
como los mapas K empleados para encontrar bajo lógico, 1 representa a un alto lógico y X no importa si es
cada uno de los segmentos. Presentar el código alto o bajo lógico. Ahora bien, ya teniendo la tabla de verdad
implementado y la simulación del correcto a continuación se expondrá las tablas de verdad para cada
funcionamiento utilizando el University Program segmento del display con los respectivos min-términos y
VWF. max-terminos.
Segmento a
Segmento e
Segmento b
Segmento f
Segmento c
Segmento g
Segmento d
Teniendo las tablas de verdad, se construyen las funciones
booleanas para cada segmento:
SEG a
SEG b
SEG c
SEG d
SEG e
SEG f
SEG g
Para cada segmento, el mapa de Karnaugh
correspondiente se muestra a continuación, teniendo en
cuenta las tablas de verdad de cada segmento creadas
anteriormente.
Segmento a
Figure 6 Mapa K del segmento d
Función obtenida:
Segmento e
Figure 3 Mapa K del segmento a
Función obtenida:
Segmento b
Figure 7 Mapa K del segmento e
Función obtenida:
Segmento f
Figure 4 Mapa K del segmento b
Función obtenida:
Segmento c
Figure 8 Mapa K del segmento f
Función obtenida:
Segmento g
Figure 5 Mapa K del segmento c
Función obtenida:
Figure 9 Mapa K del segmento g
Segmento d
Función obtenida:
A continuación, se presenta el código implementado en
Quartus prime lite:
2. Comparar el uso de ecuaciones booleanas con el
uso de sentencias concurrentes para la solución
de circuitos combinacionales. ¿En qué casos se
recomendaría el uso de las ecuaciones y en qué
caso el uso de sentencias?
El uso de declaraciones paralelas le permite aumentar el
número cuando hay más de 5 variables de entrada del
circuito, que es muy difícil resolver con ecuaciones
booleanos que con álgebra booleana o K-mapas, entonces
usar declaraciones de concurrencia es recomendado.
En el momento de la presencia de un pequeño número de
variables, existe una simple simplificación que reduce la
expresión booleana que es más recomendable utilizar
ecuaciones lógicas cuando el circuito lógico es bastante
complejo y cuanto más, mejor. Utilice declaraciones
paralelas.
3. Consultar acerca del proceso de barrido de
display y cómo implementarlo en VHDL.
IV. CONSLUSIONES
V. RECOMENDACIONES
VI. REFERENCIAS
Informe No1– Sistemas digitales