Está en la página 1de 6

Escuela colombiana de ingeniería. Cañón, Forero. Diseño de circuitos.

Practica 4: decodificador BCD a display 7


segmentos.
Cañón, Cristian., Forero, Mateo.
{Cristian. Canon, mateo.forero}@mail.escuelaing.edu.co
ESCUELA COLOMBIANA DE INGENIERIA


Resumen—para esta práctica se buscó diseñar un circuito
que fuera capaz de generar una o más salidas que fueran
concordes con los procesos que se esperaban en tres sistemas
distintos a partir de tres entradas relacionadas, se calcularan las
funciones de cada salida se resumirán al máximo estas
funciones y se buscara implementarlas con el menor coste
posible

I.OBJETIVOS
A. Objetivo general
Implementar un circuito en una Nexys 4 que permita
visualizar en un display 7 segmentos en sistema numérico
hexadecimal.
B. Objetivos específicos B. Programación VDHL:
i. Expresar las señales de salida a partir de los procesos Lenguaje que describe circuitos electrónicos digitales que
que se desean desarrollar. utiliza distintos niveles de abstracción. (very high speed
ii. Encontrar las funciones lógicas a desarrollar a partir de integrate circuits) facilita y agiliza el diseño de circuitos
la salida deseada. lógicos. Es un formato implementado por la IEE, permite
iii. Reducir e implementar las funciones lógicas con el simular para verificar que el circuito cumple con las
menor coste posible. especificaciones requeridas y sintetizarlo que funcione como
el diseñado.
II.INTRODUCCIÓN i. Elementos básicos VDHL:
 Liberarías y paquetes: entidad
En este documento se explicará el proceso que abstracción del circuito. Es análogo
llevo de unos requerimientos a un circuito capaz de a un símbolo esquemático.
desarrollar estos requerimientos a través de
funciones lógicas que relacionen las señales de
entrada, y generen unas señales de salida que al llegar
a uno o más sistemas generan los procesos
necesitados y establecidos en los requerimientos.

III.MARCO TEÓRICO
A. Nexys 4 DDR:  Entidad: Es la representación de un
plataforma de desarrollo de circuitos digitales basada en la circuito en donde se enumeran las
última matriz de puertas programables de campo ARTIX-7 entras y salidas, describe las
(FPGA) de Xilinx. Se usa para Realizar (probar) diferentes conexiones del dispositivo hacia el
circuitos sin la necesidad de utilizar componentes electrónicos. resto del diseño.
Escuela colombiana de ingeniería. Cañón, Forero. Diseño de circuitos. 2

 Arquitectura: Representación
completa de la descripción del
diseño. IV.DESARROLLO DE LA PRACTICA
En esta practica se busca desarrollar un sistema capaz
de tomar diferentes señales de entrada y a partir de
estas muestre en los displays el comportamiento
deseado esto se implementa en la FPGA NEXYS 4
por VHDL.

Reglas para Nombrar:


 Se puede nombrar con letras, números y guiones. El comportamiento buscado consiste que permita
 El primer carácter debe ser una letra. visualizar en displays 7 segmentos diferentes el
 El ultimo carácter no debe ser un guion bajo. número hexadecimal equivalente de cuatro números
 No debe haber dos guiones de seguidos.
 No es sensible a las minúsculas y mayúsculas binarios (cada número cuenta con 4 bits) y mediante
Tipos de datos: pulsadores seleccionar cuál de los cuatro números
Std_logic Tipo predefinido en el ingresados por medio de los interruptores será
estándar IEE 11.64 mostrado en los displays para lo cual se necesitaran
Bit Solo maneja el sistema varios sistemas que cumplirán diferentes funciones.
numérico binario (0 o 1)
para asignarlo debe
encontrarse entre dos comas A. Planteamiento de la idea
Std_logic_vector representa un vector de
elementos std_logic. El primer requerimiento es plantear y seleccionar
cuales serán mis señales de entrada y salida del
Operadores: sistema principal: estas serán vectores de tipo
Símbolo Operación
+, -, *, /, mod Aritméticas
STD_LOGIC_VECTOR un primer vector es el que
& Concatenar contiene las señales de los números, generadas por
not, and, or, nand, nor, xor, Lógicas los interruptores es decir un vector de 16 posiciones
xnor que llamaremos N, para los pulsadores se necesitara
:= Asignaciones a constantes otro de 2 lugares que llamaremos S, estas son las
<= Asignación a señales entradas ahora las salidas son dos la primera y que
=> Mapeo
llamaremos F, es un vector de 7 lugares y que es el
encargado de mostrarme en el display la
C. Decodificadores: combinación esperada según las entradas, además se
tiene un vector que se encarga de mostrar encendido
D. Codificadores: solo el display que corresponda a los pulsadores (S)
lo llamamos P, este es un vector de 8 posiciones (uno
E. Algebra de Shannon: por cada Display).
F. Multiplexores:
1) Subsistema de selección
Para este proceso se necesitará un primer subsistema
el cual será el encargado de tomar todas las señales y
según sean las señales de los pulsadores me generará
una nueva señal que consiste en solo las 4 señales del
numero que se implementa en los interruptores y se
escoge mediante los pulsadores, el subsistema
Escuela colombiana de ingeniería. Cañón, Forero. Diseño de circuitos. 3

