Ejemplo de diseño de filtro de diezma reconfigurable

Recomendado para:

  • Dispositivo: Desconocido

  • Quartus®: v9.1

author-image

Por

Este ejemplo muestra cómo implementar un filtro de decimación de velocidad variable de varios canales en el conjunto de bloques avanzados Intel® DSP Builder. Para muchos sistemas de imágenes médicas, incluidos el ultrasonido y las imágenes de resonancia magnética (MRI), se necesita un filtro de diezmación reconfigurable para reducir la frecuencia de muestreo de los datos de reconfiguración. Los datos de entrada tienen una velocidad de muestreo fija; sin embargo, la tasa de decimación de enteros debe cambiarse en tiempo real. Además, la longitud total del filtro crece linealmente con la velocidad de diezma. Es posible que se apliquen requisitos similares en aplicaciones de comunicaciones inalámbricas y en otros sistemas. La estructura dephase es altamente optimizada para este tipo de aplicaciones, ya que la cantidad de multiplicadores se fija en tiempo de compilación y no crece con un aumento de velocidad. Las características clave de este diseño son los tomas de demora de longitud variable y el eficiente almacenamiento de filtros ligeros.

Funciones

Este ejemplo de diseño tiene las siguientes características clave:

  • Compatibilidad con velocidades de diezma de enteros arbitrarias, incluidos los casos sin cambio de la tasa de muestreo
  • Compatibilidad con una cantidad arbitraria de canales, frecuencias de reloj arbitrarias y frecuencias de muestreo de entrada, siempre y cuando la velocidad de reloj sea lo suficientemente alta para procesar todos los canales en una única ruta de datos, o en otras palabras, sin duplicaciones de hardware
  • Compatibilidad con la reconfiguración en tiempo de ejecución de las tasas de diezmación
  • Se utilizó dos bancos de memoria para filtrar el almacenamiento en lugar de almacenar previamente objetos en la memoria. Esta característica permite que un banco de memoria se actualice mientras el diseño lee lecturas de textos del otro banco.
  • Control en tiempo real de escalamiento en la ruta de datos de respuesta a impulsos finita (FIR)

Descripción funcional

El diseño utiliza una estructura de filtro de decimación de forma directa y se muestra en la Figura 1. El controlador de direcciones genera la dirección de lectura de la memoria de lectura, un selector de banco y la dirección de escritura de los toques de demora variable. Las piezas se almacenan en bloques de RAM dentro del chip. Los tomas de demora variable también se implementan en memorias de doble puerto y su puntero está controlado por la velocidad de diezmación actual. Se utiliza un número fijo de multiplicadores.

Figura 1. Diagrama de bloques del decimador de velocidad variable.

Los bloques de demora del toque variable en este ejemplo tienen una profundidad de tiempo de ejecución reconfigurable. Por lo tanto, se implementan como memorias elásticas que utilizan bloques de RAM incorporados al chip. Cada golpe de demora se asigna en función del peor caso. El número real de demoras a través de un bloque de llave de demora se basa en la tasa de diezmación actual. Se utiliza un solo puntero o señal de dirección para las operaciones de lectura y escritura en el toque de demora. Por lo tanto, leerá y escribirá en la misma ubicación de memoria. La RAM de dos puertos está configurada para leer el contenido de memoria antiguo, lo que permite un retraso de cierto número de ciclos.

Este diseño utiliza solo dos bancos de memoria, con uno que se actualiza mientras se lee el otro. Se necesita una interfaz del procesador para realizar una recarga de carga en tiempo de ejecución.

En el script de configuración de este diseño, definemos la velocidad de reloj, la velocidad de diezma, la longitud del filtro, el motor de multiplicador, etc. La administración de ancho de bits también está scriptada para la parameterización. Los parámetros clave y sus definiciones se enumeran en la tabla siguiente.

Todos los parámetros se pueden modificar para que se dirijan a diferentes diseños. Se generarán nuevos códigos HDL según los parámetros actualizados.

Para obtener más información sobre el diseño de filtros de remuestreo en DSP Builder Advanced Blockset, consulte AN 623: Using the DSP Builder Advanced Blockset to Implement Resampling Filters (PDF).

Descargue los archivos utilizados en este ejemplo:

Los archivos de esta descarga zip incluyen:

  • vardownsampler.mdl – Banco de pruebas y archivos de diseño superior de DSP Builder Advanced Blockset para filtro de diezmación reconfigurable
  • setup_vardownsampler.m – script MATLAB* para configurar la inicialización y los parámetros de vardownsampler.mdl
  • vardownsampler_bare.mdl: Archivo de diseño basado en vardownsampler.mdl. Algunos bloques de banco de pruebas no síntesisibles se eliminan para la generación de nivel de transferencia de registro (RTL)

Para obtener más información sobre las características relacionadas que se utilizan en este ejemplo de diseño en su proyecto, vaya a:

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.