FPGA de bajo costo para el filtro FIR de 500MHz

4

Necesito un filtro FIR de 500MHz para filtrar muestras de ADC (500MSPS).

Después del filtrado, algunas muestras deben almacenarse en un búfer, para un algoritmo de detección de picos simple.

He estado desarrollando un código VHDL y usé una biblioteca de filtros FIR de Xilinx para crear el filtro.

Pero después de ver los precios de los FPGA de Xilinx que harían un filtro FIR de 500MHz, muy por encima de los $ 100, mi mandíbula golpeó el escritorio.

¿Hay algún FPGA bueno y de bajo costo (menos de $ 50) por hacer esto?

    
pregunta JakobJ

3 respuestas

5

Hasta hace poco, 500 MHz se habría considerado un reloj bastante rápido, que requeriría un FPGA relativamente alto (y de alto costo). Pero hoy en día, una parte de bajo costo debería poder hacer eso.

Sin embargo, hay otras especificaciones que son igualmente importantes para la velocidad de datos para determinar qué parte funcionará para usted:

  • ¿Cuál es el ancho de los datos? Un sumador de 16 bits requiere una cadena de transporte más larga que un sumador de 8 bits y, por lo tanto, requiere un período de reloj más largo en una arquitectura y grado de velocidad dados.

  • ¿Cuántos toques en el filtro? Un número muy grande significa trabajar con RAM en lugar de solo registros, lo que lleva a un nuevo conjunto de requisitos de tiempo y nuevas consideraciones para las partes que satisfarán sus necesidades.

  • ¿Cuáles son los pesos? Pesos iguales en todos los taps significa un cálculo mucho más simple. Si tiene diferentes pesos en cada pulsación, es posible que deba rehacer el conjunto completo de sumar multiplicados para cada nueva muestra de entrada, lo que hace que el problema sea mucho más difícil.

Pero si sus otras especificaciones, aparte de la velocidad de reloj, son bastante relajadas, podría hacerlo en un dispositivo de bajo costo.

  • Todos los proveedores de FPGA tienen líneas FPGA de bajo costo que pueden tener un precio tan bajo como $ 5 cada uno. Por ejemplo, Xilinx tiene Spartan y Artix, Altera tiene Cyclone, etc. En las últimas generaciones, estas partes deberían poder hacer al menos una lógica mínima a 500 MHz. Pero si tiene que hacer ampliaciones adicionales o algo así, es posible que tenga que hacer algunos arreglos cuidadosos u otros trucos para que funcionen. Asegúrese de ver la última generación de piezas para obtener el mejor rendimiento, los mejores precios (a menos que una familia sea completamente nueva) y la mayor garantía de suministro.

  • Los CPLD recientes de Altera y Lattice son FPGA realmente pequeños con flash incorporado para permitir la reconfiguración automática en el encendido. Para un filtro simple, estos podrían ser suficientes.

Pero sin conocer su diseño completo, no podemos decirle qué dispositivo funcionará. Tendrá que intentar diseñarlo para cada parte candidata y usar las herramientas de síntesis del proveedor para averiguar si puede cumplir con el tiempo en cada caso.

    
respondido por el The Photon
2

Tenga en cuenta que un filtro de estilo de convolución requiere hacer muchas operaciones de acumulación múltiple por muestra de entrada, lo que significa que necesita una frecuencia de reloj que sea muchas veces mayor que la frecuencia de muestreo, o que use muchos multiplicadores para operar en paralelo. o alguna combinación de los dos.

Si puede tolerar alguna reducción de muestreo, una eficiencia es un filtro FIR polifásico, que solo hace los cálculos necesarios para producir las muestras menos frecuentes a la tasa de salida. Otra opción común es un filtro CIC, que es bastante eficiente en relaciones de decimación altas pero tiene una respuesta de impulso rectangular y, por lo tanto, una respuesta de frecuencia de función de sincronización. Con frecuencia los dos se utilizan en combinación.

Otra opción en algunos casos es no procesar los datos a la tasa de entrada, sino almacenarlos y luego procesarlos más lentamente; por supuesto, esto solo funciona para la evaluación intermitente que no suena como lo que se desea con la detección de picos.

Si solo necesita un poco de filtrado de paso bajo antes de la detección de picos para eliminar algo de ruido, podría considerar una implementación analógica o un IIR en lugar de un FIR. También podría considerar la implementación de un bucle PID que siga a la señal de entrada y tomar su salida del acumulador de bucle.

    
respondido por el Chris Stratton
0

Para obtener una solución sensata, debe retroceder y ver los requisitos:

1) ¿Qué aspecto tiene la señal de entrada típica? Unipolar? ¿Bipolar? ¿Frecuencia? ¿Distancia? ¿Sobre? ¿Modulación? Ruido?

2) ¿Es la detección de picos todo lo que se requiere?

3) ¿Qué tan rápido / regularmente necesita detectar el pico?

4) ¿Con qué precisión necesita medir el pico?

5) ¿Por qué debe FIRTAR si solo se detecta el pico?

6) ¿La frecuencia FIR es selectiva o simplemente promediada / filtrado de ruido?

7) Si los datos de ADC se utilizan en otro lugar, ¿a qué velocidad se utilizan?

Para mí, filtrar antes de la detección de picos implica que no desea una detección de picos en bruto absoluta, sino una detección de picos más conservadora que ignora los picos falsos que no se consideran parte de la señal de interés.

Si es así, puede ser más eficiente realizar un seguimiento de cada bit leído desde el ADC, observando la combinación más significativa de bits "P" que se establece al menos "X" veces en su período de muestras "N" y simplemente generar este valor.

Cuanto más alta sea "X" y más alta será "N", más libre de ruido y más confiable será tu valor pico.

    
respondido por el Matthew Radmore

Lea otras preguntas en las etiquetas