unidad aritmetico logica con vhdl

10
LABORATORIO DE ELECTRONICA INTEGRADA INGENIERIA ELECTRONICA REGISTRO CALIFICADO SNIES 4950 LABORATORIO DE ELECTRONICA INTEGRADA IMPLEMENTACION DE UNA ALU DE 8 BITS Aldo Vergara Romero e-mail: [email protected] Rooldy Machado Ferrer e-mail: [email protected] Luis Moreno Rosario e-mail: [email protected] Claudia Almanza Jiménez e-mail: [email protected] RESUMEN: En el siguiente artículo se pretende explicar el modo de funcionamiento de una ALU de 8 bits implementada en la FPGA, y su utilización para visualizar diferentes operaciones logicas. En este caso, la idea principal es la creación de un programa bajo lenguaje VHDL en ISE Design, que permita mediante el manejo de Dipswitchs y pulsadores, visualizar en el/los display/s de 7 segmentos, y los leds asociados, los resultados de las operaciones lógicas establecidas en el programa. Copyright © 2014 UPB ABSTRACT: The following article aims to explain the mode of operation of an 8-bit ALU implemented in the FPGA, and its use to visualize different logical operations. In this case, the main idea is to create a low ISE VHDL Design program that allows management through dipswitches and buttons, display the / the display / s 7-segment LEDs and partners, the results of 1

Upload: aldo-vergara-r

Post on 10-Feb-2016

34 views

Category:

Documents


0 download

DESCRIPTION

ALU con VHDL, FPGA, PSoC.

TRANSCRIPT

Page 1: UNIDAD ARITMETICO LOGICA con VHDL

LABORATORIO DE ELECTRONICA INTEGRADA

INGENIERIA ELECTRONICA

REGISTRO CALIFICADO SNIES 4950

LABORATORIO DE ELECTRONICA INTEGRADA

IMPLEMENTACION DE UNA ALU DE 8 BITS

Aldo Vergara Romeroe-mail: [email protected]

Rooldy Machado Ferrere-mail: [email protected]

Luis Moreno Rosarioe-mail: [email protected]

Claudia Almanza Jiméneze-mail: [email protected]

RESUMEN: En el siguiente artículo se pretende explicar el modo de funcionamiento de una ALU de 8 bits implementada en la FPGA, y su utilización para visualizar diferentes operaciones logicas. En este caso, la idea principal es la creación de un programa bajo lenguaje VHDL en ISE Design, que permita mediante el manejo de Dipswitchs y pulsadores, visualizar en el/los display/s de 7 segmentos, y los leds asociados, los resultados de las operaciones lógicas establecidas en el programa. Copyright © 2014 UPB

ABSTRACT: The following article aims to explain the mode of operation of an 8-bit ALU implemented in the FPGA, and its use to visualize different logical operations. In this case, the main idea is to create a low ISE VHDL Design program that allows management through dipswitches and buttons, display the / the display / s 7-segment LEDs and partners, the results of logical operations

defined in the program.Copyright © 2014 UPB

KEYWORDS: Display, Hexadecimal, FPGA, VHDL.

OBJETIVOS:

GENERAL: Crear un programa en VHDL que

sea capaz de desarrollar operaciones lógicas especificas.

ESPECIFICOS: Simular el respectivo programa y

visualizarlo en el ISim simulator, forzando constantes binarias, y verificando efectivamente que se haga la operación establecida.

Seleccionar adecuadamente los pines y puertos de la fpga de manera tal que las entradas del dipswitch, tengan conexión directa a la lógica TTL que

1

Page 2: UNIDAD ARITMETICO LOGICA con VHDL

LABORATORIO DE ELECTRONICA INTEGRADA

INGENIERIA ELECTRONICA

REGISTRO CALIFICADO SNIES 4950

comunica a los switchs y displays.

Comprender las nuevas ventanas de visualización creadas en este programa mas complejo, tales como; .ucf y .bit.

Cargar el archivo .bit a la FPGA, mediante el software incorporado al ISE, conocido como ADEPT, y familiarizarse con este.

1. INTRODUCCIÓN

Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada 'in situ' mediante un lenguaje de descripción especializado. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un chip.

