reverberación de convolución de fuerza bruta en FPGA

0

Soy completamente nuevo en el mundo de los FPGA, y me gustaría tener una idea de lo que es posible lograr, y como tengo interés en los algoritmos de reverberación de convolución, usaré ese ejemplo.

Entonces, dada una respuesta de la sala de 10 segundos (es decir, ~ 500000 muestras a 44.1 kHz), es realista esperar que el FPGA pueda manejar el algoritmo de fuerza bruta (que es básicamente un filtro FIR con 500000 coeficientes, funcionando a 44.1 kHz, en coma flotante de doble precisión)?

Una implementación basada en FFT necesitaría menos multiplicaciones / adiciones, pero como es más compleja, ¡me gustaría comenzar con un ejemplo simple primero!

Sería bueno si en tus respuestas pudieras describir la implementación del filtro FIR y generar una parte posterior del cálculo del sobre, con los números de un FPGA específico para que pueda seguir tu razonamiento.

Muchas gracias!

    
pregunta Olivier Sohn

2 respuestas

2

Una implementación de fuerza bruta de un filtro FIR de 500,000 pulsos a 44.1 ksps requiere alrededor de 22 G operaciones por segundo. Los FPGA grandes tienen cientos de unidades DSP capaces de hacer una adición múltiple en un reloj, por lo que la frecuencia de reloj resultante de unos pocos cientos de MHz es bastante razonable.

Un problema un poco más interesante es la gestión de los datos. Seamos conservadores y asumamos que una muestra o un coeficiente requiere una palabra de 32 bits para el almacenamiento. Eso requeriría 32 Mbits de almacenamiento en chip, lo cual es bastante, excepto por los FPGA más grandes (y más caros). 1

Entonces, si asumimos que va a utilizar memoria externa, deberá leer / escribir tres palabras (96 bits) de datos por ciclo de reloj DSP para mantener los DSP ocupados. Esto está dentro de la capacidad de una interfaz de memoria DDR que se ejecuta a una velocidad razonable. Los dispositivos Spartan 6 o Spartan 7 más grandes podrían manejar esto fácilmente, y tienen precios en el rango de $ 100 a $ 150.

1 Solo estoy haciendo una revisión rápida de En la línea Xilinx Virtex Ultrascale , el XCVU190 tiene suficientes recursos en el chip para forzar la fuerza bruta en un FIR de 2 millones de tomas (1800 segmentos de DSP, 132,9 Mb de memoria en el chip). Desafortunadamente, este es un $ 32,000 chip !

    
respondido por el Dave Tweed
-2

Pensemos un poco en el uso de fuerza bruta.

Una muestra dada requerirá al menos 500,000 operaciones (a menos que haga una descarga paralela seria). Desea hacer esto 4400 veces por segundo por canal. Multiplicar los dos juntos sugiere una velocidad de reloj de 22 GHz.

Puedes sacar tus propias conclusiones.

    
respondido por el WhatRoughBeast

Lea otras preguntas en las etiquetas