Sie sind auf Seite 1von 36

UNIVERSIDAD MAYOR DE SAN SIMON

FACULTAD DE CIENCIAS Y TECNOLOGIA


CARRERA INGENIERIA ELECTRONICA

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.

La tecnología de arreglos de compuertas en campo (FPGA) continúa siendo impulsada, ya


que el mercado de FPGAs va en aumento en todo el mundo, por sus aplicaciones para
procesamiento de señales y aplicaciones de control. Es por tal motivo que la
empresa Intel el 1 de junio de 2015 adquiere la empresa Altera, con lo cual Intel
toma el control de la empresa Altera.

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

2.- ¿Qué es CPLD, FPGA, VHDL?


Un CPLD (Complex Programmable Logic Device) Dispositivo Lógico Programable Complejo,
el cual tiene un mayor nivel de integración que un PLD, estos permiten implementar sistemas
digitales más eficaces, ya que utilizan menor espacio, mejoran la fiabilidad del diseño, reducen
costos. Está constituido por bloques lógicos que se comunican entre sí utilizando una matriz
programable de interconexiones.

Un FPGA (Field Programmable Gate Array) Arreglo o Matriz de Compuertas Programables


en Campo, está formado por una matriz de Bloques Lógicos Configurables (CLB), a su vez cada CLB
está formado por Slices y cada Slice formado por celdas lógicas.

Como se puede observar en la figura, la diferencia entre un CPLD y un FPGA radica en la


arquitectura, también se debe mencionar que la densidad de elementos lógicos en un FPGA es
mayor al de un CPLD.

CPLD FPGA

Un CPLD o FPGA son dispositivos electrónicos, que vienen encapsulados de montaje


superficial en su mayoría, con lo cual es común confundirlos con los tradicionales circuitos
integrados de propósito específico (ASIC), también se debe tener en cuenta que estos son elementos
de hardware.

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.

Finalmente el VHDL es un lenguaje de descripción de circuitos electrónicos digitales que


utiliza distintos niveles de abstracción. El significado de las siglas VHDL es (VHSIC (Very High Speed
Integrated Circuits) Hardware Description Language), lenguaje de descripción de hardware para
circuitos integrados de alta velocidad, el cual permite acelerar el proceso de diseño

Etapas de Diseño para un FPGA o CPLD

VHDL no es un lenguaje de programación, por ello conocer su sintaxis no implica


necesariamente saber diseñar con él. VHDL es un lenguaje de descripción de hardware, que permite
describir circuitos síncronos y asíncronos. Para realizar esto debemos:
- Pensar en compuertas y biestables, no en variables ni funciones.
- Evitar bucles combinacionales y relojes condicionados.
- Saber qué parte del circuito es combinacional y cuál secuencial.
¿Por qué usar un lenguaje de descripción hardware?
- Poder descubrir problemas en el diseño antes de su implementación física.
- La complejidad de los sistemas electrónicos crece exponencialmente, es necesaria una
herramienta que trabaje con el ordenador.
- Permite que más de una persona trabaje en el mismo proyecto.
El VHDL no es el único lenguaje de descripcion de hardware, otros pueden ser Verilog y
ABEL. La potencialidad de VHDL es que está altamente estructural, por lo cual es una buena elección.

4
Guía Quartus II –CPLD-FPGA

3.- Descarga del software Quartus II


El software de Quartus II se puede encontrar en el siguiente enlace:

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.

Luego se debe escoger la versión de Windows o Linux según el sistema operativo de su


computador, se debe tener en cuenta que se escoge la versión 13.0 y no la versión 17.0 puesto que
es muy limitado en la disponibilidad de dispositivos soportados, además de consumir varios recursos
computacionales (RAM y HDD).

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.

Al final de la descarga se debe obtener los siguientes 5 archivos:

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.

Se recomienda utilizar la versión 13 puesto que es estable, compatible con sistemas


operativos Windows 7 / Windows 8/ Windows 10 y en una gran distribución de sistemas operativos
Linux. Otra razón es que permite utilizar familias de CPLDs que son disponibles en el mercado.

3.2.- Familias de Altera


Las familias de CPLDs son:

La familia MAX V con una arquitectura única y no volátil son los


CPLDs de mayor densidad.

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.

Las familias de FPGAs son:

