Professional Documents
Culture Documents
0
- MEDIANTE DISEO VHDL CON
CYCLONE V
Elaborado por
INGENIERIA FISICA
JUNIO 2015
POPAYAN-CAUCA
pg.
1. Introduccin. 5
2. Generalidades del Software y la FPGA.... 6
2.1. Visin 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. Diseo 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. Comunicacin 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. Programacin y Configuracin de la tarjeta 24
2.2.3.2. Localizacin de pines, identificacin y descripcin de los
componentes de la tarjeta. 28
2.2.4. Sistema constructor (System Builder). 57
2.1.4.1. Flujo de Diseo General 58
2.1.4.2. Mediante C5G Sistemas Generador (System Generator) 59
2.1.5. Cdigos de Ejemplo Basados RTL. 66
2.1.5.1. Configuracin de Fabrica.. 66
2.1.5.2. Prueba LPDDR2 SDRAM TRL 67
2.1.6. Cdigos de Ejemplo Basados en NIOS II.. 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. Grabacin y reproduccin de Audio. 82
Introduccin a Quartus II Diseo VHL con Cyclone V GX
3
pg
2.1.6.6. Leer sistema de archivos de la tarjeta Micro
SD........................................................................................85
2.1.6.7. Demostracin de reproductor de msica de tarjeta
SD.. 89
2.1.6.8. Lectura ADC.. 93
2.1.6.9. Prueba LPDDR2 SDRAM de Nios II. 98
3. Introduccin a VHDL 102
3.1. Qu es VHDL?..................................................................................................... 102
3.2. Ventajas de VHDL para diseo digital 102
3.3. Elementos de VHDL 102
3.4. Identificadores 105
3.5. Operadores 106
3.6. Estructura Bsica de un Archivo fuente en VHDL..106
4. Quartus II 108
4.1. Inicio en Quartus II 108
4.2. Asignacin de Pines.119
4.3. Simulacin de Circuitos Diseados 124
4.4. Programacin en Cyclone V GX 5CGXFC5C6F27C7.134
5. Glosario137
6. Bibliografa142
Es concurrente ver que el uso de las FPGA cada vez crece ms en las grandes industrias
tecnolgicas, debido a su capacidad de ser reconfiguradas y de ejecutar mltiples tareas
adems de su bajo costo en el mercado, lo que las hace muy asequible.
1. Tarjeta Cyclone V GX
2. Gua de usuario
3. Cable de conexin USB tipo A o tipo B
4. Adaptador de alimentacin DC 12 V
Esta tarjeta tiene caractersticas que pueden ser usadas desde simples diseos de
circuitos hasta varios proyectos de multimedia.
b. Configuracin y depuracin
c. Dispositivo de memoria
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 travs de una conexin usb. Este programa
puede ser utilizado para verificar la funcionalidad de los componentes de la tarjeta o
ser utilizado como una herramienta de depuracin durante el desarrollo de cualquier
cdigo RTL (lenguaje de transferencia de registros).
Este captulo presenta en primer lugar algunas funciones bsicas del panel de
control, luego describe su estructura en forma de diagrama de bloque y finalmente
describe sus capacidades.
Los circuitos de control especficos 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 travs de la conexin USB-Blaster [USB-0].
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.
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.
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 patrn de color HDMI-TX
para monitor VGA, verificar funcionalidad de conector HSMC I/OS, comunicar con la PC
va UART o interfaz USB, leer informacin de especificacin de tarjeta SD. La funcin 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
imgenes) sin tener que preocuparse acerca de cmo construir un programador de
memoria.
Una funcin simple del Panel de Control es permitir el ajuste de los valores mostrados
en los LEDs, del displays de 7 segmentos. Elegir la opcin 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.
El Panel de Control tambin permite cargar archivos con extensin .hex. Los archivos
con extensin .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 lnea
0123456789ABCDEF
Define ocho valores de 8 bits: 01, 23, 45, 67, 89, AB, CD, EF. Estos valores se cargarn
consecutivamente en la memoria.
2.2.2.6. ADC
bits de datos: 8
2.2.2.8 HDMI-TX
2.2.2.9. HSMC
Seleccione la ficha HSMC para ver la ventana que se muestra en la figura 2-12. Esta
funcin est diseada para verificar la funcionalidad de las seales en el conector HSMC.
Antes de ejecutar la prueba de verificacin de bucle invertido HSMC, siga las
instrucciones que se observ en la seccin de instalacin 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 dao a la tarjeta.
Para ejecutar el Panel de Control, los usuarios deben seguir el ajuste de configuracin
segn la seccin 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 comunicacin con el PC va USB Blaster. El NiosII interpreta los
comandos enviados desde el PC y realiza las acciones correspondientes.
3. Leds
4. Despliegue 7-segmentos;
Observar en la figura 14 la conexin 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 posicin ON.
Est diseado para realizar la comunicacin entre la tarjeta y el PC, permitiendo una
velocidad de transmisin de hasta 3 Mbps. Esta interfaz no suportara seales de
control de flujo HW. La interfaz fsica se hecha mediante un puente UART-USB o el chip
de FT232R y se conecta al host mediante un conector (cable) tipo B.
La tarjeta de desarrollo contiene una memoria DDR2 SDRAM (LPDDR2) mvil de baja
potencia de 4Gb que es un CMOS de alta velocidad, la Memoria de Acceso Aleatorio
Dinmico contiene 4, 294, 967,296 bits (Figura 18 y Figura 19). Para ms informacin
concerniente a la memoria LPDDR2 dirigirse a su datasheet. Tabla 10. Asignacin de
pines.
La tarjeta de desarrollo es compatible con tarjetas Micro SD usando lneas de datos x4.
Observar la conexin entre la tarjeta Micro SD y la FPGA (Figura 20) y la forma correcta
de conectarla (Figura 21), adems la asignacin de pines se encuentra en la tabla 11.
La tarjeta ofrece una alta calidad de audio (High Quality) de 24-bit mediante el
dispositivo anlogo SSM2603 CODEC de audio (codificador /decodificador). Este chip
soporta entrada de micrfono, entrada de lnea (line-in), y puertos de salida de lnea, 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 esquemtico de la conexin. Se recomienda consultar el
datasheet del dispositivo SSM2603.
Note que la barra de alimentacin de +12V pasa por un puente (Jumper (Figura 23)), la
funcin del jumper es evitar los casos en que el usuario no utilice la alimentacin 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 configuracin predeterminada de fbrica 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 posicin ON. Observar la tabla 14.
Para el uso de esta regleta de expansin es necesario poseer una conexin de tipo
hembra en un extremo y dependiendo de la aplicacin se escoge el segundo extremo de
la conexin. Ejemplo: La salida a un servomotor necesita una conexin con extremos
macho y hembra.
NOTA: Observar la posicin del GPIO en la FPGA y la etiqueta de cada pin, puesto
que puede no coincidir grficamente como se encuentra en la Figura 25. El GPIO
en la FPGA Cyclone V GX 5CGXF5C6CF27C7 se encuentra en una posicin invertida
a como se ve en la Figura 25.
La tarjeta provee compatibilidad con Arduino Uno R3, la expansin 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 analgica se conectan
al ADC, y tambin proporciona 12v DC (VCC12), 5V (VCC5), 3.3V DC (VCC3P3 y IOREF)
y 3 pines de GND (Tierra). Ver Figura 27.
Los 16 pines GPIO se proveen al encabezado de Arduino (Arduino Header) para seales
digitales IO y estas seales comparten bus (conexin) con la expansin de 40 pines del
GPIO. Ver figura 28.
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 retencin (sample-and-hold circuit) completamente
diferencial para reducir el ruido de modo comn. El reloj de conversin 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 travs de una interfaz de bus serie SPI, que es conectada a los
pines de la FPGA. Ver figura 29.
Figura 29. Conexin entre la FPGA, el ADC y los pines anlogos del conector de
Arduino Uno R3.
Para activar la funcin digital o anloga de los dos pines mencionados anteriormente, se
debe usar los jumpers JP15 y JP16 que tienen tres posicin posibles: 1,2 y 3; para la
funcin digital se tiene: Arduino_IO14 (SDA) y Arduino_IO15 (SCL) - observar la figura
29 para los posicin de los jumpers. Para la funcin anloga se tiene: Analog_IN4 (ADA)
y Analog_IN5 (AD5)- observar la figura 30 para la posicin correcta de los jumpers.
Nota: visualizar la posicin de los jumpers, para funcin digital JP15 debe estar en la
posicin 3-2 para que el puerto trabaje como Arduino_IO14 y JP16 debe estar
igualmente en la posicin 3-2 para trabajar como Arduino_IO15.
Tabla 20. Posicin de los Jumpers JP15 y JP16 para funcin Anloga.
Introduccin
El C5G sistema Builder es una utilidad de software para Windows, diseada para ayudar
a los usuarios a crear un proyecto de Quartus II. Los archivos de proyecto Quartus II
generados incluyen:
Los usuarios deben iniciar el sistema constructor C5G y crear un nuevo proyecto de
acuerdo a sus necesidades de diseo. Cuando los usuarios completan la configuracin, el
constructor de sistema C5G generar dos archivos principales, un archivo de diseo de
alto nivel (.v) y un Quartus II configuracin archivo (.qsf).
El archivo de diseo de alto nivel contiene envoltura de Verilog HDL alto nivel, a los
usuarios se les permite agregar su propio diseo/lgica. El archivo de configuracin de
Quartus II contiene informacin como tipo de dispositivo FPGA, asignacin de pin de
alto nivel y la entrada-salida estndar para cada pin I/O definida por el usuario.
GPIO expansin
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 aadir a su diseo bajo el conector HSMC apropiada a la que est conectada la
tarjeta secundaria. El constructor del sistema genera automticamente la asignacin del
pin asociado incluyendo nombre del pin, pin de las clavijas, pin direccin y I/O estndar.
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 estn disponibles
como se muestra en "7 segmentos x 2" en la figura 37. Tambin, fsicamente, los usuarios
necesitan configuracin S1 y S2 Interruptor pequeo que se encuentra en el hardware y
permite definir su configuracin en posicin OFF como se muestra en la figura 37. La S1
y S2 se encuentran en la parte posterior de la tarjeta cyclone V GX.
Expansin de Arduino
Nota, la cabecera de Arduino no comparte pin con 7 segmentos HEX3 y posicin HEX2,
por lo que los usuarios no necesitan configurar S1/S2 en la posicin OFF.
Expansin 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 diseo en el conector apropiado de HSMC al que est
conectada la tarjeta de secundaria. El constructor del sistema genera automticamente
la asignacin del pin asociado incluyendo nombre del pin, ubicacin de las clavijas, pin
direccin y I/O estndar.
Generacin de proyectos
Cuando los usuarios presionan el botn generar, el constructor de sistema C5G generar
los correspondientes archivos de Quartus II y los documentos que se enumeran en la
tabla 4-1:
Los usuarios pueden utilizar el software Quartus II para agregar lgica personalizada en
el proyecto y compilar el proyecto para generar el archivo de objeto de SRAM (.sof).
La tarjeta C5G se expide de la fbrica con un flujo de bits de configuracin por defecto
que muestran algunas de las caractersticas bsicas de la tarjeta. Siempre se debe tener
presente la ubicacin de los archivos para las demostraciones y la configuracin
requerida para realizarlas.
*Project_directory: C5G_default
*Bit strem used (Flujo de bits): C5G_default.sof
Los mdulos RW_test leen y escriben todo el espacio de memoria de la LPDDR2 a travs
de la interfaz Avalon del controlador. En este proyecto, Avalon
En este captulo se ofrece una serie de NIOS II cdigos bases ejemplo diseados para la
tabla de inicio. Estos ejemplos proporcionan demostraciones de las caractersticas
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 demostracin presenta una funcin de prueba de memoria de SRAM en la tarjeta
C5G. El tamao de la memoria del SRAM es de 512KB.
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
continuacin, llama a Nios II sistema funcin, alt_dcache_flush_all, para asegurarse de
que todos los datos se han escrito en SRAM. Por ltimo, lee datos de SRAM para
verificacin de datos. El programa mostrar avances en JTAG-Terminal lectura/escritura
de datos hacia/desde el SRAM. Cuando haya completado el proceso de verificacin, el
resultado se muestra en la Terminal de JTAG.
Herramientas de diseo
Quartus II 15.0
Nios II
Demostracin Cdigo fuente
Directorio del proyecto Quartus: C5G_SRAM
Nios II: C5G_SRAM\Software
Proyecto de Compilacin Nios II
Configuracin de demostracin
Asegrese de Quartus II y Nios II estn 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.
Herramientas de diseo
Quartus II 15.0
Nios II
Demostracin cdigo fuente
Directorio del proyecto Quartus: C5G_UART
Nios II: C5G_UART_USB_LED\Software
Proyecto de Compilacin Nios II
Antes de intentar compilar el diseo de referencia bajo Nios II, asegrese
de que el proyecto este limpio haciendo clic en 'Limpiar' en el men
'Proyecto' de Nios II.
Demostracin de archivo por lotes
Carpeta de archivo de lote de demo:
C5G_UART_USB_LED\demo_batch
Configuracin de demostracin
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 demostracin, debe instalar el UART a USB driver.
En la terminal de masilla tipo carcter para cambiar el estado del LED. Escriba un
nmero digital para alternar el estado LEDR [9..0] y escriba a/A o ON/OFF para activar o
desactivar todos LEDR.
2.2.6.3. HDMI-TX
La figura 6-8 muestra el diagrama de bloques del sistema de este diseo de referencia. El
"patrn generador de Video " mdulo que hace frente a la generacin de patrones de
vdeo que se presentar en la pantalla LCD monitor. El patrn se compone en el camino
de 24-bit RGB 4: 4: 4 (RGB888 por pxel de color sin submuestreo) codificacin de color,
que se corresponde con el formato de codificacin paralela definida en la Tabla 1.6 de la
Gua del hardware del usuario "ADV7513, "Como se muestra a continuacin.
Herramientas de diseo
Quartus II 15.0
Nios II
Demostracin de Cdigo fuente
Directorio del proyecto Quartus: C5G_HDMI_VPG
Nios II: C5G_HDMI_VPG\Software
Inicio demostracin:
Funcionamiento de demostracin
comandos descripcin
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. Adems, 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 (Vdeo Cdigo Identificacin) y la descripcin 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 direccin addr,
donde addr es un nmero hexadecimal de dos dgitos.
w addr data Escribe el valor del registro, dado por los datos, al codificador
HDMI en la direccin addr, donde addr y datos son ambos
nmeros hexadecimales de 2 dgitos. Tenga en cuenta que el
valor addr debe dar exactamente en formato de 2 dgitos, como
02, 1b, 0c, f7. Dado que menos de 2 dgitos causan una falsa
Herramientas de Diseo
Quartus II 15.0
Nios II
Demonstracin Cdigo Fuente
Antes de intentar compilar el diseo de referencia bajo Nios II, asegrese de que el
proyecto est limpio haciendo clic en 'Clean' del men 'Proyecto' de Nios II de Eclipse.
C5G_HSMC_XCVR_LOOPBACK_TEST \ demo_batch
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.
Dos pulsadores y cinco interruptores deslizantes se utilizan para configurar este sistema
de audio: SW0 se utiliza para especificar la fuente de grabacin sea Line-in o MIC-In.
SW1 se utiliza para activar / desactivar MIC, cuando la fuente de grabacin es MIC-In.
El LED se utiliza para indicar la intensidad de la seal de audio. Figura 6-13 resume el
uso de interruptores deslizantes para configurar la grabadora y reproductor de audio.
La figura 6-14 muestra el diagrama de bloques del grabador y el diseo 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 programacin C. La parte de hardware
El chip de audio se programa a travs del protocolo I2C que se implementa en el cdigo
C. Los pines I2C de chip de audio estn conectados al Sistema de Interconexin Qsys a
travs 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 travs del controlador de audio.
Nota:
La figura 6-16 muestra la pila de software de esta demostracin. El bloque Nios PIO
proporciona funciones bsicas IO para acceder al hardware directamente. Las
funciones se proporcionan desde el sistema Nios II y el prototipo de funcin se
Herramientas de Diseo
Quartus II 15.0
Nios II
Demostracin Cdigo Fuente
Antes de intentar compilar el diseo de referencia bajo Nios II, asegrese de que
el proyecto est limpio haciendo clic en 'Clean' del men 'Proyecto' de Nios II.
Demostracin de archivos por lotes
Demo de la carpeta de archivos por lotes:
C5G_SD_DEMO \ demo_batch
C5G_SD_DEMO.bat,
C5G_SD_DEMO.sh
Demostracin de Configuracin
Asegrese de Quartus II y Nios II estn 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 demostracin por lotes "C5G_SD_DEMO.bat" para USB-
Blaster II bajo la carpeta de archivos por lotes, C5G_SD_DEMO \ demo_batch
Despus 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 raz 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.
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 diseo, el reloj es proporcionado por el bloque de PLL.
Figura 6-20 Pila de software del reproductor de msica tarjeta Micro SD.
El chip de audio debe estar configurado antes de enviar seal 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 reproduccin de audio en bucle, el programa
principal lee 512 bytes de datos de audio de la tarjeta SD, y, a continuacin, 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 diseo tambin mezcla la seal de audio del
micrfono y lnea de estilo Karaoke mediante la habilitacin de las funciones BYPASS
and SITETONE en el chip de audio.
Herramientas de Diseo
Quartus II 15.0
Nios II
Antes de intentar compilar el diseo de referencia bajo Nios II, asegrese de que
el proyecto este limpio haciendo clic en 'Clean' del men 'Proyecto' de Nios II.
C5G_SD_MUSIC \ demo_batch
Configuracin de Demostracin
Esta demostracin ilustra pasos que pueden ser utilizados para evaluar el desempeo de
los 8 canales de 12 bits A / D Conversor LTC2308. La figura 6-21 muestra el diagrama de
bloques de esta demostracin. Implementa principalmente un Controlador ADC, las
seales analgicas se introducen en la entrada analgica de cabecera Arduino, y la FPGA
leer el registro asociado en el convertidor a travs de la interfaz de serie traducindolo
al valor de la tensin que aparece en la consola NIOS II.
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 informacin detallada de la
seleccin.
JP15 JP16
Abrir No Seleccione No Seleccione
1-2 corto Utilice la entrada analgica Utilice la entrada analgica
Arduino 4 Arduino 5
2-3corto Utilice Arduino SDA o IO Utilice Arduino SCL o IO
Digital Digital
En esta demostracin, 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 conexin de
hardware entre FPGA y ADC, las seales 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.
Ciclo de muestreo:
Tiempo de adquisicin:
Tacq = (400-299) * 5ns = 505 ns (Ver ficha tcnica ADC para la definicin detallada).
`definir tHCONVST 12
Tarjeta C5G x1
Tensin de la muestra a medir
Muchas aplicaciones utilizan una RAM de alto rendimiento, tal como un LPDDR2
SDRAM, para proporcionar almacenamiento temporal. En esta demostracin los diseos
de hardware y software se proporcionan para ilustrar la forma de realizar el acceso a la
memoria LPDDR2 en QSYS.
El QSYS, Nios II y la memoria en chip estn diseados para ejecutarse con el reloj de
125MHz, y el programa Nios II se ejecuta en la memoria del chip.
Para utilizar Altera LPDDR2, los usuarios necesitan realizar cuatro pasos principales:
Herramientas
TCL Scripts ...
Herramientas de Diseo
Quartus II 15.0
Nios II
Antes de intentar compilar el diseo de referencia bajo Nios II, asegrese de que
el proyecto este limpio haciendo clic en ' Clean ' del men 'Proyecto' de Nios II .
Demostracin de Archivo por lotes
Carpeta de archivos por lotes de demostracin:
C5G_LPDDR2_Nios_Test \ demo_batch
Configuracin de Demostracin
Asegrese de Quartus II y Nios II estn 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 demostracin " C5G_LPDDR2_Nios_Test.bat "
para USB- Blaster en la carpeta de archivos por lotes , C5G_LPDDR2_Nios_Test \
demo_batch
Despus 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 informacin, como se muestra
en la Figura 6-27.
3.1. Qu es VHDL?
Lenguaje estandarizado.
Permite el diseo modular y jerrquico de sistemas electrnicos.
VHDL permite el paralelismo.
Permite incluir diferentes niveles de abstraccin al describir un diseo digital.
VHDL permite la descripcin del aspecto exterior del circuito, es decir sus entradas y
salidas, al igual que la relacin 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).
library ieee;
library std;
use ieee.std_logic_1164.all;
use std.standard.all;
Entity (Entidad)
clk
Salida_s
reset
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 slo se pueden leer y no se puede modificar su valor internamente
en la descripcin del comportamiento del circuito (architecture)
Architecture (Arquitectura)
Ejemplo:
begin
process (a, b, control)
begin
if (control =1)
then salida<=a;
else
salida <=b;
end if;
end process;
end control_mux_21;
Se utilizan para dar nombres a los diferentes objetos del lenguaje como variables,
constantes y seales.
Las seales son un tipo de objeto que se declara dentro de la arquitectura antes del
begin, adems 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 vara a lo largo del desarrollo del diseo,
mientras que las variables actualizan su valor inmediatamente.
Constantes:
CONSTANT e: real:= 2.7128
Variable:
Identificador:= expresin
a:=b;
Seal:
Nombre seal<= valor;
a<=17;
Bit: slo admite los valores 0 y 1. Para hacer una asignacin a un objeto tipo bit el
valor binario tiene que aparecer entre comas simples (0 o 1)
Positive rango: cualquier nmero positivo dentro del rango real rango cualquier
nmero real dentro del rango.
std_logic tipo predefinido en el estndar IEEE 1164. Este tipo representa una
lgica multivaluada de 9 valores. Adems del 0 lgico y el 1 lgico, posee alta
impedancia Z, desconocido X sin inicializar U entre otros. Para hacer una
asignacin el valor tiene que aparecer entre comas simples (0, 1, X, ).
3.5. OPERADORES
Un operador nos permite construir diferentes tipos de expresiones mediante los cuales
podemos calcular datos utilizando diferentes seales.
OPERADORES
+, -, *, /, mod, rem operaciones aritmticas
+, - cambio de signo
& Concatenacin
and, or, nand, nor, xor operaciones lgicas
:= Asignacin de valores a constantes y
variables.
** Exponencial
Abs() Valor absoluto
<= Asignacin de valores a seales.
=, /= Igualdad, diferencia
Los modelos VHDL estn formados por dos partes: la entidad (entity) y la arquitectura
(architecture)
Plantilla
Library ieee;
Library std;
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;
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;
4. QUARTUS II 15.0
Elegir la opcin FILE y enseguida la opcin 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.
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 Programacin tarjeta.
Elegida la carpeta, se prosigue con la escritura del nombre del proyecto, tal y como es el
nombre de la carpeta, as:
La opcin ADD FILES suele utilizarse cuando es necesario agregar archivos o proyectos
ya existentes a un nuevo proyecto para su correcto funcionamiento.
Realizada la accin se crea un archivo de extensin .vhd, para empezar a redactar cdigo
en este archivo es necesario tener fundamentos tericos que respalden el buen
funcionamiento del circuito a disear; en el ejemplo propuesto, se desarrolla un
contador de 0 a 9 acompaados de la iluminacin de una serie de Leds, el cdigo en
VHDL es el siguiente:
use ieee.std_logic_1164.all;
use std.standard.all;
use work.all;
entity proyecto_1 is
port(
entradas : in std_logic_vector(3 downto 0);
Fundamentos Tericos;
Terminada la asignacion para cada pin (21 en total), se tendra la siguiente pantalla.
Se
modifica
las
ventanas
con que se
trabajan.
Las seales que se tienen no poseen valores definidos, por ello al iniciar la simulacin
con la opcin RUN deben aparecer lneas de color rojo en la pantalla WAVE.
Es necesario introducir los valores deseados para las entradas, para el ejemplo se toma
las combinaciones de 4 bits en orden desde 0000 hasta 1111, as;
Nota; es necesario realizar este paso para cada valor de las entradas.
Realizando estas acciones el nmero de veces que sea necesario se tendr una
simulacin como la siguiente.
Se despliega la anterior pantalla, donde se elige la opcin Create New File, para crear el
archivo de extensin .V (verilog) para el proyecto y para el banco de pruebas.
Module comp_or (
Input wire a, b,
Output wire c);
Assign c= a | b;
Endmodule
`timescale 1ns/ 10 ps
Module test_or;
Reg a_i, b_i;
Wire c_o;
Comp_or uut (.a(a_i), .b(b_i), c.(c_o));
Initial begin
a_i= 1b0;
b_i=1b0;
#10;
a_i= 1b1;
b_i=1b0;
#10;
a_i= 1b0;
b_i=1b1;
#10;
a_i= 1b1;
b_i=1b1;
#10;
End
Endmodule
Compilado el archivo test_comp.v se procede a su simulacin.
Se desplegara una pantalla conteniendo las libreras existentes, en las cuales se elige la
librera WORK y en este caso se elige test_or.v que es el archivo que contiene el banco de
pruebas para el proyecto.
Dirigirse al comando WAVE donde se visualiza las ondas de las seales de entrada y
salida; las seales deben ser agregadas al comando de trabajo de la siguiente forma.
Una vez conectada la FPGA por medio del USB-Blaster, este lo detecta de modo que
enseguida del banner Hardware Setup aparezca el mensaje USB-Blaster (USB 0), si
aparece el mensaje No Hardware.
Por ltimo queda manipular los elementos utilizados como entradas en la FPGA para ver
el funcionamiento del circuito diseado y montado en la misma, para el ejemplo
trabajado se deben manipular 4 switches (observar la etiqueta de cada uno en la tarjeta
y el pin correspondiente para poder ser ubicados fcilmente) que deben controlar el
contador del despliegue 7-segmentos (Ubicacin segn etiqueta de los pines asignados)
y 10 leds (Ubicacin segn etiqueta de los pines asignados).
6. Bibliografia
http://www.terasic.com.tw/cgi-
bin/page/archive.pl?Language=English&CategoryNo=167&No=830&PartNo=2
Altera Corporation-University Program , Quartus II Introduction Using VHDL
Designs, October 2012
Altera.com
Altera Corporation, ModelSim with Quartus II Using VHDL Designs, November
2013.
Software Quartus II 15.0 free Edition 2015
Software ModelSim 10.3d free Edition 2014
User Manual Cyclone V GX Starter Kit-Terasic & Altera Junio 2014
Aleta Corporation-University Program, Quartus II Simulation Using VHDL
Designs, October 2012.