Está en la página 1de 142

INTRODUCCION A QUARTUS II 15.0 ® - MEDIANTE DISEÑO VHDL CON CYCLONE V

Introducción a Quartus II Diseño VHL con Cyclone V GX

1

INTRODUCCION A QUARTUS II 15.0 ® - MEDIANTE DISEÑO VHDL CON CYCLONE V

Elaborado por LEIDY CATHERINE BENAVIDES MUÑOZ MARIA EDITH MONTENEGRO GUTIERREZ

UNIVERSIDAD DEL CAUCA INGENIERIA FISICA JUNIO 2015 POPAYAN-CAUCA

Introducción a Quartus II Diseño VHL con Cyclone V GX

2

CONTENIDO

 

pág.

  • 1. Introducción………………………………………………………………………………………. 5

  • 2. Generalidades del Software y la FPGA………………………………………………

....

6

  • 2.1. Visión general de Quartus II……………………………………………………

...

6

  • 2.2. FPGA Cyclone V GX 5CGXfC5C6f27C7………………………………………

...

7

  • 2.2.1. Contenido del paquete Cyclone V GX y Componentes de la tarjeta…………………………………………………………………………………… 8

2.2.1.1. Diseño y componentes de la FPGA……………………………

..

 

8

2.2.1.2. Diagrama de bloques de la tarjeta……………………………

..

10

  • 2.2.2. panel de control……………………………………………………………………..

11

  • 2.2.2.1. Configuraciones del panel de control………………………………

11

  • 2.2.2.2. Control de los LEDs, Displays de 7 segmentos…………………..

13

  • 2.2.2.3. Interruptores y pulsadores……………………………………………..

 

15

  • 2.2.2.4. SRAM / / LPDDR2 controlador y programador………………..

15

  • 2.2.2.5. Tarjeta SD………………………………………………………………………

..

17

  • 2.2.2.6. ADC………………………………………………………………………………

..

18

  • 2.2.2.7. Comunicación USB-UART……………………………………………….

19

  • 2.2.2.8. HDMI-TX………………………………………………………………………

..

21

  • 2.2.2.9. HSMC……………………………………………………………………………

...

22

2.2.2.10. Estructura general del Panel de Control C5G………………….

23

  • 2.2.3. Uso general de la tarjeta Cyclone V…………………………………………

 

24

  • 2.2.3.1. Programación y Configuración de la tarjeta…………………

24

  • 2.2.3.2. Localización de pines, identificación y descripción de los componentes de la tarjeta…………………………………………….

28

2.2.4.

Sistema constructor (System Builder)………………………. 57

  • 2.1.4.1. Flujo de Diseño General………………………………………………

 

58

  • 2.1.4.2. Mediante C5G Sistemas Generador (System Generator)

59

  • 2.1.5. Códigos de Ejemplo Basados RTL……………………………………………. 66

  • 2.1.5.1. Configuración de Fabrica……………………………………………

..

66

  • 2.1.5.2. Prueba LPDDR2 SDRAM TRL………………………………………… 67

  • 2.1.6. Códigos de Ejemplo Basados en NIOS

67

  • 2.1.6.1. SRAM……………………………………………………………………………. 67

  • 2.1.6.2. UART para control USB LED………………………………………….

70

  • 2.1.6.3. HDMI-TX……………………………………………………………………… 74

  • 2.1.6.4. Prueba de bucle Transceptor HSMC………………… 80

  • 2.1.6.5. Grabación y reproducción de Audio…………………. 82

Introducción a Quartus II Diseño VHL con Cyclone V GX

3

pág

  • 2.1.6.6. Leer sistema de archivos de la tarjeta Micro SD........................................................................................85

  • 2.1.6.7. Demostración de reproductor de música de tarjeta

SD……………………………………………………………………

..

89

  • 2.1.6.8. Lectura

93

  • 2.1.6.9. Prueba LPDDR2 SDRAM de Nios II……………………………….

98

  • 3. Introducción a VHDL…………………………………………………………………………… 102

  • 3.1. ¿Qué es

102

  • 3.2. Ventajas de VHDL para diseño digital…………………………………………

102

  • 3.3. Elementos de VHDL……………………………………………………………………

102

  • 3.4. Identificadores…………………………………………………………………………… 105

  • 3.5. Operadores………………………………………………………………………………… 106

  • 3.6. Estructura Básica de un Archivo fuente en VHDL………………………… ..106

  • 4. Quartus II…………………………………………………………………………………………… 108

  • 4.1. Inicio en Quartus II………………………………………………………………………

108

  • 4.2. Asignación de Pines……………………………………………………………………….119

  • 4.3. Simulación de Circuitos Diseñados………………………………………………

124

  • 4.4. Programación en Cyclone V GX 5CGXFC5C6F27C7………………………….134

  • 5. Glosario…………………………………………………………………………………………………137

  • 6. Bibliografía……………………………………………………………………………………………142

Introducción a Quartus II Diseño VHL con Cyclone V GX

4

1.

INTRODUCCION

Actualmente los sistemas embebidos abarcan un gran porcentaje en el mercado de las nuevas tecnologías, pueden definirse como sistemas programables que no tienen un propósito en general. En el mundo actual están presentes en la mayoría de entornos, desde un simple celular hasta una macro-computadora; entre ellos es posible distinguir sistemas de software y hardware, para el temario del presente documento se enfatiza en el Hardware, específicamente en las FPGAs.

Se incluye información concerniente al uso del software Quartus II (versión 15.0) utilizado para descripción de hardware mediante código en VHDL (Very High Description Languaje), su síntesis, simulación e implementación en la FPGA Cyclone V GX de referencia 5CGXFC5C6F27C7, las dos herramientas son producidas por la empresa fabricante de dispositivos lógicos programables Altera ®.

Es concurrente ver que el uso de las FPGA cada vez crece más en las grandes industrias tecnológicas, debido a su capacidad de ser reconfiguradas y de ejecutar múltiples tareas además de su bajo costo en el mercado, lo que las hace muy asequible.

Introducción a Quartus II Diseño VHL con Cyclone V GX

5

  • 2. GENERALIDADES DEL SOFTWARE Y LA FPGA

Iniciando, una FPGA (Field Programmable Gate Array) es un dispositivo programable configurable que contiene internamente elementos lógicos que responden al diseño realizado por el usuario. El diseño se logra con código en lenguaje VHDL que se desarrolla en el entorno del software Quartus II ® , herramienta usada para la descripción, síntesis, análisis, simulación y programación del código a implementar en la FPGA; este software ofrece gran cantidad de herramientas de diseño así como un amplio catálogo de las FPGAs producidas por la misma empresa para realizar la implementación del diseño en ellas, la compañía Altera ofrece el software de dos maneras, la primera es con una suscripción de valor mensual, contiene completo soporte de los dispositivos y de la versión de este (incluyendo NIOS II y ModelSim); la segunda es una versión gratuita académica para estudiantes o interesados en el desarrollo de trabajo en el entorno, igualmente obtiene soporte aunque no sea un kit completo. Para descargar las versiones de la herramienta software debe dirigirse al sitio web de la empresa (altera.com).

  • 2.1. VISION GENERAL DE QUARTUS II

Como se ha mencionado anteriormente Quartus II es un software para el diseño de circuitos mediante lenguaje VHDL, además, simula y analiza la respuesta tanto de entradas como de salidas del diseño en forma de ondas cuadradas simulando dos

rangos: alto (‘1’) o bajo (‘0’), rangos que son valores lógicos que probablemente tomaran

tanto las entradas como salidas del circuito diseñado; una vez realizados todos los análisis y simulaciones del diseño se procede a la programación de la tarjeta, es decir, la implementación del circuito diseñado en la FPGA (Cyclone V GX). Cabe resaltar que existen numerosas referencias de FPGA, familias como Cyclone I, Cyclone II Cyclone III, Cyclone IV, Cyclone V, Arria 10, Arria V, Stratix 10, Stratix V, MAX 10, además los nuevos

kit’s de las FPGA SoC como Stratix 10, Cyclone V, Arria 10 y Arria V; cada una de ellas

contiene diferentes tarjetas con diferentes entornos de trabajo (su arquitectura no es igual).

Introducción a Quartus II Diseño VHL con Cyclone V GX

6

Spectra-Q Engine; es un motor desarrollado por el centro de software de diseño de Altera para aumentar los

 Spectra-Q Engine; es un motor desarrollado por el centro de software de diseño de Altera

niveles de rendimiento en cuanto a velocidad de los dispositivos programables de última generación. Consiste en un nuevo conjunto de algoritmos más rápidos y escalables, una nueva infraestructura de base de datos jerárquica, y una nueva tecnología de compilación unificada. Entre las mejoras se encuentra:

  • a. La compilación es 8 veces más rápida, utilizando algoritmos mejorados, optimizaciones adicionales y la compilación distribuida.

  • b. 10 veces más rápido en la relación entradas/salidas (E/S) de diseño mediante la creación de Asignación de terminales legales en el arranque del diseño.

  • c. 5 veces más rápido en la entrada de diseño al elevar el nivel de abstracción del diseño.

Q-sim; software creado por University Program para la simulación del comportamiento que pueden adoptar las entradas y salidas de diseño, se representan con ondas de forma cuadrada que corresponden a dos únicos valores lógicos, ‘1’ y ‘0’. Está disponible en Quartus II.

 Spectra-Q Engine; es un motor desarrollado por el centro de software de diseño de Altera

ModelSim; simulador profesional desarrollado por MentorGraphics, ofrece variadas herramientas útiles para la simulación de lenguaje de descripción de hardware, puede utilizarse de forma independiente o mediante Quartus II-Altera o Xilinx VIVADO.

 Spectra-Q Engine; es un motor desarrollado por el centro de software de diseño de Altera

NIOS II; es un núcleo procesador configurable que se puede adaptar a una FPGA en alguna de sus tres versiones ofrecidas (fast, standard o economy) dependiendo de la necesidad de aumento de rendimiento; es un procesador de 16 bits basado en una arquitectura Harvard ya que usa buses separados para instrucciones y datos.

 Spectra-Q Engine; es un motor desarrollado por el centro de software de diseño de Altera

Como nota adicional: Quartus II identifica errores de sintaxis y redacción, mas no corrobora que el diseño descrito por el usuario este bien realizado.

  • 2.2. FPGA CYCLONE V GX 5CGXFC5C6F27C7

En el desarrollo del documento se usara esta FPGA (Cyclone V GX 5CGXFC5C6F27C7) en la construcción de códigos en VHDL, ejemplos de asignación de pines, análisis, síntesis e implementación, es decir su uso en general; así mismo se especifican sus características y componentes con una breve descripción y modo de empleo de cada uno.

Introducción a Quartus II Diseño VHL con Cyclone V GX

7

Este dispositivo es muy empleado por su bajo costo y las óptimas características de rendimiento en cuestión de requerimientos de potencia, lo que conduce a una alta flexibilidad de diseño.

  • 2.2.1. Contenido del paquete Cyclone V GX y componentes de la tarjeta. Al paquete de Cyclone V GX pertenecen los siguientes elementos:

Este dispositivo es muy empleado por su bajo costo y las óptimas características de rendimiento en

Figura 1. Contenido del paquete Cyclone V GX

  • 1. Tarjeta Cyclone V GX

  • 2. Guía de usuario

  • 3. Cable de conexión USB tipo A o tipo B

  • 4. Adaptador de alimentación DC 12 V

    • 2.2.1.1. Diseño y componentes de la FPGA

Observando la arquitectura del dispositivo es conveniente tener presente tanto las características de diseño como la ubicación de los componentes y conectores del mismo.

Introducción a Quartus II Diseño VHL con Cyclone V GX

8

Figura 2. Tarjeta Cyclone V GX 5CGXFC5C6F27C7N FPGA CYCLONE V GX 5CGXf5C6CF27C7 # Componente # Componente

Figura 2. Tarjeta Cyclone V GX 5CGXFC5C6F27C7N

 

FPGA CYCLONE V GX 5CGXf5C6CF27C7

#

Componente

#

Componente

1

Conector de Alimentación DC

14

EPCQ

2

Encendido/Apagado

15

LPDDR2

3

Encabezado para Arduino

16

SMA_RX(ON)

4

2x20 GPIO

17

SMA_TX(ON)

5

Display 7-segmentos

18

Interruptor Ejecución Prog.

6

Botón CPU reset

19

Memoria Micro SD

7

10 interruptores (switches)

20

Line Out (salida de línea)

8

4 botones

21

Line In (Entrada de línea)

9

Jumper HSMC -12V

22

M/C In

10

18 leds (rojo - verde)

23

HDMI TX

11

Tarjeta Cyclone V GX

24

UART A USB

12

Conector HSMC

25

Conexión USB BLASTER

13

SRAM

   

Tabla 1. Componentes de la FPGA

Esta tarjeta tiene

características que pueden ser usadas desde

simples diseños de

circuitos hasta varios proyectos de multimedia. Como información relevante concerniente a la FPGA:

Introducción a Quartus II Diseño VHL con Cyclone V GX

9

  • a. Dispositivo FPGA

Tarjeta Cyclone V GX 5CGXFC5C6F27C7

77K Elementos Lógicos Programables

4884 Kbits de Memoria Embebida

6 PLL fraccionados

2 controladores de memoria de disco duro

3 transceptores de 3.125 G

  • b. Configuración y depuración

Dispositivo de configuración serial Quad EPCQ256 en FPGA

A bordo cable USB BLASTER (tipo B conector USB)

Modo de configuración apoyado JTAG y SA

  • c. Dispositivo de memoria

LPDDR2 de 4 Gb bus de datos 32x bits

SRAM 4Mb bus de datos de 16x bits

2.2.1.2. Diagrama de bloques de la tarjeta

a. Dispositivo FPGA  Tarjeta Cyclone V GX 5CGXFC5C6F27C7  77K Elementos Lógicos Programables  4884

Figura 3. Diagrama de bloques de la tarjeta

Introducción a Quartus II Diseño VHL con Cyclone V GX

10

  • 2.2.2. panel de control

La FPGA Cyclone V GX viene con un programa de Panel de Control que permite a los usuarios acceder a diversos componentes en la tarjeta de un ordenador. El ordenador se comunica con la tarjeta a través de una conexión usb. Este programa puede ser utilizado para verificar la funcionalidad de los componentes de la tarjeta o ser utilizado como una herramienta de depuración durante el desarrollo de cualquier

código RTL

(lenguaje de transferencia de registros).

Este capítulo presenta en primer lugar algunas funciones básicas del panel de control, luego describe su estructura en forma de diagrama de bloque y finalmente describe sus capacidades.

  • 2.2.2.1. configuración del panel de control

La utilidad del Software de Panel de Control se encuentra en el directorio "Herramientas/panel de control" en el CD del sistema Cyclone V GX. Es libre de instalación, simplemente tienes que copiar toda la carpeta a tu ordenador y poner en marcha el panel de control mediante la ejecución de la "C5G_ControlPanel.exe".

Los circuitos de control específicos deben descargarse a su tarjeta FPGA antes de que el panel de control pueda solicitar llevar a cabo las tareas requeridas. El programa llamara a la herramienta Quartus II para descargar el circuito de control en la tarjeta FPGA a través de la conexión USB-Blaster [USB-0].

Para activar el Panel de Control, realizar los siguientes pasos:

  • 1. instalar Quartus II (versión 15.0) correctamente en tu PC.

  • 2. Coloque el interruptor RUN/PROG en la posición RUN.

  • 3. Conecte el cable USB suministrado al puerto USB Blaster, la fuente de alimentación

de 12V y gire el interruptor.

  • 4. Iniciar el ejecutable C5G_ControlPanel.exe en el equipo. La interfaz de usuario de

Panel de Control se muestra en la figura 2-1.

  • 5. El flujo de bits C5G_ControlPanel.sof es cargado automáticamente tan pronto como

se inicia el C5G_ControlPanel.exe.

  • 6. en caso de una desconexión, haga clic en CONNECT donde el .sof se cargarán

nuevamente en la tarjeta.

Introducción a Quartus II Diseño VHL con Cyclone V GX

11

Tenga en cuenta que el Panel de Control va a ocupar el puerto USB hasta que cierre dicho puerto; se puede utilizar Quartus II para descargar un archivo de configuración en el FPGA, hasta que se cierre el puerto USB.

7. El Panel de Control está ahora listo para usar, se establece el estado ON/OFF para algunos LED y se observa el resultado en el tablero C5G.

Tenga en cuenta que el Panel de Control va a ocupar el puerto USB hasta que

Figura 2-1 el Panel de Control C5G

El concepto del Panel de Control C5G es ilustrado Figura 2-2. El "circuito de Control" que realiza las funciones de control se implementa en el tablero de la FPGA.

