Implementación en Baysys 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito.

Peñas Andrea ,Calvache


Daniela, Rodriguez Sergio.

Implementación en FPGA: Basys 3


Calvache Briceño, Daniela Andrea. Peñas Arteaga, Monica Andrea. Rodriguez Rodriguez, Sergio David.
{daniela.calvache, penas.monica,sergio.rodriguez}@mail.escuelaing.edu.co
Escuela Colombiana de Ingeniería Julio Garavito
Bogotá, Colombia

Abstract​— ​In the following document is exposed the cumplir con el objetivo del circuito y finalmente los
procedure done to make up a hexadecimal-seven segment resultados en la FPGA Basys 3.
display circuit in order to show the numbers from one (1)
to zero (0) and then the letters from A to F, as it is in the II. MARCO TEORICO
hexadeciamal basel little square for the numbers from
La Basys 3 es un tipo de dispositivo programable de
(ten) 10 to fifteen (15​). By applying Boole’s algebra
properties the expressions were simplified and then tipo FPGA (​Field Programmable Gate Array​) de
connected into a protoboard assembly. Xilinx. El cual es paralelo a los dispositivos lógico
PLD(​Programmable Logic Device​). Incluye suficientes
interruptores, LED´s y otros componentes de E/S que
Key Words— Compuertas Lógicas, Display, Mapa de permiten un gran número de diseños, sin requerir de
karnaugh, Expresión Booleana, Led, Encendido, componentes adicionales.
Apagado, 7 segmentos.
Los tres elementos básicos de una FPGA son el bloque
Objetivos:
lógico, las interconexiones programables y los bloques
● Implementar diseños combinacionales en la
de entrada/salida(E/S). Cuando los bloques lógicos son
tarjeta de desarrollo Basys 3.
simples, se dice que es de ​granularidad fina,​ y cuandos
● Reforzar conocimientos adquiridos en las
son más grandes y complejos, se denominan
sesiones de clase.
granularidad gruesa.
I. INTRODUCCIÒN
La programación de dichos dispositivos poseen un
paquete de desarrollo de software en una computadora
El diseño en hardware es una herramienta más moderna,
lo que permite implementar, un diseño de circuito con
en comparación con la implementación en protoboard,
la función que el usuario desee.
que permite la implementación de circuitos con
Para realizar una implementación eficiente existen
objetivos específicos mediante la programación en
ciertos pasos, que se denomina ​diagrama de flujo de
software y su descarga en hardware FPGA. El objetivo
diseño, ​los cuales se enumeran a continuación y son
de esta práctica fue implementar un circuito en FPGA
recomendados para obtener un resultado satisfactorio en
en la Basys 3, que permite visualizar 4 números
la FPGA.
distintos en displays 7 segmentos, haciendo uso de
1. Simulación Funcional:
únicamente un DECO Hexa-7 segmentos. Para su
Se realiza una simulación por software, para verificar
programación se hizo uso del software VIVADO.
que la lógica sea correspondiente a lo que se quiere
Este documento se compone de una introducción a los obtener.
dispositivos programables, y el procedimiento 2. Sintesis
recomendado programarlos, la tabla de verdad en la que El diseño se traduce a una lista de componentes (netlist)
se basa el hexa-7 segmentos, el código diseñado para 3. Implementación
Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache
Daniela, Rodriguez Sergio.

Es la fase en que las estructuras lógicas de la ​netlist ​se Planteamiento estratégico de la práctica.
hacen corresponder a la estructura real del dispositivo
específico que se va a programar. Como resultado se
obtiene una salida denominada flujo de bits ​(bitstream).
4. Simulación de temporización
Se realiza después de mapear el diseño sobre el
dispositivo, se realiza para confirmar que no existan
errores.
5. Descarga
Una vez generado el ​bitstream, ​se descarga en el
dispositivo.

II. DESARROLLO DE LA PRÁCTICA


EXPERIMENTAL

A. IMPLEMENTACIÓN.

