FFT de 8 Puntos IEEE754 Sintetizado en FPGA



Documentos relacionados
GENERADOR AUTOMÁTICO DE FFT CON ALTO GRADO DE PARALELISMO

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica)

Metodologías de diseño de hardware

DISEÑO DE DIVISORES PARALELOS Y SECUENCIALES DE N/N BITS USANDO FPGAS

Arquitecturas DSP. Phil Lapsley, Jeff Bier, Amit Shoham, Edward A. Lee DSP Processor Fundamentals. Architectures and Features IEEE Press 1997

Aritmética Binaria. Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid

Tema IV. Unidad aritmético lógica

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Encuesta sobre utilización de la microelectrónica en la Argentina

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Sistemas Electrónicos Digitales. Práctica 1 Multiplicador de 8 bits secuencial con desplazamiento hacia la derecha

by Tim Tran:

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.

UNIDADES DE ALMACENAMIENTO DE DATOS

Aritmética finita y análisis de error

ED - Electrónica Digital

Representación de números en binario

18. Camino de datos y unidad de control


Clase 20: Arquitectura Von Neuman

Organización del Computador. Prof. Angela Di Serio

OPERADORES: Maquinaria para realizar las instrucciones. Capítulo Tercero Fundamentos de Computadores Ingeniería de Telecomunicación

Trabajo Práctico Final. Transformada Rápida de Fourier con Paralelismo

Tipos de Dispositivos Controladores

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

LABORATORIO DE COMPUTADORAS

Curso S08 para Cavernícolas

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

Formato para prácticas de laboratorio

TEMA 11. CIRCUITOS ARITMÉTICOS TICOS DIGITALES

Circuitos Electrónicos. Septiembre 2005/2006. Problema 1º parcial

Pipelining o Segmentación de Instrucciones

Práctica I Modelado y simulación de una máquina expendedora de refrescos

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

x

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

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

GRADO EN INGENIERÍA INFORMÁTICA CURSO 2009/2010. Asignatura: ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I Código: IIN113

Sistemas de Numeración Operaciones - Códigos

La Unidad Procesadora.

Elementos requeridos para crearlos (ejemplo: el compilador)

Capitulo V Administración de memoria

Laboratorio de Diseño de Sistemas Digitales

Reproducción de una Imagen en un Monitor VGA Utilizando un FPGA

Centro de Capacitación en Informática

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

TEMA 4. Unidades Funcionales del Computador

DESARROLLO DE UN COPROCESADOR EN PUNTO FLOTANTE PARA LA RESOLUCIÓN DE LA ECUACIÓN DE POISSON 1D EN ESTRUCTURAS SOI. Ingeniería Electrónica

5.1.1 Sumadores con anticipación de Acarreo. g i = a i b i. c i = c i-1 p i + g i s i = p i + c i-1. c 0 = g 0 + c -1 p 0

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Ejercicios de fundamentos de los computadores

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

CIRCUITOS ARITMÉTICOS

1. Representación de la información en los sistemas digitales

Informe final Proyecto de Innovación Docente ID11/129. Uso de FPGAs y medios audiovisuales en la docencia de la Electrónica Digital

TELECOMMUNICATION APPLICATION USING FPGA. A RADIO SOFTWARE APPROXIMATION

Representación de la Información

Cursada Primer Semestre 2015 Guía de Trabajos Prácticos Nro. 2

Aritmética del computador. Departamento de Arquitectura de Computadores

Entorno de Ejecución del Procesador Intel Pentium

DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC.

Matemática de redes Representación binaria de datos Bits y bytes

5. Metodologías de diseño de un ASIC

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

FORMATO DE CONTENIDO DE CURSO

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Estructuras de Control - Diagrama de Flujo

Qué es un Microcontrolador?

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

Electrónica Digital II

DESCRIPCION DEL SITEMA MASTER.

Circuitos Electrónicos. Primer parcial curso

CONVERTIDORES DIGITAL ANALÓGICO Y ANALÓGICO - DIGITAL

3rasJornadasITE-2015-FacultaddeIngeniería-UNLP PROCESAMIENTO DIGITALSOBRELAPLACABASELPC1769. Anderson,Jorge;Osio, Jorge;Kunysz,EduardoYRapalini;José

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

SUMADOR BINARIO. Instituto Internacional de Investigación de Tecnología Educativa

