Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2o Ing. Telecomunicacion
Practica 2
Implementacion de un filtro FIR basado en
estructura MAC
Javier Toledo Moreo
Dpto. Electronica, Tecnologa de Computadoras y Proyectos
Universidad Politecnica de Cartagena
9 de mayo de 2007
Revision 1a
Descripcion de la practica
El objetivo de la practica es la implementacion de un filtro FIR basado
en una estructura de multiplicacion y acumulacion (MAC) sobre una FPGA
XC4010EPC84 de Xilinx utilizando las herramientas del software Foundation.
Esta practica pretende introducir al alumno en las posibilidades de los dis-
positivos FPGA para el desarrollo de aplicaciones de procesamiento digital de
senales.
Para facilitar el desarrollo de la practica, el diseno del filtro esta basado en
el multiplicador realizado en la practica 1. Ademas, la senal de entrada al filtro
es conocida a priori, y va a estar almacenada en una memoria que se incluye en
el mismo diseno. Por tanto, la unica entrada a la FPGA es una senal de reloj.
La salida es la senal filtrada.
Los pasos a seguir en el desarrollo de la practica son:
Elaboracion del esquematico del diseno
Simulacion funcional
Realizacion de los procesos Map, Place y Route para la implementacion
sobre la FPGA elegida
Analisis de la informacion contenida en los informes de implementacion
Simulacion temporal
1
Filtro FIR basado en estructura MAC
Filtrado digital
Hoy en da el procesamiento digital de senales (DSP) esta presente en un
amplsimo abanico de aplicaciones. Se emplean algoritmos DSP para proce-
samiento del habla en telefona movil, sistemas de comunicaciones personales,
sistemas de seguridad, para procesamiento de audio en equipos de mezcla y edi-
cion, en equalizadores, en sistemas de sonido hi-fi, para la sntesis de sonido, para
procesamiento de imagen en sistema de edicion de vdeo, para la compresion y la
descompresion de imagenes, en sistemas de reconocimiento de imagenes, en sis-
temas de informacion para la encriptacion de datos, en comunicaciones digitales
en redes, en radio y television digital, en modems, etc.
Una de los pilares basicos del procesamiento digital de senales es el filtrado
digital. Los filtros digitales son sistemas LTI disenados para modificar de una
manera determinada las caractersticas en frecuencia de una senal de entrada.
Tradicionalmente, los filtros digitales son clasificados en dos grandes categoras:
filtros con respuesta impulso finita (Finite Impulse Response, FIR) y filtros con
respuesta impulso infinita (Infinite Impulse Response, IIR). La eleccion entre
uno tipo de filtro u otro depende de las caractersticas de la aplicacion.
Centrandonos en los filtros FIR, cuya implementacion es el objetivo de esta
practica, la respuesta impulso es finita, tal y como indica su nombre, y viene
dada por la expresion:
y =hx
L1
yn = hk xnk
k=0
donde x es la senal de entrada, h es la respuesta impulso del filtro, hk son los
coeficientes del filtro y L es el numero de coeficientes, es decir, la longitud de la
respuesta impulso.
A modo de ejemplo, y con el fin de explicar el funcionamiento de la estructura
a realizar, se desarrollan los primeros terminos de la expresion general anterior
para un filtro de 4 coeficientes.
y0 = h0 x0 + h1 0 + h2 0 + h3 0
y1 = h0 x1 + h1 x0 + h2 0 + h3 0
y2 = h0 x2 + h1 x1 + h2 x0 + h3 0
y3 = h0 x3 + h1 x2 + h2 x1 + h3 x0
y4 = h0 x4 + h1 x3 + h2 x2 + h3 x1
y5 = h0 x5 + h1 x4 + h2 x3 + h3 x2
y6 = h0 x6 + h1 x5 + h2 x4 + h3 x3
..
.
yn = h0 xn + h1 xn1 + h2 xn2 + h3 xn3
La salida correspondiente a cada entrada depende, por tanto, no solo de esta,
sino tambien de un determinado numero de datos de entrada anteriores.
Implementacion hardware
Existen numerosas alternativas a la hora de implementar en hardware un
filtro FIR, cada una de ellas con sus ventajas y sus inconvenientes. La mas
2
Filtro FIR basado en estructura MAC
Memoria ROM
Dato
h0
h1
Acumulador
h2
h3 + D Q
Dir.
x reloj
EN
CLK
RST
Multiplicador
Dato Salida
D Q
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
3
Filtro FIR basado en estructura MAC
Los registros deben actualizarse una vez para calcular cada dato de salida, to-
dos en el mismo instante. Su tamano debe ser el de los datos de entrada. En
esta practica dicho tamano esta limitado por el multiplicador, que solo permite
multiplicar numeros de 8 bits. Para obtener los valores correctos de las primeras
muestras de la secuencia de salida el valor inicial de los registros debe ser 0. En
el caso general de un filtro de L coeficientes, son necesarios L 1 registros, con
comportamiento y conexion analogos.
Con el fin de explicar el procedimiento de calculo de la convolucion con
la estructura propuesta y como debe realizarse el control de los componentes
de la figura 1, en las figuras 2, 3, 4 y 5 se representa la secuencia de calculo
correspondiente a la muestra de entrada x5 . Se parte de una situacion inicial en
la que la direccion de la memoria ROM es tal que el valor en su bus de datos es
el coeficiente h0 , la entrada es el valor x5 y los registros contienen los valores x4 ,
x3 y x2 , el multiplexor selecciona x5 como entrada al multiplicador, el registro
acumulador almacena el valor 0 y el registro de salida el valor de salida anterior,
y4 . En esta situacion, la salida del multiplicador es el producto h0 x5 , igual que
la salida del sumador, puesto que el acumulador vale 0.
Memoria ROM
Dato h0
h0
h1
Acumulador
h2
h0 x5
h3 + D Q 0
Dir.
x h0 x5 reloj
EN
CLK
RST
Multiplicador
x5
Dato Salida
D Q
y4
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x5 x4 x3 x2
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
4
Filtro FIR basado en estructura MAC
Memoria ROM
Dato h1
h0
h1
Acumulador
h2
h0 x5 + h1 x4
h3 + D Q h0 x5
Dir.
x h1 x4 reloj
EN
CLK
RST
Multiplicador
x4
Dato Salida
D Q
y4
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x5 x4 x3 x2
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
5
Filtro FIR basado en estructura MAC
Memoria ROM
Dato h2
h0
h1
Acumulador
h2
h0 x5 + h1 x4 + h2 x3
h3 + D Q h0 x5 + h1 x4
Dir.
x h2 x3 reloj
EN
CLK
RST
Multiplicador
x3
Dato Salida
D Q
y4
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x5 x4 x3 x2
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
6
Filtro FIR basado en estructura MAC
Memoria ROM
Dato h3
h0
h1
Acumulador
h2
h0 x5 + h1 x4 + h2 x3 + h3 x2
h3 + D Q h0 x5 + h1 x4+ h2 x3
Dir.
x h3 x2 reloj
EN
CLK
RST
Multiplicador
x2
Dato Salida
D Q
y4
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x5 x4 x3 x2
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
Coeficiente Valor
h0 1
h1 2
h2 3
h3 4
h4 5
h5 6
7
Filtro FIR basado en estructura MAC
Memoria ROM
Dato h0
h0
h1
Acumulador
h2
h0 x 6
h3 + D Q 0
Dir.
x h0 x6 reloj
EN
CLK
RST
Multiplicador
x6
Dato Salida
D Q
y5
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x6 x5 x4 x3
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
8
Filtro FIR basado en estructura MAC
Memoria ROM
Dato h1
h0
h1
Acumulador
h2
h0 x6 + h1 x5
h3 + D Q h0 x6
Dir.
x h1 x5 reloj
EN
CLK
RST
Multiplicador
x5
Dato Salida
D Q
y5
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x6 x5 x4 x3
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
Memoria ROM
Dato h2
h0
h1
Acumulador
h2
h0 x6 + h1 x5 + h2 x4
h3 + D Q h0 x6 + h1 x5
Dir.
x h2 x4 reloj
EN
CLK
RST
Multiplicador
x4
Dato Salida
D Q
y5
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x6 x5 x4 x3
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
9
Filtro FIR basado en estructura MAC
Memoria ROM
Dato h3
h0
h1
Acumulador
h2
h0 x6 + h1 x5 + h2 x4 + h3 x3
h3 + D Q h0 x6 + h1 x5+ h2 x4
Dir.
x h3 x 3 reloj
EN
CLK
RST
Multiplicador
x3
Dato Salida
D Q
y5
EN
reloj CLK
RST
Dato Entrada
D Q D Q D Q
x6 x5 x4 x3
EN EN EN
reloj reloj reloj
CLK CLK CLK
RST RST RST
10