Upload
hanguyet
View
235
Download
3
Embed Size (px)
Citation preview
Practica 0. QUARTUS ll
FCE 2015-02-05
Objetivo: El alumno conozca y utilice el software de ALTERA, quartus ll
1. Escribir un programa en vhdl, con ejemplo de compuerta NOT.
2. compilar y verificar sintaxis,
3. asignar pines,
4. Descargar el programa en el sistema de desarrollo mínimo
Material.
Software: Quartus ll free
kit mínimo de FPGA/ALTERA Cyclone ll. EP2C5T144C8, USB BLASTER y DC 5V
Desarrollo.
Con el objetivo de comprender el Quartus, programaremos una compuerta NOT, se asignara a la
entrada de la NOT un pushboton, y a la salida un led.
El objetivo de nuestro proyecto será la compuerta NOT
A la entrada, le asignaremos los pines de un push botom, y a la salida los pines de un led.
En nuestra tarjeta minima de desarrollo EP2c5t144, tiene 3 leds y un push botom
Del datasheet de este modelo en ALTERA tenemos como están conectados los leds y push al chip
cyclone ll:
Pushbotom-> pin_144
LedD2-> pin_3
LedD4-> pin_7
LedD5-> pin_9
Esta información se tendrá que utilizar cuando estemos en la etapa de asignar pines.
PASO1. Crear proyecto y directorio de trabajo
0. crear un directorio de trabajo en el escritorio o en “mis documentos”, llamado ejemplo1.
1. Abrir en todos los programas el quartus ll. (en Lab. Ver64.)
2. Vamos a crear un proyecto nuevo en la pantalla azul, apretamos botón de “Create a New
Project”
3. la siguiente ventana es información, leela o no. NEXT
4 La siguiente ventana es para colocar tu proyecto en alguna parte de tu computadora y el
nombre del proyecto.
IMPORTANTE: no escojas que se guarde en ni system, ni en altera. Pues cada proyecto produce
muchos archivos adicionales, por favor guardala en un folder en “escritorio” o en “mis
documentos”. Colocalo en el directorio que creaste.
EL NOMBRE DEL PROYECTO DEBE SER IGUAL AL NOMBRE DE LA ENTIDAD E IGUAL AL NOMBRE
DEL ARCHIVO *.VHD: LLAMAR: ejemplo1
NEXT
5. la siguiente ventana es para añadir archivos a tu proyecto, si ya los tienes es aquí, pero
sino (como nuestro caso), omitimos esto y solo ponemos NEXT
6 . Ahora nos piden la información de la tarjeta. La que se utilizara en este laboratorio es :
Familia: Cyclonell , modelo: ep2c5t144 C8
Next
7. Este siguiente es para activar el simulador, hoy no se utilizara, (habrá otra práctica para este).
Ahora solo oprimir NEXT
8. y después FINISH
Chequemos que realmente se creó nuestro proyecto. En la pestaña de Hierachy, adentro vemos el
nombre de nuestro directorio llamado ejemplo1. Si no es así, vuelve a repetir los pasos anteriores.
Ya está configurada la tarjeta que vamos a usar y nombre del proyecto, ahora vamos empezar a
escribir el código.
PASO2 Crear archivo VHDL
Escogemos el icono de hoja blanca (abajo del menú FILE) y le damos click
Aparecerá una caja de dialogo, en la cual escogeremos, exclusivamente, VHDL File
Se abre una hoja blanca, en la versión 10, nos queda el comercial de ALTERA, en la parte superior,
si empiezas a escribir y no se ve, solo abre otro archivo VHDL File y lo vuelves a cerrar (absurdo
pero es una solución rápida). Escribimos lo siguiente.
Un archivo en VHDL está separado en dos partes: entidad y arquitectura.
En la entidad declaramos los puertos o pines de entrada y de salilda, hoy veremos de tipo de lógica
estándar o para insertar tablas de verdad (std_logic), requiere cabecera 1164.all y de tipo “bit” o
sea 0 ó 1 que no requiere ninguna cabecera. Existen más que pueden checar en tutorial o libro de
VHDL, o en su clase de teoría. Aquí se mencionaran conforme se utilicen.
En la arquitectura se escribe el comportamiento esperado entre los puertos de entrada y salida
declarados en la entidad utilizada.
Por el momento siempre habrá una entidad dentro de un proyecto. (Después se harán módulos).
En este proyecto notemos que en la entidad, tenemos a de tipo entrada y b de tipo salida, pues
nuestra not pensada solo requiere una entrada y una salida. NOTESE que no debe haber un
punto y coma en la última instrucción.
Mientras que en la arquitectura colocamos el comportamiento de nuestras entradas y salidas
Escribimos:
b<=not a;
Esto quiere decir que aplicamos la compuerta not a el valor de a y se asigna a b
PASO 3. COMPILAR Y VERIFICAR SINTAXIS
Ya escrito el programa en VHDL lo guardamos y debe aparecer el mismo nombre de ejemplo1,
si no es asi, le asignamos ese nombre.
Debemos verificar que se llame como la entidad nuestro archivo ejemplo1.vhd (también nuestro
directorio) y muy importante guardarlo en el directorio escogido.
Ahora se checa sintaxis, en menú “processing” y en el menú desplegable se escoge “ start
Compilation”.
Nos avisa que ya compiló exitosamente al 100%, si no fuera si, en la parte de mensajes nos dice el
problema, habrá que darle click al problema y nos aparece donde está el error.
Para regresar a ver nuestro archivo seleccionamos files (junto a Hierachy) y escogemos el archivo
ejemplo1.
PASO 4.ASIGNAR PINES
En menú “assignments”, escogemos del menú desplegable : PIN PLANNER
Tenemos que escribir los pines de un led y del push bottom
Para a que es de tipo entrada (es el push botom), escribimos pin_144, y para b de tipo salida (es el
led d2), escribimos pin_3
Al finalizar solo se sale de esta ventana con cerrar ventana, pero por cualquier cosa que no se
escriba coloca el curso en otra localidad, yo la coloque abajo, y con esto aseguramos que se
guardo la ultima asignación. Cerrar la ventana.
OTRA vez compilar!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Paso 5. Descargar programa a tarjeta.
Conectar la tarjeta.
Conectarla a 5 volts
Del menú Tools, escoger Programmer
Debe aparecer en Hardware setup, el USB-Blaster
Si es la primera vez, habrá que decirle donde está. Escoges hardware setup
Y colocas la dirección, casi siempre se instala aquí.
Si ya encontró el driver, ya esta listo para descargar. Entonces escogemos el archivo ejemplo1.sof,
luego apretamos botón de start, y observamos cómo se descarga al 100%
En nuestra tarjeta debemos apretar el pushbotom y observamos que el led se apaga.
Notese que si el pushbotom no está oprimido el led esta prendido y si está presionado el led se
apaga.
Nosotros estamos esperando…
Si la entrada es cero: no está oprimida (0) y la salida esta activa (1)
Si la entrada es 1: se oprime el push y la salida está apagada (0),
Era lo que estábamos esperando.