Tengo un proyecto que involucra audio en un Xilinx Spartan6 FPGA. El objetivo del proyecto es hacer un procesador de audio utilizando HDL (en su mayoría educativo y divertido). Es básicamente un flujo de efectos de audio que pueden configurarse utilizando SPI. Quería usar este proyecto para obtener una introducción al codificador Matlab HDL.
Diseño los efectos de audio en Simulink y luego los implemento en Verilog. Me gustaría mejorar mi método de trabajo y, con suerte, utilizar el diseño de Simulink para implementarlo directamente en mi FPGA, que se supone que debe hacer el codificador HDL.
Mi señal de audio se muestrea a 48KHz, pero mi FPGA tiene una velocidad de reloj de 96MHz. Cuando diseño los efectos en Simulink, configuro mi frecuencia de muestreo a 48KHz, luego utilizo bloques como sumadores / multiplicadores, etc. que se ejecutan en un solo paso. En mi código de verificación, la implementación que hago no siempre se ejecuta en un solo ciclo de reloj. Por ejemplo, uso un módulo personalizado para escalar muestras que está optimizado en el espacio pero toma tanto ciclo de reloj como bits en el operando.
Cuando viene a simular en Matlab, configurar mi frecuencia de muestreo en 96MHz es demasiado lento para obtener una ganancia real en la eficiencia. El tiempo que ahorre al no escribir Verilog se pierde esperando que la simulación procese algunas muestras de audio.
¿Cómo la gente usa el codificador HDL para superar este problema tan obvio? ¿Los profesionales tienen máquinas de simulación muy potentes? ¿Esperan? ¿Utilizan FPGA lo suficientemente potente como para no tener que preocuparse por guardar algunos elementos como los segmentos DSP?
¿Hay una manera de tener 2 versiones del mismo bloque, como una simulación v.s. una implementación?
Gracias