Está en la página 1de 6

Prctica I

Dispositivos Lgicos Programables

Otoo 2011

Justificacin
La prctica se realiza con el fin de empezar a ver el funcionamiento de una FPGA y poder tener una primera vista del modo de trabajo sobre este dispositivo.

Objetivo
Implementar en un FPGA, un decodificador utilizando los switches y los LEDs de la tarjeta programable.

Introduccin
VHDL se trata de un lenguaje de descripcin de hardware, esto significa que mediante l se puede describir la forma de comportarse de un circuito electrnico. El comportamiento puede ser llevado a algn dispositivo que dispondr de sus propios componentes con los que lograr ese comportamiento deseado. La forma de comportarse es independiente del hardware donde se implementar. y y y y y El VHDL es un estndar llamado IEEE 1076-1993. Sus ventajas son: Una disponibilidad pblica Independencia de dispositivos y fabricantes Reutilizacin Diseo jerrquico

Un cdigo en VHDL consta de dos partes fundamentales: ENTIDAD La entidad sirve para definir las entradas y salidas que tendr un determinado circuito. Para definir una entidad se realizar mediante la palabra reservada ENTITY. En principio pudiera parecer que esta definicin sea equivalente a la cabecera de una funcin de un lenguaje cualquiera de programacin. En VHDL es ms conveniente ver a la entidad como una caja negra con cables para las entradas y salidas. La ventaja de pensar en una entidad como en una caja negra a la que se conectan cables es que es ms fcil comprender la ejecucin concurrente que ocurrir en el hardware. La descripcin de cmo funciona por dentro esa caja negra es la arquitectura, que se ver en el siguiente captulo. A continuacin se muestra la sintxis de una entidad. ENTITY nombre IS [GENERIC(lista de parmetros);] [PORT(lista de puertos);] END [ENTITY] nombre;

ARQUITECTURA La arquitectura es lo que define cmo se comporta un circuito. El nombre de la arquitectura se usar para indicar qu arquitectura se debe usar en caso que haya varias para una misma entidad. Despus de esta lnea pueden aparecer varias instrucciones para indicar la declaracin de seales, componentes, funciones. Estas seales son internas, es decir, a ellas no se puede acceder desde la entidad, por los que los circuitos de nivel superior no podran acceder a ellas. En un smil con un microprocesador, estas seales podran ser las lneas que comunican la unidad central con la ALU, a las que no se puede acceder directamente desde el exterior del microprocesador. Obsrvese que en este caso no se indica si son entradas o salidas, puesto que al ser internas pueden ser ledas o escritas sin ningn problema. En esta parte de la arquitectura tambin pueden aparecer otros elementos, como pueden ser las constantes. Lo siguiente es la palabra clave BEGIN, que da paso a la descripcin del circuito, mediante una serie de sentencias. Por lo tanto, la sintxis de una arquitectura sera. ARCHITECTURE nombre OF nombre_entidad IS [declaraciones] BEGIN [sentencias concurrentes] END [ARCHITECTURE] [nombre];

Material
y y 1 Tarjeta Spartan3 XILINX Designer Suite

Procedimiento
1.- Crear el nuevo proyecto y le pongo su nombre. Despus si quieres le puedes cambiar la direccin donde se guarda el proyecto (o carpeta) en este caso se guardo en la carpeta BIN. Y seleccionar esquemtico (para hacer un diagrama) o como en este caso HDL (para trabaja solo con cdigo) 2.- Llenar los campos de la ventana New Project Wizard- Device Properties 3.- A continuacin aparece la siguiente ventana y escoge VHDL Module y luego poner el nombre de tu archivo (el cual ser el mismo de la entidad). 4.- Llenar los campos de la siguiente ventana New Source Wizard- Define Module. Colocando nombre de los puertos, en Direction indicas si son de entrada/salida o ambos, si es tipo vector seleccionas la opcin de Bus y a continuacin indicas cual es el Bit Mas Significativo (MSB) y cual el Bit menos Significativo (LSB).

5.- Una vez que se tenga que sali el cdigo y listo para programar la arquitectura escribir el siguiente cdigo: entity decodificador is PORT (sel : in STD_LOGIC_VECTOR (2 down 0); Y : out STD_LOGIC_VECTOR (7 down 0)); end decodificador architecture Behavioral of decodificador is begin Y<= 00000001 when sel = 000 else 00000010 when sel = 001 else 00000100 when sel = 010 else 00001000 when sel = 011 else 00010000 when sel = 100 else 00100001 when sel = 101 else 01000001 when sel = 110 else 10000001 end Behavioral

6.- Ya escrita la arquitectura puedes ir a la ventana process del lado derecho ah escoge la opcin sintetizar y ah se le pondr una paloma verde. 7.-Una vez sintetizado ir a asignar pines que est del lado derecho en la ventana process. En esa ventana ir a la opcin user constraints y dando click se abren otros mens y a lo ltimo aparece el de assing package pines 8.- Aparece la ventana donde asignamos lo pines estos se agregan. 9.- Aparece una nueva ventana y seleccionar XST optional 0. Y le das OK. Se desaparece la pantalla y entonces la cierro y ya no trabajo as con ella. Nota: puedes ver el archivo UCF dando doble clik en la ventana process Edit constraints text 10.- Ahora generaremos el archivo PROM que es el programa de la FPGA. Ir en la ventana de process a la ltima opcin en Generate program File dar en la opcin: Generate PROM AC E, or JTAG File. 11.- Se abre una nueva ventana en la cual seleccionaras la opcin Prepare a prom File 12.- Mandar el archivo a la tarjeta (debe de estar todo conectado obviamente) En la ventana principal en la parte del process, dar botn derecho en el (Generate Programing File).

Resultados

Se implement el cdigo dentro de un proyecto en ISE de XILINX obteniendo un resultado exitoso como se muestra en las imgenes.

Encerrados en un recuadro rojo los LEDs y en un recuadro naranja los switches.

Como se puede observar en las imgenes, obtuvimos un resultado exitoso, al encender o apagar los switches obtenamos una respuesta encendiendo un LED diferente.

Conclusin
Despus de un primer intento en una Spartan3E, nuestro segundo intento en la Spartan3 fue exitoso, al inicio tuvimos problemas con una versin distinta del ISE, sin embargo una vez que entendimos las diferencias entre ambas versiones del suite de diseo, pudimos implementar de manera satisfactoria la prctica, logrando comprender el funcionamiento bsico de la FPGA y los pasos necesarios para poder implementar un cdigo en estos dispositivos.

También podría gustarte