Upload
hermenegildo-maduro
View
23
Download
1
Embed Size (px)
Citation preview
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
1
REV 001 -2009
LABORATORIO DE MICROPROCESADORES
Daniel A Jacoby
Marzo 2008
Instituto Tecnológico de Buenos aires
Cyclone BoardQuick Reference
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
2
1- Start Project Wizard
El primer paso es iniciar el “Project Wizard”
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
3
2- Crear una carpeta
Crear una carpeta y un nombre para el proyecto
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
4
3- Agregar archivos de diseño adicionales
Agregar archivos y librerías al proyecto
Este paso se puede ignorar y solo tiene sentido si se quiere usar material de diseños previos o de terceros
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
5
4- Selección del dispositivo
Se debe seleccionar el dispositivo indicado que es el que usa la placa Cyclone
Nota: Lo único que puede llegar a diferir es la velocidad
Actualmente se usara el dispositivo:
EP1C6T144C6
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
6
5- Selección de Herramientas adicionales de diseño
Con este cuadro se seleccionan herramientas adicionales de diseño (EDA: Electronic Design Automation) como ser Leonardo Spectrum ,synplify o modelsim.
En nuestro caso no seleccionamos ninguna
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
7
6- Resumen de las opciones seleccionadas
Con este cuadro se visualizan las opciones elegidas de manera que si alguna no corresponde con lo deseado se puede volver a modificar (Back)
De todos modos todas estas opciones se pueden cambiar mas adelante (botón derecho sobre el dispositivo)
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
8
7- Adicionar un esquemático al proyecto
2
1
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
9
8- Guardar el archivo
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
10
Primer Ejemplo
El primer ejemplo consiste en controlar los leds que se encuentran en la placa mediante las llaves (dip - switch) residentes en la misma. Cada llave controlara a un led. El diseño consiste entonces rutear dentro de la FPGA cada llave a un led. Un esquemático es la mejor forma de representar esta situación. Antes de dibujar debemos saber a que pines de la FPGA se encuentran conectados los leds y las llaves
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
11
Pinout Llaves y LedsDevice FPGA PIN Comments
LED2 106 Active Low
LED3 107 Active Low
LED4 108 Active Low
SW4 33 Low When Closed
SW3 34 Low When Closed
SW2 35 Low When Closed
SW1 36 Low When Closed
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
12
Selección de componentes
En primer lugar se deben poner los pines de entrada (llaves) y salida (leds) en el esquemático. Para hacer esto usamos el “symbol tool” y elegimos un pin de entrada (usar repeat insert mode)
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
13
Asignación de nombres
A continuación asignamos nombres a los pines (doble click en los mismos).
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
14
Asignación de nombres
Repitiendo para la salidas (leds) nos queda:
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
15
Asignación de pines
Ahora podemos asignar los pines a cada puerto usando el editor de asignación de pines
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
16
Asignación de pines
La edición quedaría asi:
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
17
Dibujo del esquemático
Finalizamos ruteando cada llave con su respectivo led dentro de la FPGA:
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
18
Asignación de pines NO usados
ESTO ES MUY IMPORTANTE DE NO RESPETARLO PODEMOS QUEMAR PINES DE LA FPGA
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
19
Compilar todo el proyecto
Como resultado se generaran los archivos:
“testleds1.sof” y “testleds1.pof”
sof = Sram Output File para la FPGA
pof = Programming Output File para la Flash Externa
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
20
SOF Vs. POF
Los archivos sof se usan para programar las celdas RAM de la FPGA. Como consecuencia el programa quedara en la FPGA mientras haya alimentación.
Los archivos pof se usan para programar la flash de configuración externa a la FPGA. Como consecuencia el si se usa este archivo el programa se cargara en las celdas RAM de la FPGA desde la memoria de configuración externa cada vez que se aplique alimentación a la FPGA. Por lo tanto los archivos sof están pensados para programar versiones definitivas de la aplicación la que se iniciara cada vez que apliquemos alimentación a la FPGA. Dado que la memoria de configuración externa reduce el tiempo de retención cada vez que se graba en ella recomiendo minimizar su uso
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
21
Programación
Antes de programar debemos cortar la alimentación y luego conectar el programador mediante el cable plano a la Placa con la FPGA. A su vez el programador deberá conectarse al puerto paralelo de la PC.
Nota: Para archivos sof se debe usar el conector rotulado JTAG (H2) mientras que para los pof se debera usar el conector ASMI(H1)
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
22
Programación SOF
Una vez conectado todo aplicar alimentación y ejecutar el programador en Quartus II
Antes de programar verificar que:
1- Figure el puerto correcto y la leyenda “Byteblaster II”
2- Modo = JTAG
3- Este cargado el archivo SOF (de no estar usar Add file)
4 – Chequeada la opción Program / configure
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
23
Programación POF
Una vez conectado todo aplicar alimentación y ejecutar el programador en Quartus II
Antes de programar verificar que:
1- Figure el puerto correcto y la leyenda “Byteblaster II”
2- Modo = Active Serial Programming
3- Este cargado el archivo SOF (de no estar usar Add file)
4 – Chequeada la opción Program / configure (como en la figura)
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
24
Uso del PLL - Ejemplo2Siguiendo los mismos pasos del primer ejemplo creamos ahora un nuevo proyecto llamado “plltest” y agregamos un esquemático al proyecto. Vamos ahora a instanciar un PLL para lo cual usamos nuevamente el “symbol tool” y usamos el “MegaWizard Plug-in Manager” tal como se ve en la figura
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
25
Uso del PLL - Ejemplo2A continuación seleccionamos una instancia propia de una megafuncion (que será el PLL) y seleccionamos “Next”
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
26
Uso del PLL - Ejemplo2Dentro de “IO” seleccionamos “ALTPLL” le damos un nombre al archivo de salida que generara el MegaWizard en VHDL y seleccionamos “Next”
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
27
Uso del PLL - Ejemplo2Ahora vamos a configurar el PLL para un cristal de 24MHz y la velocidad del mismo en grado“6” luego “Next”
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
28
Uso del PLL - Ejemplo2En la siguiente pagina eliminar todas Entradas y Salidas luego “Next”
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
29
Uso del PLL - Ejemplo2En este ejemplo se usara al PLL para proveernos de una frecuencia de 48 MHz en la salida c0. Seleccionar los parámetros como se indican abajo luego “Next”
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
30
Uso del PLL - Ejemplo2
Saltear las siguientes dos paginas (pag. 6 y 7) (usar “Next”) lo que nos lleva a la siguiente pagina. Acá solo presionar “Finish” y luego “OK” para finalizar el componente PLL
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
31
Uso del PLL - Ejemplo2
Saltear las siguientes dos paginas (pag. 6 y 7) (usar “Next”) lo que nos lleva a la siguiente pagina. Acá solo presionar “Finish” y luego “OK” para finalizar el componente PLL
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
32
Uso del PLL - Ejemplo2
Una vez finalizado agregamos un pin de entrada para proveer de clock al PLL. La placa dispone de un oscilador a cristal que se encuentra conectado al pin 16 de la FPGA. La frecuencia del oscilador es de 24 MHz
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
33
Uso del PLL - Ejemplo2
Como aplicación vamos a realizar un contador binario Los 3 bits mas significativos del contador serán conectados a los leds de la placa. Podemos ver al contador binario como un divisor de P bits en cascada con un contador binario de 3 bits. La cantidad total de bits del contador es N= P+3. Para poder visualizar los leds la frecuencia de entrada del contador de 3 bits puede ser de aproximadamente 1 Hz . Asi resulta que
P=log(Fxtal/Fpout)/log(2) donde Fxtal= 48E6 Hz y Fpout =1 Hz
P=25.51 redondeamos a P= 25 o sea que N=28. El Primer led se encenderá a un ritmo de Fxal / [2^(P+1)] = 0.7153 HZ que es suficiente para visualizar el contador de 3 bits
Fxtal
MSBLSB
%P
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
34
Uso del PLL - Ejemplo2
Como aplicación vamos a realizar un contador binario que será conectado a los leds de la placa. Se usara un contador LPM de la librería de altera. Los 3 bits menos significativos del contador serán conectados a los leds de la placa
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
35
Uso del PLL - Ejemplo2
Vamos a configurar nuestro contador como sigue:
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
36
Uso del PLL - Ejemplo2
Fijamos el tamaño del contador N=28
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
37
Uso del PLL - Ejemplo2
En la siguiente pagina solo seleccionamos binario puro
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
38
Uso del PLL - Ejemplo2
En la siguiente pagina no se selecciona ninguna opción
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
39
Uso del PLL - Ejemplo2
Finalizamos !!
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
40
Uso del PLL - Ejemplo2
Conectamos los leds a los 3 bits mas significativos del contador. Se usaron inversores por ser activo bajos los leds. El clock del contador se conecta a la salida del PLL.
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
41
Uso del PLL - Ejemplo2
La asignación de pines deberá ser la siguiente
Luego de compilar el programa y programarlo como se vio en el ejemplo 1 Verificar el funcionamiento del mismo.
Adicionalmente podemos guardar este ejemplo en la memoria de configuración de manera que al encenderse la fuente empiece a ejecutarse este ejemplo. NO OLVIDAR APAGAR LA FUENTE AL CAMBIAR DE MODO SOF a POF
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
42
Uso del SignalTap II Logic Analyzer Ejemplo3
Quartus II nos permite realizar el análisis de los nodos internos de nuestro diseño mediante un componente que tiene la misma funcionalidad que un analizador logico.
Este componente es conocido como SignalTap II Logic Analyzer. Antes de usarlo vamos a agregar a nuestro diseño previo (Ejemplo2) un modulo que detecte cuando el contador de 3 bits se encuentra entre 3 y 5.
La forma mas cómoda de modelar este detector es usando VHDL
La interface del detector sera la siguiente:
Entradas : Tres bits que irán conectados a la salidas de nuestro contador
Salidas : Un bit que nos indica si nuestro contador se encuentra dentro del rango indicado (Activo Alto).
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
43
Uso del SignalTap II Logic Analyzer Ejemplo3
El script en vhdl es:
library ieee;
use ieee.std_logic_1164.all;
ENTITY detector IS
PORT
(
count : IN integer range 0 to 7;
in_range : OUT STD_LOGIC
);
END detector;
ARCHITECTURE V1 OF detector IS
SIGNAL detect : STD_LOGIC;
BEGIN
detector:
PROCESS (count)
BEGIN
IF count > 2 AND count < 6 THEN
in_range<= '1';
ELSE
in_range<= '0';
END IF;
END PROCESS ;
END v1;
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
44
Uso del SignalTap II Logic Analyzer Ejemplo3
Para incorporar el script en nuesto proyecto debemos:
1- Crear un archivo nuevo al que llamaremos detector.vhd
Para hacer esto hacemos File New y seleccionamos VHDL File
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
45
Uso del SignalTap II Logic Analyzer Ejemplo3
Luego de presionar ok aparecerá un archivo en blanco al que guardaremos (FileSave As) con el nombre detector.vhd
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
46
Uso del SignalTap II Logic Analyzer Ejemplo3
Como paso final editamos el código y guardamos el archivo (No olvidar).
Nota: Para no perder el tiempo hacer copy & paste del código en PowerPoint.
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
47
Uso del SignalTap II Logic Analyzer Ejemplo3
2 Ahora incorporamos el archivo al proyecto Settings ( )
Seleccionamos FILES , buscamos el archivo y lo agregamos al proyecto (Add)
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
48
Uso del SignalTap II Logic Analyzer Ejemplo33 Ahora Vamos a generar el símbolo grafico asociado a nuestro archivo VHDL. Para lo cual con el archivo a la vista hacemos File Create/Update Create Symbol Files for current file
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
49
Uso del SignalTap II Logic Analyzer Ejemplo3Si todo esta bien tendremos un nuevo componente en la librería para verlo volvemos al esquemático y buscamos el componente en la librería y lo pegamos en el esquemático.
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
50
Uso del SignalTap II Logic Analyzer Ejemplo3Ahora resta conectar los tres bits del contador al detector
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
51
Uso del SignalTap II Logic Analyzer Ejemplo3Luego conectar un puerto de salida del detector.(Recordar caminarle el nombre) y asignarle un pin (103) con el editor de asignaciones
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
52
Uso del SignalTap II Logic Analyzer Ejemplo3Conviene compilar todo el proyecto para asegurarnos que no hay errores
Podemos probar nuestro diseño conectando un osciloscopio al pin 8 del header J3-B3 (cuarto pin del header) grabar el programa y verificar el funcionamiento
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
53
Uso del SignalTap II Logic Analyzer Ejemplo3Ahora Vamos a usar el ELA (Embebed Logic Analizer) Signal Tap II
Empezamos creando una instancia del ELA haciendo:
Tools Signal Tap Logic Analyzer II
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
54
Uso del SignalTap II Logic Analyzer Ejemplo3Podemos observar una ventana como la que sigue. Para trabajar mas cómodos la vamos a maximizar la ventana usando el icono
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
55
Uso del SignalTap II Logic Analyzer Ejemplo3Ahora debemos configurar nuestro ELA
Empezamos por la conexión JTAG y el archivo de programacion (SOF)
De esta manera el ELA se podrá comunicar con windows via JTAG
Se puede programar desde acá
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
56
Uso del SignalTap II Logic Analyzer Ejemplo3A continuación seleccionaremos los nodos a monitorear haciendo doble click dentro de la siguiente ventana y seleccionando los nodos de interés
El resultado es el siguente
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
57
Uso del SignalTap II Logic Analyzer Ejemplo3Nos queda por definir la condición de disparo. Como ejemplo tomaremos algo simple como ser el flanco de subida de in_range. Con el botón derecho sobre la condición de trigger para la señal in_range. Creamos la condición de trigger para el ELA
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
58
Uso del SignalTap II Logic Analyzer Ejemplo3
Finalmente elegimos como clock del ELA a la salida q(16) del contador usando el node finder y fijamos un buffer de 4K para el buffer de adquisición
Node finder
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
59
Uso del SignalTap II Logic Analyzer Ejemplo3
Para una mejor visualización de los datos podemos agrupar las tres salidas del contador en un bus único. Esto se hace pasando a la solapa Data y marcando las 3 señales ( con ctrl + mouse) y seleccionando con el botón derecho la opción agrupar
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
60
Uso del SignalTap II Logic Analyzer Ejemplo3
Compilamos el proyecto y grabamos el programa en la FPGA
Una vez corriendo el programa vamos a la solapa del ELA y presionamos el botón de adquisición continua
Deberá observarse lo siguiente:
Laboratorio de Microprocesadores - ITBA -Daniel Jacoby
61
Uso del SignalTap II Logic Analyzer Ejemplo3
Pasado un cierto tiempo (hasta que se llene el buffer) se veran las señales adquiridas
Trigger