Diseño de Filtros Digitales FIR utilizando FPGA

6
1 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 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 co- simulation, 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 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 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® 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, el cual hereda 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 Diseño de Filtros Digitales FIR utilizando FPGA Carlos Alberto Rey Soto, Profesor titular UNAB, Bucaramanga, Colombia; Favela Natalie Quintero Chona, Profesor Agregado UNET, San Cristóbal, Venezuela. E

description

En este artículo se demuestra las ventajas que ofrece el uso de MATLAB para el diseño, simulación y desarrollo en tiempo real de filtros digitales FIR usando dispositivos FPGA.

Transcript of Diseño de Filtros Digitales FIR utilizando FPGA

Page 1: Diseño de Filtros Digitales FIR utilizando FPGA

1

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 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 co- simulation, 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

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 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® 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, el cual hereda 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

Diseño de Filtros Digitales FIR utilizando FPGA Carlos Alberto Rey Soto, Profesor titular UNAB, Bucaramanga, Colombia; Favela Natalie Quintero

Chona, Profesor Agregado UNET, San Cristóbal, Venezuela.

E

Page 2: Diseño de Filtros Digitales FIR utilizando FPGA

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]

MM

1 20 1 2

0

( ) ( )M

n

n

H z b b z b z b z h n z

(1)

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]:

M, 0

( )0,

nb nh n

otro valor

(2)

La implementación de la estructura de un filtro FIR se logra utilizando el siguiente algoritmo no recursivo [2]:

0

( ) ( ) ( )k

y n h k x n k

M

(3)

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 43N , frecuencia de corte kHZ1cf y frecuencia de muestreo

kHZ50sf .

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

42N , frecuencia de corte kHZ2cf y frecuencia de muestreo kHZ50sf , se muestra en la figura 2.

El filtro pasa-banda de orden 84N , frecuencias de corte

, 4 kHZ[3 ]cf y frecuencia de muestreo kHZ50sf , se observa en la figura 3. El filtro rechaza-banda de orden

42N , frecuencias de corte , kHZ[2 5]cf y frecuencia de muestreo kHZ50sf , 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 43N , frecuencia de corte kHZ1cf y frecuencia de muestreo

kHZ50sf .

Figura 2 – Respuesta de frecuencia del filtro FIR PAlto

Figura 1 – Respuesta de frecuencia del filtro FIR PBajo

Page 3: Diseño de Filtros Digitales FIR utilizando FPGA

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.

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.

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.

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).

Figura 4 – Respuesta de frecuencia del filtro FIR RBanda

Figura 3 – Respuesta de frecuencia del filtro FIR PBanda

Figura 5 – Diseño del filtro FIR PBajo usando FDA Tool

Figura 6 – Coeficientes del filtro a través del FDA Tool

Figura 7 – Filtro digital FIR PBajo usando SIMILINK®

Page 4: Diseño de Filtros Digitales FIR utilizando FPGA

4

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.

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 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 8 – Respuesta del filtro digital FIR pasa-bajo a

una señal de 500 HZ

Figura 14. Tarjeta SPARTAN 3E

Figura 9 – Respuesta del filtro digital FIR pasa-bajo a

una señal de 1 kHZ

Figura 10 – Respuesta del filtro FIR pasa-bajo a una

señal de 2 kHZ

Figura 11 – Filtro digital FIR PAlto usando SIMULINK®

Figura 12 – Filtro digital FIR PBanda usando SIMULINK®

Figura 13 – Filtro digital FIR RBanda usando SIMULINK®

Page 5: Diseño de Filtros Digitales FIR utilizando FPGA

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 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.

El proceso de co-simulación en hardware se invoca desde la 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.

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.

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.

Figura 15 – Co-simulación del filtro digital FIR pasa-bajo.

Figura 16 – Configuración de la tarjeta SPARTAN 3E.

Figura 17 – Ajuste de parámetros del System Generator

para la co-simulación en hardware.

Figura 18 – Bloque de hardware sintetizado del filtro

digital FIR pasa-bajo.

Page 6: Diseño de Filtros Digitales FIR utilizando FPGA

6

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.

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] MathWorks, “Signal Processing Toolbox™ User’s Guide”. The

MathWorks, Inc. 2010. [2] Rey Soto Carlos A, “Análisis y Diseño de Sistemas de Control en

Tiempo Discreto, con aplicaciones en MATLAB®. Fondo Editorial UNET. 2005.

[3] Bronwn, S. y Vranesic Z.. “Fundamentos de Lógica Digital con Diseño VHDL”. México: Editorial McGraw Hill. 2006.

[4] 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.

[5] 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.

[6] Quintero Favela. “Filtros Digitales en FPGA” Tesis de Grado de Maestría no publicada. Universidad Nacional Experimental del Táchira. San Cristóbal. 2009.

[7] Teres, L., Torroja, Y., Olcoz, S. y Villar, E. “VHDL Lenguaje Estándar de Diseño Electrónico”. España: Mc Graw Hill. 1998.

[8] Plataforma de Desarrollo Spartan 3E. [Página Web en línea]: http://www.digilentinc.com/Data/Products/S3EBOARD/S3EStarter_ug230.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 Ingeniería Electrónica UNET 2010. Profesora Agregada UNET. Jefe del Departamento de Ingeniería Electrónica de la UNET.

Figura 19 – Diseño completo del filtro digital FIR pasa-bajo con el bloque de hardware sintetizado.

Figura 20 – Simulación en software y desarrollo en hardware del filtro pasa-bajo para una señal de 500 Hz.

Figura 21 – Simulación en software y desarrollo en hardware para una señal de 1 kHz.

Figura 22 – Simulación en software y desarrollo en hardware para una señal de 2 kHz.