See discussions, stats, and author profiles for this publication at: [Link]
net/publication/263809753
Diseño de Funciones DSP usando VHDL, CPLDs y FPGAs
Conference Paper · March 2003
CITATIONS READS
2 2,529
3 authors, including:
Gustavo Vejarano Jaime velasco-medina
Loyola Marymount University Universidad del Valle (Colombia)
24 PUBLICATIONS 89 CITATIONS 110 PUBLICATIONS 479 CITATIONS
SEE PROFILE SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Understanding the effects on ionizing radiation on deep submicron electronic devices View project
amorphous Carbon modelling View project
All content following this page was uploaded by Gustavo Vejarano on 10 July 2014.
The user has requested enhancement of the downloaded file.
DISEÑO DE FUNCIONES DSP USANDO VHDL Y CPLDs-FPGAs
Mario Vera-Lizcano, Gustavo Vejarano, Jaime Velasco-Medina
Grupo de Bioelectrónica y Nanoelectrónica, EIEE, Universidad del Valle
A.A. 25360, Cali, Colombia
E-mail: mario@[Link], jvelasco@[Link]
ABSTRACT
In this paper we present a simple methodology to design basic DSP building blocks, and the state-of-the-
art in architectures for DSP microprocessors and CPLDs-FPGAs oriented to DSP design. The design
methodology is initialized with the design at the software level using MATLAB, later the architecture is
designed and captured using VHDL, finally the simulations are carried out using MAX+plus II and the
design is implemented in a CPLD circuit. As test vehicle some simple FIR filters are designed, and the
simulation and experimental results allow to validate the design methodology proposed.
RESUMEN
En este articulo presentamos una metodología simple para diseñar bloques funcionales DSP básicos,
y el estado del arte en arquitecturas para procesadores DSP y CPLDs-FPGAs orientados al diseño
DSP. La metodología de diseño se inicia con el diseño a nivel de software usando MATLAB, luego se
concibe la arquitectura y se captura el diseño del hardware usando VHDL, finalmente se llevan acabo
las respectivas simulaciones usando MAX+plus II y se implementa el diseño en un circuito CPLD.
Como vehículo de test se diseñaron filtros FIR simples, y los resultados de simulación y
experimentales validan la metodología de diseño propuesta.
DISEÑO DE FUNCIONES DSP USANDO VHDL Y CPLDs-FPGAs
Mario Vera-Lizcano, Gustavo Vejarano, Jaime Velasco-Medina
Grupo de Bioelectrónica y Nanoelectrónica, EIEE, Universidad del Valle
A.A. 25360, Cali, Colombia
E-mail: mario@[Link], jvelasco@[Link]
RESUMEN datos (raw data processing power) que los procesadores
DSP [1].
En este articulo presentamos una metodología simple
para diseñar bloques funcionales DSP básicos, y el Debido a que los circuitos CPLDs-FPGAs pueden ser
estado del arte en arquitecturas para procesadores DSP y reconfigurados en hardware, estos ofrecen un hardware
CPLDs-FPGAs orientados al diseño DSP. La completamente dedicado o especifico (hardware
metodología de diseño se inicia con el diseño a nivel de customization) para implementar varias aplicaciones DSP.
software usando MATLAB, luego se concibe la Por lo tanto, sistemas DSP implementados en FPGAs
arquitectura y se captura el diseño del hardware usando pueden tener una arquitectura especifica, estructura de
VHDL, finalmente se llevan acabo las respectivas bus especifica, memoria especifica, bloques aceleradores
simulaciones usando MAX+plus II y se implementa el de hardware específicos y un número variable de bloques
diseño en un CPLD-FPGA. Como vehículo de test se MAC [1][2]. Entonces, los FPGAs ofrecen una
diseñaron filtros FIR simples, y los resultados de oportunidad para acelerar una aplicación DSP hasta 1000
simulación y experimentales validan la metodología de veces mas que un microprocesador DSP tradicional [3].
diseño propuesta.
Por ejemplo, en muchos sistemas DSP el filtro FIR es
1. INTRODUCCION usado para llevar acabo diferentes tareas tales como el
pre-acondicionamiento de la señal, antialiasing, selección
Los procesadores DSP son usados para implementar de la banda, interpolación y convolucion. Sin embargo, un
muchas de las aplicaciones de DSP, tales como: número limitado de circuitos filtros FIR (off-the-shell FIR
protocolos de voz para Internet (VoIP), comunicaciones filters) esta disponible en el mercado y estos circuitos
inalámbricas (3G wireless), sistemas de radar y satélite, frecuentemente limitan el desempeño del sistema. Por lo
procesamiento de imágenes, sistemas multimedia, etc. Sin tanto, los circuitos CPLDs-FPGAs son una alternativa
embargo, aunque los procesadores son programables a ideal para implementar filtros FIR. En este caso, los
través de software, la arquitectura del hardware del dispositivos FLEX de Altera, incluyendo FLEX 10K y
procesador DSP no es flexible. Por lo tanto, los FLEX 8000 permiten fácilmente implementar filtros FIR.
procesadores DSP son limitados por la arquitectura fija Un circuito FLEX permite implementar una o más
del hardware tal como: el desempeño del bus, un número funciones de filtrado critico para una aplicación basada en
fijo de bloques multiplicador-acumulador (MAC), un microprocesador DSP, liberando al microprocesador
memoria fija, número fijo de bloques aceleradores de para que este lleve acabo las operaciones
hardware y ancho de datos fijo. Un procesador DSP con algorítmicamente complejas. Un microprocesador DSP
arquitectura fija del hardware no es adecuado para ciertas puede implementar un filtro FIR de 8 etapas (TAP) a 5
aplicaciones que podrían requerir implementaciones de millones de muestras por segundo (MSPS: millon samples
funciones DSP dedicadas. per second), mientras un circuito off-the-shell FIR filter
puede trabajar a 30 MSPS. En contraste, un dispositivo
Los circuitos CPLDs-FPGAs suministran una solución FLEX puede implementar el mismo filtro por encima de
reconfigurable y eficiente para implementar aplicaciones 100 MSPS [4].
DSP. Estos circuitos pueden alcanzar un más alto
throughput y una mayor potencia de procesamiento de En este articulo presentamos una metodología simple para
diseñar bloques funcionales DSP, los cuales pueden ser
incorporados en una librería VHDL para aplicaciones Para solucionar este problema, los fabricantes de
DSP. En este contexto, el articulo describe y muestra la procesadores DSP, también han tratado de incorporar un
importancia de considerar una librería VHDL para bloque acelerador de hardware (coprocessor) tal como el
funciones DSP. Como vehículo de test se diseñaron filtros coprocesador Viterbi, coprocesador turbo, y el
FIR, es decir, como transferir (MAP) a nivel de hardware coprocesador filtro (enhanced-filter-coprocessor).
las operaciones matemáticas del filtro FIR usando un Mientras los bloques coprocesadores suministran un alto
circuito CPLD. Entonces, el articulo presenta el diseño de desempeño, la mayoría de las aplicaciones DSP no se
filtros FIR convencionales usando una arquitectura pueden beneficiar de los procesadores DSP con bloques
especifica, la cual es descripta estructuralmente usando aceleradores de hardware prediseñados. Adicionalmente,
VHDL. Los detalles de la implementación, incluyendo los los bloques aceleradores de hardware son fijos, no
compromisos entre desempeño y área del circuito son permiten un nivel de implementación dedicada
también presentados. (customization) para diseños con necesidades especificas,
y pueden llegar a ser rápidamente obsoletos [1].
El articulo esta organizado de la siguiente manera, las
secciones 2 y 3 presentan el estado del arte en 3. TENDENCIAS EN ARQUITECTURAS PARA
arquitecturas para procesadores DSP y CPLDs-FPGAs CPLDs-FPGAs ORIENTADOS A DSP
orientados al diseño DSP. La sección 4 describe las sub-
librerias de una librería VHDL para aplicaciones DSP. La Los circuitos FPGAs consisten de elementos lógicos y
sección 5 presenta una metodología simple de diseño para memoria que pueden ser configurados para operar en
bloques funcionales DSP, es decir, el diseño a nivel de modos diferentes para una funcionalidad diferente. La
software usando MATLAB, el diseño de la arquitectura, flexibilidad del hardware permite al diseñador
la simulación y verificación del diseño, y la circuiteria de implementar el diseño usando un adecuado lenguaje de
test para probar el funcionamiento del circuito. descripción de hardware (HDL) tal como VHDL o
Finalmente, la sección 6 presenta algunas conclusiones y Verilog. Entonces, el mismo FPGA puede implementar
el trabajo futuro. un enrutador DSL, un modem DSL, un codificador JPEG
o un sistema de transmisión digital.
2. TENDENCIAS EN LA ARQUITECTURA DE
PROCESADORES DSP Con la introducción de FPGAs de alta densidad, tal como
la familia Stratix FPGA de Altera, la cual incorpora
Existen varias diferencias entre un procesador DSP y un varios bloques funcionales embebidos de alto nivel
procesador genérico, sin embargo la diferencia (embedded silicon), los diseñadores pueden implementar
fundamental entre estos procesadores es: a) El bloque de sistemas completos dentro de un FPGA, creando un
hardware MAC (multiplicador-acumulador) del sistema completo sobre un chip programable (SOPC:
procesador DSP y b) La memoria y estructura del bus System-On-a-Programmable-Chip). Los fabricantes de
especificas para facilitar el acceso frecuente de datos FPGAs, han comenzado ha incorporar embedded silicon
comúnmente encontrados en aplicaciones DSP. ideales para aplicaciones DSP, tal como memoria
embebida, bloques DSP, y procesadores embebidos, los
La operación MAC es usualmente el cuello de botella cuales son bien adecuados para implementar funciones
(desempeño) del procesador DSP en muchas aplicaciones. DSP tales como filtros FIR, FFTs, correlatores,
Algunos procesadores DSP incorporan múltiples bloques ecualizadores, decodificadores, codificadores, y funciones
MAC en su arquitectura para minimizar el problema del aritméticas.
desempeño relacionado con la multiplicación (to boost
the overall multiplier bandwidth). Por ejemplo, el La Figura 1 muestra varios bloques funcionales
TMS320C6411 de Texas Instruments puede calcular hasta embebidos en los circuitos FPGAs de Altera, los cuales
ocho multiplicaciones de 8X8 en un solo ciclo de reloj. están disponibles para aplicaciones DSP.
Sin embargo, mientras la adición de mas bloques MACs ! Bloques DSP embebidos
podría suministrar un más alto throughput, en algunos
casos la potencia de procesamiento de datos del Los bloques DSP embebidos en los circuitos FPGAs,
procesador podría ser reducida (falls behind in raw data también suministran otras funciones tales como
processing power) para ciertas funciones DSP intensiva acumulación, adición-substracción y sumatoria, las cuales
en datos tales como decodificador-codificador Viterbi y son operaciones aritméticas comunes en funciones DSP.
filtros FIR Por ejemplo, los bloques DSP del dispositivo Stratix
ofrecen hasta 224 multiplicadores que pueden llevar
acabo 224 multiplicaciones en un solo ciclo de reloj.
Comparado los FPGAs con los procesadores DSP que aplicaciones DSP. La experiencia ha demostrado que
solo ofrecen un número reducido de multiplicadores, muchos bloques típicos requeridos en tales aplicaciones
estos ofrecen un mayor ancho de banda para la pueden ser implementados desde una librería de bloques
multiplicación (multiplier- bandwidth). funcionales pre-diseñados y parametrizados. Los bloques
pueden ser usados para implementar funciones tales como
Debido a que un factor determinante del ancho de banda procesadores FFT, transformada DCT-IDCT, filtros FIR,
DSP total (overall-DSP-bandwidth) es el multiplier- filtros IIR, decodificador-codificador Viterbi, etc.
bandwidth, el overall-DSP-bandwidth para los FPGAs
puede ser mucho mayor que para los procesadores DSP. Esta aproximación suministra un medio eficiente para
Por ejemplo, los bloques DSP del dispositivo Stratix trabajar a nivel de silicio, la cual permite a los ingenieros
pueden entregar 70 GMACS de throughput mientras los no especialistas diseñar chips DSP avanzados y permite a
mas avanzados procesadores DSP disponibles hoy en día, los mas experimentados ingenieros de sistemas en silicio
pueden entregar solamente hasta 4.8 GMACS [1]. crear nuevos diseños para rigurosas especificaciones.
Una librería VHDL estructurada y jerárquica puede ser
implementada usando cinco sub-librerías [5], tal como se
muestra en la Figura 2.
Figura 1. Embedded silicon para aplicaciones DSP
! Memoria embebida
De otro lado, varias aplicaciones DSP usan memoria
externa para manejar una gran cantidad de datos para el Figura 2. Jerarquía de una librería VHDL
procesamiento. La memoria embebida en los FPGAs
reúne estos requerimientos y también elimina la necesidad Los bloques funcionales de los niveles superiores de la
de memoria externa en ciertos casos. Por ejemplo, la librería han sido diseñados usando bloques funcionales de
familia de dispositivos Stratix ofrecen hasta 10Mbits de los niveles inferiores. Esto significa que la optimización
memoria embebida. de los bloques en los niveles inferiores es llevada a cabo
para diseños de alto desempeño por unidad de área y bajo
4. LIBRERÍA VHDL PARA APLICACIONES DSP consumo de potencia.
! Librería DSP: Componentes básicos
En esta sección del articulo, el objetivo basico es ilustrar
las diferentes sub-librerias que se pueden diseñar usando
Esta librería consiste de bloques funcionales básicos que
VHDL para aplicaciones DSP. En este contexto, las
tienen en cuenta la longitud y el formato de la palabra de
nuevas metodologías de diseño de sistemas electrónicos
datos. Por ejemplo, tipo de aritmética, longitud de la
integrados adoptan estrategias basadas en usar módulos
palabra, tamaño del contador. Algunos componentes
de propiedad intelectual (IP: Intellectual Property), es
básicos son:
decir, los diseñadores concentran sus esfuerzos en diseñar
y validar módulos IP para ser re-usados en diferentes
aplicaciones. Entonces, en nuestro caso, el objetivo es • contadores
diseñar algunos módulos IP para ser utilizados en • comparadores
• elementos de retardo operadores aritméticos. De otro lado, también es posible
• formateadores de datos usar uno u otro filtro pre-diseñado de la librería, en este
• convertidores de datos caso los detalles son transparentes al usuario. Los bloques
• memorias típicos son:
• desplazadores (shifters)
! Librería DSP: Operadores aritméticos • filtros FIR - IIR
• DFT
La librería de operadores aritméticos contiene operadores • DCT
tales como sumadores, multiplicadores, divisores, • FFT
procesadores de raíz cuadrada, etc. En este caso, el grado • filtros LMS
de parametrización es principalmente en términos de • Reed-Solomon
longitud de la palabra y diferentes tipos de estructuras • decodificador Viterbi
aritméticas. Por ejemplo, los sumadores ripple-carry,
carry-ski, carry-look-ahead, carry-save, carry-select [6]; ! Librería DSP: Sistemas
y multiplicadores secuenciales (algoritmo de Booth) y
multiplicadores paralelos (array-multiplier, Wallace-tree, Esta librería se encuentra en el nivel mas alto de la
Baugh-Wooley, redundant-binary-adder-tree) [6][7]. Los jerarquía de la librería VHDL, y contiene bloques a nivel
diseños de estos circuitos aritméticos para operándos de de sistema. Algunos sistemas típicos en este nivel son:
32 bits son presentados en [8] y [9].
• MPEG
Diferentes arquitecturas para cada bloque funcional • JPEG
pueden ser consideradas con el propósito de cubrir los • H.261
formatos de la aritmética y la palabra de datos (IEEE • ADPCM
punto flotante, complemento a dos). Algunos operadores • PRML
aritméticos son: • Detección-reconocimiento de objetos
• multiplicadores ! Librería dispositivos de soporte
• acumuladores
• bloques MAC Esta librería suministra las interfaces para los diferentes
• operador raíz cuadrada componentes externos. Algunos dispositivos son:
• divisores
• sumadores • controladores de memoria
• interfaces para microprocesadores
! Librería DSP: Funciones • controladores de bus
• controladores gráficos
Esta librería tiene un amplio rango de aplicaciones. En
este caso, una variedad de parámetros son típicamente 5. METODOLOGÍA DE DISEÑO PARA
usados con los detalles de la función especifica. Algunos FILTROS FIR SIMPLES
parámetros son:
Esta sección describe una metodología simple para
• Longitud de la palabra de datos diseñar filtros FIR dedicados para aplicaciones no
• Formato de la palabra de datos criticas, y las estrategias usadas para simular e
• Nivel de truncamiento implementar el diseño en un simple circuito CPLD-
• Nivel de pipelining FPGA. La metodología de diseño consiste en:
• Taps del filtro
• Tamaño de la transformada • Diseño a nivel de software usando MATLAB
• Diseño de la arquitectura a nivel de hardware
Esto permite un alto grado de flexibilidad para adaptar • Descripción del hardware usando VHDL
diseños con requerimientos de desempeño muy • Síntesis del hardware
específicos. En particular, los bloques permiten varias • Simulación y verificación del hardware usando
alternativas de diseño para ser exploradas. Por ejemplo, es MAX+plus II
posible diseñar rápidamente filtros FIR y filtros IIR • Implementación del diseño usando un circuito
parametrizables usando diferentes intercambios de CPLD-FPGA
bloques multiplicador-acumulador de la librería de
• Test del circuito diseñado usando un sistema DSP
front-end
! Diseño de filtros usando MATLAB
La primera etapa de la metodología de diseño consiste en
diseñar el filtro FIR a partir del diseño de un filtro
análogo a nivel de software usando MATLAB. En este
caso se diseñaron filtros Butterworth paso bajo de
segundo y tercer orden con Fc = 2.5kHz y periodo de
muestreo T = 13.2µs. La Figura 3 muestra la respuesta al
impulso g(t) para el filtro Butterworth de tercer orden, el
cual tiene 32 coeficientes.
Figura 4. Señales de salida para el filtro Butterworth
paso bajo de tercer orden
! Arquitectura del filtro FIR programable
Con el propósito de diseñar la arquitectura del filtro, la
idea inicial es ilustrar una arquitectura a nivel de
hardware para un filtro FIR tipico. La Figura 5 muestra la
arquitectura de un filtro FIR tipico de 8-bit, 8-tap [2][4].
Figura 3. Respuesta al impulso g(t) para el filtro
Butterworth paso bajo de tercer orden
Desde la Figura 3 se observa que la respuesta al impulso
g(t) se acerca asintoticamente a cero a medida que el
tiempo transcurre, entonces se asumen valores g(kT) = 0
para k > 31. El tiempo entre cada uno de los coeficientes
es T = 13.2µs, lo cual permite una frecuencia de muestreo
f = 1/T = 75.7kHz y una frecuencia máxima para señal de
entrada fmax = f/2.2 = 34.32kHz. Figura 5. Arquitectura típica para un filtro FIR
Con el propósito de verificar el funcionamiento de los En este caso, el filtro tiene ocho multiplicadores, ocho
filtros, varias simulaciones en MATLAB fueron llevadas registros de 8 bits organizados en una configuración de
acabo. Una señal senoisoidal fue usada como señal de registros de desplazamiento (shift-registers), y un
entrada, la cual trabaja a diferentes frecuencias: 1kHz, sumador completo de 8 datos de entrada cada uno de 8
2.5kHz, 5kHz, 7.5kHz y 75kHz. La ultima frecuencia no bits. Cada registro contiene la muestra anterior (unit
cumple con la condición de fmax = 34.32kHz. La Figura sample delay), y la salida de cada registro es una etapa
4 muestra las señales de salida para el filtro Butterworth (TAP) y es representada por x(n), donde n es el número
paso bajo de tercer orden con Fc = 2.5kHz. del TAP. Cada señal de salida de la etapa (delay inputs) es
multiplicada por un coeficiente h(n) y todos los productos
son sumados para producir la salida del filtro. La
operación del filtro FIR puede ser representada por la
ecuación:
8
y ( n) = ∑ x ( n) h ( n)
n =1
Donde x(n) y h(n) son los valores de la enésima muestra
de la señal de entrada y los coeficientes del filtro.
Debido a que la arquitectura anterior emplea una área almacenar los h(k). La señal de entrada x(n) del FIR se
considerable para el hardware, la idea es diseñar una ingresa a través del puerto D_IN, la cual es codificada en
arquitectura que use la menor área posible puesto que la Signo-Magnitud (SM) por el bloque CONVERSOR_IN.
velocidad no es un parámetro critico. El diseño de la El valor actual de la entrada x(n) y la historia x(n-k),
arquitectura a nivel de hardware para el filtro FIR con correspondiente a los 31 valores muestreados con
coeficientes programables es mostrado en la Figura 6, y anterioridad a x(n), son almacenados en el bancos de
esta es obtenida a partir de la implementación en forma REG_DESP_INST.
directa de la siguiente expresión [10][11]:
M −1 Para realizar el cálculo de y(n), se realizan 32
y ( n) = ∑ h( k ) x ( n − k ) multiplicaciones de las parejas (h(k), x(n-k)), estas
k =0 multiplicaciones se realizan en el bloque
La arquitectura consiste de dos bloques principales, los MULTIPLICADOR de forma secuencial. La k-esima
cuales son: la unidad operativa y la unidad de control. La multiplicación se realiza direccionando la posición k del
unidad operativa realiza el procesamiento de la bloque RAM y la posición k de entrada del bloque MUX,
información, es decir, decodificación del código de cuyo resultado se obtiene en la salida MULT_OUT. Los
entrada (conversor ADC), almacenamiento de los dos bloques SUMADOR y REG_A corresponden a un
coeficientes h(k), almacenamiento de la historia de la circuito acumulador, el cual almacena los 32 resultados
señal de entrada x(n-k), realiza las multiplicaciones y calculados por el bloque MULTIPLICADOR. El registro
sumas, y codificación de la salida (conversor DAC). La acumulador almacena y(n) con un formato de 19 bits, el
unidad de control ejecuta la secuencia del procesamiento cual se convierte a un formato de 8 bits usando el bloque
de la unidad operativa y hace que esta opere en forma REDONDEAR. Entonces, y(n) es codificado para ser
concurrente con los conversores, permitiendo que durante operado por el conversor DAC. Este resultado de y(n) se
el cálculo de y(n) se realicen de forma simultanea las almacena en el bloque REG_Y y corresponde al puerto de
conversiones A/D y D/A para obtener x(n+1) y y(n-1) salida del FIR. Una vez finalizado el cálculo del valor
respectivamente. y(n), el FIR está listo para recibir un nuevo dato x(n),
repitiéndose el proceso anterior, pero desplazando los
La arquitectura del FIR es programable debido a que datos almacenados en el bloque REG_DESP_INST, según
dispone de un puerto COEFF (8 bits) para ingresar los 32 el flujo de datos del banco de registros (ver Figura 6).
coeficientes h(k) y de la RAM (32 posiciones 8 bits) para
Figura 6. Arquitectura dedicada para un filtro FIR programable
! Resultados de Simulación adecuados como código de entrada para un conversor
DAC, entonces con el propósito de obtener la grafica de
Con el propósito de verificar el funcionamiento del la respuesta al escalón del filtro FIR programable, los
hardware del filtro FIR (descrito en VHDL e datos deben ser normalizados y procesados usando
implementado sobre el FLEX EPF10K70RC240-4), se MATLAB. La Figura 7 muestra los respectivos resultados
utilizo el simulador MAX+plus II de Altera. Sin embargo, de la simulación obtenidos en el MAX+plus II y la Figura
este es un simulador digital, por lo cual no es practico 8 muestra la grafica de la respuesta al escalón del filtro
generar una señal sinusoidal como señal de entrada para FIR desde los datos normalizados del MAX+plus II y la
simular un filtro digital. Entonces, la idea es simular el respuesta al escalón del filtro análogo simulado con
comportamiento del filtro FIR para una entrada tipo MATLAB.
escalón y observar su comportamiento. Los resultados de
simulación entregados por el MAX+plux II son
Figura 7. Resultados de simulación del filtro FIR
Figura 9. Sistema DSP front-end para el test del filtro
FIR
Con el propósito de verificar el comportamiento del filtro
usando señales en tiempo real, se observaron las
respectivas señales de entrada y salida en un osciloscopio.
El filtro FIR configurado sobre el CPLD se conectó a los
conversores A/D y D/A usando los puertos de entrada y
salida, es decir, el puerto D_IN se conectó a un conversor
ADC 0804 y el puerto D_OUT se conectó a un conversor
DAC 0808. Debido a la baja frecuencia de muestreo del
conversor análogo digital comparada con la del FIR, no
fue posible usar señales de frecuencia superior a 34.32
Figura 8. Grafica de la respuesta al escalón para el filtro KHz.
FIR y el filtro análogo
En las Figuras 10, 11 y 12 se muestran las señales
En este caso, los resultados de simulación verifican el observadas en el osciloscopio, donde la línea continua
correcto funcionamiento del filtro FIR diseñado. corresponde a la entrada x(t) del FIR y la línea escalonada
corresponde a la salida y(t). En la Figura 10 se muestra
! Resultados Experimentales
como el FIR permite el paso de una señal de entrada x(n)
con frecuencia por debajo de la frecuencia de corte (fc) y
Para realizar el test del filtro FIR, se implemento un
en las Figuras 11 y 12 se observa como el FIR impide el
sistema DSP front-end, es decir, se utilizaron los
paso de una señal de entrada x(n) con frecuencia superior
respectivos conversores ADC y DAC, y la tarjeta UP-1X
a la fc.
de Altera (ver Figura 9).
Las señales de salida observadas en el osciloscopio
verifican el correcto funcionamiento del filtro FIR
diseñado y de la metodología de diseño.
inicia con el diseño a nivel de software usando MATLAB,
luego se concibe la arquitectura y se captura el diseño del
hardware usando VHDL, posteriormente se realizan las
respectivas simulaciones usando MAX+plus II y se
implementa el diseño en un simple circuito CPLD-FPGA.
Finalmente, se realiza el test de los diseños usando un
sistema DSP frond-end.
Como vehículo de test se diseñaron filtros FIR simples y
los resultados de simulación y experimentales permiten
validar la metodología de diseño propuesta.
La idea básica de este trabajo fue concebir y validar una
Figura 10. Señales de entrada y salida observadas en el metodología simple y económica para diseñar bloques
osciloscopio con f < fc funcionales DSP básicos usando MAX+plus II (versión
estudiantil) y circuitos CPLDs. En este orden de ideas, el
trabajo futuro debe ser concentrado en el diseño bloques
funcionales DSP complejos usando los programas DSP
Builder y Quartus II, y los circuitos Stratix FPGA de
Altera. Estos bloques deben ser diseñados usando mínima
área, máxima velocidad y arquitecturas parametrizables
con el propósito de obtener módulos de propiedad
intelectual para ser incorporados en una librería VHDL.
Por ejemplo, los bloques DSP para diseñar en el futuro
son: filtros FIR, filtros IIR, transformada DCT-IDCT,
transformada FFT, filtros LMS y decodificador-
codificador Viterbi.
7. AGRADECIMIENTOS
Figura 11. Señales de entrada y salida observadas en el Este trabajo ha sido patrocinado por Altera Corporation a
osciloscopio con f > fc través del Programa Universitario. Los autores dan
especial agradecimientos a Mrs. Ralene Marcoccia de
Altera Corporation.
8. REFERENCIAS
[1.] Altera Corp, “FPGAs Provide Reconfigurable DSP
Solutions”, White Paper, August 2002, version 1.0.
[2.] Altera Corp, “Using PLDs for High-Performance DSP
Applications”, White Paper, February 2002, version 1.0.
[3.] Andraka Consulting Group, “DSP with FPGAs”, web page,
[Link]/[Link]
[4.] Altera Corp, “Implementing FIR Filters in FLEX Devices”,
Application Note 73, February 1998, version 1.01
[5.] McCanny J.V, Ridge D, Hu Y, and Hunter J, “Hierarchical
Figura 12. Señales de entrada y salida observadas en el VHDL Libraries for DSP ASIC Design”, Proc. IEEE
osciloscopio con f > fc International Conference On Acoustic Speech and Signal
Processing, Munich, April 1997.
6. CONCLUSIONES Y TRABAJO FUTURO [6.] Wai-Kai Chen, “The VLSI Handbook”, CRC press and
IEEE press, 2000.
Una metodología simple para diseñar bloques funcionales [7.] Neil Weste and Kamran. Eshraghian, “Principles of CMOS
DSP básicos para aplicaciones no criticas es presentada VLSI Design: A Systems Perspective”, 2nd ed. Addison
en este trabajo. En este caso, el proceso de diseño se Wesley, Copyright 1993 by AT&T.
[8.] Vera L. M.E, “Curso Diseño Digital con VHDL”, Escuela
de Ingeniería Eléctrica y Electrónica, Universidad del Valle,
Cali, Junio 2002.
[9.] Velasco M. J, “Curso Diseño de Arquitecturas Digitales
RISC-DSP”, Escuela de Ingeniería Eléctrica y Electrónica,
Universidad del Valle, Cali, Junio, 2002.
[10.] Proakis J. y Manolakis D., “Tratamiento digital de
señales”, Prentice Hall, 1998.
[11.] Poularikas A., Chapter 14:“Digital Signal Processing”
“The Electrical Engineering Handbook” Ed. Richard C.
Dorf, CRC Press, 2000
9. AUTORES
Mario E. Vera Lizcano. Ingeniero
Electricista y Magister en Automática de
la Universidad del Valle. Profesor
Asistente de la Escuela de Ingeniería
Eléctrica y Electrónica de la Universidad
del Valle
Gustavo A. Vejarano. Estudiante de
octavo semestre del programa academico
de Ingeniería Electrónica de la
Universidad del Valle.
Jaime Velasco Medina. Ingeniero
Electricista de la Universidad del Valle.
Doctor en Microelectrónica del Instituto
Nacional Politécnico de Grenoble,
Francia, 1999. Profesor Titular de la
Escuela de Ingeniería Eléctrica y
Electrónica de la Universidad del Valle.
View publication stats