• No se han encontrado resultados

IMPLEMENTACIÓN DE LA FFT SOBRE FPGA PARA SISTEMAS DE COMUNICACIÓN OFDM

N/A
N/A
Protected

Academic year: 2022

Share "IMPLEMENTACIÓN DE LA FFT SOBRE FPGA PARA SISTEMAS DE COMUNICACIÓN OFDM"

Copied!
6
0
0

Texto completo

(1)

Abstract—En este trabajo se presenta el diseño e implementación de una arquitectura hardware para calcular la Transformada Rápida de Fourier (FFT) usando el algoritmo base-4 para sistemas OFDM (Orthogonal Frequency Division Multiplexing). Se muestra una descripción del cálculo de la FFT basada en el algoritmo base-4 mediante una mariposa de diezmado en frecuencia implementada con Carry Save Adders (CSA) y 9 multiplicadores paralelos. También, este trabajo presenta una arquitectura segmentada (pipeline), con la cual se logra aumentar el throughput, de tal forma que el sistema puede aceptar datos de entrada continuamente en paralelo al cálculo de la FFT, esto hace posible el uso de la arquitectura propuesta en un System On Chip (SoC) para el modulador/demodulador OFDM de la capa física del estándar IEEE 802.11a.

Palabras Clave—Fast Fourier Transform, Radix-4, Carry Save Adders, Pipeline, Orthogonal Frequency Division Multiplexing, Field Programmable Gate Arrays.

I. INTRODUCCIÓN

l creciente uso de las redes inalámbricas WLAN (Wireless Local Area Network) para la comunicación entre equipos de cómputo presenta un nuevo campo de desarrollo para los diseñadores de sistemas digitales. Existe la necesidad de incursionar con dispositivos y arquitecturas hardware eficientes, las cuales puedan satisfacer los requerimientos de velocidad exigidos por estos sistemas de comunicación.

Adicionalmente, la mayor parte de los desarrollos existentes hacen parte de la propiedad intelectual de los grandes fabricantes de equipos de comunicación inalámbricos y hardware de propósito específico [1][2].

La capa física de IEEE 802.11a (Wi-Fi) [3] adopta un esquema de comunicación basado en OFDM [4] cuyo bloque fundamental en el transmisor/receptor es una IFFT/FFT de 64 puntos. Debido a que las tasas de bits planteadas por el

Recibido en Julio 10 de 2007.

Alexander López Parrado es docente investigador del programa de Ingeniería Electrónica de la Universidad del Quindío (email:

[email protected]).

Jaime Alberto Buitrago es docente investigador del programa de Ingeniería de Sistemas y Computación de la Universidad del Quindío (email:

[email protected]).

Jaime Velasco Medina es docente investigador de la Escuela de Ingeniería Eléctrica y Electrónica de la Universidad del Valle y director del Grupo de Bionanoelectrónica de la misma institución (email:

[email protected]).

estándar van desde 6 Mbps hasta 54 Mbps se requiere que el tiempo de cálculo de este bloque no supere 3.2 µs, esta exigencia implica que se debe dar una solución hardware eficiente que explote al máximo el paralelismo.

La Fig. 1 muestra un diagrama de bloques simplificado de un sistema de comunicación OFDM, en este caso se omitieron las etapas de codificación y sincronización [3].

Fig. 1. Versión simplificada de un sistema de comunicación OFDM.

En el transmisor, el operador IFFT recibe un bloque de información como N subtramas moduladas independientemente con subportadoras ortogonales entre si, este esquema permite aumentar la tasa de símbolo en canales de radio con retardo por dispersión, así como incrementar la eficiencia espectral al no requerirse bandas de guarda gracias a la ortogonalidad de las subportadoras [4]. En el receptor se lleva a cabo el proceso inverso.

II. ALGORITMO BASE-4 PARA EL CÁLCULO DE LA FFT Los algoritmos más populares para el cálculo de la FFT utilizan una base 2 y mariposas de diezmado en tiempo o frecuencia [5][6], sin embargo, cuando se requiere sacar provecho del paralelismo con el fin de disminuir la complejidad computacional en sistemas de comunicación de alta velocidad como los basados en OFDM, resultan ser más apropiados los algoritmos que utilizan una base 4 [1][2][7][8].

A. Descripción

El cálculo de la FFT mediante un algoritmo base 4 es posible cuando la cantidad de puntos N satisface N=4v. En el caso de la FFT utilizada por la capa física de Wi-Fi se tiene