BLOQUE 2. (PARTE 3: Tema 1) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Clasificación y descripción

SÍNTESIS DE SISTEMAS DE CONTROL DIFUSOS MEDIANTE HERRAMIENTAS DE DISEÑO DSP SOBRE FPGAS 1

TEMA 2: Representación de la Información en las computadoras

BPMN Business Process Modeling Notation

Laboratorio 4: Uso de una FPGA

OBJETIVOS DE LA MATERIA... 4 PROGRAMA ANALÍTICO. CONTENIDOS TEÓRICOS Y PRÁCTICOS... 5 BIBLIOGRAFIA... 7

Representación de números enteros: el convenio signo y magnitud

ARITMÉTICA EN PUNTO FLOTANTE

picojava TM Características

Introducción a la Firma Electrónica en MIDAS

GUÍA DOCENTE. Sistemas Integrados

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica)

Nombre de la asignatura : Sistemas Digitales. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCC-9335

1.- DATOS DE LA ASIGNATURA. Diseño Digital Avanzado con FPGAs. Nombre de la asignatura: Carrera: Ingeniería Electrónica. Clave de la asignatura:

T6. CIRCUITOS ARITMÉTICOS

Capítulo 4 Procesos con estructuras de repetición

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

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

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

Circuito RC, Respuesta a la frecuencia.

Transcripción:

> REPLACE THIS LIE WITH YOUR PAPER IDETIFICATIO UMBER (DOUBLE-CLICK HERE TO EDIT) < 1 FFT de 8 Puntos IEEE754 Sintetizado en FPGA Julián F. Acosta Orozco, Mario Vera-Lizcano, Jaime Velasco Medina Abstract Este artículo presenta la síntesis, a partir de descripciones en VHDL, de dos arquitecturas para calcular la Trasformada Rápida de Fourier (FFT) de 8 puntos. Los puntos son datos de tipo complejo representados en formato IEEE 754. Los diseños han sido sintetizados con herramientas EDA sobre dispositivos Apex20k y Cyclone II. Lo cual ha permitido el desarrollo de dos módulos IP de FFT, uno optimizado en área y otro optimizado en velocidad. Index Terms Discrete Fourier transforms, Digital signal processors, Digital circuits, Field programmable gate arrays, Floating point arithmetic. A I. ITRODUCCIO CTUALMETE el diseño de sistemas electrónicos digitales puede ser abordado con la metodología de Design Reuse, la cual se basa en la estrategia de diseño a partir de bloques de propiedad intelectual (IP). Esta metodología permite que el diseñador trabajar en el nivel de sistemas usando IPs, abstrayéndose de la complejidad de muchas funciones [1]. Sí los IPs no son disponibles (por terceros) o son costosos, el diseñador debe realizarlos. Para diseñar sistemas de procesamiento digital de señales (DSP) existen varias alternativas, la selección de estas depende de las características que se busquen para el sistema. Existen soluciones a problemas DSP, que van desde una aplicación en software orientada bien sea para un procesador general, o para un procesador DSPs, hasta soluciones de sistemas digitales hardware orientados para FPGAs o ASICs. En el caso de soluciones hardware, las implementaciones de algoritmos DSP se realizan de forma dedicada. En el caso particular de FPGAs modernas que poseen arquitecturas orientadas para el diseño de sistemas DSP (contienen funciones embebidas de multiplicadores y memoria) [2], estos dispositivos permiten un alto throughput en el procesamiento de datos y/o implementación optimizada de algoritmos. Un campo moderno en el que los sistemas digitales y más propiamente el diseño digital orientado a FPGAs aporta soluciones reales y óptimas, es la implementación de sistemas DSP en hardware, ejemplos de estas aplicaciones son: Sistemas inalámbricos, redes de computación, Los autores pertenecen al Grupo de Bioanoelectrónica de la Escuela de Ingeniería Eléctrica y Electrónica (EIEE) de la Universidad del Valle. (Correspondencia A.A. 25360, Cali, Colombia; e-mail: julifranaco@hotmail.com, mario@univalle.edu.co, jvelasco@univalle.edu.co) telecomunicaciones, video, productos de consumo [3] y aplicaciones de tiempo real de muy alto flujo de datos [4]. II. DIEZMADO E EL TIEMPO PARA FFT BASE 2 La FFT realiza el cálculo eficiente de la DFT. Este algoritmo calcula X(k) a partir de la secuencia x(n) [5], la expresión: 1 X (1) = ( k) x( n) n= 0 j 2π / W = e Y las propiedades del factor de giro W W k + / 2 k + k nk W (2) W son: k = W > Simetria (3) = W > Periodicidad A. Método del Doblamiento Sucesivo Este método se basa en la estrategia divide y vencerás. La factorización de la transformada FFT, permite reducción del tiempo de cálculo. Una forma para calcular la DFT de puntos, es dividirla en DFTs de menor tamaño, a partir de las cuales se calcula la DFT total. Al representar por la factorización = r1 r2 r3 rv, donde los rj son primos, el método del doblamiento sucesivo es bastante eficiente, el valor de r se denomina base del algoritmo. Si r r1 = r2 = r3 =... = rv, tal que = r v, se tiene un caso particular donde las DFTs pequeñas son de tamaño r, lo cual permite un patrón regular para el cálculo. B. Algoritmo de diezmado en el tiempo Base 2 Al particionar la transformada de puntos en dos transformadas de /2 puntos y estas a su vez en transformadas de /4 puntos y así sucesivamente, hasta obtener transformadas de dos puntos, el algoritmo resultante para el cálculo de la FFT se llama diezmado en el tiempo Base 2. Al realizar el diezmado para =2 v un total de v=log 2 veces, se reducen las multiplicaciones realizadas por el método normal de la DFT de 2, a (/2)*log 2 y las sumas de *(-1) a *log 2. La tabla I indica la eficiencia del algoritmo.

