Capítulo 3. Diseño del reverberador.

Documentos relacionados
Guía de uso Tarjeta Nexys 2 FPGA Spartan-3E

IEE 2712 Sistemas Digitales

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL

Electrónica Digital II. Arquitecturas de las Celdas Lógicas. Octubre de 2014

Introducción a FPGAs. Contenido

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

TARJETA DE DESARROLLO DE SISTEMAS CON TECNOLOGÍA FPGA.

FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES).

Introducción al procesamiento digital de señales en tiempo real

Lenguaje binario. Código ASCII. Medidas de la información

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

Sistema de Gestión de Aplicaciones Implementadas en FPGAs

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

Laboratorio 4: Uso de una FPGA

SISTEMAS ELECTRÓNICOS DIGITALES

ESTRUCTURA BÁSICA DE UN ORDENADOR

Computadora y Sistema Operativo

Conocer, diseñar y aplicar los circuitos digitales para el control de los diferentes sistemas mecatrónicos.

Contador de pulsos para Servomecanismos

INSTITUTO DE ELECTRÓNICA Y COMPUTACIÓN

KIT LUCES SECUENCIALES REVERSIBLES CON 16 LEDS. Luces secuenciales con efecto de scanner o simulador de alarma.

INTRODUCCIÓN A LOS CIRCUITOS INTEGRADOS

Chaltén XA-1 Mauro Koenig Gastón Rodriguez Martin Hidalgo

Tema: Microprocesadores

CAPITULO 1 INTRODUCCION AL PROYECTO

Lógica Programable - Dispositivos - Introducción n a los Sistemas Lógicos y Digitales 2008

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales

Síntesis arquitectónica y de alto nivel

ARQUITECTURAS ESPECIALES

Carrera: MTF Participantes Representante de las academias de ingeniería Mecatrónica de los Institutos Tecnológicos.

INDICE. XVII 0 Introducción 0.1. Historia de la computación

Práctica 5. Generadores de Señales de Reloj y Flip-flops

MICROCONTROLADORES: FUNDAMENTOS Y APLICACIONES CON PIC. Autores: Fernando E. Valdés Pérez Ramon Pallàs Areny. Título de la obra:

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna

Principios del FPGA y aplicaciones en el control de procesos industriales.

TRAYECTO SISTEMÁTICO DISEÑO DE SISTEMAS EMBEBIDOS

Quartus II. Dr. Andrés David García García. Departamento de Mecatrónica. TE.1010 Sistemas Digitales

PROGRAMA DE LA ASIGNATURA: SISTEMAS ELECTRÓNICOS DIGITALES

INSTRUMENTACIÓN VIRTUAL APLICADA AL ESTUDIO DE SISTEMAS COMPLEJOS

Arquitectura de Computadores II

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

GRABADOR DIGITAL WI-FI RONI

Diseño de un sintetizador de frecuencia basado en el circuito integrado PLL CD4046 (Noviembre 2008)

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

Electrónica Digital. Actividad Dirigida. Implementación de un Cronómetro Digital

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006

AUTOMATIZACIÓN INDUSTRIAL

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

Midi y Audio Digital. Qué es el MIDI?

Hecho por: Mario Alberto Romero Lòpez Materia: Estructura fisica y logica del pc

XILINX XC2S50. Joaquín Olivares

Sistemas Digitales I Taller No 2: Diseño de Circuitos combinacionales usando VHDL

CAPÍTULO 3 MÓDULO DIGITAL PARA CONVERSIÓN DE VIDEO

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

UNIVERSIDAD NACIONAL HERMILIO VALDIZAN DIRECCION DE EDUCACION A DISTANCIA Y VIRTUAL CENTRO DE ESTUDIOS INFORMATICOS HUANUCO PERU

Programa ALTERA destinado a Universidades

Capítulo 02. SDK C6713

FUNCIONAMIENTO DEL ORDENADOR

Laboratorio de Diseño de Sistemas Digitales

UART. Diseño de Sistemas con FPGA 1er cuatrimestre 2013 Patricia Borensztejn