Se comunica con la ventana de Panel de Control, que es activa en el ordenador, vía USB Blaster. La interfaz gráfica se utiliza para enviar comandos al circuito de control, maneja todas las solicitudes y realiza las transferencias de datos entre la computadora y la tarjeta Cyclone V GX.

Introducción a Quartus II Diseño VHL con Cyclone V GX

12

Figura 2-2 Concepto de C5G Panel de Control El Panel de Control C5G puede utilizarse para

Figura 2-2 Concepto de C5G Panel de Control

El Panel de Control C5G puede utilizarse para iluminar con LEDs, cambiar los valores mostrados en el segmento 7, supervisar el estado de botones/interruptores, lectura/escritura de la SRAM y memoria LPDDR2, salida de patrón de color HDMI-TX para monitor VGA, verificar funcionalidad de conector HSMC I/OS, comunicar con la PC vía UART o interfaz USB, leer información de especificación de tarjeta SD. La función de lectura/escritura de una palabra o un archivo completo desde/para la memoria permite al usuario desarrollar aplicaciones multimedia (Reproductor de Audio, visor de imágenes) sin tener que preocuparse acerca de cómo construir un programador de memoria.

2.2.2.2 Control de los LEDs, Displays de 7 segmentos

Una función simple del Panel de Control es permitir el ajuste de los valores mostrados

en los LEDs, del displays de 7 segmentos. Elegir la opción LED

lleva a la ventana de la

Figura 2-3. Aquí, directamente puede activar los LEDs o desactivar individualmente o

haciendo clic en “Light All” 0 “Unlight All”.

Introducción a Quartus II Diseño VHL con Cyclone V GX

13

Figura 2-3 control de LEDs Al elegir la opción 7-SEG de la ventana mostrada en la

Figura 2-3 control de LEDs

Al elegir la opción 7-SEG de la ventana mostrada en la figura 2-4. Se puede utilizar directamente las flechas izquierda-derecha para controlar los patrones de 7 SEG de la tarjeta Cyclone V GX que se actualizan inmediatamente. Tenga en cuenta que no están habilitados los puntos de los 7 SEGs de la tarjeta Cyclone V GX.

Figura 2-3 control de LEDs Al elegir la opción 7-SEG de la ventana mostrada en la

Figura 2-4 controles de display 7-SEG.

Introducción a Quartus II Diseño VHL con Cyclone V GX

14

La capacidad de establecer valores arbitrarios en dispositivos de pantalla simple no es necesaria en las actividades de diseño típico. Sin embargo, ofrece a los usuarios un mecanismo simple para verificar que estos dispositivos funcionan correctamente en caso de que se sospeche un mal funcionamiento. Por lo tanto, puede ser utilizado para propósitos de solución de problemas.

2.2.2.3. Interruptores y pulsadores

Al elegir la opción interruptores de la ventana en la figura 2-5. La función está diseñada para monitorear el estado de interruptores deslizantes y botones de presión en tiempo real y mostrar el estado de una interfaz gráfica de usuario. Puede ser utilizado para verificar la funcionalidad de los interruptores deslizantes y botones pulsadores.

La capacidad de establecer valores arbitrarios en dispositivos de pantalla simple no es necesaria en las

Figura 2-5. Control de interruptores y botones.

La capacidad de verificar el estado del pulsador y el interruptor no es necesaria en actividades de diseño típico. Sin embargo, proporciona a los usuarios un mecanismo sencillo para comprobar si están funcionando correctamente los botones e interruptores. Por lo tanto, puede ser utilizado para propósitos de solución de problemas.

2.2.2.4. SRAM / / LPDDR2 controlador y programador

Introducción a Quartus II Diseño VHL con Cyclone V GX

15

El Panel de Control puede utilizarse para lectura/escritura de datos de los chips SRAM y LPDDR2 en la tarjeta Cyclone V GX. Como ejemplo, vamos a describir cómo se puede acceder a la LPDDR2; el mismo enfoque se utiliza para acceder al SRAM. Haga clic en la pestaña memoria y seleccione "LPDDR2" para llegar a la ventana Figura 2-6.

El Panel de Control puede utilizarse para lectura/escritura de datos de los chips SRAM y LPDDR2

Figura 2-6. Acceder a la LPDDR2.

Una palabra de 16 bits puede escribirse en la LPDDR2 entrando en la dirección de la ubicación deseada, especificando los datos a ser escritos y presionando el botón Write. Contenido de la ubicación se puede leer pulsando el botón Read. Figura 2-6 muestra el resultado de escribir el valor hexadecimal 06CA en dirección offset 200, seguido por el mismo lugar de la lectura.

La función de escritura secuencial del Panel de Control se utiliza para escribir el contenido de un archivo en la SDRAM LPDDR2 como se explica a continuación:

  • 1. especificar la dirección en el cuadro Dirección.

  • 2. Especificar el número de bytes a escribir en el cuadro longitud. Si el archivo entero

debe ser cargado, una marca puede colocarse en la caja de la longitud del archivo en vez

de dar el número de bytes.

  • 3. Para iniciar el proceso de escritura, haga clic en escriba un archivo al botón de la

memoria.

Introducción a Quartus II Diseño VHL con Cyclone V GX

16

4. Cuando el Panel de Control responde con el cuadro de diálogo estándar de Windows pidiendo el archivo de código fuente, especifique la ubicación del archivo deseado de la manera habitual.

El Panel de Control también permite cargar archivos con extensión .hex. Los archivos con extensión .hex son archivos de texto ASCII que especifican los valores de memoria utilizando caracteres ASCII para representar los valores hexadecimales. Por ejemplo, un archivo que contiene la línea

0123456789ABCDEF

Define ocho valores de 8 bits: 01, 23, 45, 67, 89, AB, CD, EF. Estos valores se cargarán consecutivamente en la memoria.

La función leer secuencial, se utiliza para leer el contenido de la LPDDR2 y llenarlos en un archivo como se explica a continuación:

  • 1. Especificar la dirección en el cuadro Dirección.

  • 2. Especificar el número de bytes que se copia en el archivo en el cuadro longitud. Si todo el contenido de la LPDDR2 van a copiarse (que implica los 512 Mbytes), luego coloque una marca de verificación en el cuadro de memoria.

  • 3. Pulse cargar contenido de memoria a un botón de archivo.

  • 4. Cuando el Panel de Control responde con el cuadro de diálogo estándar de Windows pidiendo el archivo de destino, especifique el archivo deseado de la manera habitual.

Los usuarios pueden utilizar la SRAM de forma similar.

2.2.2.5. Tarjeta SD.

La función está diseñada para leer la información de identificación y especificación de la tarjeta SD. El modo de SD de 4 bits se utiliza para acceder a la tarjeta SD. Esta función puede utilizarse para verificar la funcionalidad de la interfaz de la tarjeta SD. Siga los siguientes pasos para realizar el ejercicio de la tarjeta SD:

  • 1. Al elegir la tarjeta SD se muestra la ventana de la Figura 2-7.

  • 2. Insertar una tarjeta SD a la tarjeta Cyclone V GX y luego presione el botón de lectura para leer la tarjeta SD. Identificación de la tarjeta SD, la especificación y la información de formato del archivo se mostrará en la ventana de control.

Introducción a Quartus II Diseño VHL con Cyclone V GX

17

Figura 2-7 leer la SD tarjeta de identificación y especificación. 2.2.2.6. ADC Desde el Panel de

Figura 2-7 leer la SD tarjeta de identificación y especificación.

2.2.2.6. ADC

Desde el Panel de Control, los usuarios son capaces de ver el convertidor de analógico a digital de 12 bits y ocho canales de lectura. Los valores mostrados son el registro del ADC y las salidas de todos los ocho canales independientes. La tensión indicada es la tensión de la lectura de los pines separados de la cabecera de extensión. Figura 2-8 muestra las lecturas ADC cuando se elige la pestaña de ADC.

Introducción a Quartus II Diseño VHL con Cyclone V GX

18

Figura 2-8 lecturas de ocho canales ADC. 2.2.2.7. Comunicación USB a UART El Panel de Control

Figura 2-8 lecturas de ocho canales ADC.

  • 2.2.2.7. Comunicación USB a UART

El Panel de Control permite verificar el funcionamiento del UART para interfaz de comunicación serial del USB de la tarjeta Cyclone V GX. La configuración se establece mediante la conexión de un cable USB desde el PC al puerto USB en el Panel de Control se comunica con el software emulador de terminal en el PC, o viceversa. La ventana de terminal de recepción del Panel de Control monitoriza el estado de la comunicación serial. Siga los pasos siguientes para iniciar la comunicación UART:

  • 1. Elegir la ficha UART- USB la ventana de la Figura 2-9.

  • 2. Enchufe un cable USB del puerto USB del PC a la USB al puerto UART en la tarjeta Cyclone V GX.

  • 3. La configuración de la UART se proporciona a continuación en caso de utilizar una conexión desde el PC. Figura 2-10 muestra la pantalla de configuración de la UART en utilidad de masilla.

Velocidad en baudios: 115200

Bit de comprobación de paridad: ninguno bits de datos: 8

Introducción a Quartus II Diseño VHL con Cyclone V GX

19

bits de parada: 1

Control de flujo (CTS/RTS): apagado

  • 4. Para comenzar la comunicación, introduzca Letras específicas seguidas haciendo clic en enviar. Durante el proceso de comunicación, observar el estado de la ventana de terminal de recepción para comprobar su funcionamiento.

bits de parada: 1 Control de flujo (CTS/RTS): apagado 4. Para comenzar la comunicación, introduzca Letras

Figura 2-9 UART a USB de comunicación Serial.

Introducción a Quartus II Diseño VHL con Cyclone V GX

20

Figura 2-10 configuraciones UART en masilla. 2.2.2.8 HDMI-TX El Panel de Control C5G proporciona la función

Figura 2-10 configuraciones UART en masilla.

2.2.2.8 HDMI-TX

El Panel de Control C5G proporciona la función de patrón de vídeo que permite al usuario usar un patrón de color de salida HDMI interfaz a monitor LCD usando la tarjeta cyclone V GX. Siga los siguientes pasos para generar la función de patrón de video:

  • 1. Elegir la ficha Video de la ventana en la figura 2-11.

  • 2. Enchufe un cable HDMI al conector HDMI de la tarjeta Cyclone V GX y monitor LCD.

  • 3. Monitor LCD mostrará el mismo patrón de color de la ventana de panel de control.

  • 4. Haga clic en el desplegable del menú mostrado en la figura 2-11 donde puede generar el patrón seleccionado individualmente.

Introducción a Quartus II Diseño VHL con Cyclone V GX

21

Figura 2-11 Pantalla VGA de control. 2.2.2.9. HSMC Seleccione la ficha HSMC para ver la ventanahttp://hsmc_loopback.terasic.com . Introducción a Quartus II – Diseño VHL con Cyclone V GX 22 " id="pdf-obj-21-2" src="pdf-obj-21-2.jpg">

Figura 2-11 Pantalla VGA de control.

2.2.2.9. HSMC

Seleccione la ficha HSMC para ver la ventana que se muestra en la figura 2-12. Esta función está diseñada para verificar la funcionalidad de las señales en el conector HSMC. Antes de ejecutar la prueba de verificación de bucle invertido HSMC, siga las instrucciones que se observó en la sección de instalación de bucle y haga clic en verificar. Recuerde apagar la tarjeta Cyclone V GX antes de instala el adaptador de bucle invertido HSMC para evitar cualquier daño a la tarjeta.

El adaptador de bucle invertido HSMC no se proporciona en el paquete kit pero puede adquirirse a través del sitio web: http://hsmc_loopback.terasic.com.

Introducción a Quartus II Diseño VHL con Cyclone V GX

22

Figura 2-12 HSMC bucle verificación prueba realizada bajo Panel de Control. 2.2.2.10. Estructura general del Panel

Figura 2-12 HSMC bucle verificación prueba realizada bajo Panel de Control.

  • 2.2.2.10. Estructura general del Panel de Control C5G

El Panel de Control C5G se basa en un sistema de Nios II Qsys instanciado en la FPGAS Cyclone V GX con software que se ejecuta en la memoria del chip. La parte de software se implementa en código de C; la parte de hardware se ejecuta en código de Verilog HDL con constructor de Qsys. El código fuente no está disponible en el CD del sistema C5G.

Para ejecutar el Panel de Control, los usuarios deben seguir el ajuste de configuración según la sección 3.1. En la Figura 2-13 muestra la estructura del Panel de Control. Cada dispositivo de entrada/salida es controlado por el procesador de NiosII en el chip de la FPGA. Se realiza la comunicación con el PC vía USB Blaster. El NiosII interpreta los comandos enviados desde el PC y realiza las acciones correspondientes.

Introducción a Quartus II Diseño VHL con Cyclone V GX

23

Figura 2-13 el diagrama de bloques del panel de control C5G. 2.2.3. Uso general de la

Figura 2-13 el diagrama de bloques del panel de control C5G.

  • 2.2.3. Uso general de la tarjeta Cyclone V

  • 2.2.3.1. Programación y Configuración de la Tarjeta

El kit de Cyclone V GX contiene un dispositivo de configuración en serie que almacena los datos de configuración para la FPGA, estos datos se cargan automáticamente desde el dispositivo de configuración cuando la FPGA se enciende. Usando Quartus II es posible reconfigurar la FPGA en cualquier momento, igualmente es posible cambiar los datos no volátiles que se almacenan en el dispositivo de configuración. Es decir, existen dos tipos de programación: Programación JTAG y programación AS.

Cadena JTAG en Tarjeta Cyclone V GX;

Al usar la interfaz JTAG para configurar la FPGA, la cadena JTAG de Cyclone V debe formar un bucle cerrado permitiendo que el programador de Quartus II detecte el dispositivo. Un corto circuito en el pin1 y pin2 del JP2 puede desactivar las señales JTAG sobre el conector HSMC que lo hará una cadena de bucle cerrado JTAG en Cyclone V. Por lo tanto, el dispositivo solo será detectado por el programador de Quartus II; si el usuario desea conectar otro dispositivo FPGA en la cadena a través del conector HSMC, debe remover el puente (Jumper) JP2, con el pin 1 y pin2 abiertos en JP2, para permitir puertos de señales JTAG en el conector HSMC.

Introducción a Quartus II Diseño VHL con Cyclone V GX

24

Figura 4. Cadena JTAG en Cyclone V GX Figura 5. Encabezado de configuración de cadena JTAG.

Figura 4. Cadena JTAG en Cyclone V GX

Figura 4. Cadena JTAG en Cyclone V GX Figura 5. Encabezado de configuración de cadena JTAG.

Figura 5. Encabezado de configuración de cadena JTAG.

Para la programación y configuración de la tarjeta Cyclone V GX la FPGA es conectada a un ordenador mediante una conexión USB, de esa manera, la tarjeta será identificada por Quartus II como un dispositivo de conexión USB Blaster. Las secciones siguientes describen paso a paso los dos tipos de programación y configuración posibles para la tarjeta.

1. Programación JTAG; en este método de programación, Grupo de Acción Conjunta de Prueba (Juntion Test Action Group) llamado así por los estándares IEEE, el flujo de bits de configuración se descarga directamente en la FPGA; esta conserva la configuración, siempre y cuando se aplique energía a la placa, la información se perderá cuando no este alimentada.

Introducción a Quartus II Diseño VHL con Cyclone V GX

25

1.1. Configuración de la FPGA en modo JTAG;

para la descarga de un flujo de bits de

configuración en la FPGA Cyclone V GX en modo JATG:

* Asegurarse que la FPGA se encuentre alimentada por una fuente de poder. * Configurar el circuito de programación JATG mediante el interruptor deslizante (switch SW11) RUN / PROG, ajustándolo en el modo RUN, observar Figura 6. * Conectar el cable USB al puerto USB Blaster de la tarjeta. *La FPGA ya puede ser programada usando el programador de Quartus II (Quartus II programmer) seleccionando un archivo de flujo de bits de configuración con la extensión .sof. Observar la Figura 7.

1.1. Configuración de la FPGA en modo JTAG; para la descarga de un flujo de bits

Figura 6. Interruptor RUN / PROG SW11

1.1. Configuración de la FPGA en modo JTAG; para la descarga de un flujo de bits

Figura 7. Ilustración para la configuración de FPGA en modo JTAG

2. Programación AS; en este método, llamado Programación en Serie Activa, el flujo de bits de reconfiguración se descarga en el dispositivo de configuración Altera- EPCQ256, que proporciona almacenamiento no volátil del flujo de bits, de modo que la información se mantiene incluso cuando la alimentación a la FPGA está apagada. Cuando la alimentación esta activa, los datos de configuración en el EPCQ256 se cargan automáticamente en la FPGA.

Introducción a Quartus II Diseño VHL con Cyclone V GX

26

2.1. Configuración del dispositivo EPCQ256 en modo AS;