> REPLACE THIS LIE WITH YOUR PAPER IDETIFICATIO UMBER (DOUBLE-CLICK HERE TO EDIT) < 2 4 16 256 1024 TABLA I EFICIECIA DEL DIEZMADO E TIEMPO BASE 2 2 16 256 65.536 1 048.576 Multiplicaciones (/2) log 2 4 32 1.024 5.120 Eficiencia 4 8 64 204.8 C. Estructura de la FFT base 2 de 8 puntos La figura 1 muestra el algoritmo utilizado en este trabajo para el cálculo de la FFT base 2 de ocho puntos. Fig. 2 Alto nivel de la estructura serie La unidad de control genera las señales de direccionamiento para la memoria RAM, la ROM y el control para los datos de entrada y la multiplexación entre el puerto de carga y de los datos procesados. Mediante el bloque MARIPOSA_BASE_2, la unidad operativa procesa los datos de entrada que previamente han sido almacenados en las memorias RAM (ver figura 3). Todas las tareas se realizan de forma síncrona controladas por la señal CLK Fig. 1. Estructura de la FFT base 2 de 8 puntos D. Formato IEEE 754 de precisión Simple El IEEE 754 es un estándar desarrollado para representar en binario y punto flotante los números reales. En este trabajo se utiliza dos vectores con el formato de 32 bits para representar un punto correspondiente a un número complejo. III. PROCESADOR FFT ESTRUCTURA SERIE La estructura serie para el procesador FFT se compone dos unidades principales (figura 2), la unidad de datos en la cual se almacenan y procesan los datos, y la unidad de control donde se generan las señales necesarias para multiplexar buses, generar direccionamiento de las memorias y controlar las diferentes etapas de cálculo de la transformada. El procesador realiza tres grandes procesos que son: recepción de datos, cálculo de la FFT y salida de datos. A. Unidad de Datos La figura 3 muestra la estructura de la unidad de datos para la FFT serial, se observa como el algoritmo planteado en la figura 1 se resuelve de forma secuencial a partir de una única mariposa. Los puertos de entrada de la unidad de datos son DATO_ET_RE y DATO_ET_IM, (parte real e imaginaria). A través de estos puertos se ingresan de forma secuencial los ocho datos a procesar. Los puertos de salida son DATO_SAL_RE y DATO_SAL_IM los cuales también operan de forma secuencial. Fig. 3. Unidad de datos del procesador FFT La unidad de datos está compuesta por los siguientes elementos: 1) Multiplexor Dos Vías 32 bits: Permite alternar entre datos de entrada al FFT y datos procesados por la mariposa. 2) Memoria RAM: Es de tipo dual, en las figuras 1 y 4 se observa que es necesario leer dos datos, procesarlos y devolver el resultado a las mismas posiciones. Por lo cual la RAM se diseño con registros de 32 bits, permitiendo leer y escribir sobre ella dos datos simultáneamente. 3) Memoria ROM: Los factores de giro son constantes, por lo tanto se almacenan en bloques de ROM. Se cumple que el número de factores de giro es la mitad los puntos a procesar, por lo tanto se necesitan cuatro posiciones de memoria en cada bloque de ROM, cada posición de 32 bits. B. Mariposa Base Dos La figura 1 indica la forma como el algoritmo FFT base 2 diezmado en el tiempo se puede construir a partir de

