Penso che potrebbe esserci un malinteso su cosa sia effettivamente un FPGA e quando viene utilizzato nei progetti. Vorrei quindi provare a spiegare prima quella parte.
FPGA e quando si potrebbe desiderare di averne uno ...
A rischio di semplificazione, un FPGA è poco più di un processore che risulta essere "riconfigurabile".
Perché qualcuno dovrebbe desiderare un microprocessore "riconfigurabile"? Bene, perché costa troppo per fabbricare un processore al silicio per permettersi di farlo per uno, due o anche duecento chip. Dovresti eseguire lotti di migliaia di chip per renderlo economicamente fattibile.
Dal momento che nessun progetto è mai privo di bug per la prima volta, seguire la strada del silicio impegna effettivamente un'azienda ad almeno due se non più prove, il tutto a costi di fabbricazione enormi.
Ciò significa essenzialmente che pochissime società commerciali saranno interessate a progettare e portare alla fabbricazione qualcosa di diverso dal chip con un appeal commerciale abbastanza ampio.
Quindi, se ti viene in mente un design brillante che giustifica un microprocessore personalizzato, potresti provare a dare vita alla tua idea con un budget ridotto implementandolo in un FPGA, in cui il chip effettivo è semplicemente una raccolta di porte e un 'programma' (in genere VHDL o Verilog) organizza queste porte in un vero microprocessore.
Ma questo è un bel po 'lungo una strada completamente diversa (design a microprocessore!) ...
Il che mi porta a suggerirlo
... Gli FPGA non sono essenziali per la robotica - almeno all'inizio
Ciò di cui hai bisogno per la robotica è un processore . Un FPGA è solo un tipo speciale di processore (riconfigurabile).
Ti chiedi se "dovresti"? Dipende dalle tue conoscenze e da dove risiedono i tuoi interessi reali: prima la progettazione a microprocessore o la robotica?
Se i microprocessori sono la tua passione, allora sicuramente! E la robotica è una grande area di applicazione per microprocessori personalizzati - forse una corteccia visiva con molti percorsi decisionali paralleli gestiti direttamente nell'hardware o una moltiplicazione dei tensori nell'hardware - fondamentalmente tutto ciò che i processori generici non sono in grado di gestire bene.
Ma se hai intenzione di progettare microprocessori in FPGA, beh, ovviamente dovrai avere tutte quelle conoscenze di basso livello che menzioni e altro ancora, perché fondamentalmente progetterai il tuo processore. Il che non ha nulla a che fare con la robotica, anche se l'applicazione di destinazione potrebbe essere la robotica.
La maggior parte dei designer può probabilmente trovare un processore esistente che farà la maggior parte di ciò di cui avrà mai bisogno.
Quindi penso che probabilmente non hai bisogno di un FPGA.
Una tabella di marcia iniziale: dalle capacità commerciali a (forse) un FPGA ...
Il primo obiettivo a mio avviso è quello di cercare di integrare tutti i tuoi concetti creativi in un robot funzionante (una sfida piuttosto intensa in sé).
Se scopri di avere colli di bottiglia specifici e significativi nella progettazione, il prossimo obiettivo è ottimizzare la selezione / progettazione dei tuoi processori, chip ancora disponibili in commercio. Forse più grande, più veloce (compromesso con assorbimento di potenza, dissipazione del calore). Forse chip più piccoli e dedicati che gestiscono compiti specifici e si interfacciano con il cervello principale (compromesso con algoritmi / complicazioni logiche).
Solo se ci sono funzionalità che semplicemente non sarai in grado di gestire i chip commerciali, allora potresti prendere in considerazione l'implementazione di un processore specializzato all'interno di un FPGA perché a quel punto ci saranno chiari vantaggi che speri di ottenere 'lanciando il tuo "e puoi concentrarti solo sull'implementazione di queste funzionalità, con le giuste interfacce per il resto del tuo design.
Altrimenti, verrai probabilmente messo da parte dal tuo obiettivo principale (che presumo sia davvero costruire un robot!)
In conclusione: gli FPGA sono una distrazione dall'avvio della robotica, fino a quando non si è abbastanza in fondo alla strada della robotica, e hanno acquisito alcune brecce nella progettazione di elettronica digitale / microprocessore da qualche parte lungo la strada.