escogido para esta función consiste en cuatro


multiplexores conectados de tal forma que por los Esta es la función de mapeo que me conecta a los
selectores cada uno de los multiplexores me indique multiplexores de tal forma que entreguen una nueva
cada una de las señales del numero escogido, es decir señal que plasme el numero a representar.
un multiplexor conectado a cada uno de los primeros
dígitos de todos los números, otro al segundo, otro al
tercero y otro al cuarto esto me da que el sistema
tiene que tomar las dos entradas del sistema principal
(N, S) y me entregara una nueva señal que es un
vector de 4 posiciones que representaran el numero
que se desea mostrar en el display.

El multiplexor individual toma 4 señales (los 4


primeros, o los 4 segundos o…), también la señas de
los pulsadores y me entrega una señal la cual es una
de las señales tomadas, la función del multiplexor
será:
F <= (NOT(S(1))AND NOT(S(0))AND
N(0))OR(NOT(S(1))AND (S(0))AND
N(1))OR((S(1))AND NOT(S(0))AND
N(2))OR((S(1))AND (S(0))AND N(3));

Donde F es la salida, S los pulsadores y N los 4


primeros, o los 4 segundos o….

El subsistema de selección toma 4 de estos para


obtener las cuatro señales del numero a representar, 2) Subsistema de conversión
la función del selector es: Con la señal obtenida en el subsistema de selector, se
procede a procesarla para generar la señal de 7 bits
M1: MUX PORT MAP(S=> S, N(3)=> N(15), que es aplicada al display para mostrar la señal
N(2)=> N(11), N(1)=> N(7), N(0)=> N(3), F=> deseada, para esto se requieren las funciones de cada
F(3)); uno de los segmentos (7), esto se consigue mediante
mapas de Karnaugh, para lo que planteamos la tabla
M2: MUX PORT MAP(S=> S, N(3)=> N(14), de verdad, con las señales de entrada y las señales de
N(2)=> N(10), N(1)=> N(6), N(0)=> N(2), F=> salida de cada entrada, recordar que se realiza en
F(2)); sistema hexadecimal y el display funciona en
configuración de ánodo común (activo en bajo) que
M3: MUX PORT MAP(S=> S, N(3)=> N(13), nos da:
N(2)=> N(9), N(1)=> N(5), N(0)=> N(1), F=> F(1));
N3 N2 N1 N0 F6 F5 F4 F3 F2 F1 F0
M4: MUX PORT MAP(S=> S, N(3)=> N(12),
N(2)=> N(8), N(1)=> N(4), N(0)=> N(0), F=> F(0)); 0 0 0 0 0 0 0 0 0 0 1
Escuela colombiana de ingeniería. Cañón, Forero. Diseño de circuitos. 4

0 0 0 1 1 0 0 1 1 1 1
0 0 1 0 0 0 1 0 0 1 0 Segmento E
0 0 1 1 0 0 0 0 1 1 0 N3,N2N1,N0 00 01 11 10
0 1 0 0 1 0 0 1 1 0 0 00 0 1 1 0
0 1 0 1 0 1 0 0 1 0 0 01 1 1 1 0
0 1 1 0 0 1 0 0 0 0 0 11 0 0 0 0
0 1 1 1 0 0 0 1 1 1 1 10 0 1 0 0
1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 1 0 0
1 0 1 0 0 0 0 1 0 0 0 Segmento F
1 0 1 1 1 1 0 0 0 0 0 N3,N2N1,N0 00 01 11 10
1 1 0 0 1 1 1 0 0 1 0 00 0 1 1 1
1 1 0 1 1 0 0 0 0 1 0 01 0 0 1 0
1 1 1 0 0 1 1 0 0 0 0 11 1 1 0 0
1 1 1 1 0 1 1 1 0 0 0 10 0 0 0 0
A partir de la tabla conseguida anteriormente se
procede a desarrollar un mapa de Karnaugh por cada
señal de salida con el fin de obtener las funciones que Segmento G
deben ser desarrolladas. N3,N2N1,N0 00 01 11 10
00 1 1 0 0
Segmento A 01 0 0 1 0
N3,N2N1,N0 00 01 11 10 11 0 0 0 0
00 0 1 0 0 10 0 0 0 0
01 1 0 0 0
11 1 1 0 0 A partir de estos mapas de Karnaugh se obtienen las
10 0 0 1 0 siguientes funciones:

