Está en la página 1de 11

Altera Cyclone III FPGA Starter KIT

EP3C25F324C6NES

Adrin Escolar Pablo Gonzlez David Zubiaga

NDICE
1.- Introduccin 1.1.- Caractersticas Altera Cyclone III Starter Kit 1.2.- Herramientas utilizadas 1.3.- Objetivos del proyecto 2.- Proceso para la realizacin del proyecto 3.- Resultados obtenidos

Contenido del CD:


- Fotos y vdeos de los proyectos - Archivos de los 3 proyectos

1.- Introduccin
La placa Altera Cyclone III del starter kit que nos ha tocado es una placa muy bsica (ya que slo contiene 4 botones y 4 LEDS) por lo que no ofreca grandes opciones a la hora de disear programas. Por ello hemos realizado 3 programas diferentes en los que slo se utilizan los LEDs y los botones de la placa.

1.1.- Caractersticas Altera Cyclone III Starter Kit


- 256 Mbits memoria DDR SDRAM - 1 Mbyte memoria SRAM sincrona - 16 Mbytes memoria Flash - Oscilador de reloj de 50 Mhz - 6 botones (4 para el usuario) - 7 LEDs (4 para el usuario) - Conector HSMC - Cable USB para cargar programas - Alimentador de corriente

1.2.- Herramientas utilizadas


- Odenador ( S.O Windows 7 Ultimate 64bits) - Quartus II web edition version 8.0 build 215 - Controladores Altera - Placa Altera Cyclone III EP3C25F324C6NES - Foro de altera para resolver dudas

1.3.- Objetivos del proyecto


- Entender como funcionan las placas FPGA - Ver la diferencia entre un procesador y una placa FPGA - Entender el funcionamiento de las arquitecturas paralelas - Aprender a programar en VHDL

2.- Proceso para la realizacin del proyecto


En primer lugar, valoramos las opciones que nos ofreca la placa para poder pensar as en el diseo final de los programas del proyecto. Despus instalamos el quartus II web edition as como todos los programas que venan en el CD que inclua el Kit. Una vez instalado, realizamos los pasos descritos en el manual de la placa para comprobar de esta forma su correcto funcionamiento. El funcionamiento no era el deseado ya que el ordenador no reconoca la placa porque el controlador no se haba instalado. Tras buscar el controlador de forma manual e intentar instalarlo, no se instalaba con xito ya que no estaba firmado digitalmente. Para solucionarlo, cada vez que conectamos la placa al ordenador, tenemos que iniciarlo en modo de prueba. Ahora ya con el controlador instalado, pudimos verificar que el funcionamiento de la placa era correcto. Tras esto, buscamos documentacin acerca del lenguaje VHDL y vimos varios ejemplos de programas implementados en este lenguaje. Una vez entendido el funcionamiento del lenguaje, intentamos implementar el ejercicio ms sencillo de los que habamos pensado. No tuvimos xito en su implementacin: mltiples errores de novato a la hora de escribir cdigo (lista de sensibilidad en los procesos, modificacin de seales de entrada, bucles infinitos con while y for, lgica inversa etc.), nula asignacin de pines, problemas de compilacin imposibles de entender sin buscar acerca de ellos en internet y desconocimiento de funciones para capturar las pulsaciones de un botn. Tras tres semanas depurando el cdigo del programa y haciendo ya una correcta asignacin de los pines, nos fallaba la actualizacin de una variable entera al pulsar el boton1, por ello pedimos ayuda al profesor que nos explic una posible solucin. Probamos la solucin del profesor pero segua sin funcionar, y tras alguna modificacin en la solucin del profesor por fin conseguimos que funcionara. De esta forma, el programa llamado fichero2 estaba funcionando correctamente y realizaba lo que queramos. Despus realizamos los otros dos programas que habamos pensado (fichero1 y fichero3) sin ningn tipo de problema y en apenas tres horas. Tras comprobar el correcto funcionamiento de todos ellos y realizar algn pequeo cambio para mejorar el funcionamiento de los programas, empezamos a hacer este informe.