Los MAX 10 FPGA revolucionan la integración no volátil al ofrecer avanzadas


capacidades de procesamiento en un formato pequeño, sencillo y de bajo
costo.

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

La familia Arria ofrece un rendimiento óptimo y una eficiencia energética en el


rango medio.

La familia Stratix FPGA y SoC le permite ofrecer productos de alto rendimiento


y de última generación al mercado más rápido con un menor riesgo y una mayor
productividad

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.

CPLD MAX II Tarjeta de Desarrollo MAX II

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

4.- Instalación de Quartus II


En esta sección se explicara como instalar el programador de FPGAs y CPLDs de la familia
Altera Quartus II, este es un software diseñado por Altera para el análisis y la síntesis de diseños
realizados en HDL (Lenguaje de descripción de Hardware). Quartus II permite al desarrollador o
desarrolladora compilar sus diseños, realizar análisis temporales, examinar diagramas RTL y
configurar el dispositivo de destino con el programador.

Una vez descargado el software daremos click a ejecutar el archivo QuartusSetupWeb


donde se iniciara el siguiente programa:

Donde debemos darle click en Next>

9
Guía Quartus II –CPLD-FPGA

Luego se procede a aceptar la licencia de uso de software:

Después se debe elegir donde se guardaran los documentos en el disco duro:

10
Guía Quartus II –CPLD-FPGA

Seguidamente se debe elegir los complementos y familias a instalar:

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

Seguidamente empezara la instalación del programa, el cual tardara al menos 25mints,


dependiendo de los recursos computacionales de su computador

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

Click en Finish y el proceso de instalación queda terminado.

12
Guía Quartus II –CPLD-FPGA

5.- Configuración de Quartus II para iniciar una descripción de VHDL


INICIAR EL PROGRAMA DE QUARTUS II

Una vez iniciado el programa, para empezar primero se debe crear un proyecto en la pestaña

/ File – New Proyect Wizard

Ubicación donde
se guardara el
proyecto

Nombre del proyecto


Nota: el nombre del
proyecto es también el
nombre de la entidad
principal

/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

Datos del proyecto

/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

6.- Edición y Compilación de la descripción VHDL

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.

7.- Simulación de la descripción VHDL


Observaciones Previas

La simulación de entidades desarrolladas en VHDL requiere, a partir de la versión 13.0 de


Quartus II, del uso del Simulation Waveform Editor (Editor de Simulación de Formas de Onda), una
herramienta que viene incorporada con el paquete de Quartus. Para entidades desarrolladas en
Verilog o en versiones anteriores de Quartus, es necesario emplear otras herramientas (ModelSim,
también de Altera; o herramientas de terceros), debiendo realizarse configuraciones adicionales
para que Quartus II pueda relacionarse con estos programas. El uso de herramientas externas
también es frecuente en aplicaciones de diseño profesional, siendo la gran mayoría de paquetes de
pago. En esta guía, se realizará la simulación empleando el Simulation Waveform Editor
exclusivamente.

El requisito previo para realizar la simulación es el de haber compilado satisfactoriamente


el programa (que no existan errores en el proceso de compilación, pudiendo existir alertas críticas
y alertas (critical warnings y warnings, respectivamente). No es necesario realizar la asignación de
pines antes de realizar la simulación. Una vez conseguido esto, es necesario crear un archivo VWF
(VHDL Waveform File). Se recomienda crear este archivo, al igual que otros, en una carpeta exclusiva
para el proyecto. Esto puede conseguirse, teniendo el proyecto abierto en Quartus II, mediante File
> New… > University Program VWF, pudiendo usarse el atajo para New… disponible en una barra
File… (Ícono de hoja en blanco, debajo de la barra de menús). Pueden crearse tantos archivos VWF
como sean necesarios.

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.

Objetivos y tipos de simulación

Para fines de aprendizaje y de aplicación comercial e industrial, la simulación de entidades a


programar en PLDs tiene dos objetivos básicos:

18
Guía Quartus II –CPLD-FPGA

1) Verificar la exactitud del sistema (entendiendo exactitud como el funcionamiento correcto


del sistema para generar los resultados esperados mediante tablas de verdad, diagramas de
flujo, diagramas de estado, etc.).
2) Verificar que el sistema cumpla con los requisitos de temporización requeridos (es decir,
que se generen las señales de interés con márgenes de retardo aceptables).