Sistemas Combinacionales y Sistemas Secuenciales

DISPOSITIVOS DE LÓGICA PROGRAMABLES EN CAMPO (FPGA)

Electrónica Digital II

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD BICENTENARIA DE ARAGUA SECRETARIA DIRECCIÓN DE ADMISIÓN Y CONTROL DE ESTUDIOS

TICA EN LA ESCUELA. El Robot (hardware) Alicia Escudero. Apellido y Nombre: Escudero Alicia. Tema: características de un robot

INDICE Prefacio 1 Sistemas numéricos y códigos 2 Circuitos digitales

TEMA 1: Concepto de ordenador

INDICE Capítulo 1. Introducción Capítulo 2. Circuitos lógicos básicos Capítulo 3. Sistemas numéricos Capítulo 4. Codificación

INTRODUCCIÓN AL DISEÑO FPGA-DSP. Cristian Sisterna, MSc UNSJ-C7T

Duración (en horas) Evaluación de los aprendizajes

COMPUTADORAS ELECTRÓNICAS

ENSAMBLE Y MANTENIMIENTO DE COMPUTADORES

Introducción. El Procesamiento Digital de Señales: Áreas de trabajo

Guía de Usuario Convertidor USB-Serial v2

COMPONENTES PRINCIPALES DEL HARDWARE DE UN ORDENADOR:

Recopilación presentada por 1

Descripción en VHDL de circuitos aritméticos para campos finitos GF(2 m )

Registros de desplazamiento

Tema 09: Convertidor Analógico Digital

-

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de

Unidad I: Organización del Computador. Ing. Marglorie Colina

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN

Diseño de una calculadora

ELECTRÓNICA II. M. Teresa Higuera Toledano (Dep. Arquitectura de Computadores y Automática) FdI 310

UNIDAD FORMATIVA 1: Instalación y Actualización de Sistemas Operativos

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS

Frecuencia Máxima de un Sistema Digital Sincrónico (Básico)

DEPARTAMENTO DE CIENCIAS DE LA ENERGIA Y MECANICA Laboratorio de Automatización Industrial Mecánica. TEMA: Control de procesos con Arduino.

Periféricos Interfaces y Buses

Metodología para el Diseño de Interfaces de Usuario para Sistemas con FPGA

Transcripción:

Capítulo 3. Diseño del reverberador. Como se especificó anteriormente, para el diseño del reverberador por convolución se pretende utilizar un dispositivo FPGA. Un arreglo de compuertas programable en campo (FPGA por sus siglas en inglés) es un dispositivo lógico que contiene un arreglo de dos dimensiones de celdas lógicas genéricas, las cuales pueden ser configuradas para realizar una simple función y estas son interconectadas por interruptores programables [15]. Figura 3.1. Estructura conceptual de un FPGA [15]. Una celda lógica contiene un circuito configurable combinacional con un flip-flop tipo D. Dicho circuito es implementado como una tabla de búsqueda LUT (look-up table), la cual puede ser considerada como una pequeña memoria de 2 n por 1. De esta forma se 32

implementa una función combinacional de n entradas y su salida pueden ser utilizada directamente o guardada en el flip-flop D [15]. Figura 3.2. Circuito combinacional de una celda lógica y tabla LUT [15]. La mayoría de los FPGA posee también macro celdas o macro bloques que son fabricados a nivel de transistores y sus funciones complementan las celdas lógicas. Los ejemplos más comunes son los bloques de memoria RAM, multiplicadores combinacionales, circuitos para el manejo de reloj y circuitos de interfaz de entrada/salida. En este proyecto de tesis, se utilizó un FPGA Spartan-3 de Xilinx, el cual cuenta con celdas lógicas conformadas por una LUT de cuatro entradas y un flip-flop D, además de un circuito de acarreamiento para realizar funciones aritméticas, así como un circuito multiplexor. La arquitectura de dicho dispositivo está conformada por elementos programables como los bloques lógicos configurables conocidos como CLBs (Configurable Logic 33

Block), los cuales están formados por cuatro rebanadas o slices, que son grupos de dos celdas lógicas. Otros elementos programables con que cuenta el Spartan-3 son el multiplicador combinacional que realiza operaciones utilizando números de hasta 18 bits, el bloque síncrono de SRAM de 18Kbits que puede ser personalizado de diferentes maneras para realizar distintas configuraciones, así como el DCM (Digital Clock Manager) el cual utiliza un ciclo de retraso digital para reducir la asimetría de los relojes o controlar la frecuencia y el desfasamiento de una señal de reloj. Por último cuenta con bloques de entrada/salida llamados IOB (Input/Output Block), los cuales permiten el control del flujo de la información entre los puertos de entrada/salida y la lógica interna del dispositivo[16]. Figura 3.3. Arquitectura del FPGA Spartan-3 de Xilinx [16]. 34

