¿Los FPGA son más intuitivos de aprender que los microprocesadores para hacer DSP?

2

Quiero aprender a hacer hardware DSP

Nunca he hecho ningún DSP y solo un poco de programación, pero he estado haciendo circuitos analógicos durante 15 años. Me gusta la idea de aprender FPGA porque suena más como construir circuitos, pero la gente suele decir que los FPGA son realmente difíciles. Tal vez estas personas estén acostumbradas a la programación secuencial. Me pregunto si los FPGA son más fáciles de aprender que los microprocesadores si hacer las cosas en las que los FPGA son buenos. Por ejemplo, si quiero hacer un filtro FIR, ¿un FPGA será más intuitivo?

    
pregunta Nick Collier

4 respuestas

3

Tome una sugerencia de cómo se está moviendo la industria profesional. Algunas organizaciones programan las partes DSP de sus FPGAs escribiendo un programa MATLAB o C, luego usan una herramienta de síntesis para compilarlo en VHDL. Al igual que la mayoría de las personas dejaron de escribir código de máquina o ensamblador, cuando los compiladores se aceptaron como la forma de hacerlo.

Sin embargo, estas herramientas suelen ser muy costosas, e insinuarlas sobre cómo paralelizar el diseño es una gran curva de aprendizaje, por lo que no son aplicables a los aficionados en este momento. Tampoco muchas empresas los utilizan para la producción, porque todavía hay muchos ingenieros de DSP que se quejan de que "pueden hacerlo mejor en el hardware que un compilador", al igual que los programadores de ensambladores solían gruñir hace 30 años.

Incluso si realmente quieres dirigirte al hardware eventualmente, siempre comienza con una herramienta fácil de usar como MATLAB (costos), Octave (gratis) o Python + numpy + matplotlib (gratis), para que puedas ver lo que está sucediendo, y genere algunos vectores de prueba para probar su hardware.

Podrá hacer DSP de audio de forma bastante feliz en microprocesadores DSP razonablemente disponibles. Sin embargo, hacer trabajo de radiofrecuencia necesitará FPGA.

    
respondido por el Neil_UK
2

Si utiliza un microcontrolador con funcionalidad DSP, un chip DSP o un FPGA no es (al menos en teoría) tan importante como qué algoritmos y coeficientes de filtro utiliza. Entonces, una vez que da el salto al procesamiento digital, se convierte en una cuestión de si necesita el rendimiento que solo un FPGA puede proporcionarle o no. Incluso dentro de un diseño de FPGA tiene varios compromisos, por ejemplo, estamos haciendo un cálculo CORDIC y para ahorrar recursos, serializamos los cálculos para que se requieran menos multiplicadores. Puedes hacer pequeños cambios, como desenrollar bucles con microcontroladores, pero básicamente estás atascado con los procesadores en el chip y eso es todo.

No creo que sea más fácil usar los FPGA. Las partes generalmente están en paquetes necesitados (generalmente BGA), necesitan mucha energía y diferentes fuentes de alimentación, la flexibilidad conduce a una mayor variación en el rendimiento (debido a la disposición, por ejemplo) y el consumo de energía también es más variable. Tenga en cuenta que normalmente necesitará otras funciones para ingresar y salir señales y para tareas de supervisión. Los chips como el Zynq combinan un pequeño núcleo ARM de microcontrolador de 32 bits con un FPGA y deberían ser lo mejor de ambos mundos, pero hemos encontrado que la curva de aprendizaje es bastante ardua, incluso con herramientas costosas como los paquetes MATLAB de costos adicionales. Existen muchas quejas sobre las herramientas FPGA de vainilla, si miras los foros y tienden a ser caras si necesitas toda la capacidad.

En este momento, creo que la combinación de un procesador y FPGA es una buena solución para muchas tareas de procesamiento de señales, ya sean integradas o no (también existe la posibilidad de que haya procesadores "blandos" en el FPGA, pero tienden a ser una poco decepcionante en el rendimiento y el uso de muchos recursos).

    
respondido por el Spehro Pefhany
0

Los FPGA son más caros, más complejos, tienen herramientas de software menos fáciles de usar y son más difíciles de depurar.

Yo diría que la forma más fácil de comenzar con DSP es en software para PC, comenzando con herramientas de nivel superior como Matlab, lenguajes de dificultad intermedia como Python (con un número que es lo suficientemente rápido como para un simple audio), hasta C .

Una vez que tenga un algoritmo trabajando en C, puede ser portado a un microcontrolador o DSP dedicado.

    
respondido por el pjc50
0

Como muchos, han señalado que FPGA puede ser difícil para aprender los algoritmos DSP por sí mismos. Creo que una de las razones principales por las que usaría un FPGA es para reducir el tiempo de procesamiento. Pero la implementación de un algoritmo en el FPGA requiere que aprendas un HDL. Incluso si usa IP pre construidas, todavía necesita conectarse y realizar una comunicación entre IP si es necesario. Un controlador micro basado en DSP sería mucho más fácil de manejar.

    
respondido por el DBB

Lea otras preguntas en las etiquetas