> REPLACE THIS LIE WITH YOUR PAPER IDETIFICATIO UMBER (DOUBLE-CLICK HERE TO EDIT) < 3 operaciones básicas llamadas mariposas. Esta operación toman dos datos a y b, el dato b se multiplica por una constante W, su resultado se suma o resta con el dato a, tal como lo muestra la figura 4. Para realizar la mariposa es necesario diseñar previamente sumadores-restadores y multiplicadores de punto flotante. requiere desplazar máximo una posición y finalmente los signos no influyen en el orden en que se deban operar los datos. El diseño de esta unidad se observa en la figura 6. Fig. 4. Mariposa base 2 Los bloques básicos que se diseñaron para construir la mariposa base 2 son: multiplicador complejo de punto flotante, sumador restador de punto flotante y unidad para cambio de signo. C. Multiplicador Complejo Este circuito opera dos números complejos X = x1 + j x2, Y = y1 + j y2, cuyo producto es: Z = (x1 * y1 x2 * y2) + j (x1 * y2 + x2 * y1) (4) Se observa en la ecuación 4 que el cálculo de Z requiere de cuatro multiplicadores y dos sumadores-restadores, todas las unidades aritméticas son de punto flotante. D. Sumador-Restador de Punto Flotante Para la construcción de este circuito se realiza (ver figura 5): - Comparación de signos - Alineación de los exponentes - Suma o resta - ormalización para el formato IEEE 754 Fig. 5 Estructura del sumador restador de punto flotante E. Multiplicador de Punto Flotante Algunas características hacen de esta operación menos compleja que la suma. Primero los exponentes no necesitan ser alineados, segundo la operación de normalización solo Fig. 6 Estructura del multiplicador en punto flotante La primera etapa desempaqueta los operandos: se separan los campos de signo, exponente y mantisa, los bits ocultos son reinsertados y se realiza un chequeo de excepciones. En esta etapa es útil analizar si algún operando es cero con objeto de devolver inmediatamente un resultado igual a cero. La segunda etapa calcula el signo del resultado, suma los exponentes y multiplica las mantisas. Realizado lo anterior, el resultado es normalizado, redondeado y vuelto a normalizar, en caso de overflow durante el redondeo. La última etapa combina los diferentes campos, filtra el bit oculto y chequea las excepciones del IEEE754 [6]. F. Unidad de Control Los componentes de la unidad de control son: 1) Máquina de Estados: Se encarga de recibir señales de control de finalización de las etapas de procesamiento del generador de direcciones y a partir de estas genera señales de habilitación de estas etapas, además es la encargada de sincronizar entrada de datos, inicio de la transformada, paso de etapa a etapa, finalización de la trasformada y salida de datos. La entrada FI_ET_DATOS indica la finalización del proceso de entrada de datos, FI_ET_1, FI_ET_2 y FI_ET_3 indican la finalización de cada una de las etapas. La señal de salida SEL_ETAPA selecciona en un multiplexor las direcciones adecuadas para cada etapa; HAB_ET_1, HAB_ET_2 y HAB_ET_3 indican el inicio de una nueva etapa. El diagrama de estados se presenta en la figura 7. 2) Generador de Direcciones de la ROM: Decide cuales coeficientes almacenados en la ROM se operan.