Segmento B F(6) <= (not(N(3))and not(N(2))and not(N(1))and


N3,N2N1,N0 00 01 11 10 N(0))or(N(3)and not(N(2))and N(1)and
00 0 0 0 0 (N(0)))or(N(2)and not(N(1))and
01 0 1 0 1 not(N(0)))or(N(3)and N(2)and not(N(1)));
11 1 0 1 1
10 0 0 1 0 F(5) <= (not(N(3))and N(2)and not(N(1))and
N(0))or(N(3)and N(2)and not(N(0)))or(N(3)and
Segmento C N(1)and N(0))or(N(2)and(N(1))and not(N(0)));
N3,N2N1,N0 00 01 11 10
F(4) <= (not(N(3))and not(N(2))and N(1)and
00 0 0 0 1
not(N(0)))or(N(3)and N(2)and not(N(1))and
01 0 0 0 0
not(N(0)))or(N(3)and N(2)and N(1));
11 1 0 1 1
10 0 0 0 0 F(3) <= (not(N(3))and N(2)and not(N(1))and
not(N(0)))or(not(N(3))and not(N(2))and
Segmento D not(N(1))and(N(0)))or(N(2)and N(1)and
N3,N2N1,N0 00 01 11 10 N(0))or(N(3)and not(N(2))and N(1)and not(N(0)));
00 0 1 0 0
01 1 0 1 0 F(2) <= (not(N(2))and not(N(1))and
11 0 0 1 0 N(0))or(not(N(3))and N(2)and
10 0 0 0 1 not(N(1)))or(not(N(3))and(N(0)));
Escuela colombiana de ingeniería. Cañón, Forero. Diseño de circuitos. 5

F(1) <= (N(3)and N(2) and


not(N(1)))or(not(N(3))and not(N(2))and
N(0))or(not(N(3))and not(N(2))and
N(1))or(not(N(3))and N(1)and N(0));

F(0) <= (not(N(3))and not(N(2))and


not(N(1)))or(not(N(3))and N(2)and N(1)and N(0));

Estas son implementadas en el subsistema de


conversión y así se genera la señal que me mostrara
en el display el numero seleccionado.

V.IMPLEMENTACIÓN
con todos los subsistemas listos solo falta conectarlos
en el sistema principal.

E1: SELECTOR PORT MAP(N=> N, S=> S, F=>


A);

D1: DECO PORT MAP(F=> F,N=> A);

P1: DISPLAY_POWER PORT MAP(S=> S, F=>


3) Subsistema de poder P);

Con lo obtenido hasta ahora se podría implementar el


sistema, sin embargo, se presentaría el numero en todos
los displays, para solucionar este problema es necesario
diseñar otro subsistema que tome la señal de los
pulsadores y me genere 4 bits uno por cada display en uso
(4 siempre están apagados) y según el selector envíe un 0
al display que funcionara y un 1 a los demás (activo en
bajo), este es el comportamiento de un decodificador 2 a El siguiente paso es simular por medio de un forced
4 activo en bajo, la función será: clock todas las posibles combinaciones y verificar
que el sistema funciona como se desea
F(7 DOWNTO 4) <= ('1','1','1','1');
F(3) <= NOT(S(1)AND S(0));
F(2) <= NOT(S(1)AND NOT(S(0)));
F(1) <= NOT(NOT(S(1))AND S(0));
F(0) <= NOT(NOT(S(1))AND NOT(S(0)));
Escuela colombiana de ingeniería. Cañón, Forero. Diseño de circuitos. 6

Esta simulación es bastante larga de forma que solo


se verifica el comportamiento relevante que son los
números que se seleccionan por los selectores (4
rondas 16 números)

Con el sistema ya implementado y simulado se


genera el archivo XDC que nos relacionara entradas
y salidas con los correspondientes pines en la FPGA
NEXYS 4

Con la asignación terminada se procede


A implementar en la NEXYS 4 y ver que funciona
como se espera

VI.CONCLUSIONES

VII.BIBLIOGRAFÍA
[1]https://reference.digilentinc.com/reference/programmable-
logic/nexys-4-ddr/start

También podría gustarte