El chip Spartan-3 cuenta con subfamilias las cuales cuentan con celdas lógicas y macro celdas similares, sin embargo, difieren en su densidad de componentes. A diferencia de los DSP que son programados en lenguaje ensamblador o de tipo C, la programación de este dispositivo se lleva a cabo mediante un lenguaje de descripción de hardware, conocido como HDL (Hardware Description Language), del cual los más utilizados son VHDL y Verilog. 3.1. Prototipo. El prototipo del reverberador por convolución cuenta con una interfaz de memoria SD, la cual tiene la función de introducir la información del archivo de audio que contiene la respuesta al impulso. Además tiene un modulo convertidor analógico a digital con el cual se muestrea la señal de audio sin procesar y la información de este procedimiento es guardada en memoria interna del FPGA. Posteriormente, el procesamiento del algoritmo se lleva a cabo con los módulos de FFT de Xilinx para transformar ambos vectores al dominio de la frecuencia y así poder multiplicar su espectro, es decir, llevar a cabo la convolución, para después transformar al dominio del tiempo el vector resultante mediante la IFFT para reproducirlo en un altavoz haciendo uso de un convertidor de señal digital a análogica. 35

Figura 3.5. Diagrama a bloques del prototipo del reverberador. 3.2. Requerimientos de Hardware. 3.2.1. FPGA. El FPGA Spartan-3 se encuentra en una tarjeta de experimentación Nexys de Digilent Inc y pertenece a la subfamilia XC3S1000, la cual cuenta con un millón de compuertas, 17280 celdas lógicas, 1920 CLB, 432 Kbits en bloques de RAM, 24 multiplicadores combinacionales, así como 4 DCM [17]. 36

Figura 3.4. Tarjeta Nexys de Digilent Inc. Algunas de las características de esta tarjeta es que cuenta con un oscilador que opera a una frecuencia de hasta 100 MHz, una memoria PSDRAM Micron de 16 MB y una memoria ROM Intel StrataFlash de 4 MB. Posee 60 salidas que se encuentran distribuidas en 4 conectores de tipo PMOD y un puerto Hirose FX-2 de alta velocidad. Puede ser programado mediante el puerto USB incluido o a través de la interfaz JTAG. Figura 3.5. Diagrama a bloques de la tarjeta Nexys de Digilent Inc. 37

3.2.2. Lectura de la respuesta al impulso. El archivo que contiene la respuesta al impulso, se eligió almacenarlo en una tarjeta de memoria SD (Secure Digital), ya que es un método de almacenamiento portátil de gran capacidad de almacenamiento, de alto desempeño y es compatible con los requerimientos de la mayoría de los dispositivos de audio y video de la actualidad. Sin embargo, por la complejidad de programar un controlador para este tipo de memoria en VHDL, se decidió utilizar un módulo externo llamado ummc de Rogue Robotics, el cual se encarga de establecer un puente de comunicación entre la tarjeta SD y una interfaz serial TTL haciendo uso del protocolo SPI. Figura 3.7. Módulo de transmisión ummc de Rogue Robotics [18]. 38