> REPLACE THIS LIE WITH YOUR PAPER IDETIFICATIO UMBER (DOUBLE-CLICK HERE TO EDIT) < 4 bancos de registros de almacenamiento, el arreglo de mariposas y el multiplexor de salida. En la unidad de control se generan tanto las señales para controlar el almacenamiento de los datos de entrada y de seleccionar los datos de salida, así como la frecuencia del pipeline del arreglo de las mariposas. Fig. 7 Diagrama de estados de la Unidad de Control 3) Generador de Direcciones de la RAM: Consta de cinco componentes: un contador módulo ocho para generar las direcciones para almacenamiento de los datos I/O; tres generadores de direcciones duales, uno por etapa; un bloque para ordenar los datos, debido a que no se almacenan en el orden de entrada al procesador; dos multiplexores de diez vías que reciben las direcciones de almacenamiento de los datos a procesar, las direcciones de almacenamiento de los datos de salida y el respectivo direccionamiento de cada etapa; a la salida del multiplexor se generan dos direcciones al tiempo. El generador de direcciones se comunica con la máquina de estados, por medio del cual la máquina le indica al generador en que etapa debe estar y así generar las direcciones adecuadas de dicha etapa. De esta forma la unidad de control direcciona la RAM en la unidad de datos por medio de los puertos de salida DIR_A y DIR_B. La máquina de estados también proporciona señales de habilitación por las cuales da inicio a cada una de las etapas. A su vez el generador de direcciones le indica la finalización de cada etapa a la máquina de estados por medio de los puertos de salida y de esta manera la máquina de estados decidirá cuando pasar al siguiente estado. IV. PROCESADOR FFT ESTRUCTURA PARALELA En este apartado se presenta el diseño de estructura paralela de un procesador FFT optimizado en velocidad. El algoritmo utilizado es el mismo de la estructura serie (figura 1). La implementación de esta estructura de forma paralela se presenta en la figura 8. Esta estructura se desarrolla para alcanzar un alto desempeño en velocidad, caso contrario a lo que ocurre con la estructura serie, en la cual se propone reducción de área. En esta estructura se ingresa uno a uno los puntos a procesar. Este procesador se describió en VHDL con modelado estructural tomando como base dos componentes: la unidad de datos y la unidad de control. La unidad de datos esta compuesta por los Fig.8 Unidad de datos de la estructura paralela Los componentes utilizados en la estructura paralela son una evolución de los utilizados en la serie, a los cuales se les ha aplicado un pipeline para mejorar su velocidad. Fue necesario realizar la síntesis de esta arquitectura paralela sobre un dispositivo que incluya multiplicadores, memoria y bloques de registros embebidos, debido a que este diseño requiere gran cantidad de estos elementos. A. Unidad de Datos La unidad de datos de la estructura paralela utiliza una memoria RAM basada en un banco de registros. Se diferencia en la forma de procesar datos, debido a que estos se procesan de forma paralela por el arreglo de mariposas, contrario a la estructura serie, en donde solo existe una mariposa. B. Mariposa base Dos En las dos estructuras desarrolladas se considera esta unidad como el elemento central del procesador FFT. La mariposa de la estructura serie ha sido modificada añadiéndole registros intermedios para lograr una estructura pipeline. También se han rediseñado algunos bloques que presentaban retardos considerables en la estructura serie. C. Sumador de punto flotante La estructura modificada se muestra en la figura 9. Se han incluido registros en los bloques que presentan mas retardo, con el objeto de mejorar el desempeño.

> REPLACE THIS LIE WITH YOUR PAPER IDETIFICATIO UMBER (DOUBLE-CLICK HERE TO EDIT) < 5 Fig. 10. Simulación del procesador FFT estructura serie B. Estructura Paralela La figura 11 presenta los resultados de simulación de la estructura paralela de la FFT para el vector de prueba. Fig. 9 Estructura del sumador de punto flotante D. Unidad de Control La unidad de control del procesador FFT de estructura paralela es mucho más sencilla, debido a que durante el procesamiento de los datos solo se necesita un reloj de control. La unidad de control coordina la entrada y salida de los datos del procesador por medio de una máquina de estados y genera el reloj del pipeline con un divisor de frecuencia. V. SIMULACIÓ Para verificar el funcionamiento de los procesadores FFT las estructuras son simuladas con la herramienta Quartus, para lo cual se toma como elemento patrón, los resultados del cálculo de la FFT con MATLAB para el vector de prueba [-1 1 2 0.5 3 1 2 0], los cuales son: Columns 1 through 4-0.5000 3.7678-1.0607i -8.0000-0.5000i 0.2322-1.0607i Columns 5 through 8 0.5000 0.2322 + 1.0607i -8.0000 + 0.5000i 3.7678 + 1.0607i A. Estructura Serie La figura 10 presenta los resultados de simulación de la estructura serie de la FFT para el vector de prueba propuesto. Se observa que los resultados corresponden al patrón, también es importante anotar que la frecuencia de reloj es de 5 MHz, la cual es próxima a la máxima frecuencia de operación de la FFT diseñada. Fig. 11. Simulación del procesador FFT de estructura paralela Se observa que los datos corresponden a los entregados por MATLAB, también es importante anotar que la frecuencia de reloj es de 50 MHz, la cual es próxima a la máxima frecuencia de operación de la FFT diseñada. VI. AÁLISIS DE RESULTADOS La FFT serie se sintetizó sobre un dispositivo EP20K200EQC-1X de la familia APEX 20KE, logrando un frecuencia máxima de 5.62 MHz. La FFT paralela se sintetizó sobre un dispositivo EP2C70F896C7 de la familia CYCLO II con una frecuencia máxima de 48.08 MHz. A. Resultados de Compilación Los resultados de la compilación en QUARTUS II se presentan en la figura 12, el diseño ocupa la totalidad de los elementos lógicos del dispositivo (aprox. 200K compuertas) y presenta una muy baja utilización de RAM.

