1
Diseño de Filtros Digitales FIR utilizando FPGA Carlos Alberto Rey Soto, Profesor Pr ofesor titular UNAB, Bucaramanga, Colombia; Favela Natalie Quintero Chona, Profesor Agregado UNET, San Cristóbal, C ristóbal, Venezuela. Venezuela.
RESUMEN
Este artículo presenta el diseño, simulación e implementación de filtros digitales de respuesta impulso infinita (FIR) selectivos de frecuencia, en un FPGA ( Field Programmable Gate Array). Utilizando MATLAB® y su plataforma de simulación SIMULINK®, a través de la herramienta FDA Tool y el Xilinx System Generator fue posible diseñar y simular los filtros digitales, los cuales fueron implementados en una Tarjeta de Desarrollo SPARTAN 3E, que contiene el procesador FPGA XC3S500E. La implementación y configuración del FPGA se realizó en el entorno de desarrollo integrado de Xilinx ISE Foundation, usando la herramienta iMPACT para la descarga del programa en lenguaje VHDL (generado en forma automática por el Xilinx System Generator) a través del puerto JTAG. Finalmente se verificaron los resultados usando co-simulación para verificar en tiempo real la simulación en software y el desarrollo en hardware, comparando en el entorno grafico grafico de SIMULINK® los resultados de ambos análisis. Los resultados obtenidos fueron validados con las simulaciones, verificando que la respuesta de los filtros digitales FIR implementados en el FPGA fuera satisfactoria. PALABRAS CLAVES:
Diseño, Simulación, Filtros digitales FIR, FPGA, MATLAB®, SIMULINK®, Xlink System Generator. ABSTRACT:
This paper presents the design, simulation and implementation of frequency selective finite impulse response (FIR) digital filters on FPGA (Field Programmable Gate Array). Using MATLAB® and your simulation platform SIMULINK®, trough the FDA Tool and the Xilinx System Generator, was possible design and simulate digital filters, which were implemented on card development SPARTAN 3E, which contain the processor FPGA XC3S500E. The implementation and configuration of the FPGA was made in the integrated development environment of Xlinx ISE Foundation, using iMPACT Tool for discharge the program on VDHL Language (generated in automatic form for the Xilinx System Generator) through the JTAG port. Finally the results were verified using cosimulation, for the verification in real time of the software simulation and hardware realization, comparing in the graphics environment of SIMULINK® the results of both analyses. The obtained results was validated with the simulations, verifying that the FIR digital filters response, implemented on FPGA, were satisfactory. KEYWORDS:
Design, Simulation, FIR digital filters, FPG, MATLAB®, SIMULINK®, Xlink System Generator. I. INTRODUCCION L procesamiento digital de señales es un área de la ciencia y la ingeniería que se ha desarrollado rápidamente durante
E
los últimos 30 años, como resultado de los avances tecnológicos en la fabricación de circuitos integrados y sistemas de cómputo. El continuo desarrollo de la Microelectrónica y los Circuitos Integrados de muy alta escala de integración VLSI (Very Large Scale Integration), han permitido la ejecución de proyectos de sistemas digitales potentes, pequeños y muy rápidos. Así, actualmente es común la aplicación de Filtros Digitales como parte de un Circuito Integrado. Un filtro es un sistema que, dependiendo de algunos parámetros, realiza un proceso de discriminación de la señal de entrada para obtener variaciones de su salida. Los filtros digitales tienen como entrada una señal analógica o digital y en su salida tienen otra señal analógica o digital, pudiendo haber cambiado de amplitud, frecuencia o fase, dependiendo de las características del filtro. El filtrado es una de las operaciones más importante del tratamiento tratamiento de señales en tiempo discreto. La realización de filtros digitales con el uso de la tecnología FPGA, utiliza las técnicas y herramientas de diseño digital avanzado, aprovechando sus ventajas en cuanto a facilidad y flexibilidad de desarrollo. Para la realización de los algoritmos de los filtros digitales es necesario el uso de lenguajes de programación de alto nivel como MATLAB® y un ambiente interactivo para la visualización y análisis de datos, cómputo numérico, entre otros. La versión 7.5 de MATLAB® incluye SIMULIK®, que es una herramienta interactiva para modelar, simular y analizar sistemas dinámicos. SIMULIK® SIMULIK® cuenta además con una interface para el diseño y análisis de filtros conocida como FDA TOOL y entre sus características más notables se encuentra la conversión de la estructura de un filtro a una arquitectura sintetizable en código VHDL (combinación de VHSIC: Very High Speed Integrated Circuit y HDL: Hardware Description Languaje) al FPGA. VHDL es un lenguaje orientado a la descripción de hardware que se creó para el diseño, modelado y documentación de circuitos complejos, complejos, el cual h ereda buena parte de los conceptos de los lenguajes de programación de alto nivel. Con la utilización de las herramientas CAD, es posible diseñar, simular, compilar e implementar los filtros digitales FIR en FPGA, dejando abierta la posibilidad de realizar otros tipos de filtros, tales como de respuesta impulso infinita IIR, así como su implementación práctica. Los FPGA’s permiten obtener velocidades de hardware adecuadas para determinadas aplicaciones, con flexibilidad de software. La posibilidad de reutilización del hardware reconfigurable disminuye su costo
2 y puede utilizarse el mismo hardware para varias aplicaciones, cambiando únicamente su programación interna. La utilización de dispositivos FPGA para la realización de Filtros Digitales FIR selectivos de frecuencia ofrece la ventaja de que pueden ser reconfigurados en el sistema, particularmente cuando se requieren varias versiones de prueba durante su desarrollo. II. DISEÑO DE FILTROS USANDO MATLAB® 2. 1. Estructura básica de un filtro FIR
La función de transferencia de un filtro de respuesta impulso finita (FIR) de orden M es [2] H ( z ) b0 b 1 z 1 b 2 z 2 b M z M
M
h ( n )z
n
(1)
n 0
La ecuación (1) muestra que el filtro FIR es una estructura de solo ceros y por lo tano es absolutamente estable. La expresión h( n ) se reconoce como la respuesta impulso viene dada por [2]: bn , 0 n M
h( n )
0,
otro valor
Figura 1 – Respuesta de frecuencia del filtro FIR PBajo
(2)
La implementación de la estructura de un filtro FIR se logra utilizando el siguiente algoritmo no recursivo [2]: y( n)
M
h( k ) x ( n k )
(3)
k 0
2. 2. Funciones para el diseño de filtros digitales
Los prototipos de filtros digitales FIR se diseñaron utilizando la función fir1() incluida en el Toolbox de Señales [1]. Utilizando esta función se desarrolló la función especial filtrofirlp (N,fs,fc), para el diseño de un filtro pasa-bajo. Su sintaxis [2] es: filtrofirlp(N,fs,fc)
donde, N es el orden del filtro FIR, fs la frecuencia de muestreo y fc la frecuencia de corte, estas últimas en Hz. La función calcula los coeficientes b de la función de transferencia (1) del filtro FIR y desarrolla la gráfica de la respuesta de frecuencia, que se utilizaron para comparar el resultado del diseño en SIMULINK®. La figura 1 muestra el resultado para un filtro pasa-bajo de orden N 43 , frecuencia de corte f c 1 kHZ y frecuencia de muestreo f s 50 kHZ . De modo similar, para el diseño del filtro FIR pasa-alto, pasa-banda y rechaza-banda se desarrollaron funciones espaciales. El resultado del filtro FIR pasa-alto de orden N 42 , frecuencia de corte f c 2 kHZ y frecuencia de muestreo f s 50 kHZ , se muestra en la figura 2.
Figura 2 – Respuesta de frecuencia del filtro FIR PAlto El filtro pasa-banda de orden N 84 , frecuencias de corte f c [ 3 , 4] kHZ y frecuencia de muestreo f s 50 kHZ , se observa en la figura 3. El filtro rechaza-banda de orden N 42 , frecuencias de corte f c [ 2 , 5 ] kHZ y frecuencia de muestreo f s 50 kHZ , se observa en la figura 4. III. DISEÑO DEL FILTRO DIGITAL FIR USANDO FDA TOOL 3.1 Filtro FIR pasa-bajo usando FDA Tol
Utilizando la herramienta de diseño y análisis de Filtros FDA Tool incluida en SIMULINK®, fue posible lograr la estructura de un filtro digital FIR en una arquitectura sintetizable en código VHDL, necesaria para su realización en un FPGA. La figura 5 muestra el resultado del diseño del prototipo del filtro digital FIR pasa-bajo de orden N 43 , frecuencia de corte f c 1 kHZ y frecuencia de muestreo f s 50 kHZ .
3 3.2 Simulación del filtro pasa-bajo en SIMULINK®
Usando la opción “Export” del menu File del FDA Tool, es posible exportar hacia SIMULINK®, los coeficientes del filtro a través de la variable Num de MATLAB®, tal como se muestra en la figura 6.
Figura 3 – Respuesta de frecuencia del filtro FIR PBanda
Figura 6 – Coeficientes del filtro a través del FDA Tool Usando el bloque DAFIRv_9 (filtro FIR Xilinx de Aritmética Distribuida) que se encuentra en la librería Xilink Blockset, se realizó el modelo de simulación que se muestra en la figura 7.
Figura 4 – Respuesta de frecuencia del filtro FIR RBanda
Figura 7 – Filtro digital FIR PBajo usando SIMILINK® Los bloques Gateway In y Gateway Out de la figura 2.7, corresponden a las salidas y entradas del FPGA y deben configurarse para establecer el número de bits de entrada y el punto binario.
Figura 5 – Diseño del filtro FIR PBajo usando FDA Tool
Para probar la simulación de filtro FIR pasa-bajo se seleccionó una señal senoidal (sine wave), con magnitud arbitraria de 1 V y frecuencias de: 500Hz, 1kHz y 2kHz. El resultado se muestra en la figuras 8 a 10, donde se observa el efecto de atenuación (filtrado) para valores superiores a 1 kHz (frecuencia de corte).
4
Fi ura 12 – Filtro di ital FIR PBanda usando SIMULINK®
Figura 8 – Respuesta del filtro digital FIR pasa-bajo a una señal de 50 0 HZ Figura 13 – Filtro digital FIR RBanda usando SIMULINK® Antes de proceder a la simulación de cada prototipo en SIMULINK, es necesario transferir los coeficientes generados por el FDA Tool y configurar el número de bis de entrada y el punto binario. IV. IMPLEMENTACION DE FILTROS FIR EN LA TARJETA FPGA 4.1 Tarjeta de hardware
Figura 9 – Respuesta del filtro digital FIR pasa-bajo a una señal de 1 kHZ
Para la implementación del hardware se utilizó una tarjeta SPARTAN 3E, modelo XC3500E, cuyas características más relevantes son:
232 pines de entrada/salida 64 Mbyte de DDR SDRAM Pantalla LCD con capacidad de 2 líneas y 16 caracteres Puertos para mouse/teclado y display VGA 2 conectores RS/232
La figura 14 muestra los componentes fundamentales de esta tarjeta.
Figura 10 – Respuesta del filtro FIR pasa-bajo a una señal de 2 kHZ El proceso se repitió para los prototipos restantes, obteniendo resultados similares a los logrados a través de las funciones especiales de MATLAB®. Las figuras 11 a 13 muestran los diagramas de simulación utilizados en los filtros restantes.
Figura 11 – Filtro digital FIR PAlto usando SIMULINK® Figura 14. Tarjeta SPARTAN 3E
5 4.2 Desarrollo en hardware del filtro FIR pasa-bajo
Utilizando co-simulación en cada prototipo de filtro, fue posible comparar la respuesta del filtro implementado en hardware con el diseño en software efectuado a través de la herramienta FDA de SIMULINK®. Para lograr esto, antes de invocar el módulo System Generator para la generación de código, es necesario modificar el modelo de simulación de la figura 7, para incorporar bloque convert, el cual se encarga de convertir la palabra de salida de tipo FIX_15_10 (binario de 15 bits con signo, con punto binario en el bit 10) a FIX_8_5 (binario de 8 bits con signo, con punto binario en el bit 5). Este proceso es necesario para lograr control sobre el sistema y los parámetros de simulación en hardware. La figura 15 muestra el diagrama que se utilizó en la cosimulación del filtro digital FIR pasa-bajo.
Figura 15 – Co-simulación del filtro digital FIR pasa-bajo. Antes de iniciar la co-simulación es necesario ajustar los parámetros de la tarjeta, usando la herramienta Sytem Generator, tal como se observa en la figura 16.
Figura 17 – Ajuste de parámetros del System Generator para la co-simulación en hardware. Pulsando el botón Generate, se inicia la compilación de la co-simulación en hardware del filtro digital FIR pasa bajo, mostrándose una secuencia de mensajes con respecto a cada paso de la misma. Al culminar se crea el bloque correspondiente al hardware sintetizado, el cual tiene el mismo número de entradas y salidas que el modelo de la figura 15. La figura 18 muestra el bloque creado luego de la culminación de la síntesis.
Figura 16 – Configuración de la tarjeta SPARTAN 3E. El proceso de co-simulación en hardware se invoca desde l a ventana de propiedades del bloque System Generator, seleccionando el tipo de compilación y la tarjeta SPARTAN 3E como se muestra en la figura 17.
Figura 18 – Bloque de hardware sintetizado del filtro digital FIR pasa-bajo. Finalmente, el bloque sintetizado se incorpora al modelo de SIMULINK® de la figura 15, para obtener el modelo final de co-simulación mostrado en la figura 19.
6
Figura 19 – Diseño completo del filtro digital FIR pasa-bajo con el bloque de hardware sintetizado. La comparación entre la simulación en software y el desarrollo en hardware del filtro digital FIR pasa-bajo, se observa en las figuras 20 a 22.
Figura 22 – Simulación en software y desarrollo en hardware para una señal de 2 kHz. V. CONCLUSIONES En este artículo se demostró la versatilidad que ofrece el uso del MATLAB® y su complemento SIMULINK® para el diseño de filtros digitales FIR. El uso de la herramienta FDA TOOL, permitió el diseño y análisis de filtros digitales y su conversión de la estructura a una arquitectura sintetizable en código VHDL, necesaria para su posterior implementación en un dispositivo FFGA reconfigurable. REFERENCIAS [1]
Figura 20 – Simulación en software y desarrollo en hardware del filtro pasa-bajo para una señal de 500 Hz.
[2] [3] [4] [5] [6] [7] [8]
MathWorks, “Signal Processing Toolbox™ User’s Guide ”. The MathWorks, Inc. 2010. Rey Soto Carlos A, “Análisis y Diseño de Sistemas de Control en Tiempo Discreto, con aplicaciones en MATLAB®. Fondo Editorial UNET. 2005. Bronwn, S. y Vranesic Z.. “Fundamentos de Lógica Digital con Diseño VHDL”. México: Editorial McGraw Hill. 2006. Castillo A., y Moreno F. “Co-Simulación con MatLab/Simulink y Xilinx System Generator”. Trabajo presentado en el I Congreso y Taller Internacional de Mecatrónica. México. 2005. Machado, R. “Diseño de Filtros Digitales Usando el Lenguaje de Descripción de Hardware (VHDL)”. Tesis de Grado no publicada. Universidad Nacional Experimental del Táchira. San Cristóbal. 2005. Quintero Favela. “Filtros Digitales en FPGA” Tesis de Grado de Maestría no publicada. Universidad Nacional Experimental del Táchira. San Cristóbal. 2009. Teres, L., Torroja, Y., Olcoz, S. y Villar, E. “VHDL Lenguaje Estándar de Diseño Electrónico”. España: Mc Graw Hill. 1998. Plataforma de Desarrollo Spartan 3E. [Página Web en línea]: http://www.digilentinc.com/Data/Products/S3EBOARD/S3EStarter_ug2 30.pdf
Carlos Alberto Rey Soto . Ingeniero Electricista UIS 1967. M.Sc. Sistemas
de Potencia UFRJ 1971. Maestría en Ingeniería Electrónica 1997. Profesor titular UNAB Bucaramanga. Director del Grupo de Investigación GIRES de la UNAB, Bucaramanga. Favela Quintero Chona . Ingeniera Electrónica UNET 1999. Maestría en
Figura 21 – Simulación en software y desarrollo en hardware para una señal de 1 kHz.
Ingeniería Electrónica UNET 2010. Profesora Agregada UNET. Jefe del Departamento de Ingeniería Electrónica de la UNET.