Filtro Digital En Vhdl
BASADO EN ESTRUCTURAS CANÓNICAS
A. ALVAREZ, A. MILLAN, M. J. BELLIDO, J. JUAN,
P. RUIZ-DE-CLAVIJO, D. GUERRERO, E. OSTUA Y J. VIEJO
Departamento de Tecnología Electrónica. Universidad de Sevilla
Av. Reina Mercedes, s/n (E. T. S. Ingeniería Informática) - 41012 Sevilla
avealvarez@yahoo.com, {amillan, bellido, jjchico, paulino, guerre, ostua,julian}@dte.us.es
Tel.: +34 954556161 - Fax: +34 954552764
http://www.dte.us.es/gtm/
Este trabajo abarca la realización de un filtro digital a bajo nivel. El diseño propuesto se
basa en la utilización de un lenguaje de descripción de hardware (VHDL) así como de una
estructura canónica para la implementación del filtro. Con ello, se aporta al alumno un
enfoque mucho más práctico del diseño defiltros, desde un punto de vista adecuado a la
titulación de Ingeniería en Informática.1
1.
Introducción
El trabajo que presentamos se incluye dentro de la asignatura «Tratamiento Digital de Señales» de
tercer curso de Ingeniería en Informática (Universidad de Sevilla). Hasta ahora, las prácticas de dicha
asignatura han cubierto básicamente el diseño de filtros digitales a alto nivel,utilizando la herramienta
O CTAVE [1]. Así, el objetivo principal de este trabajo ha sido añadir al programa de prácticas la realización de filtros a bajo nivel. Para ello, se ha pretendido que los alumnos implementen un filtro desde
el punto de vista hardware siguiendo dos pautas claras. Por un lado, el filtro debía ser totalmente configurable (debía ser posible modificar la precisión de los datos, elorden y los coeficientes del mismo) por
lo que se ha elegido un lenguaje de descripción de hardware para su desarrollo (en nuestro caso VHDL
[2, 3, 4]). Por otro lado, el filtro debía seguir alguna de las estructuras canónicas expuestas en la literatura
debido a su mayor eficiencia (en comparación con la forma directa).
2.
Interfaz y estructura interna del filtro
Tanto la interfaz como laestructura interna del filtro diseñado se muestran en la Fig. 1 (N es la
precisión de los datos de entrada en bits). Las señales CLK y RESET dotan al circuito de reloj y puesta
a cero. Los buses X e Y son la entrada y la salida de datos del filtro. Por último, la señal STROBE indica
al circuito que hay un nuevo dato válido en la entrada. La estructura interna del filtro es relativamente
sencilla ycuenta con los siguientes componentes:
RAM, almacena los vectores auxiliares necesarios para el cálculo de la salida.
ROM, almacena los coeficientes del filtro.
Acumulador (AC), necesario para almacenar el resultado parcial durante cada iteración del filtro.
ALU, realiza operaciones aritméticas en un solo ciclo de reloj (suma, resta y multiplicación).
Todos los componentes trabajan con datos de2N bits con objeto de mantener la precisión de los resultados.
1
Y
Este trabajo ha sido financiado parcialmente por el proyecto OFU TIC 1023 de la C ONSEJERÍA DE I NNOVACIÓN , C IENCIA
E MPRESA de la J UNTA DE A NDALUCÍA .
RAM
ROM
ALU
AC
CLK
RESET
STROBE
VALID_OUT
FILTRO
Y2N-1-Y0
UNIDAD DE CONTROL
XN-1-X0
Figura 1: Interfaz y estructura interna del filtro.Figura 2: Estructura canónica para filtros recursivos de orden dos.
3.
Funcionamiento del filtro
El funcionamiento del filtro sigue la forma canónica cuya estructura para orden dos se muestra en
la Fig. 2. Esta estructura permite calcular la salida utilizando 3L posiciones de memoria (siendo L la
longitud del filtro) frente a las 4L posiciones que requiere la forma directa derivada de laecuación de
recurrencia de un filtro genérico [5, 6]:
M
M
b[k ]x[n − k ] −
y [n] =
k=0
a[k ]y [n − k ]
k=1
donde x[n] e y [n] son la entrada y la salida del sistema, a[k ] y b[k ] son los coeficientes del filtro, y
M es el orden del mismo. El código O CTAVE correspondiente a dicha estructura se muestra en la Fig. 3.
4.
Diseño en VHDL
El diseño del filtro se ha...
Regístrate para leer el documento completo.