> REPLACE THIS LIE WITH YOUR PAPER IDETIFICATIO UMBER (DOUBLE-CLICK HERE TO EDIT) < 6 Fig. 12. Reporte de compilación del procesador FFT serie Los resultados de compilación del procesador de estructura Paralela se muestran en la figura 13, se observan que el diseño ocupa el 74% de los elementos lógicos (aprox. 1.5M compuertas), 56 multiplicadores embebidos de 9 bits y presenta una muy baja utilización de RAM. Fig. 13. Reporte de compilación del procesador FFT paralela B. Comparación estructura Serie vs. Paralela En la tabla II se compara el desempeño del procesador FFT de estructura serie contra la estructura paralela. TABLA II DESEMPEÑO ESTRUCTURA SERIE VS PARALELA Característica Serie Paralelo úmero de puntos (complejos) 8 8 Área (Millones de Compuertas) 0.2 1.5 Multiplicadores de 9 bits - 56 Bits de memoria 256 18121 Tiempo de cálculo de 8 puntos (us) 2.13 0.166 CLK (MHz) 5.62 48.08 La tabla II muestra como el procesador de estructura serie ocupa menos área que el paralelo. Esto se debe a que los datos en la estructura serie se calculan de una forma secuencial por la utilización de únicamente una mariposa. También se observa como el CLK es casi diez veces mayor en el procesador de Estructura Paralela. Esto se explica debido a que el procesador tipo paralelo presenta una estrategia pipeline, esto hace que la frecuencia de operación dependa del retardo crítico de una etapa pipeline del sistema y no de todo el sistema como ocurre con el procesador serie. C. Comparación estructura Serie vs. Literatura Debido a la poca literatura encontrada sobre procesadores FFT de ocho puntos, para realizar una comparación con la literatura disponible, se ha elaborado una proyección del desempeño del procesador de estructura serie sobre diferentes longitudes. Para incrementar la longitud de la transformada del procesador serie se considera que es necesario: incrementar el tamaño de la memoria y modificar el control. También se considera que los anteriores bloques no son críticos en el sistema y por ende el desempeño del procesador serie en un ciclo de reloj no cambia. Como en un ciclo de reloj se realiza el cálculo una mariposa, el número de ciclos para en cálculo de una transformada de cualquier longitud esta dado por: 1 ciclos = *log2 2 (4) Donde es la longitud de la transformada, de esta forma el tiempo de cálculo de una transformada de cualquier longitud está dado por: 1 T trans = ciclos * F max (5) En la Tabla III se compara la estructura serie (FFT_UV) proyectada a partir de la anterior ecuación, con algunos módulos académicos y comerciales. Los valores de la tabla corresponden al tiempo necesario para realizar una transformada y se presentan en microsegundos TABLA III COMPARACIÓ DE LA PROYECCIÓ DE LA ESTRUCTURA SERIE ombre \ longitud 8 64 128 256 512 1024 FFT_UV 2.1 34.2 79.7 182.2 410.0 911.0 DILLO [7] 0.1 1.3 3.0 6.82 15.4 34.1 LIKOPIG [8] -- -- 58.0 -- -- -- WESTMISTER [9] -- -- -- 102.4 -- -- FLORIDA [10] -- 1.9 -- -- -- -- STAFORD [11] -- -- -- -- 330.0 -- ALTERA [12] -- -- -- 1.1 2.0 4.0 El análisis del desempeño no es simple, debido a que se debe considerar: - Con relación a las FPGAs utilizadas para la síntesis, es importante tener en cuenta que las arquitecturas comerciales desarrolladas por ALTERA Corp. y Dillon Engenieering, utilizan FPGAs STRATIX II y VIRTEX II, los cuales poseen bloques de DSPs embebidos, lo cual mejora su desempeño. - En relación al formato de representación es importante anotar que Dillon Engenieering utiliza punto flotante con 6 bits para el exponente y 16 bits para la mantisa. Algunas arquitecturas académicas, como las desarrolladas en la Universidad de Florida y la Universidad de Westminster

