Diseñando un circuito con un filtro FIR con retroalimentación

1

Estoy intentando implementar un circuito VHDL similar al de esta imagen:

EstasimulacióndeSimulinkfuncionacomoseesperaba,perotratardeimplementarlomismoenVHDLesotroproblema.ElproblemaesqueMatlab/Simulinkproduceunasalidadelfiltroinmediatamente,mientrasqueestefiltroenparticulartoma43ciclosderelojenVHDLparaproducirunasalidaválida.Estohacequelarutaderetroalimentaciónsea"tardía" en comparación con Simulink, y retrasar la entrada del generador de señal para que coincida con este retraso solo retrasará aún más la salida del filtro correspondiente.

Debe haber alguna forma de explicar este retraso en el mundo real que no estoy viendo. ¿Algún consejo?

    
pregunta user3691539

2 respuestas

1

Fundamentalmente, hay dos enfoques de FIR en un FPGA y se intercambian por velocidad (esta es la compensación general en un fpga).

Puede crear un FIR como un desorden de registros (1 / z), multiplicadores y sumadores que producirán un resultado en un ciclo de reloj, el ciclo puede ser bastante lento debido al árbol sumador y el área será grande porque del bloque DSP y el uso de la cadena de sumador pero funcionará. Para un mayor rendimiento, puede canalizar el árbol de sumador, aún un resultado por reloj pero ahora con latencia, pero puede cronometrarlo más rápido.

El otro (y un enfoque mucho más común) es tener un reloj funcionando a un múltiplo significativo de su frecuencia de muestreo, luego un ram (datos históricos), una rom (coeficientes) algunos contadores, un solo núcleo de multiplicación / acc y una máquina de estados le da un resultado en un reloj de muestra, pero toma aproximadamente un ciclo de reloj de alta velocidad por toque.

Obviamente, existen enfoques híbridos que intercambian velocidad y área, pero esas son las formas comunes en que se ve esto hecho.

Obviamente, los filtros muy largos pueden favorecer los enfoques basados en Fourier, pero eso es otra lata de gusanos.

    
respondido por el Dan Mills
-3

Los filtros FIR no tienen comentarios.

Cuando diseñas un filtro IIR, la salida se realimenta a la entrada.

Puedes ver claramente que si pones un pulso de unidad en tu circuito, tardará mucho tiempo en sonar. Eso significa que es un filtro IIR.

    
respondido por el skvery

Lea otras preguntas en las etiquetas