Materiales
Los materiales utilizados en esta práctica se exponen a
continuación.
● VIVADO 2016.2
● Basys 3
● MULTISIM

B. DISEÑO​.

Se desea implementar un diseño en FPGA Basys 3,


donde se visualicen 4 diferentes números
hexadecimales, en displays 7 segmentos.

Metodología
En primera instancia, se planteó la tabla de verdad
hexadecimal. En la figura 2 se muestran las Figura 1. Diagrama de flujo del diseño del circuito lógico
convenciones de los números hexadecimales en un
display 7 segmentos.
Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache
Daniela, Rodriguez Sergio.

Figura 2. ​Números hexadecimales en un display 7 respectivas ecuaciones, como se muestra a continuación


segmentos​. [Tomado de: para el segmento a.
http://edupython.blogspot.com.co/2015/04/visualizador-de-siete-seg
mentos.html​] TABLA II
SEGMENTO A
La tabla de verdad que modela esta situación se muestra
AB|CD 00 01 11 10
a continuación.
00 1 0 1 1
TABLA I
LÓGICA: 7 SEGMENTOS 01 0 1 1 1

A B C D a b c d e f g 11 1 0 1 1

0 0 0 0 1 1 1 1 1 1 0 10 1 1 0 1

0 0 0 1 0 1 1 0 0 0 0

0 0 1 0 1 1 0 1 1 0 1 Expresión: B(D + AC) + A(C + B D) + B C + AD

0 0 1 1 1 1 1 1 0 0 1 Para la realizar un trabajo más eficiente se le aplicaron


los teoremas del álgebra booleana a los segmentos
0 1 0 0 0 1 1 0 0 1 1 como se muestra a continuación para el ​segmento a​.
Para los demás segmentos se obtuvieron las siguientes
0 1 0 1 1 0 1 1 0 1 1
ecuaciones:
0 1 1 0 1 0 1 1 1 1 1
Segmento b
0 1 1 1 1 1 1 0 0 0 0
B(A + D) + A(C ⊕ D) + AC D
1 0 0 0 1 1 1 1 1 1 1
Segmento c
1 0 0 1 1 1 1 1 0 1 1
A(C + D) + C D + A ⊕ B
1 0 1 0 1 1 1 0 1 1 1
Segmento d
1 0 1 1 0 0 1 1 1 1 0
B(A D + C D) + B (C ⊕ D) + AC D
1 1 0 0 1 0 0 1 1 1 0
Segmento e
1 1 0 1 0 1 1 1 1 0 1
D(B + C ) + A(C + B )
1 1 1 0 1 0 0 1 1 1 1
Segmento f
1 1 1 1 1 0 0 0 1 1 1
D(C + B ) + A(B + C ) + ABC

Segmento g
Una vez obtenida la tabla de verdad de los respectivos
segmentos del modelo se realizaron los mapas de C (B + D) + A(B + D) + ABC
karnaugh correspondientes para determinar las
Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache
Daniela, Rodriguez Sergio.

C. Simulación Funcional:

Se realizó la simulación del circuito implementado en


Multisim como se muestra en la Figura 3 y se corroboró
la lógica utilizada para la implementación del circuito.

Figura 3. Simulación en VIVADO Figura 5. Código programado en “VIVADO” diseño


multiplexor Hex 7 segmentos.

El DECO hexa 7 segmentos se diseñó con las


expresiones obtenidas a partir de la tabla de verdad. Las
entradas, que son los bits que componen a cada número,
(A,B,C y D) se les asignó un vector “En” de entrada que
varía de 0 a 3, y a las salidas (segmentos; a,b,...g) se les
asignó un vector “segment” que se hace variar de 0 a 6.

El código del HEXA 7 se expone a continuación;


Figura 4. Esquemático de la simulación del Hexa 7
segmentos

D.​Implementación

Se realizó la programación de la implementación del


circuito en VIVADO. Se diseñaron; un multiplexor
(MUX) 16 a 4, un decodificador (DECO) HEXA 7
segmentos 4 a 7 y una caja DECO 3 a 8.