> REPLACE THIS LIE WITH YOUR PAPER IDETIFICATIO UMBER (DOUBLE-CLICK HERE TO EDIT) < 7 utilizan representación en punto fijo. Mientras el FFT_UV utiliza el formato IEEE-32 bits que es el más complejo de las arquitecturas comparadas. La proyección no se realiza sobre la FFT de estructura paralela, debido a que esta estructura satura rápidamente cualquier FPGA, no permitiendo su realización física. VII. COCLUSIOES El cálculo de la FFT requiere de una gran cantidad de multiplicaciones de operandos complejos, lo cual incrementa la complejidad del hardware diseñado, generando la ruta crítica del sistema. El formato IEEE 754 utilizado en la arquitectura serie desarrollada (FFT_UV) es mas complejo que los formatos de las arquitecturas analizadas, esta es la razón por la cual el desempeño de la arquitectura serie presentada en este artículo (FFT_UV) es pobre en la comparación con las otras analizadas. Se comprueba que la FFT paralela desarrollada mejora el desempeño en comparación con la serie, y que la inclusión en su arquitectura de bloques embebidos (memorias y multiplicadores), le facilita al diseñador la optimización de los diseños realizados. AGRADECIMIETO Algunas de las herramientas utilizadas en este trabajo han sido suministradas por Altera Corporation a través del Programa Universitario. REFERECIAS [1] M. F. Jacome and H. P. Peixoto, A Survey of Digital Design Reuse, IEEE Design & Test of Computers, 2001 [2] http://www.altera.com/technology/dsp/devices/dsp-devices_index.html [3] G. G. Pechanek, DSP Platform Architecture for SoC Products, en The computer engineering handbook, CRC, 2002, Section 39.2 [4] T. Durkin, SETI Researchers Sift Interstellar Static for Signs of Life, Xcell Journal, Xilinx Inc, Spring 2004, Disponible en http://setiathome.ssl.berkeley.edu/~aparsons/papers/2004-03_xilinx_seti_article.pdf [5] J. Proakis, D. Manolakis, Tratamiento digital de señales. 3 a edición, Prentice Hall, Madrid, 1998, pp 465-469. [6] A Millán y P. Ruiz de Clavijo, Diseño de una unidad de multiplicación en punto flotante, Departamento de Tecnología Electrónica, Universidad de Sevilla, 2000. [7] Floating point FFT/IFFT IP core, Dillon Engenieering, Inc, 2003. Disponible: www.dilloneng.com [8] J. Melander, T. Widhe, P. Sandberg, K. Palmkvist, M. Vesterbacka and L. Wanhammar, Implementation of bit-serial FFT processor with hierarchical control structure, Linkoping University. 1995. [9] E. Cetin, R. Morling, I. Kale, An Integrated 256-point Complex FFT Processor for Real-time Spectrum Analysis and Measurement, IEEE Proceeding of Instrumentation and Measurement Technology Conference, vol. 1, pp. 96-101, Ottawa, Canada, May 19-21, 1997. [10] J. Fuster, K. Gugel, Pipelined 64-point Fast Fourier Transform for Programmable Logic Device. Disponible: www.add.ece.ufl.edu/papers/fust.pdf [11] B. Baas, A 9.5mW 330us 1024-point FFT processor, Stanford University [12] FFT MegaCore Function User Guide, Altera Corporation, 101 Innovation Drive, San Jose, California 95134, USA, June 2004.