IMPLEMENTACIÓN DE LA FFT SOBRE FPGA PARA SISTEMAS DE

COMUNICACIÓN OFDM

Alexander López Parrado, Jaime Alberto Buitrago y Jaime Velasco Medina, Member, IEEE

E

(2)

que v=3, es decir, N=64.

Los algoritmos FFT adoptan la estrategia “divide y vencerás” para obtener soluciones computacionalmente eficientes de la Transformada Discreta de Fourier (DFT), en este caso se divide la DFT de N puntos en DFTs más pequeñas de M y L puntos de tal forma que,

LM

N =

(1)

De esta forma es posible almacenar las N muestras de la secuencia de entrada x(n) como una matriz de dimensiones LxM y obtener la DFT X(k) como,

=

=

=

1

0

1 0

) , ( )

,

(

L

l

lp L mq M M

m lq

N

x l m W W

W q

p

X

(2)

Las coordenadas de la matriz de entrada son l, m donde n=l+mL. Las coordenadas de la matriz de salida son p, q donde k=Mp+q, siendo k el índice en el dominio de la frecuencia de la DFT.

El algoritmo FFT base 4 de diezmado en frecuencia elige L=N/4, M=4; l, p=0, 1,…, N/4-1; m, q=0, 1, 2, 3;

n=(N/4)m+l; y k=4p+q. Con las consideraciones anteriores, la ecuación 2 puede expresarse como,

=

=

/4 1

0

( , )

/4

) ,

(

N

l

lp

W

N

q l G q

p

X

(3)

donde,

1 4 / ,..., 1 , 0

3 , 2 , 1 , 0 )

, ( )

, (

=

=

=

N l

q q l F W q l

G

Nlq

(4) y

1 4 / ,..., 1 , 0

3 , 2 , 1 , 0 )

, ( )

,