para descargar un flujo

de bits de configuración en el dispositivo EPCQ256, seguir los siguiente pasos ilustrados en la Figura 8:

* Asegurarse de la alimentación activa en la FPGA.

* Conectar el cable de conexión USB al puerto USB Blaster de la tarjeta.

* Configurar el circuito de programación JTAG por medio del interruptor RUN/PROG (SW11) en la posición PROG.

* El dispositivo EPCAQ256 ya puede ser programado mediante el programador de Quartus II utilizando un archivo de flujo de bits de configuración de extensión .pof .

* Finalizada la operación de programación deslizar nuevamente el interruptor RUN / PROG a la posición RUN, seguidamente restablecer la tarjeta deslizando el interruptor de alimentación y encendiéndola nuevamente; esto causara que los nuevos datos de configuración en el EPCQ256 sean cargados en la FPGA.

2.1. Configuración del dispositivo EPCQ256 en modo AS; para descargar un flujo de bits de configuración

Figura 8. Ilustración de la configuración del EPCQ256 en modo AS.

LEDs de Estado de la FPGA.

El entorno de la FPGA Cyclone V GX posee Leds que determinan el estado de la misma según sea su funcionamiento, observar la Tabla 2 y la Figura 9.

Referencia

Nombre del

Descripción

en Tarjeta

LED

Introducción a Quartus II Diseño VHL con Cyclone V GX

27

D5

12-V poder

Ilumina cuando la alimentación 12-V esta activa

D6

3.3-V poder

Ilumina cuando la alimentación 3.3-V esta activa

D24

HSMC_12-V

Ilumina cuando la alimentación 12-V HSMC es

poder

activa

D23

HSMC_PSNT_n

Ilumina cuando la tarjeta hija HSMC(Daughter Card) está presente

D6

Uled

Ilumina cuando el USB-Blaster está trabajando

Tabla 2. Descripción del estado de los LEDs

D5 12-V poder Ilumina cuando la alimentación 12-V esta activa D6 3.3-V poder Ilumina cuando la

Figura 9. Ubicación de los Leds de estado en la FPGA.

  • 2.2.3.2. Localización de pines, identificación y descripción de los componentes y de la tarjeta.

2.2.3.2.1. Entradas y salidas (I/O) de uso general.

  • 1. Pulsadores (push button);

La tarjeta incluye 4 pulsadores (push-button) que se comportan como pulsadores anti rebote (deounced) utilizando un circuito Schmitt Trigger (Figura 10). Las salidas del dispositivo Schmitt Trigger estan conectadas directamente a la FPGA; cada botón provee un nivel lógico alto cuando no está presionado, y provee un nivel lógico bajo cuando está presionado, son apropiados para ser usados como circuitos relojes (clocks) o

Introducción a Quartus II Diseño VHL con Cyclone V GX

28

circuitos de entradas y salidas de reinicio. La Tabla 3, muestra la localización de pines correspondiente en la tarjeta para cada pulsador.

circuitos de entradas y salidas de reinicio. La Tabla 3, muestra la localización de pines correspondiente

Figura 10. Conexión entre los pulsadores, el 74AUC17 y la FPGA

circuitos de entradas y salidas de reinicio. La Tabla 3, muestra la localización de pines correspondiente

Tabla 3. Nombre de pines para los pulsadores.

  • 2. Interruptores de deslice (Switches);

Consisten en 10 interruptores (switches) conectados a la FPGA en la tarjeta (ver Figura 11); no se comportan como anti rebote (debounced), y son asumidos para el uso de niveles de sensibilidad de entradas para el circuito; son conectados directamente a un

pin de la FPGA, cuando un interruptor está en la posición ‘bajo’ (DOWN) provee un nivel lógico bajo a la FPGA, y cuando está en la posición ‘alto’ (UP) provee un nivel lógico alto.

Los pines correspondientes a cada interruptor en la FPGA se encuentran en la tabla 4.

Introducción a Quartus II Diseño VHL con Cyclone V GX

29

Figura 11. Conexión y Posición de los interruptores. Tabla 4. Pines en la FPGA para interruptores.

Figura 11. Conexión y Posición de los interruptores.

Figura 11. Conexión y Posición de los interruptores. Tabla 4. Pines en la FPGA para interruptores.

Tabla 4. Pines en la FPGA para interruptores.

3.

Leds

Ellos son 18 LEDs controlables conectados a la FPGA en la tarjeta; se dividen en 10 LEDs rojos situados arriba de los 10 interruptores, y 8 LEDs verdes situados arriba de los pulsadores. Cada uno es accionado directamente por un pin de la FPGA; basta con conducirlo al pin asociado, lo lleva un nivel lógico alto, es decir, LED encendido, y conducirlo a un nivel lógico bajo lo apaga. Observar Figura 12 y Tabla 5.

Introducción a Quartus II – Diseño VHL con Cyclone V GX 30
Introducción a Quartus II – Diseño VHL con Cyclone V GX
30

Figura 12. Conexión entre los LEDs y la FPGA

Figura 12. Conexión entre los LEDs y la FPGA Tabla 5. Pines para cada LED en

Tabla 5. Pines para cada LED en la FPGA.

  • 4. Despliegue 7-segmentos;

La FPGA tiene 4 despliegues 7-segmentos de configuración ánodo común, como se indica

el a figura 13, las conexiones del despliegue se hacen por pines en la FPGA; así, se aplica

un nivel lógico alto con ‘0’ lógico, es decir, cuando enciende y un nivel lógico bajo con ‘1’

lógico para que no ilumine.

Observar en la figura 14 la conexión entre los despliegues HEX2 y HEX3, pues comparten un bus GPIO, cuando se usen estos dos despliegues se necesita los switches Dip S1/S2 que son localizados en la espalda de la tarjeta, deben estar en la posición ‘ON’.

Cada despliegue 7-segmentos tiene una lista de posiciones de 0 a 6 que controlan la visualización por medio de su iluminación; observar el esquemático (Figura 15).

Para la ubicación y detalle de los pines correspondientes a cada elemento (0 a 6) de los 7-segmentos, observar la tabla 6.

Introducción a Quartus II Diseño VHL con Cyclone V GX

31

Figura 14. Conexión entre despliegues 7-segs y la FPGA. Figura 15. Ubicación correspondiente PIN-ELEMENTO 7_SEG. Donde

Figura 14. Conexión entre despliegues 7-segs y la FPGA.

Figura 14. Conexión entre despliegues 7-segs y la FPGA. Figura 15. Ubicación correspondiente PIN-ELEMENTO 7_SEG. Donde

Figura 15. Ubicación correspondiente PIN-ELEMENTO 7_SEG.

Donde HEX0 corresponde al primer despliegue, HEX1 al segundo, HEX2 al tercero y HEX3 al cuarto 7-segmentos; los elementos se enumeran desde 0 a 6, de forma tal, que si se desea mostrar un número cualquiera, se tiene que iluminar cada elemento necesario para formar dicho número mediante un vector de 7 posiciones.

Introducción a Quartus II Diseño VHL con Cyclone V GX

32