En base a estos objetivos, se disponen de dos etapas de simulación: simulación funcional


(functional simulation), donde se verifica el funcionamiento lógico del circuito sin considerar efectos
de retardo; y simulación de sincronización (timing simulation), donde se toma en cuenta los retardos
producidos por las compuertas lógicas y las conexiones empleadas a lo largo del circuito, pudiendo
apreciarse el retardo total producido en una salida o en una señal intermedia de interés. Esta última
etapa es de mayor o menor importancia en relación a la frecuencia de operación del sistema.
Simulation Waveform Editor dispone de ambas etapas de simulación.

7.1 Simulation Waveform Editor


Una vez creado el archivo VWF, se desplegará automáticamente la ventana de trabajo del
Simulation Waveform Editor. Esta ventana puede dividirse en 5 zonas principales:

Ventana de Trabajo del Simulation Waveform Editor

1) Barra de menús, con opciones básicas.


2) Barra de herramientas del Editor de Formas de Onda (Waveform Editor Toolbar), donde se
tienen herramientas para dibujar formas de onda.
3) “Barra de tiempos”, donde se indican los tiempos de inicio y finalización de simulación, así
como la posición del puntero y de zonas seleccionadas en el diagrama de tiempos.
4) “Área de Señales”, donde se encuentran las señales de entrada, intermedias y de salida del
sistema a simular.
5) “Área de dibujo”, que es un diagrama de tiempos donde se encuentran representadas las
señales del sistema.

19
Guía Quartus II –CPLD-FPGA

El procedimiento general para manejar el Simulation Waveform Editor consiste en


seleccionar las señales de interés en el sistema, ingresar las señales de entrada dibujándolas en el
“área de dibujo” y obtener las señales intermedias o de salida del sistema por simulación. Por ello,
es importante simular todas las alternativas posibles de entrada, o bien identificar casos críticos o
relevantes para el funcionamiento del sistema.

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.

Selección/Zoom: Determinan si el cursor del mouse actúa como selector (puntero)


o como zoom (lupa). La opción activa se resalta en celeste (en este caso, selección).
Unknown (indeterminado): Valor por defecto de señales intermedias y de salida
antes de simular. También se puede interpretar como “no importa”.
Low/High (‘0’/’1’ lógico): Equivalente a conexión directa a GND/VCC según
corresponda.

22
Guía Quartus II –CPLD-FPGA

High Impedance (Alta Impedancia)

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

Valores posibles de una señal de un bit representados en el “área de dibujo”. De izquierda


a derecha, se tiene valor indeterminado (X), ‘0’ lógico, ‘1’ lógico, alta impedancia (Z), ‘0’
débil y ‘1’ débil (mediante resistores pull down/up)

El “área de dibujo” puede editarse, así como la forma de seleccionar las señales. En el menú
Edit, se tienen las siguientes opciones:

Grid Size… : Determina el tamaño de la grilla en el diagrama de tiempos (las divisiones


de la grilla no pueden ser mayores a la duración del diagrama de tiempos) .
Set End Time… : Establece el tiempo de finalización del diagrama de tiempos.
Snap to Grid: La selección abarca siempre divisiones enteras de la grilla (no hace falta
cubrir toda la división, solo una parte), tanto a izquierda como a derecha.
Snap to Transition: La selección se extiende hasta que se produzca una transición de nivel lógico
(flanco de subida o de bajada), tanto a izquierda como a derecha.

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ú.

Agrupar y desagrupar señales. Se ha seleccionado el grupo MD para desagruparlo.

24
Guía Quartus II –CPLD-FPGA

Simulación funcional y de sincronización

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.).

Simulación funcional. Nótese el (Read-Only) en la parte superior de la ventana. La señal


saldo tiene valor UUU (unknown, desconocido) debido a que no es de tipo input u output.

Para efectuar la simulación de sincronización (timing simulation), es necesario que no


existan advertencias referidas al timing en el proceso de compilación, debiendo ejecutarse una
herramienta para verificar esta situación y subsanarla de ser necesario (la herramienta por defecto
de Quartus II v. 13.0 es TimeQuest Timing Analyzer). Por esta razón, y debido a que la guía está
directamente orientada a servir como soporte a la realización de las prácticas de laboratorio de
Electrónica Digital II, donde no se tienen sistemas que trabajen a alta frecuencia, no se avanzará
más en esta guía respecto a la simulación de sincronización.