Dicho módulo establece una comunicación serial de 8 bits, con un bit de inicio y un bit de paro. Su tasa de transferencia puede ser configurada para operar a 9600, 19200, 38400, 57600 y 115200 bps [18]. En este caso se eligió operar a 115200 bps ya que se necesita que la transferencia de información de la tarjeta SD a la memoria del FPGA tome el menor tiempo posible. La tarjeta SD que se utiliza requiere contar previamente con un formato FAT16 o FAT32, lo cual denota el número de archivos que se pueden crear. En este caso, se eligió una tarjeta con capacidad de 32 MBytes de SanDisk, la cual se le dio formato FAT32 en una PC antes de almacenar los archivos de la respuesta al impulso. La interfaz programada en el FPGA deberá contar con un transmisor-receptor serial para poder enviar los comandos de operación al modulo ummc y de esta manera realizar la lectura del archivo de la respuesta al impulso. 3.2.3. Muestreo y reconstrucción de la señal de audio. Para digitalizar la señal de audio sin procesar y que será convolucionada con la respuesta al impulso, se requiere un convertidor analógico digital, el cual sea capaz de muestrear a una frecuencia mínima de 22.1 KHz, debido a que muchas aplicaciones de audio utilizan esta frecuencia, pero tiene la desventaja de que la calidad del sonido será deficiente. 39

Otra característica importante es la resolución en bits por cada muestra tomada de la señal analógica, ya que al igual que la frecuencia de muestreo, repercute en la calidad del audio. Por estas razones, se eligió el módulo PMODAD1 de Digilent, que contiene dos convertidores de conversión analógica a digital ADCS7476MSPS de National Semiconductor con una resolución de 12 bits, cuyas entradas se encuentran conectadas a dos filtros anti-alias Sallen-Key y su capacidad de muestreo es de un millón de muestras por segundo, lo cual cumple con lo necesario para el proyecto. Además tiene la ventaja de ser conectado directamente a los puertos PMOD de la tarjeta Nexys. Figura 3.8. Módulo de conversión analógica a digital PMODAD1 de Digilent Inc. Para llevar a cabo el proceso inverso, es decir, convertir el resultado final en formato digital a analógico, se requiere un convertidor digital a analógico con las mismas características mencionadas anteriormente. En este caso se eligió el módulo PMODDA2, el cual cuenta con dos convertidores digital a analógico DAC121S101 de National Semiconductor, los cuales permiten convertir valores digitales de 12 bits a voltajes analógicos. 40

Figura 3.9. Módulo de conversión digital a analógica PMODDA2 de Digilent Inc. Otro requerimiento es el de un amplificador de audio a la salida del convertidor digital a analógico que permita poder escuchar el resultado del proceso mediante el uso de un altavoz. Para esto, se eligió utilizar el módulo PMODAMP1 de Digilent, el cual cuenta con un amplificador de audio LM4838 de National Semiconductor que amplifica señales de audio de baja amplitud para poder ser escuchadas mediante audífonos o un altavoz monofónico. Figura 3.10. Módulo amplificador de audio PMODAMP1 de Digilent Inc. El funcionamiento y configuración de estos módulos se define a fondo en el siguiente capítulo. 41

3.3. Requerimientos de Software. 3.3.1. Xilinx ISE. Una vez que se tienen los requerimientos de hardware, es necesario utilizar una herramienta de software que permita transformar de la descripción abstracta en texto del lenguaje VHDL al nivel de la configuración de celdas para ser posteriormente descargado en el FPGA. En este caso, Xilinx cuenta con una herramienta llamada ISE (Integrated Software Enviroment), el cual controla todos los aspectos del flujo de diseño que se muestra en la siguiente figura: Figura 3.11. Diagrama de flujo del desarrollo [15]. 42

