Wa0041 PDF
Wa0041 PDF
Wa0041 PDF
Guía QUARTUS II
CPLD
By:
---+/Ariel Víctor Flores Balderrama/++/Boris Vicente Calle Paco/++/Francisco Antonio Camacho Mendieta/+---
@2017
Guía Quartus II –CPLD-FPGA
ÍNDICE
1. Introducción……………………………………………………..….……….……..………..……………………………….2
2. ¿Qué es CPLD, FPGA, VHDL?…………………….…………………………….….……………………..……………3
3. Descarga del Software QUARTUS II………………………………………………………………………..………..5
3.1 Requisitos de PC……………………………………………………………………………………………………..…7
3.2 Familias de Altera………………………………………………………………………………………………………7
4. Instalación de QUARTUS II …………………………...........…..….…..…….………………………………………9
5. Configuración de QUARTUS II para iniciar una Descripción de VHDL……..…………………….…13
6. Edición y Compilación de la descripción VHDL…………….……………………………………………..…16
7. Simulación de la descripción VHDL…………….……………………………………………………………….…18
7.1 Configuración de simulación……………………………………………………………………………………19
8. Asignación de Pin Planner………………..……………………………………………………………………………25
9. Programación con dispositivo con USB BLASTER……………..…………………….....…………..……..29
10. Anexo - Conversión de archivos JTAG……………..…….………………………………………………………34
1
Guía Quartus II –CPLD-FPGA
1.-Introduccion
En la electrónica y computación la Lógica Programada está tomando cada vez mayor
importancia puesto que permite la reconfiguración de los circuitos, estos no tienen una función
establecida, al contrario de las compuertas lógicas que tienen una función fija en el momento de
fabricación.
Dentro de los fabricantes Altera es uno de los pioneros de la lógica programable y entre sus
principales competidores están Xilinx, Lattice Semiconductor, Actel y Atmel. Los Dispositivos Lógicos
Programables (PLDs), que se fabrican son CPLDs y FPGAs principalmente.
Intel ofrece ahora el software de Altera Quartus II, dirigido al diseño y simulación de circuitos
lógicos. Aunque el software soporta extensivamente VHDL y Verilog como principales lenguajes,
Altera es el desarrollador del lenguaje de descripción de hardware conocido como AHDL.
La presente guía del software Quartus II será trabajada con la versión 13.0 por consumir
costos razonables de computo (memoria RAM y espacio en HDD) y porque también tiene la
disponibilidad de manejar la mayor cantidad de familias de CPLDs y FPGAs. El contenido de la guía
se desglosa en una primera parte en una explicación referente a los CPLDs FPGAs y VHDL para no
confundir entre elementos de hardware y software. En una segunda parte se muestra como realizar
la instalación de Quartus II, también la configuración para iniciar una descripción de VHDL,
seguidamente la edición y compilación. En una tercera parte se da la indicación para realizar el
proceso de simulación de la descripción de VHDL, y en la cuarta parte se indica la asignación de
pines, conversión de archivos JTAG, también el proceso de programación con dispositivo USB
BLASTER. Finalmente en la parte final de anexos se encuentra información complementaria.
Esta guía ofrece ayuda respecto al manejo del software Quartus II, para poder realizar
implementación final en el dispositivo (CPLDs o FPGAs), y no pretende ser una guía del Lenguaje de
descripción VHDL.
La guía pretende que sus usuarios tengan la posibilidad de poder llegar a manejar de forma
básica los dispositivos lógicos programables PLDs a través del uso de la herramienta de software
Quartus II, para que se tenga un conocimiento más de dispositivos de alta gama, y altas prestaciones
para proyectos que así lo requieran.
2
Guía Quartus II –CPLD-FPGA
CPLD FPGA
3
Guía Quartus II –CPLD-FPGA
Las aplicaciones donde más comúnmente se utilizan FPGA son en procesamiento digital de
señales, sistemas aeroespaciales y de defensa, sistemas de imágenes para medicina, sistemas de
visión para computadoras, reconocimiento de voz, entre otras. Cabe notar que su uso en otras áreas
es cada vez mayor sobre todo en aquellas aplicaciones que requieren un alto grado de paralelismo.
4
Guía Quartus II –CPLD-FPGA
https://www.altera.com/downloads/download-center.html
En el cual deben dirigirse a la parte inferior al menú de software selector y buscar la versión
13.0 Web Edition.
5
Guía Quartus II –CPLD-FPGA
Se debe seleccionar principalmente los dispositivos de las familias Cyclone, MAX, y quitar la
selección Arria II esto para que la descarga no sea excesiva y también porque es mejor tener solo
aquellas familias de más uso y disponibilidad de FPGAs y CPLDs. Esto con el fin de no sobrecargar
nuestro computador.
Luego se debe seleccionar Download Selected Files y luego se deben registrar para iniciar la
descarga. El software Quartus II es libre para la descarga en su versión Web por lo cual no tiene
ningún costo, en cambio la versión de suscripción tiene costo puesto que tiene una mayor cantidad
de familias y mayores recursos de software.
6
Guía Quartus II –CPLD-FPGA
3.1.- Requisitos de PC
Espacio en disco:
Una instalación completa del Intel FPGA (Quartus II) Complete Design Suite v13.0sp1
requiere aproximadamente 7GB de espacio disponible en disco en la unidad o partición donde se
instala el software. Si está ejecutando el software antivirus de Bitdefender, debe desactivar
temporalmente el software durante el proceso de descarga e instalación del software Quartus II.
Requerimiento mínimo de 1GHz en procesador y 2GB de RAM. Se debe tener en cuenta que
no es necesario la instalación completa, es mejor instalar solo las familias que se usaran y también
evitar instalar las herramientas que no se vayan a usar.
La familia MAX II, instantánea no volátil, con bajo costo, baja potencia y
alta densidad, Tensión de alimentación de 1.8v, 2.5v, y 3.3v.
La serie Cyclone FPGA está diseñada para satisfacer sus necesidades de diseño
de bajo consumo y costo, lo que permite llegar al mercado más rápido.
7
Guía Quartus II –CPLD-FPGA
De todas las familias la más recomendable de usar para iniciar con el aprendizaje es la
familia MAX II de la cual el CPLD EPM240T es una buena elección al ser disponible en el mercado y
de bajo costo lo que permite realizar desarrollos.
También es recomendable de usar una tarjeta de desarrollo y no así un CPLD individual, esto
porque la tarjeta de desarrollo permite poder configurar el dispositivo de manera más fácil ya que
cuenta con conector para el grabador USB Blaster. Además de contar con circuito regulador de
voltaje para el CPLD. Si finalmente se quisiera diseñar un sistema completo se deberá usar el chip
CPLD individual y realizar un esquemático con todas las conexiones que permitan el funcionamiento
adecuado del CPLD.
8
Guía Quartus II –CPLD-FPGA
9
Guía Quartus II –CPLD-FPGA
10
Guía Quartus II –CPLD-FPGA
Después se mostrara un resumen del directorio donde se instalara, del espacio requerido y el
espacio disponible en disco duro, si está todo bien configurado entonces click en Next>.
11
Guía Quartus II –CPLD-FPGA
Finalmente cuando se complete la instalación en la última ventana solo seleccionar las dos
primeras opciones de creación de accesos directos e iniciar el programa
12
Guía Quartus II –CPLD-FPGA
Una vez iniciado el programa, para empezar primero se debe crear un proyecto en la pestaña
Ubicación donde
se guardara el
proyecto
/Next
13
Guía Quartus II –CPLD-FPGA
Nota: En el siguiente recuadro nos consulta si vamos a agregar algún archivo de diseño a nuestro
proyecto, en este caso no vamos a agregar ninguno
/Next
Buscamos la familia
“MAX II”
Seleccionar el CPLD
“EPM 240T100C5”
14
Guía Quartus II –CPLD-FPGA
Nota: Especifique las otras herramientas EDA utilizadas con el software Quartus II seleccionar
directamente Next.
/NEXT
/FINISH
Con todos estos pasos realizados el Quartus II está listo para que se inicie una descripción en VHDL
o bien en cualquier otro lenguaje de descripción de hardware como ser Verilog.
15
Guía Quartus II –CPLD-FPGA
Seleccionar
new
Seleccionar “VHDL
File” para obtener
la hoja de trabajo
16
Guía Quartus II –CPLD-FPGA
Una vez terminado nuestro programa (como ejemplo, tenemos un contador de flancos que hace
parpadear un led conectado a una salida cada medio segundo), para compilar el programa presionar
en el teclado “Crtl+L” para iniciar la compilación del programa, sino simplemente seleccionar en la
barra de herramientas “start compilation”.
Seleccionar “start
compilation”
Ya compilado revisar la barra de mensajes los errores que va dependiendo al tipo nos dirá el lugar
en el cual está el error, en el caso de no tener ninguno simplemente solo tendremos peligros
17
Guía Quartus II –CPLD-FPGA
“warning”, los que simplemente solo son debido a la falta de licencia o también a la falta de
asignación de pines.
Creación del archivo VWF. Notar que el proyecto Cafetera (proyecto a simular) está
correctamente abierto y ha sido compilado antes de la creación del archivo VWF.
18
Guía Quartus II –CPLD-FPGA
19
Guía Quartus II –CPLD-FPGA
Para poder estudiar el uso del Simulation Waveform Editor, se realizará en esta parte de la
guía una simulación sobre un proyecto previamente compilado. La entidad a simular, denominada
cafetera, puede entenderse mediante el diagrama de bloques presentado en la fig. 3. En este
diagrama, CS, ID, TC y MD son buses de 3 bits, mientras que OK y C constan de 1 bit cada uno.
Diagrama de bloques de la entidad Cafetera, modelada en VHDL. Notar que CS, ID y OK son
las señales de entrada al sistema; precio, dinero, café, saldo y luz son señales intermedias;
y TC, MD y C son señales de salida
Node Finder
Una vez creado el archivo VWF, es necesario seleccionar las señales que se van a simular.
Quartus II llama a las señales que intervienen en el sistema como nodos (nodes). Por esto, se utiliza
el Node Finder (Buscador de nodos) para armar la simulación. Se puede acceder al Node Finder
haciendo doble clic en el “área de señales” o mediante Edit > Insert > Insert Node o Bus… Se abrirá
un cuadro de diálogo con la opción “Node Finder” como uno de sus elementos.
20
Guía Quartus II –CPLD-FPGA
La ventana del Node FInder tiene diferentes elementos y se puede manejar de forma
análoga al Total Commander. En primer lugar, si es que se tiene más de una entidad en el proyecto,
se puede seleccionar el archivo VHDL a simular mediante el botón “…” (1), al lado de la opción Look
into (solo puede simularse archivos del proyecto activo en Quartus II). Por otra parte, el botón “List”
(2) permite introducir todas las señales disponibles en el archivo VHDL a la primera columna (4). La
opción “Filter” (3) nos permite seleccionar las señales disponibles para “List”, siendo las opciones
más útiles “Pins: All” (selecciona todas las señales definidas como input y output en el código VHDL)
y “Design Entry (all names)” (selecciona todas las señales definidas en el sistema por Quartus II,
incluyendo señales de entrada, salida e intermedias (signals)).
Las señales a simular deben pasar a la segunda columna (5), para lo que se las debe
seleccionar haciendo clic en la señal o señales deseadas y hacer clic en los botones entre ambas
columnas (6) (“>” lleva las señales seleccionadas a la columna derecha, “>>” lleva todas las señales
disponibles a la segunda columna; “<” y “<<” realizan una operación similar pero el destino es la
columna izquierda). Las señales definidas como buses o grupos de bits aparecerán como grupo
(group) y como señales individuales. Es suficiente seleccionar el grupo como señal a simular,
pudiendo este separarse posteriormente si es necesario. Para finalizar, se debe hacer clic en el botón
OK
Ventana del Node Finder. Los números corresponden con la descripción en el texto.
Ingreso de señales
Una vez seleccionadas las señales para la simulación, se debe proceder a dibujar las entradas
correspondientes. Por defecto, todas las entradas aparecen con nivel lógico ‘0’; todas las salidas y
21
Guía Quartus II –CPLD-FPGA
señales intermedias tienen nivel indeterminado (X si son simples, XXX si son buses). Puede asignarse
un valor a cualquiera de las señales disponibles, pero solo debería hacerse esto a las señales de
entrada (la simulación calculará los valores de las señales intermedias y de salida). Las señales
aparecen en el orden que han sido cargadas por el Node Finder, pudiendo cambiarse esto haciendo
clic y arrastrando las señales a los lugares requeridos.
Simulation Waveform Editor después de cargar las señales con Node Finder. Nótese que la
señal “c” (out) ha sido seleccionada haciendo clic sobre ella en el “área de señales”. La línea celeste
debajo de la señal “saldo” indica que si se suelta el mouse, la señal “c” quedará en esa posición.
Para dibujar las señales, se debe seleccionar toda o una parte de la señal y asignar el valor
correspondiente. Para seleccionar parte de la señal, se hace de forma similar a seleccionar texto con
el mouse (hacer clic y arrastrar); seleccionar toda la señal sigue el mismo método que para cambiar
la posición de la señal en el “área de señales”. La zona seleccionada se pintará de celeste. A
continuación, se puede hacer clic derecho > Value, ir al menú Edit > Value o emplear directamente
la barra de herramientas debajo de la barra de menús. Esta barra tiene diferentes opciones
identificadas con los siguientes íconos.
22
Guía Quartus II –CPLD-FPGA
Weak Low/Weak High (‘0’/’1’ lógico): Equivalente a ‘0’ o ‘1’ lógico mediante
resistores pull down/pull up respectivamente.
Invert (Invertir): Complementa bit a bit el valor actual de la señal (‘0’ y ‘1’). Los
estados ‘X’ y ‘Z’ no se ven afectados
Count Value (Contador): Conteo ascendente. Se puede escoger la base y el
incremento. Se puede generar conteo descendente aplicando Count Value e Invert.
Clock (Reloj): Genera una señal de reloj bit a bit (se puede aplicar también a buses).
Permite establecer periodo, offset y ciclo de trabajo
Arbitrary/Random Value (Valor arbitrario/aleatorio): La señal adquiere un valor
arbitrario (introducido por el usuario) o aleatorio. Random Value permite
seleccionar cada cuánto se genera un nuevo valor aleatorio. Seleccionar Random
Value nuevamente recalcula la señal.
Simulation Waveform Editor, después de ordenar las señales y establecer valores para las
señales de entrada. La señal OK se ha formado con Clock (periodo = 100 [ns], offset = 20
[ns], duty cycle = 20%). La señal ID se ha generado con Random Value (fixed interval = 100
ns) La señal CS se ha formado con arbitrary value, seleccionado intérvalo a intérvalo. Se ha
seleccionado el intervalo desde t = 200 [ns] hasta t = 600 [ns] de la señal ID (se puede
verificar en la barra de tiempos).
23
Guía Quartus II –CPLD-FPGA
El “área de dibujo” puede editarse, así como la forma de seleccionar las señales. En el menú
Edit, se tienen las siguientes opciones:
La figura 6 se consiguió estableciendo un Grid Size = 100 [ns], End Time = 1 [us] y teniendo
la opción Snap to Grid activada. Es importante notar que End Time debe estar comprendido entre
10 [ns] y 100 [us], debiendo tomarse esto en cuenta para la simulación y posterior implementación
de sistemas con señales de reloj.
Las señales pueden agruparse en buses de señales y los buses de señales pueden
desagruparse. Para ello, se deben seleccionar la señal o las señales de interés (mantener la tecla Ctrl
presionada permite seleccionar señales discontinuas haciendo clic sobre cada una de ellas
simultáneamente; la tecla Shift permite seleccionar un grupo contiguo de señales haciendo clic en
el inicio y el final del grupo). A continuación, se hace clic derecho sobre la selección en el “área de
señales”, y se escoge Grouping > Group… o Ungroup… según corresponda. Se debe ingresar un
nombre de grupo al agrupar señales. Es posible establecer el orden de los bits del bus (orden
ascendente o descendente) mediante “Reverse Group o Bus Bit Order”, en el mismo menú.
24
Guía Quartus II –CPLD-FPGA
Finalmente, una vez cumplidos los pasos anteriores, se puede proceder a simular. Las
simulaciones pueden realizar mediante los botones “Run Functional Simulation” y “Run Timing
Simulation” (íconos de Play sin reloj y con reloj respectivamente, encima del diagrama de tiempos).
En ambos casos, se genera una ventana donde el programa empieza a ejecutar código (si existen
errores que impidan realizar la simulación, el proceso se detiene allí). Si todo se ejecuta
correctamente, surgirá una nueva ventana, solamente de visualización (Read-Only). Esta ventana
no puede guardarse ni modificarse en cuanto a los valores de las señales, pero si se puede
interactuar con el resto de elementos (zoom, Grid Size, etc.).
25
Guía Quartus II –CPLD-FPGA
Una vez culminada la compilación se procede a la asignación de pines, se debe hacer click en el icono
de Pin Planner o en la barra de menú en Assignments o bien se puede usar el método abreviado con
el teclado Ctrl+Shift+N, luego se le abrirá la ventana donde se muestra los Pines del CPLD o FPGA
que esté trabajando.
A continuación se muestra el diagrama de Pines del CPLD EPM240T100C5 de la familia MAX II, donde
es importante reconocer los pines que se utilizaran.
Pines de E/S
GNDINT
GNDIO (1,2)
VCCIO (1,2)
Pines de
grabación de la
tarjeta
Pines de doble
propósito (DEV_O/E,
DEV_CLRn)
26
Guía Quartus II –CPLD-FPGA
3. Pines de reloj
GCLK (Global Clock)
Pines de doble propósito, pudiendo tener una de estas funciones:
- Formar parte de la red global de reloj, ya sea como señales de entrada de reloj externa o
señales de control (reset, preset, etc.). Para los dispositivos MAX II, se tiene 4 GCLK, que
recorren toda la red de reloj del dispositivo. Esto permite programar diferentes partes del
sistema con señales de reloj diferentes.
- Servir como entrada o salida programable (opción por defecto).
27
Guía Quartus II –CPLD-FPGA
En la parte de Location se asignan los pines que representaran las entradas o salidas de la entidad
La columna I/O Standard debe ser elegida de forma que los niveles de tensión sean adecuados al
uso que se tenga, y también en correspondencia con los niveles de voltaje del CPLD o FPGA.
28
Guía Quartus II –CPLD-FPGA
Instalación de controlador
1. Conectar el controlador USB BLASTER
2. Abrir administrador de dispositivos
Dispositivo USB
Blaster conectado
a la computadora
29
Guía Quartus II –CPLD-FPGA
30
Guía Quartus II –CPLD-FPGA
6. Seleccionar “Cerrar”
Luego de tener el dispositivo instalado se pasa al proceso de programación, se debe hacer clic en
el icono de programmer en la ventana de trabajo de Quartus II.
31
Guía Quartus II –CPLD-FPGA
Program/Configure- Programa los datos cargados desde uno o más archivos de programación o un
dispositivo examinado en uno o más dispositivos en blanco (o borrados).
Blank-Check - Examina uno o más dispositivos para asegurarse de que cada uno está en blanco o
completamente borrado.
Examine - Carga los datos de programación de un dispositivo en un buffer de datos temporal. Sólo
puede examinar un dispositivo de una cadena a la vez. Esta opción se excluye mutuamente de todas
las demás opciones para ese dispositivo y todos los demás dispositivos de la cadena. Cuando esta
opción está activada, todas las demás opciones de dispositivo no están disponibles. Debe guardar
los datos de programación de los dispositivos examinados antes de guardar el archivo de descripción
de cadena (.cdf ) . Guarde los datos de programación de un dispositivo examinado seleccionando el
dispositivo y haciendo clic en Guardar archivo en el programador. Puede examinar un dispositivo
flash en una cadena JTAG si el dispositivo al que está asociado contiene un bloque IP de SFL o PFL.
Si no se detecta un bloque IP de SFL o PFL, la lista de archivos en el Programador muestra un mensaje
de texto indicando que la imagen de fábrica se cargará en el dispositivo y la opción de programa /
configuración se activará automáticamente.
Security Bit- Evita que un dispositivo sea examinado y reprogramado inadvertidamente. Sólo los
dispositivos MAX 3000 y MAX 7000 utilizan esta opción.
32
Guía Quartus II –CPLD-FPGA
el modo de programación en serie activo. Si agrega un dispositivo FPGA a una cadena JTAG, estas
opciones (excepto Program/Configure) no están disponibles. En el modo Serial Pasivo, aunque
todas las opciones de programación desaparecen del Programador, haga clic en Iniciar
Programación en el menú Procesamiento sigue configurando dispositivos y dispositivos de
configuración de programas. Si no activa las opciones de programación de un archivo de
programación, dispositivo o dispositivo de configuración en una cadena JTAG, el Programador omite
ese archivo de programación, dispositivo o dispositivo de configuración cuando realiza las acciones
de programación seleccionadas en la cadena JTAG.
ISP Clamp: le permite utilizar el software Quartus II para mantener cada pin de E / S de un dispositivo
en un estado estático al programar el dispositivo. La secuencia de programación de estas opciones
es siempre la siguiente: Blank-Check (si está seleccionada), Program/Configure (si está
seleccionada) y, a continuación, Verify (si está seleccionada). Si selecciona Program/Configure
como una de las acciones que se realizan para dispositivos de configuración, dispositivos MAX 3000
o dispositivos MAX 7000 en modo JTAG, el programador borra automáticamente los dispositivos
antes de iniciar las acciones de programación seleccionadas.
33
Guía Quartus II –CPLD-FPGA
Luego escogemos una opción en Configuración device, en nuestro caso EPCS128, seguidamente
agregamos el archivo .sof de la compilación haciendo clic en Add sof page, hacemos clic en flash
Loader y agregamos el EP4CE22. Finalmente se hace clic en Generate y se generara en la carpeta
Output Files el archivo .jic que ya se puede programar en el FPGA.
34
Guía Quartus II –CPLD-FPGA
35