8.- Asignación de Pin Planner


La parte de asignación de Pin Planer se refiere a que el usuario debe asignar los pines físicos
que representaran las entradas y salidas que están descritas en la entidad de la descripción de VHDL.

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

VCCINT Pin de Clock


global (GCLK)

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

1. Pines de alimentación y referencia


Los dispositivos MAX II tienen alimentación (VCC) y referencia a tierra (GND) separadas para
el dispositivo en sí (core o núcleo) y para las entradas y salidas (I/O). Esto quiere decir que el núcleo
y las entradas y salidas pueden estar conectadas a fuentes de alimentación independientes entre sí.
Se tienen diferentes posibilidades para el voltaje de alimentación, tanto para el núcleo como para
los pines I/O; a esto se le denomina Multi-Volt (múltiple voltaje). Se debe consultar las fichas
técnicas respectivas para saber estos valores.

VCCIO y GNDIO (VCC y GND para Input/Output)


VCC y GND para los bancos de entradas y salidas. VCCIO puede tomar valores de 1.5, 1.8,
2.5 o 3.3 V. Los dispositivos MAX II tienen 2 bancos (grupos) de pines I/O, asociados a un pin VCCIO
y un GNDIO por banco. Esto permite manejar a cada banco con valores diferentes de voltaje, pero
con el mismo voltaje para todos los pines del mismo banco.

VCCINT y GNDINT (VCC y GND interno)


VCC y GND para el núcleo o core del CPLD. Los dispositivos MAX II soportan valores de
VCCINT de 2.5 y 3.3 V; internamente, se tiene un regulador de voltaje a 1.8 V.

2. Pines programables y para JTAG


Pines de I/O
Pines programables de E/S (entrada /salida).

DEV_OE (Device Output Enable)


Pin de doble propósito, pudiendo realizar solo una de estas dos tareas:
- Habilitación de salida (Output Enable). Si se selecciona esta opción, todos los pines que se
programen como salidas funcionarán como si fueran tri-states, teniendo como señal de
control única para todas las salidas DEV_OE.
- Servir como entrada o salida programable (opción por defecto).

DEV_CLRn (Device Clear)


Pin de doble propósito, pudiendo programarse para solo una de las siguientes tareas:
- Entrada de borrado (Reset) para todos los registros definidos en el diseño. Funciona como
el pin Reset o Clear de un flip-flop u otro dispositivo similar.
- Entrada o salida programable (opción por defecto).

TCK, TDI, TMS y TDO


Pines dedicados para JTAG. No pueden usarse como entradas o salidas programables.

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

9.-Programacion con dispositivo USB BLASTER

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

3. Clic derecho en el dispositivo USB Blaster

4. Seleccionar “Buscar software de controlador en el equipo”

5. Agregar la dirección (C:\altera\13.0sp1\quartus\drivers\usb-blaster) y seleccionar


Siguiente

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).

Verify - Verifica el contenido de un dispositivo programado contra los datos de programación


cargados desde un archivo de programación o un dispositivo examinado.

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.

Erase - Borra el contenido de los dispositivos MAX II.

Nota: Excepto para Program/Configure, estas opciones sólo se aplican a dispositivos de


configuración, dispositivos MAX 3000 y dispositivos MAX 7000 en modo JTAG y, excepto los Security
Bit, a dispositivos de configuración en serie EPCS1, EPCS4, EPCS16, EPCS64, EPCS128 o EPCS256 en

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

10.-Anexo- Conversión de Archivos JTAG


La conversión de Archivos es necesaria en caso de utilizar FPGAs para poder realizar el
grabado de una descripción en VHDL, este proceso no es necesario en los CPLDs.

Primero debemos ir al menú File > Convert Programming Files

A continuación realizaremos la conversión para un FPGA de la familia Cyclone IV. Primero en la


pestaña de Programming file type escogemos a qué tipo de archivo convertiremos, en nuestro
caso se debe convertir a JTAG indirect Configuration File (.jic)

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

Das könnte Ihnen auch gefallen