IP CORE FFT PARA MODULADOR DE TV DIGITAL
Melo, R; Valinoti, B INTI Micro y Nanoelectrónica del Bicentenario
valinoti@inti.gob.ar
Introducción
El Centro INTI - Electrónica e Informática, en su Laboratorio de Radiocomunicaciones, desarrolló un IP core modulador de Integrated Services Digital Broadcasting Terrestrial (ISDBT) [1]. El mismo fue implementado sobre una FPGA de la empresa Xilinx, utilizando entre otros el core Fast Fourier Transform (FFT) propietario para implementar Orthogonal Frequency Division Multiplexing (OFDM).
El modulador debió ser portado a una Field Programmable Gate Array (FPGA) de Altera, que si bien provee cores que realizan el cálculo de FFT, son ofrecidos en forma de “caja negra” y no permiten ajustar o personalizar a bajo nivel, sólo funcionan en determinados dispositivos, utilizan una interfase incompatible con la de otros fabricantes y poseen licencias que limitan sus aplicaciones.
En este trabajo se presenta el desarrollo de un core FFT, independiente de fabricantes, con múltiples configuraciones en tiempo de síntesis mediante generics y en tiempo de ejecución mediante señales, permitiendo obtener un balance adecuado entre lógica y uso de memoria, entre precisión y recursos consumidos. Esta última es una característica que destacamos, dado que es brindada por algunos fabricantes de FPGA pero no se encontraron cores comerciales que lo provean.
Objetivo
Desarrollar e implementar una FFT para FPGA independiente de fabricantes, con una interfase invariante y conocida, que permita su utilización tanto en modo ráfaga como en modo continuo, que funcione en modo directo e inverso, descripta en VHDL, que permita configuraciones en tiempo de ejecución y tenga una relación señal a ruido de más de 40dB.
Los requerimientos básicos para OFDM que se tuvieron en cuenta, los cuales demandan configuración en tiempo de ejecución, pueden resumirse en: ● Largo de transformada variable, 2k, 4k y 8k
muestras. ● Salida de datos continua, con soporte para
inserción de prefijo cíclico. ● Soporte de transformada directa e inversa.
Descripción
FFT es el nombre genérico de algoritmos eficientes para el cálculo de la Discrete Fourier Transform (DFT) y su inversa. Una de las versiones más difundidas, y la utilizada en este trabajo, es la de Cooley-Tukey [2], la cual a partir de aprovechar características de simetría y periodicidad sobre los llamados twiddle factors, descompone de manera recursiva la transformada en otras más pequeñas, hasta llegar al cómputo mínimo, al cual denomina butterfly. La estrategia de descomposición puede realizarse en el dominio temporal o en el de la frecuencia, denominándose Decimation in Time (DIT) o Decimation in Frequency (DIF) respectivamente, hasta llegar a dos o cuatro datos de entrada para alimentar los butterflies.
En este trabajo se utilizó Radix-2 (dos datos de entrada) y DIF por parecer la forma más popular de resolverlo, aunque la complejidad computacional para resolverlo sea idéntica en ambos casos. En la Fig. 1 se puede observar un esquema genérico del butterfly seleccionado, donde las entradas, salidas y Twiddle factors son números complejos.
Figura 1: Butterfly Radix-2.
Siendo N el número de muestras o largo de la transformada, el cómputo de la DFT involucra N2 operaciones complejas. Utilizando el método descripto logra disminuirse a un valor proporcional a N∗log2N.
Para lograr un flujo continuo de datos de salida, es conveniente utilizar arquitecturas del tipo pipeline. Vale aclarar que mediante este tipo de implementaciones, si bien aumenta la latencia entre la entrada y la salida de datos, una vez entrado el régimen, permite una reducción en la cantidad de ciclos de procesamiento que insume la tarea y de recursos de hardware utilizados.
Se exploraron esquemas de pipelines basados en el uso de butterflies Radix-2, en especial se estudiaron el Radix-2 Multi-Path Delay Commutator (R2MDC) Fig. 2 (a); Radix-2 Single-Path Delay Feedback (R2DSF) Fig. 2 (b); Radix-22 Single-path Delay Feedback (R22SDF) Fig. 2 (c).
Figura 2 (a): R2MDC para N=8
Figura 2 (b): R2SDF para N=8
Figura 2 (c): R22SDF para N=64
Al utilizar una descripción del algoritmo tipo DIF, la entrada de datos se da en orden natural y la salida es bit reversed. Para obtener la salida en modo natural se utiliza un ping-pong buffer, dos memorias iguales donde mientras una se llena en el orden correcto la otra se lee como salida de datos.
El agregado del prefijo cíclico consiste en anteponer al principio del símbolo una cantidad de datos definida, correspondientes al final del mismo, repitiendo información para identificar el comienzo y finalización de los paquetes, eliminando los problemas de interferencia. Se implementó como un offset en el inicio del direccionamiento, en el que al llegar al final del símbolo se vuelve a enviar pero desde la posición inicial de la memoria.
Para realizar las pruebas de funcionamiento se realizó un modelo de referencia con Octave, dónde se ingresan símbolos OFDM reales que abarquen todo el rango dinámico, y se calcula la señal a ruido como la estimación de potencia de la señal transformada calculada en precisión doble con Octave sobre la estimación de potencia del ruido introducido por la salida del core. Este procedimiento se realizó tanto para la simulación como para la validación sobre hardware obteniéndose iguales resultados.
Resultados
Se utilizó VHDL 93 estándar sin instanciación de primitivas. Se desarrolló sobre FPGAs de Xilinx y luego se portó a Altera. Los únicos cambios necesarios que hubo que realizar
entre las dos implementaciones son relacionados con los atributos VHDL que determinan la cantidad de memoria distribuida y en bloques a utilizar.
Teniendo en cuenta los requerimientos, y considerando futuros usos, el core que se desarrolló soporta: ● Modos por ráfaga (burst) y continuo
(streaming). ● Largo de transformada desde 8k a 64k
muestras complejas, en potencias de 2. ● Transformada directa e inversa ● Ancho de palabras de 8 a 32 bits. ● Aritmética de punto fijo, modo escalado y sin
escalar, con redondeo convergente o por truncamiento ● Salida de datos en modo natural o bit reversed. ● Agregado de prefijo cíclico. ● Configuración en tiempo de ejecución
En la Fig. 3 se pueden apreciar valores de señal a ruido para transformada directa obtenidos mediante simulación para señales extraídas de un sistema modulador.
Figura 3: Resultados de simulación.
Conclusiones
Se obtuvo una implementación de un core FFT versátil, configurable en tiempo de ejecución, con una relación señal a ruido adecuada. Se utilizó satisfactoriamente dentro de un sistema modulador de TV digital, pero tiene características que lo hacen apto para otros usos.
El diseño se validó en FPGAs de Xilinx y Altera, pero es fácilmente portable a otros fabricantes.
Bibliografía
[1] INTI. (2014, Nov.) Modulador para televisión digital de industria nacional. [Online]. Disponible: http://www.inti.gob.ar/noticias/innovacionDesarrollo/modula dorTVdigital.htm [2] J. W. Cooley and J. W. Tukey, “An algorithm for the machine calculation of complex Fourier series,” Math. Comput., vol. 19, pp. 297–301, Apr. 1965.
Ver+/-