Dicho flujo consiste en los siguientes pasos [15]: 1. Primero se lleva a cabo el diseño del sistema y se crean los archivos en VHDL necesarios para la descripción de cada una de las partes que lo conforman. Además se necesita un archivo de restricciones (constraints) para asignar los puertos de salida del FPGA. 2. Desarrollar el archivo de pruebas (testbench) y efectuar la simulación de nivel RTL (Register Transfer Level). 3. Efectuar la síntesis lógica, en la cual se transforma de las entidades de VHDL al nivel de componentes de compuertas genéricas, tales como compuertas lógicas y flip-flops. Posteriormente se realiza la implementación, en la cual se llevan a cabo el proceso de la traducción, en el que se combinan varios archivos en una sola netlist, la cual describe la conectividad del diseño electrónico. Después se realiza el mapeo de las compuertas genéricas a las celdas lógicas del FPGA, así como los bloques de entrada/salida. Una vez hecho esto, se efectúa el trazado físico en el chip (place and route), que consiste en colocar las celdas en lugares físicos y determina las rutas para conectar varias señales. Por último se hace un análisis que determina parámetros temporales como el retraso por propagación máximo y la frecuencia de reloj máxima. 4. El último paso es generar y descargar el archivo de programación, en donde un archivo de configuración es generado de acuerdo a la netlist final y posteriormente es enviado en forma serial al FPGA para configurar las celdas lógicas y los interruptores. 43

En la siguiente figura se muestra la interfaz del software ISE 11.1, la cual se encuentra organizada en diferentes secciones, tales como la ventana del navegador de archivos que conforman el proyecto. Estos son mostrados de manera jerárquica según el diseño interno del proyecto. Debajo de la ventana de archivos se encuentra otra ventana en la cual se muestran los procesos del flujo de diseño mencionados anteriormente. De esta manera, se pueden ejecutar alguno de los subprocesos que conforman cada paso de manera individual o en conjunto según se requiera. Cuenta también con un editor de texto especial para la creación del código VHDL, así como una consola donde se indican los procesos, advertencias y errores que existan en el proyecto. Figura 3.12. Interfaz de ISE Proyect Navigator de Xilinx. 44

Después de que se lleva a cabo cada uno de los procesos, se puede ver un resumen en donde se indica el porcentaje de uso de los recursos con que cuenta el FPGA, como el número de slices, multiplicadores, bloques de memoria, bloques de entrada/salida, entre otros. Figura 3.13. Ventana de resumen del diseño. 3.3.2. Simulador. En este caso se requiere un simulador de nivel RTL el cual permita verificar que el diseño de las entidades y su arquitectura descritas en VHDL se comporten de manera correcta después de ser descargadas en el FPGA. 45

Se eligió el software Active-HDL de Aldec, el cual se trata de un simulador que cuenta con una interfaz de fácil uso, ya que permite efectuar la simulación mediante la configuración previa de estímulos tales como señales de reloj, fórmulas, valores constantes, entre otros, sin haber generado un archivo de pruebas testbench. Además cuenta con librerías pre-compiladas de la mayoría de los fabricantes de FPGA tales como Xilinx, Altera, Lattice, Quicklogic y Actel, lo que permite realizar una simulación que se acerca bastante al comportamiento real del dispositivo a utilizar. Algunas otras de sus características incluyen un editor de bloques, editor de máquina de estados, así como editor de texto en VHDL que cuenta con la opción de autocompletar y plantillas que permiten generar código RTL sintetizable. Figura 3.14. Interfaz de Active-HDL de Aldec. 46

También se eligió hacer uso del simulador Modelsim XE (Xilinx Edition) de Mentor Graphics, con el fin de efectuar la simulación de los núcleos de propiedad intelectual que son generados con la herramienta de Xilinx IP Core Generator. Dicho simulador se encuentra optimizado para utilizarse con todas las configuraciones del software Xilinx ISE. Su interfaz gráfica cuenta con un editor de código VHDL, compilador, visor de forma de onda, en la cual los datos pueden representarse en distintos formatos tales como hexadecimal, binario, complemento a 2 entre otros. Además cuenta con un visor de memoria, en el cual se pueden observar las direcciones y los valores almacenados. Figura 3.15. Interfaz de Modelsim XE III de Mentor Graphics. 47