Sei sulla pagina 1di 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

procedure done to make up a hexadecimal-seven segment 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 hexadeciamal basel little square for the numbers from (ten) 10 to fifteen (15). By applying Boole’s algebra properties the expressions were simplified and then

connected into a protoboard assembly.

 

Key Words— Compuertas Lógicas, Display, Mapa de karnaugh, Expresión Booleana, Led, Encendido, Apagado, 7 segmentos.

Objetivos:

Implementar diseños combinacionales en la tarjeta de desarrollo Basys 3.

Reforzar conocimientos adquiridos en las sesiones de clase.

I.

INTRODUCCIÒN

El diseño en hardware es una herramienta más moderna, en comparación con la implementación en protoboard, que permite la implementación de circuitos con objetivos específicos mediante la programación en software y su descarga en hardware FPGA. El objetivo de esta práctica fue implementar un circuito en FPGA en la Basys 3, que permite visualizar 4 números distintos en displays 7 segmentos, haciendo uso de únicamente un DECO Hexa-7 segmentos. Para su programación se hizo uso del software VIVADO.

Este documento se compone de una introducción a los dispositivos programables, y el procedimiento recomendado programarlos, la tabla de verdad en la que se basa el hexa-7 segmentos, el código diseñado para

cumplir con el objetivo del circuito y finalmente los resultados en la FPGA Basys 3.

II. MARCO TEORICO La Basys 3 es un tipo de dispositivo programable de tipo FPGA (Field Programmable Gate Array) de 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 permiten un gran número de diseños, sin requerir de componentes adicionales.

Los tres elementos básicos de una FPGA son el bloque lógico, las interconexiones programables y los bloques de entrada/salida(E/S). Cuando los bloques lógicos son simples, se dice que es de granularidad fina,y cuandos son más grandes y complejos, se denominan granularidad gruesa.

La programación de dichos dispositivos poseen un paquete de desarrollo de software en una computadora lo que permite implementar, un diseño de circuito con la función que el usuario desee. Para realizar una implementación eficiente existen ciertos pasos, que se denomina diagrama de flujo de diseño, los cuales se enumeran a continuación y son

recomendados para obtener un resultado satisfactorio en la FPGA.

1. Simulación Funcional:

Se realiza una simulación por software, para verificar que la lógica sea correspondiente a lo que se quiere obtener.

2. Sintesis

El diseño se traduce a una lista de componentes (netlist)

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 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 convenciones de los números hexadecimales en un display 7 segmentos.

Planteamiento estratégico de la práctica.

Figura 1. Diagrama de flujo del diseño del circuito lógico

7 segmentos. Planteamiento estratégico de la práctica. Figura 1. Diagrama de flujo del diseño del circuito

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

segmentos.

[Tomado

de:

La tabla de verdad que modela esta situación se muestra a continuación.

TABLA I LÓGICA: 7 SEGMENTOS

A

B

C

D

a

b

c

d

e

f

g

0

0

0

0

1

1

1

1

1

1

0

0

0

0

1

0

1

1

0

0

0

0

0

0

1

0

1

1

0

1

1

0

1

0

0

1

1

1

1

1

1

0

0

1

0

1

0

0

0

1

1

0

0

1

1

0

1

0

1

1

0

1

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1

0

1

1

1

1

1

1

0

0

0

0

1

0

0

0

1

1

1

1

1

1

1

1

0

0

1

1

1

1

1

0

1

1

1

0

1

0

1

1

1

0

1

1

1

1

0

1

1

0

0

1

1

1

1

0

1

1

0

0

1

0

0

1

1

1

0

1

1

0

1

0

1

1

1

1

0

1

1

1

1

0

1

0

0

1

1

1

1

1

1

1

1

1

0

0

0

1

1

1

Una vez obtenida la tabla de verdad de los respectivos segmentos del modelo se realizaron los mapas de karnaugh correspondientes para determinar las

respectivas ecuaciones, como se muestra a continuación para el segmento a.

TABLA II

SEGMENTO A

AB|CD

00

01

11

10

00

1

0

1

1

01

0

1

1

1

11

1

0

1

1

10

1

1

0

1

Expresión: B(D + AC) + A(C + BD) + BC + AD

Para la realizar un trabajo más eficiente se le aplicaron los teoremas del álgebra booleana a los segmentos como se muestra a continuación para el segmento a. Para los demás segmentos se obtuvieron las siguientes ecuaciones:

Segmento b

B(A + D) + A(C D) + AC D

Segmento c

A(C + D) + CD

Segmento d

+ A B

B(A D + CD) + B(C D) + AC D

Segmento e

D(B + C) + A(C + B)

Segmento f

D(C + B) + A(B + C) + ABC

Segmento g

C(B + D) + A(B + D) + ABC

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.

la lógica utilizada para la implementación del circuito. Figura 3. Simulación en VIVADO Figura 4. Esquemático

Figura 3. Simulación en VIVADO

Figura 4. Esquemático de la simulación del Hexa 7 segmentos
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;

A, B, C, D El código del MUX se expone a continuación; Figura 5. Código programado

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

g) se les

