Altera Cyclone III FPGA Starter KIT V2

April 19, 2018 | Author: tetazas | Category: Programming Language, Computer Program, Compiler, Vhdl, Computer Engineering
Share Embed Donate


Short Description

Download Altera Cyclone III FPGA Starter KIT V2...

Description

Altera Cyclone III FPGA Starter KIT EP3C25F324C6NES

Adrián Escolar Pablo González David Zubiaga

Í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

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

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 i nternet 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.

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.

-

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.

-

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.

-

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

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

-

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

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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF