Creo que puede haber una idea errónea sobre qué es realmente un FPGA y cuándo se usa en los diseños. Así que déjame intentar explicar esa parte primero.
FPGA y cuándo uno podría querer tener uno ...
En riesgo de simplificación, un FPGA es poco más que un procesador que resulta 'reconfigurable'.
¿Por qué alguien querría un microprocesador 'reconfigurable'? Bueno, porque cuesta demasiado fabricar un procesador de silicio para poder hacerlo por uno, dos o incluso doscientos chips. Tendría que ejecutar lotes de miles de chips para que sea económicamente factible.
Dado que ningún diseño está libre de errores la primera vez, ir por la ruta del silicio compromete efectivamente a una empresa a al menos dos, si no más, pruebas, todo a un costo de fabricación enorme.
Lo que esencialmente significa que muy pocas empresas comerciales estarán interesadas en diseñar y llevar a la fabricación algo que no sea chip con un atractivo comercial lo suficientemente amplio.
Entonces, si se te ocurre un diseño brillante que justifique un microprocesador personalizado, entonces podrías intentar hacer realidad tu idea con un presupuesto reducido al implementarlo en un FPGA, donde el chip real es simplemente una colección de puertas, y un 'programa' (típicamente VHDL o Verilog) organiza esas puertas en un microprocesador real.
Pero eso es bastante diferente en un camino completamente diferente (¡diseño de microprocesador!) ...
Lo que me lleva a sugerir que
... Los FPGA no son esenciales para la robótica, al menos al principio
Lo que necesitas para la robótica es un procesador . Un FPGA es solo un tipo especial de procesador (reconfigurable).
¿Preguntas si 'deberías'? Bueno, eso depende de su conocimiento, así como de dónde residen sus intereses reales: ¿primero el diseño del microprocesador o la robótica?
Si los microprocesadores son su pasión, ¡por supuesto! Y la robótica es una gran área de aplicación para microprocesadores personalizados, tal vez una corteza de visión con muchas vías de decisión paralelas manejadas directamente en hardware, o una multiplicación de tensor especial en hardware, básicamente cualquier cosa que los procesadores genéricos no puedan manejar bien.
Pero si va a diseñar diseños de microprocesadores en FPGA, bueno, entonces, por supuesto, necesitará tener todo ese conocimiento de bajo nivel que menciona, y más, porque fundamentalmente estará diseñando su propio procesador. Lo que realmente no tiene nada que ver con la robótica, a pesar de que su aplicación de destino podría ser la robótica.
La mayoría de los diseñadores probablemente puedan encontrar un procesador existente que haga la mayor parte de lo que necesitarán.
Así que creo que probablemente no necesites un FPGA.
Una hoja de ruta inicial: desde capacidades comerciales hasta (quizás) un FPGA ...
El primer objetivo en mi opinión es tratar de que todos sus conceptos creativos se integren en un robot que funcione (un desafío bastante intenso en sí mismo).
Si descubre que tiene cuellos de botella de procesamiento específicos y significativos en su diseño, entonces el siguiente objetivo es optimizar la selección / diseño de sus procesadores, que aún son chips disponibles comercialmente. Tal vez más grande, más rápido (compensación con consumo de energía, disipación de calor). Quizás chips más pequeños y dedicados que manejan tareas específicas e interactúan con el cerebro principal (compensación con complicaciones de algoritmo / lógica).
Solo si hay capacidades que simplemente no podrá obtener para manejar chips comerciales, entonces podría considerar implementar un procesador especializado dentro de un FPGA porque en ese punto habrá ventajas muy claras que espera obtener al rodar su propio ', y puede concentrarse en implementar esas capacidades, con las interfaces adecuadas para el resto de su diseño.
De lo contrario, es probable que te desvíes de tu objetivo principal (¡lo que voy a asumir es construir un robot!)
En pocas palabras: los FPGA son una distracción para no iniciarse en la robótica, hasta que esté bastante avanzado en el camino de la robótica, y han ganado algunas habilidades fuertes en el diseño de microprocesadores / electrónica digital en algún momento.