Altera Cyclone III FPGA Starter KIT V2

11
Altera Cyclone III FPGA Starter KIT EP3C25F324C6NES Adrián Escolar Pablo González David Zubiaga

Transcript of Altera Cyclone III FPGA Starter KIT V2

Page 1: Altera Cyclone III FPGA Starter KIT V2

Altera

Cyclone III

FPGA Starter

KIT

EP3C25F324C6NES

Adrián Escolar

Pablo González

David Zubiaga

Page 2: Altera Cyclone III FPGA Starter KIT V2

ÍNDICE

1.- Introducción

1.1.- Características Altera Cyclone III Starter Kit

1.2.- Herramientas utilizadas

1.3.- Objetivos del proyecto

2.- Proceso para la realización del proyecto

3.- Resultados obtenidos

Contenido del CD:

- Fotos y vídeos de los proyectos

- Archivos de los 3 proyectos

Page 3: Altera Cyclone III FPGA Starter KIT V2

1.- Introducción

La placa Altera Cyclone III del starter kit que nos ha tocado es una placa muy

básica (ya que sólo contiene 4 botones y 4 LEDS) por lo que no ofrecía grandes

opciones a la hora de diseñar programas. Por ello hemos realizado 3 programas

diferentes en los que sólo se utilizan los LED’s y los botones de la placa.

1.1.- Características 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 LED’s (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

Page 4: Altera Cyclone III FPGA Starter KIT V2

2.- Proceso para la realización del proyecto

En primer lugar, valoramos las opciones que nos ofrecía la placa para poder

pensar así en el diseño final de los programas del proyecto.

Después instalamos el quartus II web edition así como todos los programas que venían

en el CD que incluía 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 reconocía la placa porque

el controlador no se había 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 documentación 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 más sencillo de los que habíamos

pensado.

No tuvimos éxito en su implementación: múltiples errores de novato a la hora de

escribir código (lista de sensibilidad en los procesos, modificación de señales de

entrada, bucles infinitos con while y for, lógica inversa etc.), nula asignación de pines,

problemas de compilación imposibles de entender sin buscar acerca de ellos en internet

y desconocimiento de funciones para capturar las pulsaciones de un botón.

Tras tres semanas depurando el código del programa y haciendo ya una correcta

asignación de los pines, nos fallaba la actualización de una variable entera al pulsar el

boton1, por ello pedimos ayuda al profesor que nos explicó una posible solución.

Probamos la solución del profesor pero seguía sin funcionar, y tras alguna modificación

en la solución del profesor por fin conseguimos que funcionara.

De esta forma, el programa llamado “fichero2” estaba funcionando correctamente y

realizaba lo que queríamos.

Después realizamos los otros dos programas que habíamos pensado (fichero1 y

fichero3) sin ningún tipo de problema y en apenas tres horas.

Tras comprobar el correcto funcionamiento de todos ellos y realizar algún pequeño

cambio para mejorar el funcionamiento de los programas, empezamos a hacer este

informe.

Page 5: Altera Cyclone III FPGA Starter KIT V2

A continuación se muestra como se ha realizado cada parte del proyecto

utilizando el software quartus II web edition mediante capturas de pantalla.

- Creación de un nuevo proyecto

- Después se ha creado un nuevo fichero VHDL en el proyecto para

introducir el código del programa.

Page 6: Altera Cyclone III FPGA Starter KIT V2

- Tras haber escrito el código del programa en lenguaje VHDL, se

comprueba que no tiene ningún error sintáctico.

- Si el código está escrito correctamente se muestra un mensaje

diciendo que lo está, en caso contrario se muestran la líneas en las

que puede haber fallos.

- Una vez comprobada la sintaxis del código, se procede a la

asignación de pines mediante la opción Pin Planner.

Page 7: Altera Cyclone III FPGA Starter KIT V2

- Se realiza la asignación a cada variable lógica creada en el programa

y utilizando como referencia para saber la función de cada Pin el

manual de la placa FPGA.

- Antes de compilar hay que asegurarse que la entidad del proyecto

está situada como la más alta ya que sino puede que el proyecto trate

de compilar con otro fichero de código.

Page 8: Altera Cyclone III FPGA Starter KIT V2

- Tras realizar todo esto se generan todos los archivos de proyecto

mediante la compilación utilizando la función Start Compilation

- Una vez realizada la compilación de forma exitosa se mostrará este

mensaje

- El proyecto ya se puede volcar en la placa aunque es conveniente

hacer una simulación 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 función Programmer

- Aparecerá por defecto el archivo sof del proyecto que deseamos

volcar y estará tildada la opción Program/Configure por lo que sólo

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

Page 9: Altera Cyclone III FPGA Starter KIT V2

3.- Resultados obtenidos

Empezaremos con la explicación 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

pulsación de BUTTON1, un número en base 10 comprendido entre 0 y 15 que se

representará en binario mediante los LED’s 1,2,3 y 4 siendo 1 encendido y 0

apagado.

Una vez introducido el número deseado, se podrá saber si el número es múltiplo

de 2, 3 o 5 pulsando los botones 2, 3 y 4 respectivamente. En caso de serlo, los

LED’s representarán el número del que es múltiplo en binario y se apagarán si

no lo son.

Ejemplo: las fotos de debajo representan el funcionamiento del programa

habiendo introducido el número 6

Page 10: Altera Cyclone III FPGA Starter KIT V2

- Fichero1

La funcionalidad de este programa consiste en realizar secuencias de luces

mediante los LED’s dependiendo del botón que se esté pulsando:

- Boton 1, secuencia de LED1 a LED4

- Boton 2, secuencia de LED4 a LED1

- Boton3, secuencia de LED’s 1, 3, 2, 4

- Boton4, parpadeo intermitente de los 4 LED’s 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 LED’s dependiendo del botón 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

Page 11: Altera Cyclone III FPGA Starter KIT V2

Se muestra el funcionamiento de cada uno de los botones de los programas

fichero1 y fichero3 en la carpeta Videos del CD.