2. TEORÍA RELACIONADA

En la FPGA no se realiza programación tal cual como se realiza en otros dispositivos como DSP, CPLD o

microcontroladores. La FPGA tiene celdas que se configuran con una función específica ya sea como memoria (FLIP-FLOP tipo D), como multiplexor o con una función lógica tipo AND, OR, XOR. La labor del "programador" es describir el hardware que tendrá la FPGA. Por consiguiente, la tarea del "programador" es definir la función lógica que realizará cada uno de los CLB, seleccionar el modo de trabajo de cada IOB e interconectarlos.

El diseñador cuenta con la ayuda de entornos de desarrollo especializados en el diseño de sistemas a implementarse en un FPGA. Un diseño puede ser capturado ya sea como esquemático, o haciendo uso de un lenguaje de programación especial. Estos lenguajes de programación especiales son conocidos como HDL o Hardware Description Language (lenguajes de descripción de hardware). Los HDLs más utilizados son:

• VHDL• Verilog1

Para este programa se dispone del uso de los pulsadores y dipswitchs integrados en la FPGA basys2, mediante la selección de las operaciones establecidas y según el requerimento, se visualizará en un patrón de leds y visualización de

1 Clive Max Maxfield, FPGA Instant Access.

2

Page 3: UNIDAD ARITMETICO LOGICA con VHDL

LABORATORIO DE ELECTRONICA INTEGRADA

INGENIERIA ELECTRONICA

REGISTRO CALIFICADO SNIES 4950

patrones integrados también en el display de 7 segmentos, del cual la fpga cuenta con 4.

Una cosa a tener en cuenta es que tanto el switch, los botones y los leds del FPGA están en lógica negativa, normalmente, el 1 simboliza encendido y el 0 apagado, con esta lógica el 1 es apagado y el 0 encendido. Una vez se codifique el número que se quiere mostrar, mediante VHDL se leerán esos 4 bits para después, codificar la salida de 8 bits para que el display muestre el número correspondiente (o letra, si el valor numérico supera el 9 decimal, es decir; 10, 11, 12, 13, 14, 15).2

Antes de empezar, se intentará comprender un poco mejor como funciona un display de 7 segmentos, este dispositivo es una forma de representar números está compuesto de siete segmentos que se pueden encender o apagar, de tal manera que encendiendo determinados segmentos, se representará un número u otro.Hay dos tipos de display, los de ánodo común y los de cátodo común, todos los leds están conectados a un terminal común, la diferencia entre ambos, radica en que en el ánodo común estos leds están conectados a potencial positivo (1) y en los de cátodo común están conectados a potencial negativo (0). Esto implica que cuando se elabora

2 Tomado de Fundamentos de sistemas digitales.

el circuito, si por ejemplo, es de ánodo común sólo uno de los terminales (el terminal con nombre común) deberá ir al polo positivo ya que en realidad se trata del mismo terminal, aunque tenga dos conexiones distintas.

Como se puede apreciar en la figura 1, un display tiene 8 entradas, 7 para los segmentos que representarán los números y la octava que representa un punto. Por tanto, por un lado se tiene 4 bits del switch para representar de forma binaria 16 números (de 0 a F) y por el otro se tiene 8 bits de salida para iluminar los leds que se necesitan en cada caso, así por ejemplo, si los 4 bits del switch son 1011 (4 en lógica negativa) para la salida, tomando como ejemplo la imagen superior y cogiendo como bit más significativo el led 8, será 10110100 (en lógica negativa). Con esta salida, se iluminarán los leds 7, 4, 2 y 1, el punto del display se utilizará para distinguir entre las letras y los números, por ejemplo, para diferenciar el 8 de la B.

3

Page 4: UNIDAD ARITMETICO LOGICA con VHDL

LABORATORIO DE ELECTRONICA INTEGRADA

INGENIERIA ELECTRONICA

REGISTRO CALIFICADO SNIES 4950

3. PROGRAMA

A continuación, se procedió a la elaboración del programa, mediante VHDL, luego de realizar los pasos establecidos en la guía de trabajo.Para este programa en especifico, se diseño una unidad aritmético lógica, capaz de realizar operaciones básicas como suma, resta, multiplicación, y negación.