Al MUX 16 a 4 se le asignó una salida F que varía de 0


a 3, y cuyas entradas son los números binarios A, B, C,
D

El código del MUX se expone a continuación;


Figura 6. Codigo Hexa 7 segmentos.

Para el DECO 2 a 4 se le asignaron dos entradas (B, B)


controles, y 4 salidas (D; 0,1,2,3) que son
correspondientes a los displays. Los displays de la
Basys 3 son de ánodo común es decir que tienen que ser
controlados en bajo, como según se expone en la Tabla
2.
Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache
Daniela, Rodriguez Sergio.

TABLA III. CONTROL EN BAJO DE LOS


DISPLAYS 7 SEGMENTOS CON DOS BOTONES.

B0 B1 D3 D2 D1 D0

0 0 1 1 1 0

0 1 1 1 0 1

1 0 1 0 1 1

1 1 0 1 1 1

El código del DECO 2 a 4 se expone a continuación;

Figura 8. Basys3 Simulation.

Figura 7. Diseño decodificador 2 a 4.

Posteriormente, se creó una caja principal “Main” en


donde se agregaron los componentes nombrados
anteriormente y se interconectan entre sí.

Por último, se descargó el código a la Basys 3, y se


probó. A continuación se muestran los resultados.
Figura 9. Basys3 Simulation.
Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache
Daniela, Rodriguez Sergio.

Figura 12. Basys3 Simulation.


Figura 10. Basys3 Simulation.

III. ANÁLISIS DE RESULTADO

La implementación de los mapas de Karnaugh y el


álgebra booleana permitió un gran paso al desarrollo de
sistemas electrónicos controlados. A través de las
compuertas lógicas se permite que un circuito sea capaz
de tomar una serie de decisiones automáticas de
respuesta rápida ajustadas a las condiciones iniciales
establecidas por el diseñador. Dichos sistemas tienen
múltiples aplicaciones y uno de los más significativos
está relacionado con el sistema que se implementó en
esta práctica de laboratorio, el cual es un circuito que
permite visualizar en 4 displays 7 segmentos diferentes
el número hexadecimal equivalente de cuatro números
binarios.

Para la realización de este práctica se tuvo como base


metodológica el diagrama de flujo de la Figura 1 , con
el fin de obtener resultados óptimos; este diagrama
Figura 11. Basys3 Simulation. muestra los pasos que se llevaron a cabo para la primera
parte del laboratorio la cual consistió en el diseño del
circuito combinacional que muestre los números en el
Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache
Daniela, Rodriguez Sergio.