(

3

0 4

=

=

=

=

N l

q W m l x q

l F

m

mq

(5)

Los cálculos efectuados en las ecuaciones 4 y 5 definen una mariposa base 4 básica del algoritmo de diezmado en frecuencia [6].

La Fig. 2 muestra el algoritmo base 4 de diezmado en frecuencia para el cálculo de una FFT de 64 puntos. La entrada se encuentra en orden normal y la salida en orden invertido de acuerdo a la base 4 elegida (digit reversing).

Debe observarse que el cálculo de la FFT de 64 puntos mediante el algoritmo base 4 requiere únicamente 48 mariposas divididas en 3 etapas de 16 mariposas cada una. Si se utilizara un algoritmo base 2 se requerirían 192 mariposas.

Fig. 2. FFT Base 4 de diezmado en frecuencia con N = 64.

Si en el algoritmo de la Fig. 2 se invierten las ramas centrales de las mariposas, la salida total se obtiene en orden binario invertido (bit reversing) tal como en un algoritmo base 2 [5][6].

B. Mariposa Base-4

La Fig. 3 muestra la mariposa base 4 de diezmado en frecuencia. La mariposa es la unidad de procesamiento fundamental dentro de cualquier algoritmo FFT.

p

W

N3 0

W

N p

W

N p

W

N2

Fig. 3. Mariposa base-4 de diezmado en frecuencia.

Los coeficientes

W

N0,

W

Np,

W

N2p y

W

N3p se conocen como los factores de intercambio y se calculan al evaluar las exponenciales complejas

e

j0/N,

e

jp/N,

e

jp/N y

N p

e

j / [5][6], el valor que toma p depende de la etapa y de la mariposa que se esté calculando en el algoritmo de la Fig. 2.

Los resultados de cada una de las cuatro ramas de salida son [7],

(3)

( ) ( )

[ ]

( ) ( )

[ ]

( ) ( )

[ ]

( ) ( )

[ ]

Np

p N

p N

W D B j C A Z

W D B C A Y

W D B j C A X

D B C A W

3 2

− +

=

+

− +

=

=

+ + +

=

(6)

La obtención del resultado de cada rama implica como mínimo una operación de adición/substracción compleja entre cuatro operandos, y para las ramas X, Y, y Z tres multiplicaciones complejas. Nótese que tanto los valores de entrada A, B, C y D; los valores de salida W, X, Y, y Z y los factores de intercambio son números complejos.

III. MARIPOSA BASE-4 CON CARRY SAVE ADDERS

Para poder realizar una implementación hardware eficiente del algoritmo base-4 de la FFT es imprescindible, como primera medida, disponer de un circuito combinatorio que evalúe completamente la ecuación 6.

El circuito de la Fig. 4 efectúa la suma de cuatro operandos de n-1 bits mediante el enfoque de acarreo salvado (Carry Save Adders) utilizando contadores (4-2) [8][9]. El resultado obtenido es de n+1 bits.

Fig. 4. Sumador de cuatro operandos usando contadores (4-2).

La Fig. 5 muestra la estructura interna del circuito contador (4-2).

Si se observan las expresiones de la ecuación 6, se nota que para X, Y y Z siempre dos de los operandos son substraídos, de tal forma que es posible utilizar el circuito de la Fig. 4 haciendo complemento a uno sobre los operandos que están antecedidos por el signo menos y adicionando un uno al acarreo de entrada del semi-sumador que genera el bit de suma s1 [9].

La mariposa implementada en hardware requiere cuatro circuitos sumadores de cuatro operandos como el mostrado en la Fig. 4.

Fig. 5. Contador (4-2).

Para evaluar el producto por los factores de intercambio de la ecuación 6 es necesario construir un circuito multiplicador complejo.

En este caso, una multiplicación compleja tiene la forma

) )(

( j c js

jh

g + = α + β +

, donde

c + js

es la

representación rectangular del factor de intercambio el cual es una constante conocida pre-calculada en ROM. Normalmente esta operación requeriría de cuatro multiplicadores y dos sumadores/restadores. Sin embargo, es posible ahorrar un multiplicador si se tienen pre-calculadas en ROM las constantes c, c+s y c-s de tal forma que los valores de salida del multiplicador complejo se obtienen como

) ( )

( − β+ α−β

= c s c

g y h=(c+s)α−c(α−β) [5].

Nótese que se logró ahorrar un multiplicador a cambio de una operación de suma/resta adicional y una tercer memoria ROM. La mariposa implementada en hardware requiere tres circuitos multiplicadores complejos.

Finalmente, la mariposa fue desarrollada mediante captura esquemática utilizando una representación signada a 16 y 17 bits para los factores de intercambio soportando datos de entrada signados a 10 bits empaquetados a 16 bits con extensión de signo en los 6 bits altos [9]. Dentro de los circuitos multiplicadores complejos se hizo uso de la megafunción de Altera lpm_mult.

La restricción en el tamaño de palabra para los datos de entrada a 10 bits se debe a que cada etapa del algoritmo de la Fig. 2 aumenta en 2 bits la longitud del resultado, esto implica que en la salida los datos pueden ocupar 16 bits después de haber completado las tres etapas.

IV. SOLUCIÓN SECUENCIAL

Se llevó a cabo una implementación de la FFT base-4 de forma secuencial utilizando únicamente un operador mariposa.

(4)

A. Camino de Datos

El camino de datos de la solución secuencial de la FFT base-4 se muestra en la Fig. 6.

! "

#$ %

Fig. 6. Camino de datos y control para la FFT de 64 puntos basada en el algoritmo base-4.

Esta solución requiere dos memorias RAM dual-port para almacenar la parte real e imaginaria de los datos de entrada y el resultado, así como tres memorias ROM para el almacenamiento de los factores de intercambio [5].

La generación de las direcciones para las RAM y las ROM se realizó de tal forma que sólo se requiere un contador módulo 48 y un conjunto de 19 bloques combinatorios, constituidos en su mayoría, por operaciones de entrelazado de las líneas de salida del contador aprovechando la simetría del algoritmo de la Fig. 2.

El sistema de la Fig. 6 fue desarrollado usando captura esquemática y descripción en VHDL estructurado.

B. Unidad de Control

La unidad de control es una Máquina de Estados Finitos (FSM) de 7 estados, tal y como se muestra en la Fig. 7. El sistema tarda 6 ciclos en calcular una mariposa y como se requieren 48 mariposas para completar la FFT de 64 puntos es necesario en total 289 ciclos.

s0 s1 s2 s3 s4 s5 s6

reset

Fig. 7. Diagrama de estados de la FSM que realiza el control de la FFT implementada.

La FFT fue sintetizada sobre un dispositivo FPGA EP2S15F484C3 de la familia Stratix II de Altera. La Tabla I muestra un resumen de los recursos utilizados del FPGA.

TABLA I

RECURSOS OCUPADOS DEL FPGA POR LA FFT

Recurso Ocupación

ALUTs 715/12480 (5%)

Bit de memoria 4348/419328 (1%) Multiplicadores de 9 bits 18/96 (18%)

El sistema puede operar con un reloj de 80.89 MHz implicando un tiempo de cálculo de 3.57 s. En este caso, un vector de entrada de 64 puntos representados con notación signada en punto fijo a 10 bits es usado. Este tiempo de cálculo no incluye la lectura ni escritura de las memorias, de tal forma que es necesario realizar una segmentación [7][10][11][12][13] de las etapas con el fin de aumentar el throughput y alcanzar los requerimientos del estándar, el cual permite un tiempo máximo de cálculo de 3.2 s [3].

C. Simulación

Para corroborar el correcto funcionamiento de la FFT desarrollada, se llevaron a cabo simulaciones del desempeño de ésta frente al resultado obtenido por el comando fft de MATLAB.

La Fig. 8 y la Fig. 9 muestran los resultados obtenidos para la parte real e imaginaria respectivamente de la FFT de un conjunto de 64 datos aleatorios uniformemente distribuidos entre -512 y 511. En cada caso, el cuadro superior muestra el resultado obtenido con MATLAB utilizando aritmética en punto flotante de precisión doble, en tanto que el cuadro inferior muestra el resultado por la FFT base-4 de la Fig. 6.

La Fig. 10 muestra los errores relativos para la parte real e imaginaria. Se observa que el máximo error en la parte real fue cercano al 6 % y en la parte imaginaria cercano al 4 %.

V. SOLUCIÓN SEGMENTADA

Se diseñó una arquitectura segmentada (pipeline) con la cual se pretende aumentar el throughput de tal forma que la FFT pueda ser utilizada en un System On Chip (SoC) para el modulador/demodulador OFDM de la capa física del estándar IEEE 802.11a.

(5)

Fig. 8. Resultados de simulación para la parte real.

Fig. 9. Resultados de simulación para la parte imaginaria.

0 10 20 30 40 50 60 70

-0.02 0 0.02 0.04

0.06 Error relativo para el canal I

0 10 20 30 40 50 60 70

-0.04 -0.02 0 0.02

0.04 Error relativo para el canal Q

Fig. 10. Errores relativos para la parte real e imaginaria.

Para el diseño del camino de datos de la solución segmentada se partió de la necesidad de una arquitectura que tenga la capacidad de calcular en forma simultánea cada una de las tres etapas del algoritmo de la Fig. 2. Para garantizar tal característica se requiere:

- Tres operadores mariposa independientes con sus propias memorias almacenando los factores de intercambio. La mariposa de la tercera etapa no requiere multiplicadores ya que los factores de intercambio valen uno [6].

- Utilizar la técnica de doble buffer de tal forma que mientras una etapa se está calculando, la etapa inmediatamente anterior está actualizando la memoria con los datos que necesita para la siguiente ejecución.

- Una unidad de control que gestione y sincronice el acceso a las memorias de tal forma que en todo momento las tres etapas se estén utilizando.

La Fig. 11 muestra el diseño del camino de datos para la arquitectura segmentada.

&

&' (

! )

(

!

!

!

Fig. 11. Camino de datos para la arquitectura segmentada diseñada.

La principal característica de la arquitectura es la disponibilidad de dos memorias RAM para todos los datos intermedios, así como para los datos de entrada y de salida.

Por ejemplo; mientras los 64 datos de entrada al módulo FFT se están almacenando en la RAM1, la etapa 1 se está calculando con los datos de la RAM2 (producto de una adquisición anterior) y el resultado se almacena en la RAM3, la etapa 2 se está calculando con los datos de la RAM4 (producto de un cálculo anterior de la etapa1) y el resultado se almacena en la RAM5, la etapa 3 se está calculando con los datos de la RAM6 (producto de un cálculo anterior de la etapa 2) y el resultado se almacena en la RAM7, finalmente los datos de salida del módulo FFT se leen de la RAM8 (producto de un cálculo anterior de la etapa 3). Después de la ejecución de cada etapa se intercambian los papeles de las memorias RAM.

Cada etapa requiere 6*16=96 ciclos de reloj para completar su cálculo, la latencia del sistema se de 96*5=480 ciclos

(6)

incluyendo la escritura y lectura de los datos en entrada y salida respectivamente. De esto se concluye que se calculan FFTs cada 96 ciclos, con lo que se logra una mejora de 3 veces respecto a la solución secuencial.

La solución segmentada puede aumentar cerca de 4 veces los requerimientos de área con respecto a los de la solución secuencial.

VI. CONCLUSIONES

El operador mariposa base-4 sintetizado en hardware posee una arquitectura optimizada de acuerdo a la naturaleza de las operaciones que éste realiza, ya que utiliza sumadores/restadores de cuatro operandos basados en Carry Save Adders.

El costo en área que implica adicionar una memoria ROM es aceptable, teniendo en cuenta el ahorro logrado en un multiplicador embebido con el que se alcanza un aumento en el desempeño de la mariposa base-4.

La representación con signo de los datos de entrada a 10 bits y de los datos de salida a 16 bits evitan imponer un factor de escala de 26 permitiéndose la modulación en sub-portadoras del sistema OFDM.

El área ocupada por la FFT base-4, considerando que es uno de los bloques más complejos del sistema OFDM de IEEE802.11a, indica que todo el sistema puede ser implementado en el FPGA elegido.

A pesar de que la solución secuencial no satisface los requerimientos temporales del estándar IEEE802.11a, esta implementación es eficiente en el sentido de que se minimizó la cantidad de ciclos de reloj necesarios para completar el cálculo de una mariposa.

La FFT base-4 presentada en este trabajo sirve de base para desarrollos hardware que requieran alta velocidad, no solo en sistemas de comunicación inalámbricos, sino también en tratamiento digital de señales y equipos de medición.

La potencia del algoritmo FFT base-4 es apreciable únicamente cuando se realiza una implementación hardware eficiente que explote el paralelismo potencial disponible en los FPGAs de última generación.

La arquitectura segmentada que se diseñó tiene un desempeño tres veces mayor al de la arquitectura secuencial posibilitando su inclusión en un sistema de comunicación OFDM de alta velocidad.

El aumento en el área ocupada por la arquitectura segmentada no es una restricción, ya que los requerimientos de los estándares de comunicación inalámbrica que utilizan OFDM son de velocidad.

BIBLIOGRAFIA

[1] Altera Corporation. FFT MegaCore Function User Guide. April 2006.

[2] QuickLogic Corporation. High Performance 64-Point FFT/IFFT FFT64HPS. May 2001.

[3] Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specification: High-speed Physical Layer in the 5 GHz Band, IEEE Standard 802.1la, 1999.

[4] H. Schulze and C. Lüders, Theory and Applications of OFDM and CDMA. Wideband Wireless Communications. John Wiley & Sons, Ltd.

2005.

[5] U. Meyer-Baese, Digital Signal Processing with Field Programmable Gate Arrays. Second Edition. Springer. 2004.

[6] J. G. Proakis y D. G. Manolakis, Tratamiento Digital de Señales, Principios, Algoritmos y Aplicaciones, Tercera Edición. Prentice Hall.

1998.

[7] J. Tian, Y. Xu, H. Jiang, H. Luo and W. Song. “Efficient Algorithms of FFT Butterfly for OFDM Systems”, Presented at IEEE 6th CAS Symposium on Emerging Technologies: Mobile and Wireless Communications. Shanghai, China, May 31-June 2, 2004.

[8] W. Li and L. Wanhammar, “Efficient Radix-4 and Radix-8 Butterfly Elements”.

[9] R. Zimmermann, Lecture Notes on Computer Arithmetic: Principles, Architectures, and VLSI Design, 1999.

[10] J. Lee, H. Lee, S. Cho, S. Choi, “A High-Speed, Low-Complexity Radix-24FFT Processor for MB-OFDM UWB Systems”, Presented at ISCAS 2006.

[11] S. He and M. Torkelson, “A New Approach to Pipeline FFT Processor”.

[12] S. Lee and C. Chen, “VLSI Implementation of Programmable FFT Architectures for OFDM Communication System”, Presented at IWCMC 2006.

[13] B. B. Manjunath and D. Chakraborty, “VLSI Architecture for OFDM Modem”, M. S. Thesis, Arizona State University. Fall 2006.

Referencias

Documento similar

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health

In addition to the requirements set out in Chapter VII MDR, also other MDR requirements should apply to ‘legacy devices’, provided that those requirements