Fue sencillo a la hora de implementar puesto que solo fue necesario definir las entradas, salidas, y respectivas selectoras, al numero de bits necesario.

Lo demas, simplemente un sencillo codigo en C.

Fig1. Programa implementado.

4. SIMULACION

Luego de estar listo el programa, se procede a realizar la respectiva compilación VHDL del mismo.Primero se realiza un chequeo del código escrito, y si el chequeo es pasado con éxito, lo mismo sucederá a la hora de compilar. La simulación muestra que el resultado fue el esperado puesto que, la compilación fue exitosa.

El programa funciona de manera adecuada, asi que se procede a la parte de la simulacion, en la cual, se forza una constante en binario, y se verifica la salida y efectivamente se comprueba que el programa está haciendo la funcion para la cual habia sido diseñado. En este caso, la pantalla de simulacion se obvia puesto que es un programa mucho mas complejo, y al cumplir la funcion requerida, se decidió su implementacion en la FPGA para probarlo no virtualmente, sino de forma real.

Para esto, fue necesario hacer la escritura de archivo .ucf en el cual se definen los puertos, entradas, salidas, y componentes en la FPGA que serán usados para comprobar que realmente la Alu esta haciendo la funcion para la cual fue creada.

4

Page 5: UNIDAD ARITMETICO LOGICA con VHDL

LABORATORIO DE ELECTRONICA INTEGRADA

INGENIERIA ELECTRONICA

REGISTRO CALIFICADO SNIES 4950

Fig2. Configuracion de los displays, y dipswitchs en la FPGA.

Basandose en este esquema, solo queda definir los puertos y pines, en el mismo programa, en la parte de .ucf. de la siguiente manera.

Fig3. Selección de pines y puertos.

Finalmente, en el PlanAhead, se procede a seleccionar en el diagrama esquematico virtual de la FPGA, las diferentes conexiones necesarias para verificar el funcionamiento del programa.

Fig4. PlanAhead.

Ahora el objetivo es enviar el archivo a la FPGA, para esto se debe usar el software Adept 2.6.1 System de Digilent. Para ello, se debe conectar la

5

Page 6: UNIDAD ARITMETICO LOGICA con VHDL

LABORATORIO DE ELECTRONICA INTEGRADA

INGENIERIA ELECTRONICA

REGISTRO CALIFICADO SNIES 4950

tarjeta Basys2 a un puerto USB disponible de una computadora, Windows reconocerá que se ha conectado un nuevo dispositivo y procederá a asociarlo con el controlador, se abre el software y se comprueba que la tarjeta está bien conectada.

Se hace clic en el botón Browse a la derecha de donde aparece el dispositivo FPGA, se abre un diálogo de Windows en el que se debe indicar el archivo de configuración con extensión .bit que se generó antes en Project Navigator.

Por último se hace clic en el botón Program a la derecha del botón Browse y esto inicia el proceso de carga del archivo de configuración a la FPGA. Durante la programación, un led rojo, que se encuentra a un lado de los pines de alimentación externa de la tarjeta se enciende, una vez terminado el proceso se indica si ha sido exitoso en la ventana de mensajes de Adept, si no ha habido problemas, el FPGA ha sido configurado y se puede probar el funcionamiento.3

3 Información adquirida del Ingeniero a cargo del curso; Oscar Fuentes Amin.

Fig6. FPGA Funcionando.

6

Page 7: UNIDAD ARITMETICO LOGICA con VHDL

LABORATORIO DE ELECTRONICA INTEGRADA

INGENIERIA ELECTRONICA

REGISTRO CALIFICADO SNIES 4950

5. CONCLUSION

Después de realizada la práctica se concluye que con la ayuda del software Xilinx Ise Design Suite®, se puede diseñar y simular el funcionamiento de diferentes diseños electronicos, como objeto de desarrollo para esta actividad de laboratorio, el desarrollo del programa que permitiera comprobar el funcionamiento de una ALU completa de 8 bits, mediante el uso de los componentes incluidos en la FPGA.

6. BIBLIOGRAFIA

[1]http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html

[2] Clive Max Maxfield, FPGA Instant Access. SCIENCE DIRECT MAGAZINE.

7