Je pense qu'il pourrait y avoir une idée fausse sur ce qu'est réellement un FPGA et quand il est utilisé dans les conceptions. Permettez-moi donc d'essayer d'expliquer cette partie en premier.
FPGA et quand on peut vouloir en avoir un ...
Au risque de simplification, un FPGA n'est guère plus qu'un processeur qui se trouve être «reconfigurable».
Pourquoi voudrait-on un microprocesseur «reconfigurable»? Eh bien, car il coûte beaucoup trop cher de fabriquer un processeur au silicium pour se permettre de le faire pour une, deux ou même deux cents puces. Vous devez exécuter des lots de milliers de puces pour le rendre économiquement réalisable.
Puisqu'aucune conception n'est jamais exempte de bogues la première fois, suivre la voie du silicium engage effectivement une entreprise à au moins deux, sinon plus, à des essais, le tout à des coûts de fabrication énormes.
Ce qui signifie essentiellement que très peu d'entreprises commerciales seront intéressées par la conception et la fabrication de produits autres que des puces ayant un attrait commercial suffisamment large.
Donc, si vous venez avec une conception brillante qui justifie un microprocesseur personnalisé, vous pouvez essayer de donner vie à votre idée avec un budget restreint en l'implémentant dans un FPGA, où la puce réelle est simplement une collection de portes et un «programme» (généralement VHDL ou Verilog) organise ces portes dans un microprocesseur réel.
Mais c'est tout à fait un chemin complètement différent (conception de microprocesseur!) ...
Ce qui m'amène à suggérer que
... les FPGA ne sont pas essentiels à la robotique - du moins au départ
Ce dont vous avez besoin pour la robotique, c'est d'un processeur . Un FPGA est juste un type spécial de processeur (reconfigurable).
Vous demandez si vous «devriez»? Eh bien, cela dépend de vos connaissances ainsi que de votre véritable intérêt - la conception du microprocesseur d'abord ou la robotique d'abord?
Si les microprocesseurs sont votre passion, alors certainement! Et la robotique est un excellent domaine d'application pour les microprocesseurs personnalisés - peut-être un cortex de vision avec de nombreuses voies de décision parallèles gérées directement dans le matériel, ou une multiplication spéciale des tenseurs dans le matériel - essentiellement tout ce que les processeurs génériques ne peuvent pas gérer correctement.
Mais si vous envisagez de concevoir des microprocesseurs dans des FPGA, vous devrez bien sûr disposer de toutes les connaissances de bas niveau que vous mentionnez, et plus encore, car fondamentalement, vous allez concevoir votre propre processeur. Ce qui n'a rien à voir avec la robotique, même si votre application cible peut être la robotique.
La plupart des concepteurs peuvent probablement trouver un processeur existant qui fera la plupart de ce dont ils auront besoin.
Je pense donc que vous n'avez probablement pas besoin d'un FPGA.
Une feuille de route de démarrage: des capacités commerciales à (peut-être) un FPGA ...
Le premier objectif à mon avis est d'essayer de faire en sorte que tous vos concepts créatifs soient intégrés dans un robot fonctionnel (un défi assez intense en soi).
Si vous trouvez que vous avez des goulots d'étranglement de traitement spécifiques et importants dans votre conception, alors le prochain objectif est d'optimiser la sélection / conception de vos processeurs, toujours des puces disponibles dans le commerce. Peut-être plus grand, plus rapide (compromis avec consommation d'énergie, dissipation thermique). Peut-être des puces plus petites et dédiées gérant des tâches spécifiques et s'interfaçant avec le cerveau principal (compromis avec des complications d'algorithme / logique).
Ce n'est que s'il existe des capacités que vous ne pourrez tout simplement pas gérer que des puces commerciales, alors vous pourriez envisager d'implémenter un processeur spécialisé à l'intérieur d'un FPGA, car à ce stade, il y aura des avantages très clairs que vous espérez gagner en «roulant le vôtre». ', et vous pouvez vous concentrer uniquement sur la mise en œuvre de ces capacités, avec les bonnes interfaces pour le reste de votre conception.
Sinon, vous risquez de vous écarter de votre objectif principal (ce que je vais supposer est de construire un robot!)
En résumé: les FPGA sont une distraction pour se lancer dans la robotique - jusqu'à ce que vous soyez assez loin sur la voie de la robotique - et ont gagné de solides atouts en conception d'électronique numérique / microprocesseur quelque part en cours de route.