Implicaciones del uso de la reconfiguración parcial dinámica de las FPGAs en la implementación de Radios Definidas por Software Raúl Torrego*†, Iñaki Val*, Eñaut Muxika†, Xabier Iturbe*+ y Khaled Benkrid+ Resumen—El presente artículo analiza y describe las implicaciones que, tanto a nivel de diseño como de rendimiento, genera el uso de la reconfiguración parcial dinámica de las FPGAs en la implementación de Radios Definidas por Software. Esta característica que determinadas FPGAs ofrecen y que permite el cambio de funcionalidad de parte de la FPGA mientras que el resto de ella permanece funcionando, casa perfectamente con la implementación de Radios Definidas por Software, obteniéndose de su uso una importante reducción de los recursos utilizados y una gran flexibilidad. Sin embargo, este tipo de implementación genera también ciertas implicaciones e inconvenientes que este artículo analiza y para las cuales propone diversas soluciones. Para la obtención de datos y prueba de soluciones se ha llevado a cabo la implementación de un modulador multi-estándar que implementa versiones simplificadas de los estándares de comunicación WiFi, WiMAX y UMTS. La programación de estos estándares se ha llevado a cabo además mediante la herramienta de prototipado rápido de Xilinx, System Generator. Palabras clave—FPGA, reconfiguración parcial, SDR, parametrización, herramientas de prototipado rápido. I. INTRODUCCIÓN L A reconfiguración parcial dinámica de las FPGAs es una característica que ofrecen algunos fabricantes y que permite el cambio de la funcionalidad de parte de la FPGA mientras que el resto sigue funcionando sin interrupción [1]. Esta característica, restringida principalmente a las FPGAs de tipo SRAM, deriva precisamente del almacenamiento de la secuencia de bits (comúnmente conocida como ‘bitstream’) que configura los diversos elementos de la FPGA en una memoria interna de configuración de este tipo. Por lo tanto, una sobre-escritura en ciertas direcciones de esta memoria hace que los elementos controlados por los bits sobreescritos cambien de configuración mientras que el resto se mantienen inalterados. De esta forma se consigue, por una parte, que la zona estática de la FPGA controle la reconfiguración de las otras zonas, lo que se conoce como “Auto-reconfiguración parcial”. Por otra, que las FPGAs lleven a cabo diferentes funcionalidades en *Departamento de comunicaciones, IK4-Ikerlan, Mondragón, Email: [email protected], [email protected] †Departamento de comunicaciones y teoría de la señal, Universidad de Mondragón, Mondragón, Email: [email protected] + System Level Integration Group, The University of Edinburgh, Edimburgo, Email: [email protected], [email protected], [email protected] diferentes tiempos sin penalización alguna en el área o en los recursos necesarios, reutilizando un determinado área cada vez que un cambio de funcionalidad es necesario. Atendiendo a esta última posibilidad, la reconfiguración parcial dinámica se convierte en una característica muy interesante para la implementación de Radios Definidas por Software. El término Radio Definida por Software, más conocido por sus siglas en inglés, SDR (‘Software Defined Radio’) fue acuñado por primera vez en 1992 por Joseph Mitola [2] para referirse a radios reprogramables o reconfigurables. Estas radios eran capaces de soportar diferentes funcionalidades en diferentes tiempos mediante un cambio en su software. Desde esta primera aparición hasta hoy en día, esta definición ha sufrido diferentes interpretaciones que han llevado a las SDR desde implementaciones puramente software sobre DSPs o procesadores de propósito general hasta su implementación en complejas plataformas multi-chip [3]. Entre los diversos dispositivos entre los que es posible implementan las SDR, las FPGAs toman una nueva dimensión con la irrupción de la reconfiguración parcial dinámica ya que cumplen con la flexibilidad y computación de alto rendimiento que las SDRs demandan. Atendiendo a los cambios de funcionalidad a los que hace referencia la definición de SDR, éstos también pueden ser interpretados de diferentes formas. Desde cambios de pequeña granularidad en los que simplemente son actualizados parámetros como coeficientes de filtros o ganancias en amplificadores, hasta grandes reconfiguraciones en las que un sistema de comunicaciones completo es cambiado por otro (por ejemplo de WiFi a WiMAX). Aunque la reconfiguración parcial dinámica es capaz de cubrir ambas situaciones, el presente artículo basa sus resultados en este último tipo de reconfiguración, habiéndose implementado un modulador SDR multi-estándar que implementa versiones simplificadas de los estándares de comunicaciones: WiFi, WiMAX y UMTS. Tratándose del diseño e implementación de funciones y algoritmos de procesamiento de la señal, el uso de herramientas de prototipado rápido es también altamente recomendable [4]. Estas herramientas permiten lo que se conoce como ‘diseño basado en modelos’, pudiendo el diseñador programar los algoritmos y funciones correspondientes de una forma gráfica, siendo la propia herramienta la que de forma automática genera el código sintetizable. También permiten realizar simulaciones funcionales en fases tempranas del diseño, lo que en definitiva lleva a importantes ahorros de tiempo. Por ello, en el presente artículo se ha utilizado la herramienta de prototipado rápido de Xilinx, System Generator para llevar a cabo el diseño de los diversos estándares de comunicación. Por su parte, todas las implementaciones se han realizado sobre la FPGA Virtex 4 de Xilinx: XC4VLX160. Parece claro que un marco de diseño en el que se unan la reconfiguración parcial dinámica de las FPGAs y las herramientas de prototipado rápido ofrece beneficios para la implementación de las Radios Definidas por Software. Sin embargo, este marco de diseño también genera ciertos inconvenientes (como el tiempo de reconfiguración o la degradación de la frecuencia máxima de reloj) e implicaciones en el diseño (como la parametrización de funciones o la multiplexación de relojes) que es necesario tener en cuenta. Es precisamente el objetivo de este artículo analizar, describir y dar solución a estos asuntos. Las contribuciones principales de este artículo son las siguientes: 1) La implementación de un modulador SDR multiestándar que implementa versiones simplificadas de los estándares de comunicación: WiFi, WiMAX y UMTS sobre FPGA. 2) El análisis y descripción de los inconvenientes e implicaciones que el uso de la reconfiguración parcial dinámica tiene en la implementación de las Radios Definidas por Software. 3) La presentación de diversas soluciones que hacen frente a los inconvenientes presentados previamente. El resto del artículo está organizado de la siguiente forma. El modulador multi-estándar implementado se presenta en la Sección II. Basadas en los resultados obtenidos de esta implementación, la Sección III detalla las implicaciones que en este tipo de diseño genera el uso de la reconfiguración parcial. Por su parte, la Sección IV presenta las soluciones desarrolladas para minimizar estos inconvenientes. Finalmente, las conclusiones obtenidas y las líneas futuras de trabajo se exponen en la Sección V. II. TABLA I: COMPARACIÓN DE RECURSOS ENTRE IMPLEMENTACIÓN ESTÁTICA Y RECONFIGURABLE obtenido estos datos contempla la reconfiguración (borrado y reprogramación) completa de lo estándares, quedando únicamente de forma estática el sistema que lleva a cabo la reconfiguración (cuyo sobrecoste ha sido añadido al cálculo del diseño reconfigurable). Esta configuración, tal y como se expone en la siguiente sección, tiene ciertos beneficios, pero también diversos inconvenientes. Sobre los datos presentados es necesario comentar también la optimización que las herramientas de síntesis realizan en el uso de los recursos. Se observa cómo en la implementación estática el uso de recursos es menor a la suma de los recursos de las implementaciones individuales. Esto es debido al propio esfuerzo de las herramientas por eliminar lógica redundante. Aun así, el uso de la reconfiguración parcial mejora estos resultados. Los estándares completos de los sistemas de comunicación mencionados son extremadamente complejos. Por ello, y puesto que el objetivo principal del presente artículo es el de analizar las implicaciones del uso de la reconfiguración parcial, lo implementado son versiones simplificadas de estos estándares. Estas versiones simplificadas contienen las funciones principales que los estándares ejecutan pero no implementan todas las posibilidades y variaciones recogidas en ellos. La Tabla II presenta las funciones y especificaciones de cada uno de los estándares implementados. La Figura 1 por su parte ofrece una visión de la implementación de parte del estándar WiMAX en System Generator. MODULADOR MULTI-ESTÁNDAR SDR Algunos de los estándares de comunicaciones inalámbricos más utilizados hoy en día son WiFi, WiMAX y UMTS. Normalmente, tanto las estaciones base como los dispositivos de usuario que permiten comunicarse mediante estos estándares, o bien solo soportan alguno de ellos o utilizan un hardware específico para cada estándar. Teniendo en cuenta que, sobre todo en los dispositivos de usuario, no es común usar de forma simultánea más de un estándar, su implementación sobre FPGA y el uso de la reconfiguración parcial dinámica permite la reutilización de un mismo hardware para la implementación de los tres estándares. La Tabla I compara los recursos utilizados por una implementación en paralelo de los tres estándares con otra en la que se utiliza la reconfiguración parcial para reutilizar los recursos de la FPGA. Como era de esperar el ahorro de recursos es significativo, cercano a un 40%. Es necesario comentar que la configuración del sistema para la cual se han TABLA II: DESCRIPCIÓN DE LOS ESTÁNDARES Figura 1: Muestra de parte de la implementación en System Generator del estándar WiMAX III. IMPLICACIONES DEL USO DE LA RECONFIGURACIÓN PARCIAL DINÁMICA DE LAS FPGAS Los datos expuestos hasta ahora sobre la utilización de la reconfiguración parcial han mostrado grandes beneficios del uso de esta técnica, sin embargo esta sección va a enumerar los inconvenientes que de ella derivan. A. Tiempo de reconfiguración El principal inconveniente de la reconfiguración parcial dinámica es lo que se denomina como ‘Tiempo de reconfiguración’. Mientras se está llevando a cabo la reconfiguración, es decir, mientras se realiza la escritura en la memoria de configuración interna de los bits necesarios para que se de el cambio de funcionalidad, los recursos controlados por esos bits no se encuentran operativos. Más concretamente, aunque una vez escrito cada bit su recurso correspondiente ya adquiere la funcionalidad final, debido a que es una escritura serializada, hasta que no han sido escritos todos los bits no es posible asegurar un funcionamiento correcto. En el caso del modulador multi-estándar, hasta que no se ha descargado completamente el bitstream parcial del nuevo estándar a configurar no es posible empezar a utilizarlo. Este tiempo es lo que se denomina ‘Tiempo de reconfiguración’. Puesto que este tiempo está relacionado con una escritura de datos en memoria, su cuantía depende del número de bits a escribir (y por lo tanto del tamaño del área a reconfigurar) y de la velocidad de escritura. De los diferentes medios posibles para acceder a la memoria de configuración, el puerto ICAP (Internal Configuration Access Port – Puerto de Acceso a la Configuración Interna) del que disponen las FPGA de Xilinx es el que ofrece un mayor ancho de banda. Este puerto permite una escritura teórica de 400 Mbps [5] . En el caso de llevar a cabo una reconfiguración completa de los estándares, y con la delimitación de un área reconfigurable tal, que el mayor de los diseños no ocupe más de un 70% de sus recursos, el tiempo de reconfiguración es de 4.06 ms. Este tiempo de reconfiguración puede no ser asumible en determinadas aplicaciones, por lo que se hace necesario tratar de minimizarlo. En el caso de las SDR en general y de los estándares aquí presentados en particular, se da la circunstancia de que varias de las funciones implementadas se repiten de un estándar a otro (Tabla II). Estas funciones, a priori, pueden quedar implementadas en la parte estática de la FPGA de forma que sean reutilizadas por los diferentes estándares y no sea necesario reconfigurarlas. De esta forma, el tiempo de reconfiguración se ve reducido tal y como se muestra más adelante en la Sección IV. Sin embargo, para que esto sea posible es necesario solventar la implicación en el diseño que se presenta a continuación. B. Parametrización de funciones Pese a que muchas de las funciones utilizadas en los sistemas de comunicaciones actuales son comunes entre ellos (filtros, codificadores, transformadas rápidas de Fourier (FFT), intercaladores… etc.) y por lo tanto susceptibles de ser reutilizadas, en la realidad en cada sistema de comunicaciones cada función tiene sus propios parámetros. Estos parámetros se corresponden a anchuras de palabra de los datos a utilizar, frecuencias de funcionamiento, coeficientes de los filtros, capacidad de memoria necesaria, códigos de codificación, número de puntos de las FFT… etc. Por lo tanto es necesario realizar una modificación previa de las diferentes funciones para que sean compatibles y por lo tanto reutilizables por los diferentes estándares. A este proceso de adecuación es a lo que se ha llamado ‘Parametrización’. El apartado A de la Sección IV presenta las funciones que ha sido necesario parametrizar para la implementación del modulador multi-estándar SDR. Pese a que la propia parametrización constituye una implicación para el diseño por sí misma, su uso genera otro inconveniente que es necesario evaluar. Tal y como se observa en la Tabla III la parametrización de una función hace que el número de recursos utilizados por ésta aumente. Esto se debe a la necesidad de hacer compatible dicha función con todos los estándares necesarios y por lo tanto a la inclusión de elementos TABLA III: IMPLICACIÓN DE LA PARAMETRIZACIÓN EN EL TAMAÑO DE LAS FUNCIONES Figura 2: Implementación en System Generator del entrelazador parametrizable extras respecto a la función original. En definitiva, la parametrización permite una reducción en el tiempo de reconfiguración a costa de un aumento de los recursos utilizados. C. Degradación de la frecuencia máxima de reloj El flujo de diseño de la reconfiguración parcial dinámica fuerza a las herramientas de síntesis a que ningún recurso ni ninguna ruta salgan del área definida como reconfigurable. Esto crea una limitación para que estas herramientas busquen un enrutamiento óptimo de las señales de reloj, lo que hace que la frecuencia máxima que los diseños reconfigurables soportan se vea reducida. Xilinx estima esta degradación en una media de un 10% [1], sin embargo, ésta depende del porcentaje de ocupación de recursos que tenga el área reconfigurable tal y como se observa en la Tabla IV. Con bajas ocupaciones el reloj no se ve demasiado afectado ya que la herramienta de síntesis aun tiene suficiente libertad, sin embargo, por encima de un 50% de ocupación comienza la degradación. Con ocupaciones superiores al 80%, es común que no sea posible implementar el diseño. TABLA IV: DEGRADACIÓN DE LA FRECUENCIA MÁXIMA DE RELOJ EN RELACIÓN A LA OCUPACIÓN DEL ÁREA RECONFIGURABLE Desafortunadamente esta degradación de los relojes es intrínseca a la utilización de la reconfiguración parcial dinámica por lo que la única posibilidad de mejora radica en el aumento del área reconfigurable. Esta solución, por su parte, empeora el aprovechamiento de los recursos de la FPGA, por lo que debe ser evaluada antes de aplicarse. D. No inicialización de Flip-Flops en áreas reconfigurables La última de las implicaciones que el uso de la reconfiguración parcial tiene en los diseños está relacionada con la inicialización de los Flip-Flops de las áreas reconfigurables. En las implementaciones estáticas, uno de los últimos comandos que el bitstream ordena ejecutar a la FPGA es el llamado GRESTORE, que inicializa todos los Flip-Flops a los valores por defecto que se han programado en el lenguaje HDL correspondiente. Sin embargo, en los bitstream parciales que se generan para llevar a cabo una reconfiguración parcial dinámica, este comando no se encuentra presente. Esto es debido a que su aplicación afecta a toda la FPGA y por lo tanto el funcionamiento de la parte estática podría verse corrompido. Por lo tanto, tras una reconfiguración parcial, los Flip-Flops presentes en el nuevo diseño comienzan inicializados con el valor que la implementación anterior hubiera dejado. Una correcta programación del código HDL del diseño reconfigurable permitiría forzar un reset inicial que cargara los valores adecuados en los Flip-Flops ya que estos disponen de una señal física para este propósito. Sin embargo esta opción se vuelve más compleja al utilizar herramientas de prototipado rápido ya que se pierde el control sobre el código generado. El apartado C de la Sección IV presenta una solución genérica para este problema e introduce un procedimiento que permite guardar el estado final de una determinada configuración y recuperarlo la siguiente vez que es programada. IV. SOLUCIONES Una vez presentados los problemas e implicaciones que introduce el uso de la reconfiguración parcial dinámica en la implementación de las Radios Definidas por Software, esta sección va a presentar las soluciones que se han desarrollado para mitigarlos. A. Funciones parametrizables Tal y como se ha explicado anteriormente, con el fin de reducir los tiempos de reconfiguración en el cambio de estándar es posible implementar determinadas funciones de forma estática de forma que sean reutilizadas por los diferentes estándares. Siguiendo la metodología de diseño que se introduce en el apartado D, y tras aplicar la técnica de funciones y operadores comunes [6] se ha determinado que para el modulador multi-estándar SDR es necesario parametrizar las siguientes funciones: el codificador diferencial, el entrelazador, la transformada inversa rápida de Fourier (IFFT) y el insertador de prefijo cíclico. Para realizar esta parametrización se han utilizado tanto las facilidades que para este propósito ofrece System Generator (por ejemplo en el caso de la IFFT en la que el propio bloque permite la parametrización de diversos parámetros) como la generación de diseños propios. La Figura 2, por ejemplo, muestra el diseño realizado para la implementación parametrizable del entrelazador. Éste, está basado en una memoria RAM de doble puerto que junto a unos generadores de TABLA V: COMPARACIÓN DE RECURSOS Y TIEMPOS DE RECONFIGURACIÓN ENTRE LOS DISEÑOS CON Y SIN PARAMETRIZACIÓN. Figura 3: Diagrama del sistema de multiplexación virtual de relojes direcciones multiplexados permite cambiar el código de entrelazado. La Tabla V muestra los resultados de introducir esta parametrización en el diseño. Tal y como era de esperar, se ha producido una reducción en el tiempo de reconfiguración del sistema a costa de un aumento de los recursos utilizados. La reducción en el tiempo de reconfiguración es cercana al 45% mientras que se ha producido un aumento de un 9% en los recursos utilizados (tomándose como referencia el número de SLICES). B. Multiplexación de relojes Ligada a la parametrización de funciones pero en otro plano de diseño se encuentra la necesidad de que éstas se ejecuten a diferentes frecuencias de funcionamiento. Cada uno de los estándares expuestos trabaja con una velocidad de procesamiento diferente por lo que para poder reutilizar las funciones comunes es necesario que éstas se adapten a este parámetro también. Puesto que la gestión de las líneas de reloj es básica para el buen funcionamiento de cualquier diseño lógico síncrono, las FPGAs disponen de rutas dedicadas que distribuyen los relojes de forma eficiente por todo el dispositivo. Realizar una multiplexación manual de estas líneas, aunque simple y funcional en algunos casos, no es una buena práctica de diseño. Al introducir un elemento lógico como es un multiplexador, los relojes pasan a ser distribuidos usando las rutas normales de la FPGA lo que produce una degradación de éstos. La solución ideal para la gestión de múltiples frecuencias de reloj reside en el uso de los Mánager Digitales de Reloj, más conocidos como DCM (Digital Clock Manager) que ofrecen las FPGAs. Estos recursos gestionan la correcta generación de relojes de diferentes frecuencias. Desafortunadamente, estos recursos, que no son reconfigurables dinámicamente, tampoco permiten ser parametrizados en todas las familias de FPGAs [7] por lo que es necesario desarrollar una solución alternativa. System Generator realiza una gestión de las diferentes frecuencias de funcionamiento presentes en cada diseño basada en señales de habilitación de reloj (señales clock_enable). Es posible utilizar esta característica para realizar una multiplexación virtual de los relojes. El uso de habilitaciones de reloj se basa en la distribución a todo el diseño de una única línea de reloj que funciona a una frecuencia que es el máximo común divisor de las frecuencias de trabajo del sistema. Además, se distribuye a cada elemento una señal habilitadora que indica cuando este reloj es válido. Estas señales habilitadoras se generan mediante lógica convencional y se distribuyen mediante rutas normales de la FPGA por lo que su multiplexación no entraña ningún problema. La Figura 3 muestra un diagrama del sistema de multiplexación de relojes diseñado. C. Procedimiento para el salvado y recuperación del estado del área reconfigurable Tal y como se ha expuesto anteriormente, debido a que la reconfiguración parcial dinámica es una técnica no convencional de uso de las FPGAs, la inicialización de los Flip-Flops presentes en las áreas reconfigurables no se realiza automáticamente. Este problema, pese a que puede ser solucionado mediante un reset local, se ve acentuado en el caso de las SDR en las que determinadas funciones no son invariantes en el tiempo. Funciones como los aleatorizadores o filtros de respuesta infinita (IIR) necesitan ser programados con el estado en el que estaban al acabar la última ejecución cada vez que se carga un nuevo estándar. Este “estado” se corresponde realmente con el valor que almacenan los Flip-Flops. Por lo tanto, es necesario desarrollar un sistema de guarda y recuperación del estado de los estándares, similar al que implementan los sistemas operativos que soportan interrupciones o desalojo de tareas. El procedimiento desarrollado se basa en la posibilidad de acceso a la memoria de configuración de la FPGA que el puerto ICAP ofrece. Los bits notados como INIT/VALUE de esta memoria (dirección ‘minor’ 20 de cada trama de configuración de las CLB) guardan el estado inicial con el que debe ser inicializado cada FlipFlop. Este estado se carga cuando el comando GRESTORE es ejecutado. Por su parte, el comando GCAPTURE realiza la operación inversa, fuerza una copia del estado actual de los Flip-Flops a los bits INIT/VALUE. De esta forma el procedimiento para salvar y recuperar el estado de los Flip-Flops parece sencillo. Desafortunadamente, y tal y como se ha explicado anteriormente, la aplicación de estos comandos afecta por defecto a toda la FPGA por lo que su ejecución, con la intención de inicializar un área reconfigurada, corrompería la parte estática. Por ello se ha desarrollado una solución para que estos comandos se apliquen de forma local. La activación del bit 13 de la llamada “Trama Especial” de cada columna de la FPGA (dirección ‘minor’ 0 y ‘block type’ 3 para las FPGA Vitex4 o 2 para las Virtex5 [8]) hace que los Flip Flops de dicha columna no se vean afectados por estos comandos. Por lo tanto, realizando una activación de dicho bit para todas las columnas de la FPGA menos las situadas en el área reconfigurable a inicializar, hace que los comandos se apliquen de forma local. En definitiva, el procedimiento para el salvado y recuperación del estado de área reconfigurable queda resumido de la siguiente manera: 1- Protección de todas las columnas de la FPGA mediante la activación del bit 13 de la trama especial 2- Desprotección del área reconfigurable 3- Ejecución del comando GCAPTURE 4- Lectura de las tramas que conforman el área reconfigurable (y que tienen los bits INIT/VALUE inicializados con el estado actual de los FlipFlops) y guardado de estas tramas para su uso futuro. Tras este paso es posible realizar la reconfiguración del sistema con una nueva configuración. En el momento de volver a la configuración salvada, el procedimiento sigue de la siguiente forma: 5- Recuperación de las tramas guardadas y programación de éstas vía ICAP. 6- Ejecución del comando GRESTORE. 7- Habilitación del sistema para que comience su ejecución normal. Es de comentar que pese a que el procedimiento aquí escrito engloba tanto el guardado del estado de los FlipFlops como su recuperación, éste puede ser modificado de forma que lleve a cabo simplemente la inicialización de los Flip-Flops a sus valores por defecto de la misma forma que ocurre en los diseños no reconfigurables. D. Metodología de particionado estático/reconfigurable Por último, y englobando la mayoría de los conceptos y soluciones expuestos en este artículo, los autores están desarrollando una metodología de diseño que permite elegir el particionado óptimo de un diseño SDR entre zonas estáticas y reconfigurables. Tal y como se ha demostrado en apartados anteriores, dadas la particularidades que las Radios Definidas por Software tienen, el uso de la reconfiguración parcial dinámica en su implementación puede realizarse con diferentes granularidades, desde la reconfiguración del sistema completo, hasta el cambio de solo determinadas funciones. Puesto que cada una de las posibilidades repercute de forma diferente en el rendimiento del sistema, esta metodología persigue determinar de forma cuantitativa la granularidad óptima para obtener un diseño con el mejor rendimiento. De forma muy genérica la metodología se basa en tres fases: la determinación de las funciones susceptibles de ser reutilizadas, y por lo tanto implementadas de forma estática, la generación de las diferentes posibilidades de particionado y la evaluación del rendimiento de cada una de las posibilidades mediante una función de coste. A continuación se detallan un poco más estas fases. 1) Determinación de las funciones comunes Para la determinación de las funciones comunes se realiza una aplicación de lo que se conoce como ‘Técnica de las funciones y operadores comunes’ [6]. Se trata de una técnica gráfica que permite representar y visualizar en diferentes niveles las funciones y operadores que componen cada estándar de comunicaciones. De esta forma es posible determinar de forma simple las inter-relaciones entre ellos. 2) Generación de los particionados Una vez determinadas las funciones con posibilidad de ser reutilizadas, esta fase determina las diferentes posibilidades de implementación. Se genera un listado de posibles diseños en los que de forma progresiva se pasa de implementaciones completamente reconfigurables hasta implementaciones en las que solo se reconfigura el mínimo número de funciones posible. 3) Función de coste Con el objetivo de evaluar cuantitativamente la calidad de los diseños generados, se evalúa el rendimiento de tres de sus parámetros mediante una función de coste: el tiempo de reconfiguración, la frecuencia máxima del reloj soportada y los recursos utilizados. El diseño con un menor valor de esta función será considerado como óptimo. Por su parte, la obtención de datos a introducir en la función puede realizarse de dos formas, bien mediante la implementación de los diseños en el caso de no ser muy numerosos, o bien mediante estimaciones basadas en implementaciones anteriores. V. CONCLUSIONES En el presente artículo se ha mostrado un análisis de las implicaciones e inconvenientes que introduce el uso de la reconfiguración parcial dinámica de las FPGAs en la implementación de Radios Definidas por Software. Se ha observado como esta técnica, pese a casar perfectamente con la filosofía de las SDR, genera diversos inconvenientes que es necesario ponderar de forma previa a su utilización. El artículo ha presentado también diversas soluciones para solventar o reducir el impacto de dichos inconvenientes que se han demostrado eficaces. Quedan como trabajos futuros en esta línea el desarrollo de la metodología de diseño presentada y la parametrización de otras funciones que permita una mayor flexibilidad en el diseño. AGRADECIMIENTOS Este trabajo ha sido parcialmente financiado por el programa de Proyectos de Investigación Estratégica del Gobierno del País Vasco (España), a través del proyecto MOVITIC (programa Etortek). REFERENCIAS [1] (XILINX): ‘UG702 - Partial Reconfiguration User Guide’, (2010, 12.3 edn.), pp. 130 [2] Mitola, J.: ‘Software radios-survey, critical evaluation and future directions’. Proc. National Telesystems Conference, 1992. NTC92., pp. 13/15-13/23, 1992 [3] Zong, W., and Arslan, T.: ‘A low power reconfigurable heterogeneous architecture for a mobile SDR system’. Proc. ICECE Technology, 2008. FPT 2008. International Conference on, pp. 313-316, 2008 [4] Haessig, D., Hwang, J., Gallagher, S., and Uhm, M.: ‘A case study of Xilinx System Generator design flow for rapid development of SDR waveforms’. Proc. SDR Forum Technical Conference, Orange County, 2005 [5] Liu, M., Kuehn, W., Lu, Z., and Jantsch, A.: ‘Run-time partial reconfiguration speed investigation and architectural design space exploration’. Proc. FPL 09: 19th International Conference on Field Programmable Logic and Applications, Prague, pp. 498-502, 2009 [6] Alaus, L., Palicot, J., Roland, C., Louët, Y., and Noguet, D.: ‘Promising Technique of Parameterization For Reconfigurable Radio, the Common Operators Technique. Fundamentals and Examples’, Journal of Signal Processing Systems, 2009 [7] He, K.: ‘Dynamic reconfiguration technologies based on FPGA in software defined radio system’. Proc. Wireless Innovation Forum European Conference on Communications Technologies and Software Defined Radio, Brussels, pp. 107-114, 2011 [8] (XILINX): ‘UG191 - Virtex-5 FPGA Configuration User Guide’,(2011, V3.10)
© Copyright 2024