varía de 0 a 3, y a las salidas (segmentos; a,b,

asignó un vector “segment” que se hace variar de 0 a 6.

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

de 0 a 6. El código del HEXA 7 se expone a continuación; Figura 6. Codigo

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;

1 1 El código del DECO 2 a 4 se expone a continuación; Figura 7. Diseño

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.

3, y se probó. A continuación se muestran los resultados. Figura 8. Basys3 Simulation. Figura 9.

Figura 8. Basys3 Simulation.

3, y se probó. A continuación se muestran los resultados. Figura 8. Basys3 Simulation. Figura 9.

Figura 9. Basys3 Simulation.

Implementación en FPGA- Basys 3- Escuela Colombiana de Ingeniería Julio Garavito. Peñas Andrea ,Calvache Daniela, Rodriguez Sergio.

Garavito. Peñas Andrea ,Calvache Daniela, Rodriguez Sergio. Figura 10. Basys3 Simulation. Figura 11. Basys3 Simulation.

Figura 10. Basys3 Simulation.

Daniela, Rodriguez Sergio. Figura 10. Basys3 Simulation. Figura 11. Basys3 Simulation. Figura 12. Basys3 Simulation.

Figura 11. Basys3 Simulation.

Figura 10. Basys3 Simulation. Figura 11. Basys3 Simulation. Figura 12. Basys3 Simulation. III. ANÁLISIS DE RESULTADO

Figura 12. 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 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 entenderse de manera clara el problema con el fin de poder establecer las diferentes variables adecuadamente. Para esto, debe entenderse que para representar un número hexadecimal en el sistema binario se requieren de 4 bits por lo cual la entrada debe consistir de 4 variables (A, B, C y D), donde la variable A es el bit más significativo de los números a representar. Como funciones de salida se requieren 7 las cuales cada una representa un segmento del display son seg 0, seg1, seg2, seg 3, seg 4, seg 5 y seg6 respectivamente.

Posterior a ello, se se realizaron los mapas de Karnaugh y se determinaron las expresiones más simplificadas de cada salida. Para esto, se seleccionaron los “1” en grupos de 2n con el fin de obtener las expresiones en suma de productos. . Al observar las tablas de las respectivas expresiones y sus ecuaciones se encuentra que para las mayoría de salidas se requieren entre 8 a 10 compuertas lógicas con excepción de la G la cual requiere solo 3. Este resulta bastante inconveniente dado que la implementación de una gran cantidad de compuertas lógicas genera un gran coste si se desea elaborar una gran cantidad de circuitos o puede generar ruidos en el cableado que conlleven a una mala captación de las señales eléctricas y por ende un mal funcionamiento del producto. Por esta razón, se diseñaron los circuitos lógicos en el software “VIVADO” para posteriormente implementarlos en una FPGA la cual es una tarjeta de desarrollo que permitirá el funcionamiento de todas las funciones programadas computacionalmente sin necesidad de utilizar circuitos integrados.

Al implementar los circuitos lógicos, el siguiente paso consistió en representar cada circuito mediante un decodificador, es decir mediante una caja donde se muestra únicamente cada entrada y la salida asociada. Dichas cajas se pueden observar en la Fig. 11. Con el fin de obtener un decodificador global de todas las funciones, se creó un nuevo decodificador mediante la función Add sources Dado que las entradas de este

nuevo decodificador corresponden a las entradas de la tabla de verdad se requiere de un sistema que permita regular o controlar el funcionamiento de cada bit, por lo cual se utiliza un multiplexor. En este caso , se requiere también la representación de 4 números hexadecimales donde cada número será introducido por un número binario de 4 bits por el usuario, se debe permitir únicamente la entrada del valor de 1 bit de los 4 mencionados anteriormente a cada entrada del decodificador de 7 segmentos, los 4 multiplexores implementados permiten dirigir la información a una única línea que llega al decodificador. Adicionalmente, se debe tener en cuenta que los bits más significativos (a, b, c y d) deben ser conectados a la entrada A la cual también es el bit más significativo El multiplexor se reguló mediante las variables SO y S1(selectores), donde dependiendo el valor que se le asigne a estos dos bits (00-01-10.11) permite el flujo de información correspondiente al bit a1, a2, a3 y a4 respectivamente (así sucesivamente para cada multiplexor).

Finalmente, por fines prácticas se creó un decodificador con las variables B0 y B1. Las salidas y entradas del decodificador se etiquetaron por medio de la UCF, ya que a través de ella se posibilita la comunicación entre el dispositivo programable y la compilación del circuito lógico realizado en VIVADO. Las salidas del decodificador se negaron ya que la BASYS3 funciona en bajo, es decir tiene una lógica inversa.

Finalmente una vez obtenido el decodificador, multiplexor y el hexa 7 segmentos se realizó un “main” para crear una súper caja donde se conectaran respectivamente por medio de señales, donde habrá dos entradas y siete salidas respectivamente.

IV. CONCLUSIONES

1. En el diseño de las ecuaciones de el multiplexor y el hexa 7 segmentos se hizo uso de mapas e karnaugh que modelen la tabla de verdad de 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 productsy 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.

PARANINFO. 2DA ED.

P.A.

SAN

[3] ELECTRONICA

III.

RECTIFICACION.

MIGUEL.

ED

F.

MIYARA.

UNIVERSIDAD NACIONAL DEL ROSARIO. 2002

[4]

SISTEMAS DIGITALES. FLOYD