La tarjeta DE0
Cable USB para programar y controlar el FPGA
El CD del sistema DE0 contiene:
o Altera’s Quartus® II Web Edition adn the Nios® II
Embedded Design Suit Evaluation Edition software
o La documentación de DE0 y materiales de apoyo, incluyendo
el manual de usuario, la utilidad del panel de control,
referencia de diseños y demostraciones, datasheets de
dispositivos, tutoriales, y un conjunto de ejercicios de
laboratorio
Cubierta de plástico transparente que cubre la tarjeta
Fuente de alimentación de pared 7.5 DC
Terasic Technologies
No. 356, Sec. 1, Fusing E. Rd.
Jhubei City, HsinChu Country, Taiwan, 302
Email: support@terasic.com
Web: DE0.terasic.com
Capítulo 2
Tarjeta Altera DE0
Este capítulo presenta las características y la característica de diseño de la tarjeta DE0.
LA tarjeta DE0 tiene muchas características que permiten al usuario implementar una amplia gama
de circuitos diseñados, de simples circuitos a varios proyectos multimedia.
®
Dispositivo FPGA Altera Cyclone III 3C16
Dispositivo de configuración serial Altera-EPCS4
Blaster USB (en la tarjeta) para programas y el control API de usuario; tanto
JTAG como Active Serial (AS) modos de programación son soportados.
8-Mbyte SDRAM
4-Mbyte Memoria Flash
Conector de tarjeta SD
3 interruptores pushbutton
10 interruptores de palanca
10 leds de usuario verdes
Oscilador de 50-MHz para fuentes de reloj
VGA DAC (red de resistencias de 4-bits) con conector VGA
Transceptor RS-232
Conector de ratón /teclado PS/2
Dos cabezales de expansión de 40 pines
Figura 2-2 muestra el diagrama de bloques de la tarjeta DE0. Para proveer máxima
flexibilidad para el usuario, todas las conexiones están hechas a través del dispositivo
FPGA Cyclone IIII. Así, el usuario puede configurar el FPGA para implementar cualquier
diseño de sistema.
Figura 2-2 Diagrama de bloque de la tarjeta DE0
15,408 Les
56 M9K Bloques de memoria incorporados
504K bits de RAM totales
56 multiplicadores incrustados
4 PLLs
346 pines de E/S del usuario
FineLine BGA paquete de 484 pastillas
SDRAM
Memoria Flash
Conector de tarjeta SD
Interruptores Pushbutton
3 interruptores pushbutton
Normalmente alto; Genera un pulso de baja activa cuando se pulsa el interruptor
Interruptores deslizantes
10 interruptores deslizantes
Un interruptor ocasiona un 0 lógico cuando el interruptor esta abajo y un 1 lógico cuando
está arriba
Entradas de reloj
Oscilador 50-MHz
Salida VGA
Puertos seriales
Este capítulo presenta primero algunas funciones básicas del panel de control, luego describe su
estructura en diagrama de bloques, y finalmente describe sus capacidades.
Cuando la ventana del panel de control aparezca, esta descargara automáticamente el archivo
de flujo de bits .sof dentro de la FPGA. Si se muestra algún mensaje de error como el que se
muestra en la Figura 3-2, por favor revisa que los pasos 1 a 3 hayan sido realizados. A
continuación, haga clic en el botón Descargar código para volver a programar FPGA.Nota, el
panel de control ocupara el puerto USB hasta que tu cierres el puerto, no puedes usar Quartus II
para descargar un archivo de configuración dentro de la FPGA hasta que cierre el puerto USB.
5. El panel de control ahora está listo para ser usado; Experimente ajustando el valor
de visualización de los LED’s y observe el resultado en la tarjeta DE0.
Figura 3-1. El panel de control DE0.
El concepto del panel de control DE0 está ilustrado en la Figura 3-3. El “código control” que hace la
función de controlar esta implementado en la tarjeta FPGA. Este se comunica con la ventana del
panel de control. El cual está activo en la computadora host, a través del enlace Blaster USB. La
interfaz gráfica se utiliza para emitir comandos al código de control. Se encarga de todas las
solicitudes y realiza transferencias de datos entre el ordenador y la tarjeta DE0.
Figura 3-3. Concepto del panel de control DE0.
El panel de control DE0 puede ser usado para prender los LED’s, cambiar el valor del display de 7
segmentos, monitorear los estados de los botones/ interruptores, leer/escribir en la SDRAM y en
la memoria Flash, leer datos de un teclado PS/2, realizar patrones de colores de salida en el
monitor LCD a través de la conexión VGA, y leer información específica de las tarjetas SD. LA
característica de leer/escribir una palabra o un archivo entero desde/en la memoria Flash permite
a los usuarios desarrollar aplicaciones multimedia (visor de imágenes flash) sin la preocupación de
cómo construir un programador de memoria.
Una función simple del panel de control es la de permitir establecer los valores mostrados en los
LED’s y los display de 7 segmentos.
Elija la pestaña LED mostrada en la ventana en la Figura 3-4. Aquí, puedes activar o desactivar los
LEDs individualmente seleccionándolos o haciendo clic en “Encender todo (Light All)” o en
“Apagar todo (Unlight All)”.
Figura 3-4. Controlando LEDs.
La función de la escritura secuencial del panel de control es usada para escribir el contenido de un
archivo en la SDRAM como sigue:
1. Especificar la dirección de comienzo en el espacio Address.
2. Especifica el numero de byte para ser escritos en el espacio Length. Si el archivo entero se
va a cargar, entonces se puede colocar una marca de verificación en el File Length en lugar
de dar el número de bytes.
3. Para iniciar la escritura de los datos, click en el botón Write a File to Memory.
4. Cuando el panel de control responda con la ventana estándar de dialogo solicitando el
archivo fuente, especifique el archivo deseado de la manera habitual.
El panel de control también admite la carga de archivos con extensión .hex. Los archivos con una
extensión .hex son archivos de texto ASCII que especifican valores de memoria utilizando
caracteres ASCII para representar valores hexadecimales. Por ejemplo, un archivo con la línea
0123456789ABCDEF
Define 4 calores de 8-bits: 01, 23, 45, 67, 89, AB, CD, EF. Esos valores serán cargados
consecutivamente en la memoria.
Los usuarios pueden usar una manera similar para acceder a la memoria FLAS. Por favor recuerde
que los usuarios necesitan borrar la memoria flash antes de escribir en ella.
3.6 Tarjeta SD
La función esta diseñada para leer la identificación y especificación de la tarjeta SD. El SD MODE de
1 bit se utiliza para acceder a la tarjeta SD. Esta función puede usarse para verificar la
funcionalidad de la interfaz SD-CARD. Siga los pasos de abajo como ejercicio de SD card.
3.7 VGA
El panel de control DE0 proporciona la función de patrón VGA que permite a los usuarios emitir el
patrón de color al monitor LCD / CRT usando la tarjeta DE0 FPGA. Por favor siga los paso s de abajo
para generar la función de patrón VGA.
La tarjeta DE0 contiene un chip EEPROM serie que almacena los datos de configuración para la
FPGA Cyclone III. Estos datos de configuración se cargan automáticamente desde el chip EEPROM
en el FPGA, cada vez que se aplica potencia a la tarjeta. Utilizando el software Quartus II, es
posible reprogramar el FPGA en cualquier momento, y también es posible cambiar los datos no
volátiles que se almacenan en el Chip EEPROM. Ambos tipos de métodos de programación se
describen a continuación.
1. Programación de JTAG: En este método de programación, nombrado después de las
normas IEEE Joint Test Action Group, el tren de bits de configuración se descarga
directamente en el Cyclone III FPGA. El FPGA conservará esta configuración siempre
que se aplique potencia a la placa; La configuración se pierde cuando se desconecta la
alimentación.
2. AS: En este método, denominado programación en serie activa, se descarga la
corriente de bits de configuración en el chip EEPROM serie EPCS4 de Altera.
Proporciona un almacenamiento no volátil de la corriente de bits, de modo que la
información se conserva incluso cuando la alimentación de la tarjeta DE0 está
desactivada. Cuando se enciende la tarjeta, los datos de configuración El dispositivo
EPCS4 se carga automáticamente en el FPGA Cyclone III.
Las secciones siguientes describen los pasos utilizados para realizar la programación JTAG y AS.
Para ambos métodos, la tarjeta DE0 está conectada a un ordenador central a través de un cable
USB. Mediante esta conexión, la placa será identificada por el ordenador anfitrión como un
dispositivo Altera USB Blaster. El proceso para Instalar en el equipo host el controlador de
dispositivo de software necesario que se comunica con el USB Blaster se describe en el tutorial
Getting Started with Altera's DE0 Board. Este tutorial está disponible en el CD-ROM del sistema
DE0.
Configurando el FPGA en modo JTAG
La Figura 4-1 ilustra la configuración de la JTAG. Para descargar una secuencia de bits de
configuración en el FPGA Cyclone III, realice el siguiente paso.
La figura 4-3 ilustra las configuraciones del AS. Para descargar una secuencia de bits de
configuración en el dispositivo EPCS4 serie EEPROM, realice los siguientes pasos:
Asegúrese de que la tarjeta DE0 esta energizada
Conecte el cable USB suministrado en el puerto USB Blaster de la tarjeta DE0 (ver
figura 2-1)
Configure el circuito de programación JTAG ajustando el interruptor RUN / PROG
(ver Figura 4-4) en la posición PROG.
El chip EPCS4 ahora puede ser programado usando el modulo Quartus II
Programmer para seleccionar un archivo de flujo de bits de configuración con la
extensión de nombre de archivo .prof
Una vez finalizada la operación de programación, ponga el interruptor RUN /
PROG de nuevo en la posición RUN y luego reinicie la tarjeta apagando y
prendiendo el interruptor de alimentación; Esta acción hace que los nuevos datos
de configuración en el dispositivo EPCS4 se carguen en el chip FPGA.
Además de su uso para la programación JTAG y AS, el puerto USB Blaster en la tarjeta DE0 también
se puede utilizar para controlar algunas de las características de la placa de forma remota desde
un ordenador host. Los detalles que describen este método de uso del puerto USB Blaster se
proporcionan en el Capítulo 3.
Hay 10 LED’s controlables por el usuario en la placa DE0. Cada LED es impulsado directamente por
un pin en el Cyclone III FPGA; La conducción de su pasador asociado a un nivel lógico alto enciende
el LED, y al activar el pin bajo lo apaga. La Figura 4-5 y la Figura 4-7 muestran las conexiones entre
el pulsador, los interruptores deslizantes y el Cyclone III FPGA.
Como se indica en la figura 4-6, cada uno de estos conmutadores se dispara usando un circuito de
disparo de Schmitt. Las Tres salidas denominadas BUTTON0, BUTTON1 y BUTTON2 de los
dispositivos Schmitt Trigger son conectado directamente al Cyclone III FPGA (sólo la versión PCB
10-0100730-A0 contiene Circuito rebotado).
En la Tabla 4.1 se da una lista de los nombres de pin que están conectados a los interruptores de
palanca en el Cyclone III FPGA. Del mismo modo, se muestran los pines utilizados para conectar los
botones interruptores y los LED en la Tabla 4.2 y Tabla 4.3, respectivamente.
La placa DE0 tiene cuatro pantallas de 7 segmentos. Estas pantallas están dispuestas en dos pares
y un grupo De cuatro, con la intención de mostrar números de varios tamaños. Como se indica en
la figura 4-9, los siete Segmentos están conectados a clavijas en el Cyclone III FPGA. Aplicando un
nivel lógico bajo a un segmento Hace que se ilumine, y la aplicación de un nivel lógico alto lo
apaga.
Cada segmento en una pantalla es identificado por un índice de 0 a 6, con las posiciones dadas en
la Figura 4-10. Además, el punto decimal se identifica como DP. La Tabla 4.4 muestra las
conexiones entre el FPGA en las pantallas de 7 segmentos.
La tarjeta DE0 incluye señales de reloj de 50 MHz. Esta señal de reloj está conectada a la FPGA y se
utilizan para sincronizar la lógica del usuario. Además, todas estas entradas de reloj están
conectadas al pin de entrada de reloj de los bucles de bloqueo de fase (PLL) el pin de entrada de
reloj de la FPGA permite a los usuarios utilizar estos relojes como un reloj fuente para el circuito
PLL.
La distribución del reloj en la tarjeta DE0 se muestra en la Figura 4-11. Las asignaciones de pines
asociadas para las entradas de reloj a los pines I / O de FPGA se enumeran en la Tabla 4.5.
La tarjeta DE0 proporciona una interfaz LCD de 2x16. Para utilizar la interfaz LCD, los usuarios
deben soldar un módulo LCD en la tarjeta DE0 mostrada en la Figura 4-12. La referencia detallada
del componente se muestra en la Tabla 4.6. Además, los usuarios pueden comprar este módulo
desde el sitio web de Terasic (http://de0.terasic.com).
El módulo LCD tiene fuentes incorporadas y se puede utilizar para mostrar texto enviando
comandos apropiados al controlador de pantalla, que se denomina HD44780. La información
detallada para utilizar la pantalla está disponible en su hoja de datos, que se puede encontrar en el
sitio web del fabricante, y desde la carpeta de hojas de datos / LCD del CD-ROM del sistema DE0.
En la figura 4-13 se muestra un diagrama esquemático del módulo LCD que muestra las
conexiones con el FPGA Cyclone III. Las asignaciones de pines asociadas aparecen en la Tabla 4.7.
Figura 4-12 Modulo LCD en la tarjeta DE0.
Tenga en cuenta que algunos módulos LCD no tienen retroiluminación. Por lo tanto, la señal
LCD_BLON no debe utilizarse en los proyectos de diseño de los usuarios.
La placa DE0 proporciona dos cabezales de expansión de 40 pines. Cada cabezal se conecta
directamente a 36 pines de la FPGA Cyclone III, y también proporciona DC + 5V (VCC5), DC + 3,3V
(VCC33), y dos pines GND. Entre estos 36 pines de E / S, 4 pines están conectados a los pines de
entrada y salida de reloj PLL del FPGA permitiendo que las tarjetas de expansión de la hija para
acceder a los bloques PLL en el FPGA.
Finalmente, la Figura 4-14 muestra los esquemas relacionados. La figura muestra el circuito de
protección para sólo dos de los pines en cada cabecera, pero este circuito está incluido para todos
los 72 pines de datos. En la tabla 4.8 se indican las asignaciones de pines.
Figura 4-14 Distribución de las entradas y salidas de los cabezales de expansión.
La información detallada sobre el uso del DAC de vídeo ADV7123 está disponible en su hoja de
datos, que se puede encontrar en el sitio web del fabricante o en la carpeta Datasheet / VGA DAC
del CD-ROM del sistema DE0. Las asignaciones de pin entre el Cyclone III FPGA y el conector VGA
se enumeran en la Tabla 4.11. Un ejemplo de código que controla una pantalla VGA se describe en
las secciones 5.3.
La tarjeta DE0 utiliza el chip transceptor ADM3202 para comunicaciones RS-232. Tenga en cuenta
que las señales RS-232 asociadas están conectadas para usarlas como punto de prueba como se
muestra en la Figura 4-17. Para utilizar esta interfaz, los usuarios deben conectar estas señales al
conector D-sub de 9 pines o al cable RS-232. Para obtener información detallada sobre cómo
utilizar el transceptor, consulte la hoja de datos, que está disponible en el sitio web del fabricante
o en la carpeta de hojas de datos / RS-232 del CD-ROM del sistema DE0. La Figura 4-18 muestra los
esquemas relacionados, y la Tabla 4.12 enumera las asignaciones de clavijas FPGA Cyclone III con
el puerto serie RS-232.
Figura 4-17 La colocación de las señales RS-232
La tarjeta DE0 incluye una interfaz PS / 2 estándar y un conector para un teclado o ratón PS / 2.
Además, los usuarios pueden usar el teclado y el ratón PS / 2 en el tablero DE0 simultáneamente
conectando una extensión PS / 2 Y-Cable. Tenga en cuenta que tanto las señales PS_MSDAT como
PS_MSCLK sólo se pueden utilizar cuando el cable PS / 2 Y está conectado al conector PS / 2. La
Figura 4 muestra las conexiones entre el circuito PS / 2 y FPGA. Las instrucciones para usar un
ratón o teclado PS / 2 se pueden encontrar realizando una búsqueda apropiada en varios sitios
web educativos. Las asignaciones de pines para la interfaz asociada se muestran en la Tabla 4.13.
La tarjeta DE0 tiene un conector de tarjeta SD y se puede acceder como memoria externa opcional
en SPI y modo SD de 1 bit. En la tabla 4.14 se muestran las asignaciones de clavijas para el
conector de tarjeta SD con el FPGA Cyclone III.
La tarjeta DE0 se envía desde la fábrica con una configuración predeterminada que demuestra
algunas de las características básicas de la placa. La configuración requerida para esta
demostración y las ubicaciones de sus archivos se muestran a continuación.
El código fuente de Verilog para esta demostración se proporciona en la carpeta DE0_Default, que
también incluye los archivos necesarios para el proyecto Quartus II correspondiente. El archivo
Verilog de nivel superior, denominado DE0_Default.v, puede utilizarse como plantilla para otros
proyectos, ya que define los puertos que corresponden a todos los pines accesibles por el usuario
del FPGA Cyclone III.
5.2 Tarjeta SD
Muchas aplicaciones utilizan un dispositivo de almacenamiento externo grande, como una tarjeta
SD o una tarjeta CF, para almacenar datos. La placa DE0 proporciona el hardware y el software
necesarios para el acceso a la tarjeta SD. En esta demostración mostraremos cómo navegar por los
archivos almacenados en el directorio raíz de una tarjeta SD y cómo leer el contenido de un
archivo específico. El tamaño de la tarjeta SD debe ser menor o igual a 2 GB. Además, debe
formatearse como sistema de archivos FAT (FAT16 o FAT 32) con antelación. Los nombres de
archivo largos se admiten en esta demostración.
La Figura 5-1 muestra el diagrama de bloques del sistema de hardware de esta demostración. El
sistema requiere un reloj de 50 MHz proporcionado desde la placa. Cuatro clavijas PIO están
conectadas a la toma de la tarjeta SD. Son SD_CLK, SD_CMD, SD_DAT y SD_WP_N. Los tres pines
SD_CLK, SD_CMD y SD_DAT se utilizan para implementar el protocolo SD de modo de 1 bit para
acceder al contenido de la tarjeta SD. El protocolo SD de 1 bit y la función de sistema de archivos
FAT son implementados por el software NIOS II. El software se almacena en la memoria SDRAM
integrada.
Figura 5-1 Diagrama de bloques de la demostración de la tarjeta SD
La Figura 5-2 muestra la pila de software de esta demostración. El bloque NIOS PIO proporciona
funciones IO básicas para acceder al hardware directamente. Las funciones se proporcionan desde
el sistema NIOS II y el prototipo de la función se define en el archivo de encabezado <io.h>. El
bloque SD-CARD implementa el protocolo de modo SD 1-bit para la comunicación con la tarjeta
SD. El bloque FAT File System implementa la función de lectura para el sistema de archivos FAT16
y FAT 32. Se admite nombres de archivo largos. Al llamar a las funciones FAT exportadas, los
usuarios pueden buscar archivos en el directorio raíz de la tarjeta SD. Además, los usuarios pueden
abrir un archivo especificado y leer el contenido del archivo.
* Configuración de la demostración
Asegúrese de que Quartus II y NIOS II están instalados en su PC.
Cambie el interruptor al modo "PROG" al modo "RUN" en la tarjeta DE0.
Encienda la tarjeta DE0.
Conecte USB Blaster a la tarjeta DE0 e instale el controlador USB Blaster si es necesario.
Ejecute el archivo de proceso de demostración "test.bat" en la carpeta de archivos por
lotes, DE0_NIOS_SDCARD \ demo_batch.
Después de descargar y ejecutar correctamente el programa NIOS II, aparecerá un
mensaje de aviso en nios2-terminal
Copie los archivos de prueba en el directorio raíz de la tarjeta SD.
Inserte la tarjeta SD en el conector SD Card de DE0, como se muestra en la Figura 5-3.
Pulse el botón 2 de la tarjeta DE0 para comenzar a leer la tarjeta SD.
El programa mostrará la información de la tarjeta SD, como se muestra en la Figura 5-4.
Figura 5-3. Insertar tarjeta SD para la demostración de la tarjeta SD
Figura 5-4. Información mostrada por la tarjeta SD para la demostración de la tarjeta SD
La placa DE0 proporciona un circuito VGA de resistencia de 4 bits y un conector VGA D-SUB que
permiten a los usuarios emitir señales VGA al monitor LCD / CRT utilizando Cyclone III FPGA. Esta
demostración implementará un generador de patrones de color VGA en el FPGA. Este generador
de patrones de color puede generar 2 patrones de color utilizando la resolución 640x480. Además,
con SW0 puede cambiar el patrón de color de salida al monitor LCD / CRT.
La Figura 5-5 muestra el diagrama de bloques básico de esta demostración. Hay dos bloques
principales en el circuito, llamados VGA_Pattern y VGA_Ctr. El bloque VGA_Pattern controla cada
valor de píxel para cada línea horizontal y vertical; Por lo tanto el bloque VGA_Pattern puede
generar muchos patrones de color. El bloque VGA_Ctr genera señales de control VGA HS y VS que
dependen de la configuración de resolución del usuario que se utilizan para la salida al monitor
LCD / CRT.
Apéndice
6.1 revisión histórica