sistema hexadecimal. En primera instancia, debe nuevo decodificador corresponden a las entradas de la
entenderse de manera clara el problema con el fin de tabla de verdad se requiere de un sistema que permita
poder establecer las diferentes variables regular o controlar el funcionamiento de cada bit, por lo
adecuadamente. Para esto, debe entenderse que para cual se utiliza un multiplexor. En este caso , se requiere
representar un número hexadecimal en el sistema también la representación de 4 números hexadecimales
binario se requieren de 4 bits por lo cual la entrada debe donde cada número será introducido por un número
consistir de 4 variables (A, B, C y D), donde la variable binario de 4 bits por el usuario, se debe permitir
A es el bit más significativo de los números a únicamente la entrada del valor de 1 bit de los 4
representar. Como funciones de salida se requieren 7 las mencionados anteriormente a cada entrada del
cuales cada una representa un segmento del display son decodificador de 7 segmentos, los 4 multiplexores
seg 0, seg1, seg2, seg 3, seg 4, seg 5 y seg6 implementados permiten dirigir la información a una
respectivamente. única línea que llega al decodificador. Adicionalmente,
se debe tener en cuenta que los bits más significativos
Posterior a ello, se se realizaron los mapas de Karnaugh (a, b, c y d) deben ser conectados a la entrada A la cual
y se determinaron las expresiones más simplificadas de también es el bit más significativo El multiplexor se
cada salida. Para esto, se seleccionaron los ​“1” en reguló mediante las variables ​SO ​y ​S1(selectores),
grupos de 2n ​con el fin de obtener las expresiones en donde dependiendo el valor que se le asigne a estos dos
suma de productos. ​. Al observar las tablas de las bits (00-01-10.11) permite el flujo de información
respectivas expresiones y sus ecuaciones se encuentra correspondiente al bit a1, a2, a3 y a4 respectivamente
que para las mayoría de salidas se requieren entre 8 a 10 (así sucesivamente para cada multiplexor).
compuertas lógicas con excepción de la ​G la cual
requiere solo 3. Este resulta bastante inconveniente Finalmente, por fines prácticas se creó un decodificador
dado que la implementación de una gran cantidad de con las variables B0 y B1. Las salidas y entradas del
compuertas lógicas genera un gran coste si se desea decodificador se etiquetaron por medio de la UCF, ya
elaborar una gran cantidad de circuitos o puede generar que a través de ella se posibilita la comunicación entre
ruidos en el cableado que conlleven a una mala el dispositivo programable y la compilación del circuito
captación de las señales eléctricas y por ende un mal lógico realizado en VIVADO. Las salidas del
funcionamiento del producto. Por esta razón, se decodificador se negaron ya que la BASYS3 funciona
diseñaron los circuitos lógicos en el software en bajo, es decir tiene una lógica inversa.
“VIVADO” para posteriormente implementarlos en
una FPGA la cual es una tarjeta de desarrollo que Finalmente una vez obtenido el decodificador,
permitirá el funcionamiento de todas las funciones multiplexor y el hexa 7 segmentos se realizó un “main”
programadas computacionalmente sin necesidad de para crear una súper caja donde se conectaran
utilizar circuitos integrados. respectivamente por medio de señales, donde habrá dos
entradas y siete salidas respectivamente.
Al implementar los circuitos lógicos, el siguiente paso
consistió en representar cada circuito mediante un
decodificador, es decir mediante una caja donde se IV. CONCLUSIONES
muestra únicamente cada entrada y la salida asociada.
Dichas cajas se pueden observar en la Fig. 11. Con el 1. En el diseño de las ecuaciones de el multiplexor
fin de obtener un decodificador global de todas las y el hexa 7 segmentos se hizo uso de mapas e
funciones, se creó un nuevo decodificador mediante la karnaugh que modelen la tabla de verdad de
función ​Add sources Dado que las entradas de este dichas expresiones, el implemento de mapas
Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache
Daniela, Rodriguez Sergio.

simplifica la determinación de las distintas


expresiones booleanas para el desarrollo del
circuito, en comparación con las técnicas de;
Sum of products​ y ​Product of Sums.
2. El uso de software de simulación permite
desarrollar de manera más exacta el diseño de
circuitos logicos.
3. Para interconectar componentes circuitales tales
como un decodificador y un multiplexor debe
implementarse el uso de salidas y señales a
manera de señales.
4. Las diferentes FPGA funcionan como cátodos
o ánodos , la basys 3 funciona en bajo , lo cual
quiere decir que al momento de realizar la
simulación circuital de cada segmento que se
representara se debe realizar inicialmente una
negación de dichas expresiones.
5. La simulación de los diagramas de tiempo por
medio del software “VIVADO” permite
corroborar que las ecuaciones cumpan la tabla
de verdad en la que se basa su salida.

V. REFERENCIAS BIBLIOGRÁFICAS

[1] DISPLAY DE 7 SEGMENTOS. [EN


LINEA][HTTP://WWW.ELECTRONTOOLS.COM/HOME/WP/201
6/03/09/DISPLAY-7-SEGMENTOS/]

[2] ELECTRONICA APLICADA. P.A. SAN MIGUEL​. ​ED


PARANINFO. 2DA ED.

[3] ELECTRONICA III. RECTIFICACION. F. MIYARA.


UNIVERSIDAD NACIONAL DEL ROSARIO. 2002

[4] SISTEMAS DIGITALES. FLOYD

También podría gustarte