Tabla 6. Pines correspondientes a cada elemento para cada 7-segs. 5. Circuito Reloj u Oscilador (Clock
Tabla 6. Pines correspondientes a cada elemento para cada 7-segs. 5. Circuito Reloj u Oscilador (Clock

Tabla 6. Pines correspondientes a cada elemento para cada 7-segs.

  • 5. Circuito Reloj u Oscilador (Clock Circuit);

El entorno de la tarjeta incluye un reloj (clock) de 50 MHz y un generador de reloj (Clock Generator) programable, las frecuencias por defecto de los relojes externos de la FPGA se muestran en la figura 16.

Introducción a Quartus II Diseño VHL con Cyclone V GX

33

Figura 16. Circuito reloj en la FPGA. La programación del Generador de Reloj es altamente flexible

Figura 16. Circuito reloj en la FPGA.

La programación del Generador de Reloj es altamente flexible y el generador/buffer de reloj es configurable, esto provee señales de reloj de calidad especial para transceptores de alta velocidad. El reloj generador es controlado por la FPGA a través de la interface serie 12C. El usuario puede modificar la frecuencia entre 0.16 MHZ y 200 MHz. Observar la tabla 7 y la tabla 8, donde se encuentra información concerniente a los pines para cada tipo de reloj.

Figura 16. Circuito reloj en la FPGA. La programación del Generador de Reloj es altamente flexible

Tabla 7. Pines de oscilador (clock o reloj) de 50 MHz no programable.

Introducción a Quartus II Diseño VHL con Cyclone V GX

34

Figura 8. Control de Oscilador (Clock o Reloj) programable-pines. 6. Puerto serial RS-232 a Interfaz USB

Figura 8. Control de Oscilador (Clock o Reloj) programable-pines.

  • 6. Puerto serial RS-232 a Interfaz USB

Está diseñado para realizar la comunicación entre la tarjeta y el PC, permitiendo una velocidad de transmisión de hasta 3 Mbps. Esta interfaz no suportaría señales de control de flujo HW. La interfaz física se hecha mediante un puente UART-USB o el chip de FT232R y se conecta al host mediante un conector (cable) tipo B.

Figura 8. Control de Oscilador (Clock o Reloj) programable-pines. 6. Puerto serial RS-232 a Interfaz USB

Tabla 9. Asignación de pines, Nombre de la señal y funciones. RS-232.

  • 7. SRAM: Memoria de Acceso Aleatorio Estática.

El dispositivo SRAM IS61WV25616 es destacado en el entorno de la tarjeta (Figura 17). Para mayor información sobre este dispositivo dirigirse a su hoja de especificaciones (Datasheet).

Figura 8. Control de Oscilador (Clock o Reloj) programable-pines. 6. Puerto serial RS-232 a Interfaz USB

Figura 17. Conexión entre SRAM y la FPGA.

Introducción a Quartus II Diseño VHL con Cyclone V GX

35

Tabla 9. Asignación de pines para SRAM y descripción. Introducción a Quartus II – Diseño VHL
Tabla 9. Asignación de pines para SRAM y descripción. Introducción a Quartus II – Diseño VHL
Tabla 9. Asignación de pines para SRAM y descripción. Introducción a Quartus II – Diseño VHL

Tabla 9. Asignación de pines para SRAM y descripción.

Introducción a Quartus II Diseño VHL con Cyclone V GX

36

  • 8. Memoria LPDDR2;

La tarjeta de desarrollo contiene una memoria DDR2 SDRAM (LPDDR2) móvil de baja potencia de 4Gb que es un CMOS de alta velocidad, la Memoria de Acceso Aleatorio Dinámico contiene 4, 294, 967,296 bits (Figura 18 y Figura 19). Para más información concerniente a la memoria LPDDR2 dirigirse a su datasheet. Tabla 10. Asignación de pines.

8. Memoria LPDDR2; La tarjeta de desarrollo contiene una memoria DDR2 SDRAM (LPDDR2) móvil de baja

Figura 18. Conexión entre la memoria LPDDR2 y la FPGA

8. Memoria LPDDR2; La tarjeta de desarrollo contiene una memoria DDR2 SDRAM (LPDDR2) móvil de baja

Figura 19. Ubicación de la Memoria LPDDR2 en el dispositivo.

8. Memoria LPDDR2; La tarjeta de desarrollo contiene una memoria DDR2 SDRAM (LPDDR2) móvil de baja

Introducción a Quartus II Diseño VHL con Cyclone V GX

37

Introducción a Quartus II – Diseño VHL con Cyclone V GX 38
Introducción a Quartus II – Diseño VHL con Cyclone V GX 38

Introducción a Quartus II Diseño VHL con Cyclone V GX

38

Tabla 10. Asignación de pines y descripción – memoria LPDDR2. 9. Tarjeta Micro SD; La tarjeta
Tabla 10. Asignación de pines y descripción – memoria LPDDR2. 9. Tarjeta Micro SD; La tarjeta

Tabla 10. Asignación de pines y descripción memoria LPDDR2.

  • 9. Tarjeta Micro SD;

La tarjeta de desarrollo es compatible con tarjetas Micro SD usando líneas de datos x4. Observar la conexión entre la tarjeta Micro SD y la FPGA (Figura 20) y la forma correcta de conectarla (Figura 21), además la asignación de pines se encuentra en la tabla 11.

Introducción a Quartus II Diseño VHL con Cyclone V GX

39

Figura 20. Conexión entre Micro SD y la FPGA. Figura 21. Insertar la Tarjeta Micro SD

Figura 20. Conexión entre Micro SD y la FPGA.

Figura 20. Conexión entre Micro SD y la FPGA. Figura 21. Insertar la Tarjeta Micro SD

Figura 21. Insertar la Tarjeta Micro SD en el Dispositivo.

Figura 20. Conexión entre Micro SD y la FPGA. Figura 21. Insertar la Tarjeta Micro SD

Tabla 11. Asignación de Pines para Tarjeta Micro SD.

Introducción a Quartus II Diseño VHL con Cyclone V GX

40

10. Interfaz HDMI TX;

La tarjeta de desarrollo provee un transmisor HDMI de alto rendimiento (High Performance) a través de los dispositivos análogos ADV7513 que incorporan características HDMI v1.4, incluyendo soporte a video 3D, y 165 MHz para soporte de todos los formatos de video hasta 1080p y UXGA. El ADV7513 es controlado a través de una interfaz de Bus serie 12C, que es conectada a los pines a la FPGA. Un diagrama esquemático es la figura 21, para información detallada acerca del uso del ADV7513 HDMI-TX dirigirse al sitio web de la manufactura y a su datasheet.

10. Interfaz HDMI TX; La tarjeta de desarrollo provee un transmisor HDMI de alto rendimiento (High

Figura 21. Conexión entre puerto HDMI-TX y la FPGA.

10. Interfaz HDMI TX; La tarjeta de desarrollo provee un transmisor HDMI de alto rendimiento (High

Introducción a Quartus II Diseño VHL con Cyclone V GX

41

Tabla 12. Asignación de Pines conexión HDMI-TX. 11. Interfaz de Audio La tarjeta ofrece una alta

Tabla 12. Asignación de Pines conexión HDMI-TX.

11. Interfaz de Audio

La tarjeta ofrece una alta calidad de audio (High Quality) de 24-bit mediante el dispositivo análogo SSM2603 CODEC de audio (codificador /decodificador). Este chip soporta entrada de micrófono, entrada de línea (line-in), y puertos de salida de línea, con una frecuencia de muestreo ajustable desde 8kHz hasta 96kHz. El SSM2603 es controlado mediante una interfaz de Bus serie 12C, que es conectada a la FPGA por medio de pines. Figura 22 esquemático de la conexión. Se recomienda consultar el datasheet del dispositivo SSM2603.

Tabla 12. Asignación de Pines conexión HDMI-TX. 11. Interfaz de Audio La tarjeta ofrece una alta

Figura 22. Conexión entre la interfaz de Audio y el dispositivo

Introducción a Quartus II Diseño VHL con Cyclone V GX

42

Tabla 13. Asignación de Pines para interfaz de Audio en la FPGA. 12. HSMC : Tarjeta

Tabla 13. Asignación de Pines para interfaz de Audio en la FPGA.

12. HSMC : Tarjeta Intermedia de Alta Velocidad (High-Speed mezzanine Card);

La tarjeta de desarrollo tiene un conector HSMC, este conector provee un mecanismo para ampliar el conjunto de periféricos (peripheral-set) de una tarjeta de acogida FPGA mediante tarjetas adicionales, que pueden hacer frente al requerimiento de señalización de alta velocidad de hoy, así como soportar la interfaz de dispositivos de baja velocidad. La interfaz HSMC es soportada por el JTAG, salidas y entradas de reloj, serial I/O de alta velocidad (transceptores), y un solo término o señalización diferencial.

La interfaz HSMC conectada al dispositivo es un conector femenino (hembra) HSMC que tiene un total de 172 pines, incluyendo 121 pines de señal, 39 pines de poder, y 12 pines de tierra. El conector HSMC está basado en el terreno Samtec de 0.5mm, el montaje superficial es de la familia QSH de alta velocidad, conectores de tarjeta-a-tarjeta (board-to-board). La tabla 14 indica el máximo poder de consumo para el conector HSMC.

Note que la barra de alimentación de +12V pasa por un puente (Jumper (Figura 23)), la función del jumper es evitar los casos en que el usuario no utilice la alimentación de 12V, y el poder va directamente a las tarjetas hijas HSMC y por lo tanto conduce a la quemas de las entradas y salidas (I/O) de la FPGA.

Este Jumper se encuentra situado en la esquina inferior derecha cerca del conector HSMC. La configuración predeterminada de fábrica es ‘OFF’, lo que significa que el poder de 12V no estará disponible para las tarjetas hijas. Cuando el usuario necesita conectar las tarjetas hijas, necesita cambiar el jumper en la posición ‘ON’. Observar la tabla 14.

Introducción a Quartus II Diseño VHL con Cyclone V GX

43

Figura 23. Ubicación del Jumper en la FPGA. Tabla 14. Posición del jumper ‘ON’ y ‘OFF’.

Figura 23. Ubicación del Jumper en la FPGA.

Figura 23. Ubicación del Jumper en la FPGA. Tabla 14. Posición del jumper ‘ON’ y ‘OFF’.

Tabla 14. Posición del jumper ‘ON’ y ‘OFF’.

Introducción a Quartus II Diseño VHL con Cyclone V GX

44

Ellos son tres bancos en este conector, se muestra la disposición del banco de señales con

Ellos

son

tres

bancos

en

este

conector,

se

muestra

la

disposición del

banco

de

señales

con

respecto

al

conector

SAMTEC.

La

tabla

15

muestra

las

asignaciones

de

pines

correspondientes.

Ellos son tres bancos en este conector, se muestra la disposición del banco de señales con
Ellos son tres bancos en este conector, se muestra la disposición del banco de señales con

Introducción a Quartus II Diseño VHL con Cyclone V GX

45

Introducción a Quartus II – Diseño VHL con Cyclone V GX 46
Introducción a Quartus II – Diseño VHL con Cyclone V GX 46
Introducción a Quartus II – Diseño VHL con Cyclone V GX 46

Introducción a Quartus II Diseño VHL con Cyclone V GX

46

Introducción a Quartus II – Diseño VHL con Cyclone V GX 47
Introducción a Quartus II – Diseño VHL con Cyclone V GX 47

Introducción a Quartus II Diseño VHL con Cyclone V GX

47

Tabla 15. Asignación de pines para conector HSMC. 13. Utilizando la Cabecera de Expansión 2x20 GPIO

Tabla 15. Asignación de pines para conector HSMC.

13. Utilizando la Cabecera de Expansión 2x20 GPIO (Expansion Header);

La tarjeta provee una cabecera de expansión de 40 pines (GPIO) y una cabecera de expansión Arduino Uno R3. Estos dos tipos de encabezados comparten partes de IO. En adición, el GPIO comparte I/O con dos de los despliegues 7-segmentos (Figura 24).

Tabla 15. Asignación de pines para conector HSMC. 13. Utilizando la Cabecera de Expansión 2x20 GPIO

Figura 24. Conexiones entre FPGA-GPIO-Arduino y 7-segs-bus compartido.

Introducción a Quartus II Diseño VHL con Cyclone V GX

48

Encabezado de Expansión de 40 pines (Expansion Header);

El encabezado de 40 pines se conecta directamente a 36 pines de la FPGA, y

también provee 5V DC, 3.3V DC y dos pines de GND (tierra). Distribución de I/O en el conector GPIO figura 25. El máximo poder de consumo de las tarjetas hijas (daughter card o tarjetas secundarias) se muestra en la tabla 16.

 Encabezado de Expansión de 40 pines (Expansion Header); El encabezado de 40 pines se conecta

Tabla 16. Poder de consumo de las Tarjetas secundarias.

 Encabezado de Expansión de 40 pines (Expansion Header); El encabezado de 40 pines se conecta

Figura 25. Disposición de pines GPIO.

Cada pin en el encabezado de expansión es conectado a dos diodos y un resistor que provee protección contra los altos y bajos voltajes (Figura 26).

Para el uso de esta regleta de expansión es necesario poseer una conexión de tipo hembra en un extremo y dependiendo de la aplicación se escoge el segundo extremo de la conexión. Ejemplo: La salida a un servomotor necesita una conexión con extremos macho y hembra.

Introducción a Quartus II Diseño VHL con Cyclone V GX

49

Figura 26. Protección de los pines. NOTA: Observar la posición del GPIO en la FPGA y

Figura 26. Protección de los pines.

NOTA: Observar la posición del GPIO en la FPGA y la etiqueta de cada pin, puesto que puede no coincidir gráficamente como se encuentra en la Figura 25. El GPIO en la FPGA Cyclone V GX 5CGXF5C6CF27C7 se encuentra en una posición invertida a como se ve en la Figura 25.

Figura 26. Protección de los pines. NOTA: Observar la posición del GPIO en la FPGA y

Introducción a Quartus II Diseño VHL con Cyclone V GX

50

Tabla 17. Asignación de pines para el encabezado GPIO.  Encabezado de Expansión de Arduino Uno

Tabla 17. Asignación de pines para el encabezado GPIO.

Encabezado de Expansión de Arduino Uno R3

La tarjeta provee compatibilidad con Arduino Uno R3, la expansión viene con cuatro cabeceras independientes. Las cabeceras conectan un resistor serial de 47 ohm a 17 pines (16 pines GPIO y 1 pin Reset) de la FPGA, 8 pines de entrada analógica se conectan al ADC, y también proporciona 12v DC (VCC12), 5V (VCC5), 3.3V DC (VCC3P3 y IOREF) y 3 pines de GND (Tierra). Ver Figura 27.

Introducción a Quartus II Diseño VHL con Cyclone V GX

51

Figura 27. Lista de nombres de pines de salida del conector Arduino Uno. La fuente azul

Figura 27. Lista de nombres de pines de salida del conector Arduino Uno. La fuente azul representa la definición de pin out de Arduino.

Los 16 pines GPIO se proveen al encabezado de Arduino (Arduino Header) para señales digitales IO y estas señales comparten bus (conexión) con la expansión de 40 pines del GPIO. Ver figura 28.

Para la asignación de pines ver la tabla 18, contiene información concerniente al conector de Arduino Uno (digital).

Introducción a Quartus II Diseño VHL con Cyclone V GX

52

Figura 28. Nombre de pines de salida del conector de Arduino, los nombres de las señales

Figura 28. Nombre de pines de salida del conector de Arduino, los nombres de las señales (compartiendo bus con el GPIO) conectados a la FPGA están representados con fuente roja.

Figura 28. Nombre de pines de salida del conector de Arduino, los nombres de las señales

Tabla 18. Lista de pines del conector de Arduino Uno-Digital.

Introducción a Quartus II Diseño VHL con Cyclone V GX

53

Además de los 16 pines para GPIO digital, también hay 8 entradas análogas en el Encabezado de Arduino Uno R3, es evidente que para ello debe utilizarse un ADC (Conversor de señales Análogas a Digitales), para este caso un ADC LTC2308 (referirse a su datasheet para mayor información), de Linear Technology en la tarjeta para posibles aplicaciones análogo-digital.

El LTC2308, tiene un bajo nivel de ruido, 500 ksps, 8 canales, ADC de 12-bits con una interfaz en serie compatible SPI/MICROWIRE. Este ADC incluye una referencia interna y un circuito de muestreo y retención (sample-and-hold circuit) completamente diferencial para reducir el ruido de modo común. El reloj de conversión interno permite que la serie de salida de datos del reloj externo (SCK) pueda operar en una frecuencia de hasta 40MHz.

Este ADC es controlado a través de una interfaz de bus serie SPI, que es conectada a los pines de la FPGA. Ver figura 29.

Además de los 16 pines para GPIO digital, también hay 8 entradas análogas en el Encabezado

Figura 29. Conexión entre la FPGA, el ADC y los pines análogos del conector de Arduino Uno R3.

Introducción a Quartus II Diseño VHL con Cyclone V GX

54

Fuera de los 16 pines de IO digitales, 2 pines poseen funcionalidades digitales y análogas acordes con los ajustes del Encabezado de Arduino (Arduino Header). El MCU en el menú principal de Arduino puede seleccionar la función análoga o la función digital. Desafortunadamente esta selección no puede hacerse con la FPGA y los usuarios tendrán que utilizar los correspondientes interruptores (Jumpers) para hacer la selección. Ver Tabla 19 y tabla 20.

Para activar la función digital o análoga de los dos pines mencionados anteriormente, se debe usar los jumpers JP15 y JP16 que tienen tres posición posibles: 1,2 y 3; para la función digital se tiene: Arduino_IO14 (SDA) y Arduino_IO15 (SCL) - observar la figura 29 para los posición de los jumpers. Para la función análoga se tiene: Analog_IN4 (ADA) y Analog_IN5 (AD5)- observar la figura 30 para la posición correcta de los jumpers.

NOTA: No hay componentes pre-soldados en el Analog_IN6 y Analog_IN7. Por lo tanto, si se desea utilizar estas dos entradas, necesitaran soldar los componentes tales como cabeceras hembra (conexión de extremo hembra) antes de que pueda ser conectado para la aplicación correspondiente.

NOTA: Se debe instalar cuidadosamente Arduino Shield después de haber instalado las piezas en Analog_IN6 y Analog_IN7 con el fin de evitar el desplazamiento al insertar la tarjeta de blindaje (Shield Board).

Recomendación; observar cuidadosamente la ubicación de los puertos analog_IN(0-7), además de las características de los puertos de doble función (Analog_IN4 y Analog_IN5- Arduino_IO14 y Arduino_IO15) .

Basarse conjuntamente en las figura 27, 28 y 29 para la ubicación de estos dos interruptores de doble función y con la tablas 19 y 20 utilizar la posición correcta de los interruptores para desarrollar la función deseada de cada puerto.

Introducción a Quartus II Diseño VHL con Cyclone V GX

55

Tabla 19. Posición de los Jumpers JP15 y JP16 para función Digital. Nota: visualizar la posición

Tabla 19. Posición de los Jumpers JP15 y JP16 para función Digital.

Nota: visualizar la posición de los jumpers, para función digital JP15 debe estar en la posición 3-2 para que el puerto trabaje como Arduino_IO14 y JP16 debe estar igualmente en la posición 3-2 para trabajar como Arduino_IO15.

Tabla 19. Posición de los Jumpers JP15 y JP16 para función Digital. Nota: visualizar la posición

Tabla 20. Posición de los Jumpers JP15 y JP16 para función Análoga.

Introducción a Quartus II Diseño VHL con Cyclone V GX

56

La posición de JP15 y JP16 debe ser 1-2 para que los puertos trabajen como Analog_IN4 y Analog_IN5.

A continuación observar la tabla 21, que contiene la información concerniente a la asignación de pines de la interfaz SPI del ADC, nombre de señales, descripción y demás.

La posición de JP15 y JP16 debe ser 1-2 para que los puertos trabajen como Analog_IN4

Tabla 21. Asignación de pines para la Interfaz SPI del ADC.

2.2.4. Sistema constructor (System Builder)

Este capítulo describe cómo los usuarios pueden crear un proyecto de diseño personalizado en la tarjeta utilizando la herramienta Software de Cyclone V GX Kit C5G sistema generador.

Introducción

El C5G sistema Builder es una utilidad de software para Windows, diseñada para ayudar a los usuarios a crear un proyecto de Quartus II. Los archivos de proyecto Quartus II generados incluyen:

Proyecto de Quartus II archivo (.qpf).

Archivo de configuración de Quartus II (.qsf).

Archivo de diseño de alto nivel (.v).

Archivo de restricciones de diseño Sinopsis (.sdc).

Documento de asignación de pines (.htm).

Proporcionando los archivos anteriores, el constructor de sistema C5G previene la ocurrencia de situaciones que son propensos a errores cuando los usuarios editan manualmente el archivo de diseño de alto nivel o colocar asignaciones de pines. Los errores más comunes de los usuarios son los siguientes:

  • 1. Daño de la tarjeta debido a asignaciones de voltaje pin o banco malo.

Introducción a Quartus II Diseño VHL con Cyclone V GX

57

2.

Mal funcionamiento de la tarjeta causado por conexiones de dispositivo incorrecto o falta de pines conectados.

  • 3. Degradación del rendimiento debido a las asignaciones de pin incorrecto.

2.2.4.1. Flujo de diseño general

Esta sección introducirá el flujo de diseño general para construir un proyecto de la tarjeta de desarrollo mediante el constructor de sistema C5G. El flujo de diseño general es ilustrado en la figura 33.

Los usuarios deben iniciar el sistema constructor C5G y crear un nuevo proyecto de acuerdo a sus necesidades de diseño. Cuando los usuarios completan la configuración, el constructor de sistema C5G generará dos archivos principales, un archivo de diseño de alto nivel (.v) y un Quartus II configuración archivo (.qsf).

El archivo de diseño de alto nivel contiene envoltura de Verilog HDL alto nivel, a los usuarios se les permite agregar su propio diseño/lógica. El archivo de configuración de Quartus II contiene información como tipo de dispositivo FPGA, asignación de pin de alto nivel y la entrada-salida estándar para cada pin I/O definida por el usuario.

Finalmente, el programador de Quartus II debe utilizarse para descargar archivo SOF usando la interfaz JTAG.

2. Mal funcionamiento de la tarjeta causado por conexiones de dispositivo incorrecto o falta de pines

Figura 33. El flujo de diseño general.

Introducción a Quartus II Diseño VHL con Cyclone V GX

58

2.2.4.2. Mediante C5G sistema generador

Esta sección proporciona procedimientos detallados sobre cómo se utilizar el constructor de sistema C5G.

Instalar y poner en marcha el generador de sistema C5G

El constructor de sistema C5G está situado en el directorio: "Tools\System Builder" en el CD del sistema Cyclone V GX. Los usuarios pueden copiar toda la carpeta en un ordenador sin necesidad de instalar la utilidad. Se inicia el constructor de sistema C5G ejecutando el C5G_SystemBuilder.exe en el equipo y aparecerá la ventana GUI como se muestra figura 34.

2.2.4.2. Mediante C5G sistema generador Esta sección proporciona procedimientos detallados sobre cómo se utilizar el constructor

Figura 34. La ventana SoC Kit sistema generador.

Nombre del proyecto entrada

Nombre del proyecto entrada como se muestra en la figura 35.

Nombre del proyecto: Escriba un nombre apropiado aquí, automáticamente se asignará como el nombre de su entidad de nivel superior diseño.

Introducción a Quartus II Diseño VHL con Cyclone V GX

59

Figura 35. Tipo de placa y nombre del proyecto.  Configuración del sistema Bajo la configuración

Figura 35. Tipo de placa y nombre del proyecto.

Configuración del sistema

Bajo la configuración del sistema al usuario se le permite la elección de los componentes incluidos en la tarjeta como se muestra figura 36. Cada componente de la tarjeta aparece donde los usuarios pueden activar o desactivar un componente según su diseño simplemente marcando un cheque o retirar el cheque en el campo correspondiente. Si el componente está habilitado, el constructor de sistema C5G generará automáticamente las asignaciones de pines asociados incluyendo el nombre de pin, ubicación de las clavijas, perno dirección y I/O estándar.

Introducción a Quartus II Diseño VHL con Cyclone V GX

60

Figura 36. Grupo de configuración del sistema.  GPIO expansión Los usuarios pueden conectar tarjetas secundarias

Figura 36. Grupo de configuración del sistema.

GPIO expansión

Los usuarios pueden conectar tarjetas secundarias GPIO en el conector GPIO ubicado en la placa de desarrollo. Como se muestra en la Figura 36, seleccione la tarjeta secundaria que desea añadir a su diseño bajo el conector HSMC apropiada a la que está conectada la tarjeta secundaria. El constructor del sistema genera automáticamente la asignación del pin asociado incluyendo nombre del pin, pin de las clavijas, pin dirección y I/O estándar.

Nota, la cabecera GPIO acciones bus con 7 segmentos HEX3 y HEX2. Así que, cuando se utiliza la cabecera GPIO, los 7 segmentos solamente HEX0 y HEX1 están disponibles como se muestra en "7 segmentos x 2" en la figura 37. También, físicamente, los usuarios necesitan configuración S1 y S2 Interruptor pequeño que se encuentra en el hardware y permite definir su configuración en posición OFF como se muestra en la figura 37. La S1 y S2 se encuentran en la parte posterior de la tarjeta cyclone V GX.

Introducción a Quartus II Diseño VHL con Cyclone V GX

61

Figura 37. Tablero de arranque de GPIO expansión. El "Prefijo de nombre" es una característica opcional

Figura 37. Tablero de arranque de GPIO expansión.

El "Prefijo de nombre" es una característica opcional que indica el nombre de pin de la tarjeta secundaria asignada en su diseño. Los usuarios pueden dejar este campo vacío.

Expansión de Arduino

Los usuarios pueden conectar tarjetas secundarias de Arduino en el conector de Arduino en la tarjeta de desarrollo. Como se muestra en la figura 38, seleccione "Arduino Digital" y marque el elemento "ADC". El constructor del sistema genera automáticamente la asignación del pin asociado incluyendo nombre del pin, ubicación de las clavijas, pin dirección y I/O estándar.

Nota, la cabecera de Arduino no comparte pin con 7 segmentos HEX3 y posición HEX2, por lo que los usuarios no necesitan configurar S1/S2 en la posición OFF.

Introducción a Quartus II Diseño VHL con Cyclone V GX

62

 Figura 38. Expansión de Arduino  Expansión de HSMC Los usuarios pueden conectar las tarjetas

Figura 38. Expansión de Arduino

Expansión de HSMC

Los usuarios pueden conectar las tarjetas secundarias HSMC en el conector HSMC ubicado en la tarjeta de desarrollo. Como se muestra en la figura 39, seleccione la tarjeta secundaria que desee agregar a su diseño en el conector apropiado de HSMC al que está conectada la tarjeta de secundaria. El constructor del sistema genera automáticamente la asignación del pin asociado incluyendo nombre del pin, ubicación de las clavijas, pin dirección y I/O estándar.

Introducción a Quartus II Diseño VHL con Cyclone V GX

63

Figura 39. Expansión de HSMC El "Prefijo de nombre" es una característica opcional que indica el

Figura 39. Expansión de HSMC

El "Prefijo de nombre" es una característica opcional que indica el nombre de pin de la tarjeta secundaria asignado en su diseño. Los usuarios pueden dejar este campo vacío.

Proyecto de gestión de configuración

El constructor de sistema C5G también proporciona funciones para restaurar por defecto, carga un entorno y guardar el archivo de configuración de la tarjeta de usuarios que se muestra en la figura 40. Los usuarios pueden guardar la información actual de configuración de la placa en un archivo .cfg y cargar en el constructor de sistema C5G.

Introducción a Quartus II Diseño VHL con Cyclone V GX

64

Figura 40. Configuraciones del proyecto.  Generación de proyectos Cuando los usuarios presionan el botón generar,

Figura 40. Configuraciones del proyecto.

Generación de proyectos

Cuando los usuarios presionan el botón generar, el constructor de sistema C5G generará los correspondientes archivos de Quartus II y los documentos que se enumeran en la tabla 4-1:

Tabla 4-1 Los archivos generados por sistema generador C5G.

Nombre de archivo

 

Descripción

 

1

<Nombre de proyecto>.v

Nivel superior archivo Verilog HDL para Quartus II

2

<Nombre de proyecto>.qpf

Archivo de Proyecto Quartus II

 

3

<Nombre de proyecto>.qsf

Configuración del archivo Quartus II

 

4

<Nombre de proyecto>.sdc

Archivo

de

restricciones

de

diseño

Sinopsis

de

Quartus II

5

<Nombre de proyecto>.htm

Documento de asignación de PIN

 

Los usuarios pueden utilizar el software Quartus II para agregar lógica personalizada en el proyecto y compilar el proyecto para generar el archivo de objeto de SRAM (.sof).

Introducción a Quartus II Diseño VHL con Cyclone V GX

65

  • 2.2.5. Códigos de Ejemplo Basado RTL

En la presente sección se provee un número de Códigos de Ejemplos Basado RTL diseñados para la Tarjeta de inicio (Starter Board). Todos estos archivos suelen ser recopilados en un archivo mayor contenido en el CD del sistema (incluido en el paquete de la FPGA).

  • 2.2.5.1. Configuración de Fabrica

La tarjeta C5G se expide de la fábrica con un flujo de bits de configuración por defecto que muestran algunas de las características básicas de la tarjeta. Siempre se debe tener presente la ubicación de los archivos para las demostraciones y la configuración requerida para realizarlas.

Localización de los archivos de demostración

*Project_directory: C5G_default *Bit strem used (Flujo de bits): C5G_default.sof

Demostraciones e instrucciones de instalación

*Alimentación en la Tarjeta C5G. *Se debe observar que los LEDs y los despliegues 7-segs parpadean. *Presionar CPU_REET_n para hacer que los LEDs y los 7-segs entren en modo “all light on”- (todas las luces encendidas). *Opcionalmente conectar una pantalla por la conexión HDMI y debe mostrar una imagen a color. *Opcionalmente conectar un altavoz a la salida de audio estéreo y pulsar el botón KEY1, se debe escuchar un zumbido de 1KHz en la salida. *Generalmente se proporciona un código fuente Verilog VHD en el archivo de demostraciones para ejemplificar los usos de templates (plantillas) y los puertos accesibles por pines de la FPGA.

Restaurar la configuración de fábrica

*Asegurar la alimentación de la tarjeta C5G *Conectar el cable USB al puerto USB Blaster *Configurar al modo JTAG de programación, con el interruptor en PROG

*Ejecutar el archivo de demostración “pof_C5G_Default.bat”.

*Un vez acabada la programación, posicionar el interruptor en RUN, restablecer la tarjeta con el interruptor de alimentación y volver a encenderla; esto causa que

Introducción a Quartus II Diseño VHL con Cyclone V GX

66

los nuevos datos de configuración en el dispositivo EPCQ256 sean cargados en la FPGA.

  • 2.2.5.2. Prueba LPDDR2 SDRAM TRL

Esta demostración presenta una función de prueba de la memoria en el banco de la LPDDR2 SDRAM en la tarjeta.

Diagrama de Bloques de Función

los nuevos datos de configuración en el dispositivo EPCQ256 sean cargados en la FPGA. 2.2.5.2. Prueba

La figura muestra el diagrama de bloques de función para esta demostración. El controlador utiliza 50MHz como reloj de referencia, genera un reloj de 330MHz como reloj de la memoria, y genera un reloj de sistema de completa velocidad (full-rate) de 330 MHz el propio controlador.

Los módulos RW_test leen y escriben todo el espacio de memoria de la LPDDR2 a través de la interfaz Avalon del controlador. En este proyecto, Avalon

  • 2.2.6. Códigos de ejemplo basado NIOS II

En este capítulo se ofrece una serie de NIOS II códigos bases ejemplo diseñados para la tabla de inicio. Estos ejemplos proporcionan demostraciones de las características principales que conectan a la interfaz de FPGAS, tales como audio, video, UART a USB, tarjeta SD, SRAM y HDMI. Todos los archivos asociados se pueden encontrar en la carpeta de demostraciones en el CD del sistema.

2.2.6.1. SRAM

Esta demostración presenta una función de prueba de memoria de SRAM en la tarjeta C5G. El tamaño de la memoria del SRAM es de 512KB.

Introducción a Quartus II Diseño VHL con Cyclone V GX

67

Diagrama de bloques del sistema

La Figura 6-1 muestra el diagrama de bloques del sistema de esta demostración. El sistema requiere un reloj de 100MHz de la tarjeta. En Qsys, Nios II y la memoria On-Chip están diseñados con el reloj de 100MHz, y el programa Nios II se ejecuta en la memoria del chip.

 Diagrama de bloques del sistema La Figura 6-1 muestra el diagrama de bloques del sistema

figura 6-1. Diagrama de bloques de la demostración básica de SRAM

El flujo del sistema es controlado por un programa de Nios II. En primer lugar, el programa Nios II escribe patrones de prueba en el conjunto de 512KB de SRAM. A continuación, llama a Nios II sistema función, alt_dcache_flush_all, para asegurarse de que todos los datos se han escrito en SRAM. Por último, lee datos de SRAM para verificación de datos. El programa mostrará avances en JTAG-Terminal lectura/escritura de datos hacia/desde el SRAM. Cuando haya completado el proceso de verificación, el resultado se muestra en la Terminal de JTAG.

Herramientas de diseño

  • Quartus II 15.0

  • Nios II

Demostración Código fuente

  • Directorio del proyecto Quartus: C5G_SRAM

  • Nios II: C5G_SRAM\Software

Proyecto de Compilación Nios II

Introducción a Quartus II Diseño VHL con Cyclone V GX

68

  • Antes de intentar compilar el diseño de referencia bajo Nios II, asegúrese de que el proyecto este limpio haciendo clic en 'Limpiar' en el menú 'Proyecto' de Nios II.

Demostración de Archivo por lotes Carpeta de archivo de lote de demo:

C5G_SRAM\demo_batch

La demostración de archivo por lotes incluye los siguientes archivos:

  • Archivo por lotes para USB-Blaster: C5G_SRAM.bat, C5G_SRAM.sh

  • Archivo de configuración de FPGA: C5G_SRAM.sof

  • Programa Nios II: C5G_SRAM.elf

Configuración de demostración

  • Asegúrese de Quartus II y Nios II están instalados en tu PC.

  • Encienda la tarjeta C5G.

Utilice el cable USB para conectar el PC y la tarjeta C5G (J10) e instalar a controlador USB Blaster si es necesario.

Ejecutar el archivo demo "C5G_SRAM.bat" para USB-Blaster bajo la carpeta de archivos por lotes, C5G_SRAM \demo_batch. Después de que el programa Nios II es descargado y ejecutado con éxito, aparecerá un mensaje en terminal de nios II. Introduzca un número digital para elegir la cantidad de veces que desea probar para SRAM. El programa mostrará información ingresada y el resultado, como se muestra en la figura 6-2.

Introducción a Quartus II Diseño VHL con Cyclone V GX

69

Figura 6.2. 2.2.6.2 UART para control USB LED Muchas aplicaciones necesitan comunicación con la computadora a

Figura 6.2.

2.2.6.2 UART para control USB LED

Muchas aplicaciones necesitan comunicación con la computadora a través de puertos comunes, el tradicional conector RS232 necesita conectarse a un cable RS232. Pero hoy en día muchos ordenadores personales no tienen el conector RS232 es muy inconveniente para el desarrollo de proyectos. La tarjeta C5G está diseñada para apoyar la comunicación UART a través de cable USB. El UART para circuito USB es responsable de convertir el formato de datos. Los desarrolladores pueden utilizar una cable USB en lugar de un cable RS232 para permitir la comunicación entre la FPGA y el equipo host. En esta demostración verá cómo controlar los LEDs mediante el envío de un comando en la terminal de ordenador masilla. El comando es enviado y recibido a través de un cable USB a la FPGA. Tenga en cuenta que en la FPGA, la información fue recibida y enviada a través de una IP UART.

La figura 6-3 muestra el diagrama de bloques de hardware de esta demostración. El sistema requiere un reloj de 50 MHz proporcionada de la tarjeta. El PLL genera un reloj de 100MHz para el procesador Nios II y la IP del controlador. Los LEDs son controlados

Introducción a Quartus II Diseño VHL con Cyclone V GX

70

por el IP PIO. El UART envía y recibe datos de comando y el comando se envía a través de la terminal masilla en el equipo.

por el IP PIO. El UART envía y recibe datos de comando y el comando se

Figura 6-3 Diagrama de bloques de demostración UART Control de LED.

Herramientas de diseño

  • Quartus II 15.0

  • Nios II

Demostración código fuente

  • Directorio del proyecto Quartus: C5G_UART

  • Nios II: C5G_UART_USB_LED\Software

Proyecto de Compilación Nios II

  • Antes de intentar compilar el diseño de referencia bajo Nios II, asegúrese de que el proyecto este limpio haciendo clic en 'Limpiar' en el menú 'Proyecto' de Nios II.

Demostración de archivo por lotes Carpeta de archivo de lote de demo:

C5G_UART_USB_LED\demo_batch

La demostración de archivo por lotes incluye los siguientes archivos:

  • Archivo por lotes para USB-Blaster: C5G_UART_USB_LED.bat, C5G_UART_USB_LED.sh

  • Archivo de configuración de FPGA: C5G_UART_USB_LED.sof

Introducción a Quartus II Diseño VHL con Cyclone V GX

71

  • Programa Nios II: C5G_UART_USB_LED.elf

Configuración de demostración

  • Conecte un cable USB entre su computadora y el conector USB (J11) de la C5G.

  • Poder en la C5G, si encuentras un puerto Serial USB desconocido en Administrador de dispositivos como se muestra en la figura 6-4. antes de ejecutar la demostración, debe instalar el UART a USB driver.

 Programa Nios II: C5G_UART_USB_LED.elf  Configuración de demostración  Conecte un cable USB entre suhttp://www.ftdichip.com/Drivers/VCP.htm . Abrir el administrador de dispositivos para asegurarse de que el puerto común se asigna al UART puerto USB como se muestra en la figura 6-5. El número común 9 (COM9) se asigna en este equipo. Introducción a Quartus II – Diseño VHL con Cyclone V GX 72 " id="pdf-obj-71-15" src="pdf-obj-71-15.jpg">

Figura 6-4 no se reconoce USB Serial Port en PC.

Para instalar driver UART_TO_USB en su computadora por favor, seleccione

puerto serial USB para actualizar el software del controlador. El archivo del

controlador puede

descargarse

desde

el

siguiente

sitio

web:

http://www.ftdichip.com/Drivers/VCP.htm. Abrir el administrador de dispositivos para asegurarse de que el puerto común se asigna al UART puerto USB como se muestra en la figura 6-5. El número común 9 (COM9) se asigna en este equipo.

Introducción a Quartus II Diseño VHL con Cyclone V GX

72

Figura 6-5 Compruebe el número de puerto COM asignado en la PC. Abra el software putty,

Figura 6-5 Compruebe el número de puerto COM asignado en la PC.

Abra el software putty, en el parámetro de tipo como se muestra en la figura 6-6 y haga clic en el botón abrir para abrir el terminal.

Introducción a Quartus II Diseño VHL con Cyclone V GX

73

Figura 6-6 configuración terminal putty.  Asegúrese de Quartus II y Nios II están instalados en

Figura 6-6 configuración terminal putty.

Asegúrese de Quartus II y Nios II están instalados en tu PC

Conectar USB Blaster a la C5G (J10) e instalar a controlador USB Blaster si es

necesario. Ejecutar el archivo demo "C5G_UART_USB_LED.bat" en la carpeta de archivo

por lotes C5G_UART_USB_LED\demo_batch. el resultado se ejecuta Nios II-terminal y en el terminal de putty.

En la terminal de masilla tipo carácter para cambiar el estado del LED. Escriba un

número digital para alternar el estado LEDR [9 desactivar todos LEDR.

..

0]

y escriba a/A o ON/OFF para activar o

2.2.6.3. HDMI-TX

Esta sección presenta un diseño de referencia para la programación del codificador de ADV7513 HDMI. La referencia completa se compone de dos partes: el programa de control de software y el diseño de hardware. Un conjunto de patrones de video previamente construidos será enviado a través de la interfaz HDMI y en el monitor LCD como el usuario inicia los binarios ejecutables proporcionados. El diseño incorpora

Introducción a Quartus II Diseño VHL con Cyclone V GX

74

algunas actividades que podría realizar el usuario para interactuar con el codificador HDMI-TX.

Diagrama de bloques del sistema

La figura 6-8 muestra el diagrama de bloques del sistema de este diseño de referencia. El "patrón generador de Video " módulo que hace frente a la generación de patrones de vídeo que se presentará en la pantalla LCD monitor. El patrón se compone en el camino de 24-bit RGB 4: 4: 4 (RGB888 por píxel de color sin submuestreo) codificación de color, que se corresponde con el formato de codificación paralela definida en la Tabla 1.6 de la Guía del hardware del usuario "ADV7513, "Como se muestra a continuación.

Tabla 6-1 Construir-en Modos de pantalla de la demostración HDMI TX. Datos de píxel [23:0] 17
Tabla 6-1 Construir-en Modos de pantalla de la demostración HDMI TX.
Datos de píxel [23:0]
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
R[7:0]
G[7:0]
B[7:0]

Se implementan un conjunto de modos de visualización para la presentación de los patrones de vídeo generados. El módulo "selector de fuente de vídeo" controla la selección de sincronización de vídeo actual entre los modos de visualización enumerados en la Tabla 6-2. El módulo "Control Mode" permite a los usuarios cambiar el modo de visualización actual a través la TECLA1

Tabla 6-2 Modos de pantalla de la demostración HDMI TX

Identificación de patrón

Formato de Video

PCLK (MHZ)

 
  • 0 640x480@60P

25

 
  • 1 720x480@60P

27

 
  • 2 1024x768@60P

65

 
  • 3 1280x1024@60P

108

 
  • 4 1920x1080@60P

148.5

 
  • 5 1600x1200@60P

162

En el módulo de la VPG, Altera IP "PLL Reconfig" se utiliza para programar la frecuencia de píxel de modo correspondiente a los datos .La RECONFIG "PLL" Altera IP para cada frecuencia de reloj se originaron desde el "controlador PLL". La fuente del módulo VPG está situada en la carpeta "C5G_HDMI_VPG\vpg_source".

Introducción a Quartus II Diseño VHL con Cyclone V GX

75

Figura 6-8 bloque de diagrama de la demostración de HDMI TX.  Herramientas de diseño 

Figura 6-8 bloque de diagrama de la demostración de HDMI TX.

Herramientas de diseño

  • Quartus II 15.0

  • Nios II

Demostración de Código fuente

  • Directorio del proyecto Quartus: C5G_HDMI_VPG

  • Nios II: C5G_HDMI_VPG\Software

Reconstruir el proyecto Quartus II

  • Inicie el programa «herramienta de diseño Nios II ». Cuando el programa pide el lugar de trabajo, introduzca su ruta local completa de la carpeta "C5G_HDMI_VPG\Software" en el cuadro de edición.

  • Los usuarios pueden seguir los métodos enumerados a continuación para reconstruir una copia local del programa Nios II:

Introducción a Quartus II Diseño VHL con Cyclone V GX

76

  • Haga clic derecho en el proyecto HDMI_DEMO_bsp en el Proyecto Explorar. Seleccione "Nios II" -> "Generar BSP."

  • Haga clic derecho en el proyecto HDMI_DEMO_bsp en el Proyecto Explorar. Seleccione "Proyecto limpieza".

  • Haga clic derecho en el proyecto HDMI_DEMO_bsp en el Proyecto Explorar. Seleccione "Crear Proyecto".

  • Haga clic derecho en el proyecto HDMI_DEMO en el Proyecto Explorar. Seleccione "Proyecto limpieza".

  • Haga clic derecho en el proyecto HDMI_DEMO en el Proyecto Explorar. Seleccione "Crear Proyecto".

  • El binario recién construido se encuentra en la carpeta "C5G_HDMI_VPG\Software\HDMI_DEMO" y nombrado como "HDMI_DEMO.elf". Puede copiar y sobrescribir el mismo binario en el "demo_batch". Por favor, consulte la sección "Inicio de la demostración" de cómo poner en marcha y ejecutar el demo.

Inicio demostración:

Los binarios pres

construidos

se

encuentran

en

la

carpeta

"C5G_HDMI_VPG\demo_batch", acompañada de un conjunto de herramientas en forma de archivo de línea de comandos por lotes. Para hacer una guia, los usuarios podrían

seguir los criterios enumerados a continuación para configurar la tarjeta de desarrollo y ejecutar el programa de demostración.

  • Conecte la tarjeta de desarrollo a tu PC con el conector JTAG mediante el cable USB incluido.

  • Conecte la tarjeta de desarrollo para el monitor LCD con conector HDMI a mediante un cable HDMI.

  • Encienda la tarjeta de desarrollo.

  • Utilice el Administrador de archivos para localizar la carpeta "C5G_HDMI_VPG \ demo_batch". Iniciar el proceso de descarga de la configuración y el programa haciendo doble clic archivo "test.bat". Esto configurará la FPGA, descargue la aplicación de demostración a la tarjeta y empeze su ejecución. Un terminal de consola se mantendrá en la pantalla y el usuario puede interactuar con la aplicación de demostración a través de la caja de la consola.

Introducción a Quartus II Diseño VHL con Cyclone V GX

77

  • Espere unos segundos para que el monitor LCD encienda, Y usted debería ver un patrón de vídeo previamente definido que se muestra en el monitor, como se muestra en la figura 6-10.

 Espere unos segundos para que el monitor LCD encienda, Y usted debería ver un patrón

Figura 6-10 El patrón de vídeo utilizado en la demostración HDMI TX.

Funcionamiento de demostración

La demostración consiste en ciertas actividades que el usuario podría realizar para interactuar con el codificador HDMI.

Auto detección de conexión caliente

La demostración implementa una conexión de detección de interrupción impulsado que se encenderá automáticamente el chip codificador, cuando el cable HDMI está conectado a la placa de desarrollo y el monitor LCD está conectado y encendido en el otro lado del cable.

Si el cable HDMI ya está vinculado en el conector HDMI antes de encender la placa de desarrollo, la señal de monitor de sentido disparará una interrupción para encender el codificador HDMI.

Cuando el codificador HDMI está encendido, un patrón de muestra de vídeo se mostrará en la pantalla LCD. Si el cable se desconecta, el codificador HDMI se apagará automáticamente para reducir el consumo de energía.

Introducción a Quartus II Diseño VHL con Cyclone V GX

78

Si el monitor LCD no se enciende automáticamente cuando se realizan las actividades descritas anteriormente en esta demostración, los usuarios pueden tratar de apagar completamente la pantalla LCD y luego volver a encender. Sucesivamente, el usuario puede tratar de desconectar y luego volver a conectar el cable HDMI y esperar un tiempo razonable a que el monitor LCD complete su proceso de inicialización y empezar a sincronizar con el codificador HDMI.

Video patrón de conmutación

Al pulsar la TECLA1 el pulsador puede cambiar el modo de visualización actual sucesivamente entre los formatos integrados que figuran en la Tabla 6-2. El patrón que se muestra será similar al que se muestra en la Figura 6-10.

Interfaz de comandos de línea

Se proporciona una pequeña interfaz de comandos de línea para interactuar con el codificador HDMI. A continuación se presenta una lista de los comandos disponibles para el usuario. Tenga en cuenta que los comandos son en mayúsculas y minúsculas. Los usuarios podrían escribir "h" para las últimas actualizaciones de mando que no se incluyen en este manual.

Tabla 6-3.Lista de comandos disponibles.

 

comandos

descripción

E

Descarga los primeros datos para 256 bytes y el EDID del monitor LCD conectado actualmente.

e

p

Descarga los primeros datos para 256 bytes y el EDID del monitor LCD conectado actualmente. Además, imprime el resultado decodificado en un formato legible.

D

Realiza una copia completa del conjunto de registro codificado HDMI.

O

Apague el codificador HDMI.

I

Encienda el codificador HDMI e inicializar en el modo HDMI.

V

Encienda el codificador HDMI e inicializar en modo DVI.

M

Detecta VIC (Vídeo Código Identificación) y la descripción del modo. Tenga en cuenta que los formatos de entrada non-CEA- 861-D no pueden informar de una manera totalmente correcta.

r

addr

Lea el valor de registro del codificador HDMI en dirección addr, donde addr es un número hexadecimal de dos dígitos.

w

addr data

Escribe el valor del registro, dado por los datos, al codificador HDMI en la dirección addr, donde addr y datos son ambos números hexadecimales de 2 dígitos. Tenga en cuenta que el valor addr debe dar exactamente en formato de 2 dígitos, como 02, 1b, 0c, f7. Dado que menos de 2 dígitos causan una falsa

Introducción a Quartus II Diseño VHL con Cyclone V GX

79

 

interpretación del valor en el siguiente campo de datos.

2.2.6.4 Prueba de bucle Transceptor HSMC

La demostración de bucle invertido XCVR HSMC es un proyecto para probar la función XCVR HSMC. El sistema genera el patrón y el transporte de datos a través del canal XCVR. Significa que mientras que el sistema recibe los datos a través de la tarjeta secundaria de bucle invertido y lo comprueba. Altera IP generador de patrones de datos y el patrón de datos corrector son los responsables de generar y comprobar el patrón de datos. Siendo la CPU Nios II la que comprueba el resultado de la prueba, el cual se muestra a través de LEDG0 ~ LEDG3 y también se muestran en la terminal de Nios II. Si la función de prueba de bucle invertido no funciona, el programa terminará y se apagarán todos los LEDs.

Herramientas de Diseño

  • Quartus II 15.0

  • Nios II

Demonstración Código Fuente

Directorio de Quartus Proyecto: C5G_HSMC_XCVR_LOOPBACK_TEST

Nios II: C5G_HSMC_XCVR_LOOPBACK_TEST \ Software

Nios II Compilación de proyectos

Antes de intentar compilar el diseño de referencia bajo Nios II, asegúrese de que el proyecto esté limpio haciendo clic en 'Clean' del menú 'Proyecto' de Nios II de Eclipse.

Demostración de Archivo por lotes

  • Demo de la carpeta de archivos por lotes:

C5G_HSMC_XCVR_LOOPBACK_TEST \ demo_batch

El archivo por lotes demo incluye lo siguiente:

  • Archivo por lotes para USB-Blaster: C5G_HSMC_XCVR_LOOPBACK_TEST.bat, C5G_HSMC_XCVR_LOOPBACK_TEST.sh

  • FPGA Configurar archivo: C5G_HSMC_XCVR_LOOPBACK_TEST.sof

  • Programa II Nios: C5G_HSMC_XCVR_LOOPBACK_TEST.elf

Introducción a Quartus II Diseño VHL con Cyclone V GX

80

Demostracion de Configuración

  • Asegúrese de Quartus II y Nios II están instalados en su PC.

  • Conectar USB Blaster a la tarjeta C5G e instalar el controlador USB Blaster si es necesario.

  • Instale la tarjeta secundaria de bucle invertido HSMC que se encuentra en la tarjeta C5G.

  • Encienda la tarjeta C5G.

  • Ejecutar el archivo por lotes de demostración "C5G_HSMC_XCVR_LOOPBACK_TEST.bat" para USB-Blaster II bajo la carpeta de archivos por lotes, C5G_HSMC_XCVR_LOOPBACK_TEST \ demo_batch.

• Después de que el programa Nios II es descargado y ejecutado con éxito, un mensaje de solicitud se mostrará en la terminal Nios II y el programa pondrá a prueba la función de bucle invertido XCVR HSMC.

• LEDG [3: 0] se encenderá si pasa la prueba de bucle invertido XCVR HSMC y la terminal de Nios II muestra el resultado de la prueba cada 5 segundos como se muestra en la Figura 6-12.

• Pulse KEY0 ~ key4 para terminar la prueba.

 Demostracion de Configuración  Asegúrese de Quartus II y Nios II están instalados en su

Introducción a Quartus II Diseño VHL con Cyclone V GX

81

Figura 6-12 Ejecución de resultado de prueba de bucle XCVR HSMC

2.2.6.5. Grabación y reproducción de Audio

Esta demostración muestra cómo implementar un grabador y reproductor de audio utilizando la tarjeta C5G con el chip de audio CODEC incorporado. Esta demostración se desarrolló en base a Qsys y Eclipse. (La Figure 6-13 muestra la interfaz hombre-máquina de esta demostración).

Dos pulsadores y cinco interruptores deslizantes se utilizan para configurar este sistema de audio: SW0 se utiliza para especificar la fuente de grabación sea Line-in o MIC-In. SW1 se utiliza para activar / desactivar MIC, cuando la fuente de grabación es MIC-In.

SW2, SW3, SW4 y se utilizan para especificar la frecuencia de muestreo de grabación como 96K, 48K, 44.1K, 32K, o 8K.

El 7-SEG se utiliza para mostrar Grabación / Reproducción de duración con la unidad de tiempo en 1/100 segundos.

El LED se utiliza para indicar la intensidad de la señal de audio. Figura 6-13 resume el uso de interruptores deslizantes para configurar la grabadora y reproductor de audio.

Figura 6-12 Ejecución de resultado de prueba de bucle XCVR HSMC 2.2.6.5. Grabación y reproducción de

Figura 6-13 interfaz hombre-maquina de grabador y reproductor de Audio.

La figura 6-14 muestra el diagrama de bloques del grabador y el diseño del reproductor de audio. Hay partes de hardware y software en el diagrama de bloques. La parte software almacena el programa Nios II en la memoria del chip. La parte de software es construido por Eclipse escrito en el lenguaje de programación C. La parte de hardware

Introducción a Quartus II Diseño VHL con Cyclone V GX

82

es construido por Qsys bajo Quartus II. La parte hardware incluye todos los otros bloques.

El "controlador de audio" es un componente Qsys definido por el usuario. Está diseñado para enviar datos de audio al chip de audio o recibir datos de audio desde el chip de audio.

El chip de audio se programa a través del protocolo I2C que se implementa en el código C. Los pines I2C de chip de audio están conectados al Sistema de Interconexión Qsys a través de los controladores de PIO. En este ejemplo, el chip de audio está configurado en el modo maestro. La interfaz de audio se configura como el modo de 16 bits I2 arena. 18.432MHz reloj generada por el PLL está conectado a la MCLK / XTI pin del chip de audio a través del controlador de audio.

es construido por Qsys bajo Quartus II. La parte hardware incluye todos los otros bloques. El

Figura 6-14 Diagrama de bloques del grabador y reproductor de audio.

Muestra las ubicaciones de los archivos

Directorio del Proyecto Hardware: C5G_Audio

Flujo de bits utilizado: C5G_Audio.sof

Directorio de Proyectos de Software: C5G_Audio \ software

Configuración de demostración e instrucciones

Conecte una fuente de audio al puerto LINE-IN de la tarjeta C5G.

Conecte un micrófono al puerto MIC-IN en la tarjeta C5G.

Introducción a Quartus II Diseño VHL con Cyclone V GX

83

  • Conecte un altavoz o auricular al puerto LINE-OUT en la tarjeta C5G.

  • Cargue el flujo de bits en FPGA. (nota * 1)

  • Cargue el archivo de ejecución de software en FPGA. (nota * 1)

  • Configurar audio con los interruptores deslizantes como se muestra en la Tabla 6-4.

  • Pulse KEY3 en el tablero C5G para iniciar / detener la grabación de audio (nota * 2).

  • Pulse TECLA2 en el tablero C5G para iniciar / detener la reproducción de audio (* nota 3).

Tabla 6-4 diapositivas de uso de fuente de audio

conmutadores deslizantes

0 Posición abajo

1 Posición arriba

SW0

Audio de MIC

Audio de LINE-IN

SW1

Desactivar Boost MIC

Habilitar el MIC Boost

Tabla 6-5 Diapositiva de ajuste del interruptor de conmutación de frecuencia de muestreo para la grabadora y reproductor de audio.

SW4

SW3

SW3

Frecuencia de

(0 abajo;

(0 abajo;

(0 abajo;

muestreo

1-arriba)

1-arriba)

1-arriba)

0

0

  • 0 96K

 

0

0

  • 1 48K

 

0

1

  • 0 44.1K

 

0

1

  • 1 32K

 

1

0

  • 0 8K

 

combinación no cotizada

 

96K

Nota:

(1) Ejecutar C5G_Audio \ demo_batch \ C5G_Audio.bat descargará .sof y archivos .elf.

(2) el proceso de grabación se detendrá si el búffer de audio está lleno.

(3) El proceso de reproducción se detendrá si los datos de audio se reproduce por completo.

Introducción a Quartus II Diseño VHL con Cyclone V GX

84

2.2.6.6 leer sistema de archivos de la tarjeta Micro SD

Muchas aplicaciones utilizan un gran dispositivo de almacenamiento externo, como una tarjeta SD o tarjeta CF para almacenar datos. La tarjeta C5G proporciona el hardware y software necesario para acceder tarjeta Micro SD. En esta demostración vamos a mostrar cómo navegar por los archivos almacenados en el directorio raíz de una tarjeta SD y cómo leer el contenido del archivo de un archivo específico. La tarjeta Micro SD requiere tener de antemano un formato de sistema de archivos FAT. Nombre de archivo largo se admite en esta demostración.

La Figura 6-15 muestra el diagrama de bloques del sistema de hardware de esta demostración. El sistema requiere un reloj de 50MHz proporcionado por la tarjeta. El PLL genera un reloj de 100MHz para el procesador Nios II y otros controladores. Cuatro contactos PIO están conectados a la toma de la tarjeta Micro SD. Modo 4-bit SD se utiliza para acceder al hardware de la tarjeta Micro SD. El protocolo de 4-bit SD y la función de sistema de archivos FAT se implementan por el software Nios II. El software se almacena en la memoria del chip.

2.2.6.6 leer sistema de archivos de la tarjeta Micro SD Muchas aplicaciones utilizan un gran dispositivo

Figura 6-15 Diagrama de bloques de la Micro SD.

La figura 6-16 muestra la pila de software de esta demostración. El bloque Nios PIO proporciona funciones básicas IO para acceder al hardware directamente. Las funciones se proporcionan desde el sistema Nios II y el prototipo de función se

Introducción a Quartus II Diseño VHL con Cyclone V GX

85

define en el archivo de cabecera <io.h>. El bloque de la tarjeta SD implementa el protocolo de modo de 4 bits para la comunicación con las tarjetas SD. El bloque de sistema de archivos FAT implementa la función de lectura para FAT16 y FAT 32 sistema de archivos. Nombre de archivo largo es compatible. Al llamar a las funciones públicas FAT, los usuarios pueden navegar por los archivos en el directorio raíz de la tarjeta Micro SD. Además, los usuarios pueden abrir un archivo específico y leer el contenido del archivo. El bloque principal implementa el control principal de esta manifestación. Cuando se ejecuta el programa, se detecta si se introduce una tarjeta Micro SD. Si se encuentra una tarjeta Micro SD, comprobará si la tarjeta Micro SD está formateada como sistema de archivos FAT. Si es así, se busca en todos los archivos en el directorio raíz del sistema de archivos FAT y muestra sus nombres en el terminal de Nios II. Si se encuentra un archivo de texto llamado "test.txt", se volcará el contenido del archivo. Si se reconoce con éxito el sistema de archivos FAT, se encenderá el LED verde. Por otro lado, se encenderá el LED rojo si no puede analizar el sistema de archivos FAT o si no hay una tarjeta SD que se encuentra en el zócalo para tarjetas SD de la tarjeta C5G. Si los usuarios pulsan KEY3 de la tarjeta C5G, el programa llevará a cabo el proceso anterior de nuevo.

define en el archivo de cabecera <io.h>. El bloque de la tarjeta SD implementa el protocolo

Figura 6-16 Software de demostración micro SD.

Herramientas de Diseño

  • Quartus II 15.0

  • Nios II

Demostración Código Fuente

Introducción a Quartus II Diseño VHL con Cyclone V GX

86

Directorio de Quartus Proyecto: C5G_SD_DEMO

Nios II: C5G_SD_DEMO \ Software

Nios II Compilación de proyectos

Antes de intentar compilar el diseño de referencia bajo Nios II, asegúrese de que

el proyecto esté limpio haciendo clic en 'Clean' del menú 'Proyecto' de Nios II. Demostración de archivos por lotes

Demo de la carpeta de archivos por lotes:

C5G_SD_DEMO \ demo_batch

El archivo por lotes demo incluye los siguientes:

• Archivo por lotes para USB-Blaster:

C5G_SD_DEMO.bat,

C5G_SD_DEMO.sh

• FPGA Configurar archivo: C5G_SD_DEMO.sof

• Programa II Nios: C5G_SD_DEMO.elf

Demostración de Configuración

Asegúrese de Quartus II y Nios II están instalados en su PC.

Encienda la tarjeta C5G.

Conecte Blaster USB al C5Gboard e instale el controlador USB Blaster si es necesario.

Ejecutar el archivo de demostración por lotes "C5G_SD_DEMO.bat" para USB- Blaster II bajo la carpeta de archivos por lotes, C5G_SD_DEMO \ demo_batch

Después del programa Nios II es descargado y ejecutado con éxito, un mensaje de solicitud se mostrará en nios2-terminal.

Copia C5G_SD_DEMO \ demo_batch \ test.txtfiles al directorio raíz de la tarjeta SD.

Inserte la tarjeta Micro SD en la ranura para tarjetas SD de C5G, como se muestra

en la Figura 6-17.

Introducción a Quartus II Diseño VHL con Cyclone V GX

87

Figura 6-17 Insertar la tarjeta Micro SD en la tarjeta C5G.  Presione KEY3 de la

Figura 6-17 Insertar la tarjeta Micro SD en la tarjeta C5G.

  • Presione KEY3 de la junta C5G para iniciar la lectura de tarjetas SD.

  • El programa mostrará información de la tarjeta SD, como se muestra en la Figura 6-18.

Introducción a Quartus II Diseño VHL con Cyclone V GX

88

Figura 6-18 Ejecución de resultado de demostración SD_CARD en la tarjeta C5G. 2.2.6.7. Demostración de reproductor

Figura 6-18 Ejecución de resultado de demostración SD_CARD en la tarjeta C5G.

2.2.6.7. Demostración de reproductor de música de tarjeta SD

Muchos reproductores de audio de los medios de comunicación comerciales utilizan un dispositivo de almacenamiento externo, como una tarjeta SD o CF, para almacenar archivos de música o video. Estos ejecutables también pueden incluir dispositivos DAC de alta calidad que puede producir buena calidad de audio. La tarjeta C5G proporciona el hardware y el software necesario para la tarjeta Micro SD de acceso y rendimiento de audio profesional por lo que es posible diseñar productos multimedia avanzados usando la tarjeta C5G.

En esta demostración se muestra cómo implementar una tarjeta SD Reproductor de música en la tarjeta C5G, en la que los archivos de música se almacenan en una tarjeta SD y la tarjeta C5G puede reproducir los archivos de música a través de sus circuitos DAC de audio con calidad de CD. Utilizamos el procesador Nios II para leer los datos de música guardados en la tarjeta SD y utilice el dispositivo analógico de audio CODEC SSM2603 para reproducir la música.

La figura 6-19 muestra el diagrama de bloques de hardware de esta demostración. El sistema requiere un reloj de 50 MHz proporcionada la tarjeta. El PLL genera un reloj de 100MHz para el procesador Nios II y los otros controladores, excepto para el controlador de audio.

El chip

de audio es

dirigido por el controlador que se haya definido por el usuario

componente SOPC Audio. Este controlador de audio necesita un reloj de entrada de 18.432 MHz. En este diseño, el reloj es proporcionado por el bloque de PLL.

Introducción a Quartus II Diseño VHL con Cyclone V GX

89

El controlador de audio requiere el chip de audio de trabajo en modo maestro, por lo que la serie de bits (BCC) y el reloj de canal izquierdo / derecho (LRCK) se proporcionan por el chip de audio. Dos pines de PIO están conectados al bus I2C. El protocolo I2C se implementa por software. Cuatro contactos PIO están conectados a la toma de la tarjeta SD.

Modo 4-bit SD se utiliza para acceder a la tarjeta SD y es implementado por software. Todos los otros componentes SOPC en el diagrama de bloques son constructores SOPC componentes incorporados. Los pasadores de PIO también están conectados a las llaves, LEDs y conmutadores.

El controlador de audio requiere el chip de audio de trabajo en modo maestro, por lo

Figura 6-19 Diagrama de bloques de reproductor de música de Micro SD.

La Figura 6-20 muestra la pila de software de esta demostración. Bloque de modo de 4- Bit SD implementa el protocolo de modo SD 4 bits para la lectura de datos desde la tarjeta SD. El bloque de graso implementa sistema de archivos FAT16/FAT32 para lectura de archivos almacenados en la tarjeta SD. En este bloque, implementa sólo la función solo lectura. El bloque de onda Lib implementa la función descifrar la extracción de datos de audio desde archivos de archivo de onda. El bloque de I2C implementa protocolo I2C para configurar el chip de audio. El bloque de Audio implementa la función de comprobación de audio FIFO y la función de envío y recepción de señal de audio. El

Introducción a Quartus II Diseño VHL con Cyclone V GX

90

bloque key y switch actúa como una interfaz de control del sistema de reproductor de música.
bloque key
y switch actúa como una interfaz de control del sistema de reproductor de
música.

Figura 6-20 Pila de software del reproductor de música tarjeta Micro SD.

El chip de audio debe estar configurado antes de enviar señal de audio. El programa principal utiliza protocolo I2C para configurar el chip de audio en modo maestro; con una salida de audio de interfaz I2S 16bits por canal y con una frecuencia de muestreo de acuerdo con el contenido del archivo. En la reproducción de audio en bucle, el programa principal lee 512 bytes de datos de audio de la tarjeta SD, y, a continuación, escribe los datos en el controlador de audio CAD FIFO. Antes de escribir los datos en el FIFO, el programa verificará si el FIFO está lleno. El diseño también mezcla la señal de audio del micrófono y línea de estilo Karaoke mediante la habilitación de las funciones BYPASS and SITETONE en el chip de audio.

Introducción a Quartus II Diseño VHL con Cyclone V GX

91

Mientras que la demostración está en marcha, los usuarios pueden obtener la información de estado a través del terminal Nios II. Se puede accionar el modo de repetición mediante la activación de la Switch 0, ajustar el volumen presionando key1 o key2 y también se puede elegir la canción pulsando KEY0 o key3.

Herramientas de Diseño

Quartus II 15.0

Nios II

Demostración Código Fuente

Directorio de Quartus Proyecto: C5G_SD_MUSIC

Nios II : C5G_SD_MUSIC \ Software

Nios II Compilación de proyectos

Antes de intentar compilar el diseño de referencia bajo Nios II, asegúrese de que el proyecto este limpio haciendo clic en 'Clean' del menú 'Proyecto' de Nios II.

Demostración de Archivo por lotes

Demo de la carpeta de archivos por lotes:

C5G_SD_MUSIC \ demo_batch

El demo de archivo por lotes incluye lo siguiente:

Archivo por lotes para USB-Blaster: C5G_SD_MUSIC.bat, C5G_SD_MUSIC.sh

FPGA Configurar archivo: C5G_SD_MUSIC.sof

Programa II Nios: C5G_SD_MUSIC.elf

Configuración de Demostración

  • Formato de la tarjeta Micro SD en FAT16 / FAT32

  • Coloque los archivos de la onda en el directorio raíz de la tarjeta Micro SD. Los archivos de la onda previstas deben tener una frecuencia de muestreo de 96K, 48K, 44.1K, 32K, o 8K. Además, los archivos de onda deben ser estéreo y 16 bits por canal.

  • Conectar un auricular o altavoz a la tarjeta C5G y usted debería ser capaz de escuchar la música que se reproduce desde la tarjeta Micro SD

  • Inserte la tarjeta micro SD en el zócalo SD que se encuentra en la tarjeta C5G.

  • Asegúrese de Quartus II y Nios II están instalados en su PC.

Introducción a Quartus II Diseño VHL con Cyclone V GX

92

  • Encienda la tarjeta C5G.

  • Conecte Blaster USB a la tarjeta C5G e instale el controlador USB Blaster si es necesario.

  • Ejecute el archivo de demostración por lotes "C5G_SD_MUSIC.bat" bajo la carpeta de archivos por lotes C5G_SD_MUSIC \ demo_batch.

  • Pulse KEY3 en la tarjeta C5G para reproducir el siguiente archivo de música almacenada en la tarjeta SD y pulse KEY0 a reproducir la última canción.

  • Pulse TECLA2 y TECLA1 para aumentar y disminuir el volumen de la música de salida respectivamente.

  • Use Switch 0 para la reproducción de canciones en el modo de repetición o en modo de secuencial.

2.2.6.8. Lectura ADC

Esta demostración ilustra pasos que pueden ser utilizados para evaluar el desempeño de los 8 canales de 12 bits A / D Conversor LTC2308. La figura 6-21 muestra el diagrama de bloques de esta demostración. Implementa principalmente un Controlador ADC, las señales analógicas se introducen en la entrada analógica de cabecera Arduino, y la FPGA leerá el registro asociado en el convertidor a través de la interfaz de serie traduciéndolo al valor de la tensión que aparece en la consola NIOS II.

 Encienda la tarjeta C5G.  Conecte Blaster USB a la tarjeta C5G e instale el

Introducción a Quartus II Diseño VHL con Cyclone V GX

93

Figura 6-21 Diagrama de bloques de la demostración de Lectura ADC.

La figura 6-22 muestra la disposición de las patillas de la cabecera de Arduino. La entrada analógica (Analog In ~ Analog In 7) de la cabecera de Arduino es la fuente de entrada del convertidor ADC. El valor por defecto de la escala completa de ADC es 0 ~ 4.096V mientras no suministre ninguna tensión de referencia al pin analógico Vref en el encabezado de Arduino.

Figura 6-21 Diagrama de bloques de la demostración de Lectura ADC. La figura 6-22 muestra la

Figura 6-22 distribuciones de pines del ADC de la cabecera de Arduino

Nota: Analog_in4 y Analog_in5 es un multiplexor con otro IO, seleccione 1-2 de JP15 y JP 16 para cambiar a la entrada del ADC. Tabla 6-6 muestra la información detallada de la selección.

Tabla 6-6 Selección de trazado Analógico / Digital de cabecera Arduino

   

JP15

JP16

Abrir

No Seleccione

 

No Seleccione

1-2 corto

Utilice la entrada analógica Arduino 4

Utilice la entrada analógica Arduino 5

2-3corto

Utilice

Arduino

SDA

o

IO

Utilice Arduino SCL o

IO

Digital

Digital

Introducción a Quartus II Diseño VHL con Cyclone V GX

94

El LTC2308 es un bajo nivel de ruido, 500ksps, 8 canales, 12 bits ADC con una interfaz serial compatible con SPI/MICROWIRE. El reloj de conversión interna permite que el reloj de datos de salida serial externa (SCK) opere en cualquier frecuencia hasta 40MHz.

En esta demostración, nos dimos cuenta que el protocolo SPI en Verilog, y el paquete en esclavo Avalon MM IP se puede conectar a Qsys. La figura 6-23 muestra la conexión de hardware entre FPGA y ADC, las señales SPI se retrasan al pasar por el cambio de nivel. Para corregir el retraso, se utilizó PLL para generar dos salidas de reloj para el Controlador ADC, uno para la ruta de escritura, otro para ruta de lectura.

El LTC2308 es un bajo nivel de ruido, 500ksps, 8 canales, 12 bits ADC con una

Figura 6-23 Conexión del hardware entre FPGA y ADC.

Figura 6-24 es SPI especificación del tiempo de LTC2308.

El LTC2308 es un bajo nivel de ruido, 500ksps, 8 canales, 12 bits ADC con una

Figura 6-24 LTC2308 tiempo con un pulso cortó CONVST.

Introducción a Quartus II Diseño VHL con Cyclone V GX

95

Figura 6-25 muestra la forma de onda SignalTap II de la demostración, el reloj de muestreo SignalTap II es de 200 MHz (5ns), la SCK es 40 MHz, y la frecuencia de muestreo ADC logrado es 500 Ksps.

Figura 6-25 muestra la forma de onda SignalTap II de la demostración, el reloj de muestreo

Figura 6-25 500 Ksps ADC muestreo demostración de onda.

Como podemos calcular a partir de la figura 6-25,

Ciclo de muestreo:

Tcic = 400 * 5 ns = 2 nos (500 Ksps)

Tiempo de adquisición:

Tacq = (400-299) * 5ns = 505 ns (Ver ficha técnica ADC para la definición detallada).

Importante: Los usuarios deben prestar más atención a la adaptación de impedancia entre la fuente de entrada y el circuito ADC. Si la impedancia de la fuente del circuito de conducción es baja, las entradas de ADC pueden ser conducidos directamente. De lo contrario, se necesita más tiempo de adquisición para una fuente con mayor impedancia.

Para aumentar el tiempo de adquisición Tacq, el usuario puede cambiar el valor tHCONVST macro (predeterminado a 12) en ltc2308.v adc. Cuando SCK está ajustado a 40 MHz, que significa 25ns por unidad. Por lo tanto la adición de más tHCONVST tiempo (al aumentar tHCONVST valor macro) reducirá la frecuencia de muestreo del convertidor ADC.

`definir tHCONVST 12

En la figura 6-26 se muestra el ejemplo configuraciones MUX de ADC. En esta demostración, se configura como 8 canales de la signal-end en el código Verilog. La tensión de referencia por defecto es 4.096V por pin flotante analógico Vref en el encabezado de Arduino.

La fórmula de la tensión de la muestra es:

Introducción a Quartus II Diseño VHL con Cyclone V GX

96

Muestra Voltaje = ADC datos / Datos escala completa * Referencia de tensión.

En esta demostración, a gran escala es 2 ^ 12 = 4096. Referencia de tensión es 4.096V.

Así el Valor de ADC = datos ADC / 4096 datos * 4.096 = ADC / 1000

Muestra Voltaje = ADC datos / Datos escala completa * Referencia de tensión. En esta demostración,

Figura 6-26 Ejemplo Configuraciones MUX.

Requisitos Del Sistema

Los siguientes elementos son necesarios para la demostración de lectura ADC

  • Tarjeta C5G x1

  • Tensión de la muestra a medir

Introducción a Quartus II Diseño VHL con Cyclone V GX

97

Localización de los archivos de demostración

Directorio del Proyecto Hardware: C5G_ADC

flujo de bits utilizado : C5G_ADC.sof

Directorio de Proyectos de Software : C5G_ADCsoftware

archivo por lotes de demostración: C5G_ADC \ demo_batch \ C5G_ADC.bat

Configuración de Demostración e Instrucciones

Proporcionar una tensión de muestra (0 ~ 4.096V) para medirse al canal ADC correspondiente. (El usuario puede simplemente producir cualquier tensión de la muestra mediante el uso de la herramienta de recorte de potenciómetro (Figura 6-28). Por favor, preste especial atención a la adaptación de impedancia entre la fuente de entrada y el circuito ADC).

Ejecutar la demo C5G_ADC.bat archivo por lotes para cargar flujo de bits y el archivo de la ejecución de software en FPGA.

Set SW [2: 0] = 000, para medir el canal 0 del ADC.

La consola Nios II mostrará el voltaje de la información resultado de voltaje canal especificado

Proporcionar toda la tensión de entrada a otros canales de ADC y establecer SW [2: 0] para el canal correspondiente, si el usuario desea medir otros canales.

 Localización de los archivos de demostración  Directorio del Proyecto Hardware: C5G_ADC  flujo de

Figura. 6-28 potenciómetros.

2.2.6.9. Prueba LPDDR2 SDRAM de Nios II

Muchas aplicaciones utilizan una RAM de alto rendimiento, tal como un LPDDR2 SDRAM, para proporcionar almacenamiento temporal. En esta demostración los diseños de hardware y software se proporcionan para ilustrar la forma de realizar el acceso a la memoria LPDDR2 en QSYS.

Introducción a Quartus II Diseño VHL con Cyclone V GX

98

Se describe cómo se utiliza " el Controlador LPDDR2 SDRAM con Uniphy " IP del Altera para acceder a una LPDDR2 -SDRAM, y cómo se utiliza el procesador Nios II a leer y escribir la SDRAM para la verificación de hardware. El controlador LPDDR2 SDRAM maneja los complejos aspectos del uso de LPDDR2 SDRAM por la inicialización de los dispositivos de memoria, la gestión de los bancos SDRAM, y mantener actualizados los dispositivos a intervalos apropiados.

Sistema Diagrama de bloques

La figura 6-29 muestra el diagrama de bloques del sistema de esta demostración. El sistema requiere un reloj de 125MHz proporcionado por la tarjeta. El controlador LPDDR2 está configurado como un controlador de 512 MB . El LPDDR2 IP genera un reloj de 330MHz como reloj de datos de SDRAM y una tasa completa 330MHz reloj del sistema para los controladores de host, por ejemplo, el Procesador Nios II, el acceso a la SDRAM.

El QSYS, Nios II y la memoria en chip están diseñados para ejecutarse con el reloj de 125MHz, y el programa Nios II se ejecuta en la memoria del chip.

Se describe cómo se utiliza " el Controlador LPDDR2 SDRAM con Uniphy " IP del Altera

Figura 6-29 Demostración Básica Diagrama de bloques del LPDDR2.

Introducción a Quartus II Diseño VHL con Cyclone V GX

99

El flujo del sistema está controlado por un programa Nios II. En primer lugar, el programa Nios II escribe patrones de prueba en todos los 512 MB de la SDRAM.

A continuación, se llama a la función del sistema Nios II, alt_dcache_flush_all , para asegurarse de que todos los datos se ha escrito para SDRAM . Finalmente, se lee datos de SDRAM para la verificación de datos. El programa mostrará el progreso en la terminal JTAG al escribir / leer datos de la SDRAM. Cuando se completa el proceso de verificación, el resultado se muestra en la terminal JTAG.

Para utilizar Altera LPDDR2, los usuarios necesitan realizar cuatro pasos principales:

  • 1. Cree asignaciones de pin correctas para la LPDDR2.

  • 2. Configuración de los parámetros correctos en diálogo controlador LPDDR2.

  • 3. Lleve a cabo "Análisis y Síntesis " seleccionando en el menú Quartus II:

Process.

Start.

Inicio Análisis y Síntesis.

  • 4. Ejecutar los archivos generados por TCL LPDDR2 IP seleccionando en el menú

Quartus II:

Herramientas

TCL Scripts ...

Herramientas de Diseño

Quartus II 15.0

Nios II

Demostración Código Fuente

Directorio del proyecto Quartus: C5G_LPDDR2_Nios_Test

Nios II: C5G_LPDDR2_Nios_Test\Software

Nios II Compilación de proyectos

Antes de intentar compilar el diseño de referencia bajo Nios II, asegúrese de que el proyecto este limpio haciendo clic en ' Clean ' del menú 'Proyecto' de Nios II .

Demostración de Archivo por lotes

Carpeta de archivos por lotes de demostración:

C5G_LPDDR2_Nios_Test \ demo_batch

El archivo por lotes demo incluye lo siguiente :

Archivo por lotes para USB - Blaster:

Introducción a Quartus II Diseño VHL con Cyclone V GX

100

C5G_LPDDR2_Nios_Test.bat, C5G_LPDDR2_Nios_Test.sh

FPGA Configurar archivo: C5G_LPDDR2_Nios_Test.sof

Programa Nios II: C5G_LPDDR2_Nios_Test.elf

Configuración de Demostración

Asegúrese de Quartus II y Nios II están instalados en su PC.

Encienda la tarjeta C5G.

Utilice el cable USB para conectar el PC y la placa C5G (J10) e instale el controlador USB Blaster si es necesario.

Ejecutar el archivo por lotes de demostración " C5G_LPDDR2_Nios_Test.bat " para USB- Blaster en la carpeta de archivos por lotes , C5G_LPDDR2_Nios_Test \ demo_batch

Después de que el programa Nios II es descargado y ejecutado con éxito, un mensaje de solicitud se mostrará en el terminal de Nios II.

Pulse KEY3 ~ KEY0 de la tarjeta C5G para iniciar SDRAM verifique proceso. Presione KEY0 para la prueba continua.

El programa mostrará el progreso y da lugar a la información, como se muestra en la Figura 6-27.

C5G_LPDDR2_Nios_Test.bat, C5G_LPDDR2_Nios_Test.sh  FPGA Configurar archivo: C5G_LPDDR2_Nios_Test.sof  Programa Nios II: C5G_LPDDR2_Nios_Test.elf  Configuración de Demostración

Figura 6-30 Pantalla de Progreso y Resultados de Información para la demostración

LPDDR2.

Introducción a Quartus II Diseño VHL con Cyclone V GX

101

  • 3. Introducción vhdl

  • 3.1. ¿Qué es VHDL?

    • VHDL es un lenguaje de descripción de hardware estandarizado por la IEEE (1076-93).

    • Es un acrónimo: Vse toma por Very High Speed Integrated Circuit (Circuito Integrado de muy alta velocidad), y HDL significa Lenguaje para la Descripción de Hardware.

    • Término acuñado por el DoD (Department of Defense) de USA, quienes fueron los primeros en usarlo para: Documentación, modelado y simulación de dispositivos electrónicos.

    • Los simuladores de VHDL surgen en los 90s.

    • VHDL no fue creado para síntesis, esta propiedad se le agregó al buscar formas que ayuden a automatizar los procesos de diseño.

      • 3.2. Ventajas de VHDL para el diseño digital

        • Lenguaje estandarizado.

        • Permite el diseño modular y jerárquico de sistemas electrónicos.

        • VHDL permite el paralelismo.

        • Permite incluir diferentes niveles de abstracción al describir un diseño digital.

          • 3.3. Elementos de VHDL

VHDL permite la descripción del aspecto exterior del circuito, es decir sus entradas y salidas, al igual que la relación a establecer entre ellas. En el aspecto exterior, se indica los puertos de entrada y salida a utilizar, es lo que se denomina entity (Entidad).

La descripción del comportamiento del circuito architecture (Arquitectura), tiene que estar asociada a una entity; además, es estrictamente necesario definir las bibliotecas y paquetes que vamos a utilizar, lo que indica que tipos de puertos y operadores podemos utilizar. Siempre debe aparecer la definición de las bibliotecas y paquetes antes de la definición de la entity.

library ieee; library std; use ieee.std_logic_1164.all; use std.standard.all;

Entity (Entidad)

Introducción a Quartus II Diseño VHL con Cyclone V GX

102

Una entidad es la abstracción de un circuito, ya sea desde un complejo sistema

electrónico o una simple compuerta lógica; describe únicamente la forma externa del

circuito, en ella se enumeran las entradas y las salidas del diseño y es análoga a un

símbolo esquemático en los diagramas electrónicos, el cual describe las conexiones del

dispositivo hacia el resto del diseño. - Define externamente al circuito o subcircuito. -

Nombre y número de puertos, tipos de datos de entrada y salida. - Tiene toda la

información necesaria para realizar la conexión de un circuito hacia otros.

clk

clk
   
 
Salida_s

Salida_s

reset

reset
 

Figura 6.30 diagrama

Plantilla

entity nombre_entidad is

port( nombre_puerto1: tipo_de_ puerto

tipo_de_dato;

nombre_puerto2:………………………………………… );

..

end nombre_entidad;

Ejemplo:

entity multiplexor_21 is

Port ( a : in STD_LOGIC;

b : in STD_LOGIC;

control: in STD_LOGIC;

salida : out STD_LOGIC);

end multiplexor_21;

Los puertos pueden ser de entrada in, salida out, entrada-salida inout o buffer. Los

puertos de entrada sólo se pueden leer y no se puede modificar su valor internamente

en la descripción del comportamiento del circuito (architecture)

Architecture (Arquitectura)

Una arquitectura describe el funcionamiento de la entidad a la que hace referencia, es

decir, dentro de arquitectura se describe el funcionamiento de la entidad a la que está

asociada utilizando las sentencias y expresiones propias de VHDL.

- Define internamente el circuito.

Introducción a Quartus II Diseño VHL con Cyclone V GX

103

- Señales internas, funciones, procedimientos, constantes…

- La descripción de la arquitectura puede ser estructural o por comportamiento.

architecture nombre_arquitectura of nombre_entidad is

-- declaraciones de la arquitectura:

-- tipos

-- señales

-- componentes

begin

-- código de descripción

-- instrucciones concurrentes

-- ecuaciones booleanes

process (lista de sensibilidad)

begin

-- código de descripción

end process;

end nombre_arquitectura;

Ejemplo:

architecture control_mux_21 of multiplexor_21 is begin process (a, b, control) begin if (control =’1’) then salida<=a;
architecture control_mux_21 of multiplexor_21 is
begin
process (a, b, control)
begin
if (control =’1’)
then salida<=a;
else
salida <=b;
end if;
end process;
end control_mux_21;

Cada arquitectura va asociada a una entidad y se indica en la primera sentencia. Dentro

de esta también se encuentra los process los cuales se ejecuta de forma paralela y las

sentencias de dentro de estos se ejecutan de forma secuencial o concurrente.

El process es una estructura particular de vhdl que contiene sentencias que no

necesariamente tienen definido su valor para todas las entradas (el ejemplo más común

es una estructura if-else incompleta). Esto obliga a que la estructura process almacene

los valores de sus señales y pueda dar lugar (no siempre) a subcircuitos secuenciales.

Además, en simulación sólo se ejecutan las sentencias internas a esta estructura cuando

alguna de las señales de su lista de sensibilidad cambia de valor.

Introducción a Quartus II Diseño VHL con Cyclone V GX

104

3.4.

Identificadores

Se utilizan para dar nombres a los diferentes objetos del lenguaje como variables,

constantes y señales.

Las señales son un tipo de objeto que se declara dentro de la arquitectura antes del

begin, además de que solo se actualizan al final del process. Otros tipos de objetos son

las constantes y las variables las cuales se declaran dentro del process. El tipo de objeto

constante es un valor fijo, es decir que no varía a lo largo del desarrollo del diseño,

mientras que las variables actualizan su valor inmediatamente.

Constantes:

 

CONSTANT e: real:= 2.7128

Variable:

Identificador:= expresión

La asignación de una variable a un valor se hace mediante el operador:=

Nombre variable:= valor o expresión;

Señal:

a:=b;

Nombre señal<= valor;

a<=17;

En las tres definiciones anteriores, como en la definición de los puertos de la

entity es necesario definir el tipo del objeto. VHDL permite utilizar tipos

predefinidos, así como otros definidos por el usuario. Los tipos predefinidos más

comunes son los siguientes:

Bit: sólo admite los valores 0 y 1. Para hacer una asignación a un objeto tipo bit el

valor binario tiene que aparecer entre comas simples (‘0’ o ‘1’)

bit_vector (rango): el rango, siempre entre paréntesis, indica el número de bits

del vector, éstos sólo pueden estar formados por ceros y unos. Para un vector de

N bits el rango será N-1 downto 0, dónde el bit más a la izquierda es el más

significativo y el bit más a la derecha el menos significativo (notación binaria

estándar). Para hacer una asignación el valor tiene que aparecer entre comillas

(por ejemplo: “1100”).

Boolean: sólo admite los valores true y false.

Carácter: cualquier letra o símbolo entre comillas simples.

String: cualquier cadena formada por letras o símbolos.

Introducción a Quartus II Diseño VHL con Cyclone V GX

105

integer rango: cualquier número entero dentro del rango, aquí el rango no va

entre paréntesis, puede expresarse como 0 to MAX.

Natural rango: cualquier número natural dentro del rango.

Positive rango: cualquier número positivo dentro del rango real rango cualquier

número real dentro del rango.

std_logic tipo predefinido en el estándar IEEE 1164. Este tipo representa una

lógica multivaluada de 9 valores. Además del ‘0’ lógico y el ‘1’ lógico, posee alta

impedancia ‘Z’, desconocido ‘X’ ó sin inicializar ‘U’ entre otros. Para hacer una

asignación el valor tiene que aparecer entre comas simples (‘0’, ‘1’, ‘X’, …).

std_logic_vector(rango): representa un vector de elementos std_logic, posee las

mismas reglas de asignación y definición del rango que el tipo bit_vector pero con

un mayor número de valores posibles.

3.5.

OPERADORES

Un operador nos permite construir diferentes tipos de expresiones mediante los cuales

podemos calcular datos utilizando diferentes señales.

 
 

OPERADORES

   

+, -, *, /, mod, rem

operaciones aritméticas

 

+, -

cambio de signo

 

&

Concatenación

 

and, or, nand, nor, xor

operaciones lógicas

 

:=

Asignación

de

valores

a

constantes

y

variables.

**

Exponencial

 

Abs()

Valor absoluto

 

<=

Asignación de valores a señales.

 

=, /=

Igualdad, diferencia

 

3.6.

Estructura Básica de un Archivo fuente en VHDL

 

Los modelos VHDL están formados por dos partes: la entidad (entity) y la arquitectura

(architecture)

Plantilla

Library ieee; Library std;
Library ieee;
Library std;

Introducción a Quartus II Diseño VHL con Cyclone V GX

106

Library work;

Use ieee.std_logic_1164.all;

Use std.standard.all;

Use work.all;

Entity nombre_entidad is

Port ( nombre_puerto1 : tipo_puerto tipo_dato;

Nombre_puerto2: tipo_puerto tipo_dato);

End nombre_entidad;

architecture nombre_arquitectura of nombre_entidad is

signal nombre_señal : tipo_dato <= valor;-- señales

begin

process (lista de sensibilidad)

Constant nombre_constante : tipo_dato :=valor; --constantes

Variable nombre_variable : tipo_dato := valor;--variables

Begin

-- sentencias secuenciales

-- sentencias condicionales

end process;

end nombre_arquitectura;

Ejemplo General

Library ieee;

Library std;

Use ieee.std_logic_1164.all;

Use std.standard.all;

Entity oscilador_led is

Port (

Sw1 : in std_logic_vector(1 downto 0);

Led1 : out std_logic_vector(3 downto 0)

);

End oscilador_led;

Architecture osc_led of oscilador_led is

Begin

Process(sw1)

Begin

Case sw1 is

When “00” => led1 <= “1100”;

Introducción a Quartus II Diseño VHL con Cyclone V GX

107

When “01” => led1 <= “0110”;

When “10” => led1 <= “0011”;

When “11” => led1 <= “1111”;

End case;

End process;

End osc_led;

  • 4. QUARTUS II 15.0

  • 4.1. Inicio en Quartus II

Al iniciar el programa Quartus II, se encuentra una interfaz como la siguiente;

When “01” => led1 <= “0110”; When “10” => led1 <= “0011” ; When “11” =>

Donde se hallara diversas barras de herramientas para el diseño, simulación y análisis

de los circuitos.

Elegir la opción FILE y enseguida la opción New Project Wizard para iniciar un nuevo

proyecto.

Nota; es necesario crear una carpeta exclusiva donde se guardaran los proyectos

creados, dentro de esta carpeta se creara la carpeta (s) para cada proyecto con un único

nombre, nombre el cual llevaran todos los archivos dentro de esta carpeta secundaria.

Introducción a Quartus II Diseño VHL con Cyclone V GX

108

Se desplegará la siguiente interfaz, donde aparece una breve introducción de lo que se realizara. Se

Se desplegará la siguiente interfaz, donde aparece una breve introducción de lo que se

realizara. Se procede a dar click en la opción NEXT.

Se desplegará la siguiente interfaz, donde aparece una breve introducción de lo que se realizara. Se

Continuando, se debe elegir la carpeta creada (donde se guardaran los proyectos) para

ubicar el nuevo proyecto. Para el caso presente se elige la carpeta Programación tarjeta.

Introducción a Quartus II Diseño VHL con Cyclone V GX

109

La carpeta creada para el nuevo proyecto es Proyecto_1, aclarando que la entidad del código VHDL

La carpeta creada para el nuevo proyecto es Proyecto_1, aclarando que la entidad del

código VHDL debe llevar este mismo nombre para que no genere conflicto en el

momento de ‘compilar’ la descripción.

La carpeta creada para el nuevo proyecto es Proyecto_1, aclarando que la entidad del código VHDL

Elegida la carpeta, se prosigue con la escritura del nombre del proyecto, tal y como es el

nombre de la carpeta, así:

Introducción a Quartus II Diseño VHL con Cyclone V GX

110

La siguiente imagen muestra dos opciones, inicialmente se elige la opción uno; la opción dos suele