A continuacin se muestra como se ha realizado cada parte del proyecto utilizando el software quartus II web edition mediante capturas de pantalla. - Creacin de un nuevo proyecto

- Despus se ha creado un nuevo fichero VHDL en el proyecto para introducir el cdigo del programa.

- Tras haber escrito el cdigo del programa en lenguaje VHDL, se comprueba que no tiene ningn error sintctico.

- Si el cdigo est escrito correctamente se muestra un mensaje diciendo que lo est, en caso contrario se muestran la lneas en las que puede haber fallos.

- Una vez comprobada la sintaxis del cdigo, se procede a la asignacin de pines mediante la opcin Pin Planner.

- Se realiza la asignacin a cada variable lgica creada en el programa y utilizando como referencia para saber la funcin de cada Pin el manual de la placa FPGA.

- Antes de compilar hay que asegurarse que la entidad del proyecto est situada como la ms alta ya que sino puede que el proyecto trate de compilar con otro fichero de cdigo.

- Tras realizar todo esto se generan todos los archivos de proyecto mediante la compilacin utilizando la funcin Start Compilation

- Una vez realizada la compilacin de forma exitosa se mostrar este mensaje

- El proyecto ya se puede volcar en la placa aunque es conveniente hacer una simulacin antes. Tras haber instalado los drivers (al estar sin firmar es necesario iniciar el sistema a modo de prueba de errores) y haber encendido la placa, se vuelca el proyecto mediante la funcin Programmer

- Aparecer por defecto el archivo sof del proyecto que deseamos volcar y estar tildada la opcin Program/Configure por lo que slo habr que darle a start para cargarlo. Una vez cargado la barra de progreso se volver azul y mostrar 100% NOTA: No se muestra un proyecto volcado debido a que ya no disponemos de la placa

3.- Resultados obtenidos


Empezaremos con la explicacin de fichero2 por ser el primero que realizamos y por las similitudes entre el fichero1 y fichero3 - Fichero2
La funcionalidad de este programa consiste en introducir mediante cada pulsacin de BUTTON1, un nmero en base 10 comprendido entre 0 y 15 que se representar en binario mediante los LEDs 1,2,3 y 4 siendo 1 encendido y 0 apagado. Una vez introducido el nmero deseado, se podr saber si el nmero es mltiplo de 2, 3 o 5 pulsando los botones 2, 3 y 4 respectivamente. En caso de serlo, los LEDs representarn el nmero del que es mltiplo en binario y se apagarn si no lo son. Ejemplo: las fotos de debajo representan el funcionamiento del programa habiendo introducido el nmero 6

- Fichero1
La funcionalidad de este programa consiste en realizar secuencias de luces mediante los LEDs dependiendo del botn que se est pulsando: - Boton 1, secuencia de LED1 a LED4 - Boton 2, secuencia de LED4 a LED1 - Boton3, secuencia de LEDs 1, 3, 2, 4 - Boton4, parpadeo intermitente de los 4 LEDs al mismo tiempo Se muestra su funcionamiento en video1 de la carpeta videos del CD

- Fichero3
La funcionalidad de este programa consiste en realizar secuencias de luces mediante los LEDs dependiendo del botn que se est pulsando: - Boton 1, secuencia de 0 a 15 representada en binario por los LEDS - Boton 2, secuencia de 15 a 0 representada en binario por los LEDS - Boton3, se encienden de uno en uno los LEDS desde LED1 hasta LED4 y se apagan de uno en uno desde LED4 hasta LED1 - Boton4, se encienden de uno en uno los LEDS desde LED1 hasta LED4 y se apagan de uno en uno desde LED4 hasta LED1

Se muestra el funcionamiento de cada uno de los botones de los programas fichero1 y fichero3 en la carpeta Videos del CD.