Myślę, że może istnieć nieporozumienie co do tego, czym właściwie jest FPGA i kiedy jest używana w projektach. Więc pozwól mi najpierw wyjaśnić tę część.
FPGA i kiedy ktoś może chcieć mieć ...
W przypadku ryzyka uproszczenia układ FPGA to niewiele więcej niż procesor, który może być „konfigurowalny”.
Dlaczego ktoś miałby chcieć mikroprocesora „rekonfigurowalnego”? Cóż, ponieważ wyprodukowanie procesora krzemowego kosztuje zbyt wiele, aby pozwolić sobie na to za jeden, dwa, a nawet dwieście układów. Musiałbyś uruchamiać partie tysięcy żetonów, aby było to ekonomicznie wykonalne.
Ponieważ żaden projekt nigdy nie jest wolny od błędów za pierwszym razem, wybranie krzemowej trasy skutecznie zobowiązuje firmę do co najmniej dwóch, jeśli nie większej liczby testów, a wszystko to przy ogromnych kosztach produkcji.
Co w gruncie rzeczy oznacza, że bardzo niewiele firm komercyjnych będzie zainteresowanych projektowaniem i wprowadzaniem do produkcji czegokolwiek innego niż mikroukład o wystarczająco szerokim komercyjnym charakterze.
Tak więc, jeśli wymyślić genialny projekt, który uzasadnia zwyczaj mikroprocesorowe, to może próbować wnieść swój pomysł do życia na skromny budżet poprzez wdrożenie go w FPGA, gdzie rzeczywisty układ jest po prostu zbiorem bramek, a „program” (zazwyczaj VHDL lub Verilog) ustawia te bramki w rzeczywisty mikroprocesor.
Ale to zupełnie inna droga (zupełnie odmienna konstrukcja mikroprocesora!) ...
Co prowadzi mnie do tego
... FPGA nie są niezbędne dla robotyki - przynajmniej na samym początku
Do robotyki potrzebny jest procesor . FPGA to tylko specjalny rodzaj procesora (konfigurowalny).
Pytasz, czy powinieneś? To zależy od twojej wiedzy, a także od tego, gdzie leżą twoje prawdziwe zainteresowania - najpierw projektowanie mikroprocesorów czy robotyka?
Jeśli mikroprocesory są Twoją pasją, to na pewno! A robotyka to świetny obszar zastosowań dla niestandardowych mikroprocesorów - być może kora wzroku z wieloma równoległymi ścieżkami decyzyjnymi obsługiwanymi bezpośrednio w sprzęcie lub specjalne mnożenie tensorów w sprzęcie - w zasadzie wszystko, czego zwykłe procesory nie są w stanie poradzić sobie dobrze z gotowymi produktami.
Ale jeśli zamierzasz projektować mikroprocesory w układach FPGA, to oczywiście musisz mieć całą wiedzę o niskim poziomie, o której wspomniałeś, i więcej - ponieważ zasadniczo będziesz projektować własny procesor. Co tak naprawdę nie ma nic wspólnego z robotyką, nawet jeśli twoją docelową aplikacją może być robotyka.
Większość projektantów prawdopodobnie znajdzie istniejący procesor, który zrobi większość tego, czego kiedykolwiek będzie potrzebował.
Myślę więc, że prawdopodobnie nie potrzebujesz FPGA.
Plan startowy: od możliwości komercyjnych do (być może) FPGA ...
Moim zdaniem pierwszym celem jest próba przekształcenia wszystkich twoich pomysłów w działającego robota (samo w sobie dość intensywne wyzwanie).
Jeśli okaże się, że masz w projekcie specyficzne i znaczące wąskie gardła w przetwarzaniu, następnym celem jest optymalizacja wyboru / projektu procesorów, wciąż dostępnych na rynku układów scalonych. Może większy, szybszy (kompromis z poborem mocy, rozpraszaniem ciepła). Być może mniejsze, dedykowane układy obsługujące określone zadania i współpracujące z głównym mózgiem (kompromis z komplikacjami algorytmu / logiki).
Tylko jeśli istnieją możliwości, których po prostu nie będziesz w stanie obsłużyć komercyjnych układów, możesz rozważyć wdrożenie specjalistycznego procesora w układzie FPGA, ponieważ w tym momencie pojawią się bardzo wyraźne korzyści, które masz nadzieję zyskać, rozwijając własne ”, a Ty możesz skoncentrować się na implementacji tych możliwości, korzystając z odpowiednich interfejsów do reszty projektu.
W przeciwnym razie prawdopodobnie zostaniesz pobocznym od głównego celu (zakładam, że faktycznie zbuduję robota!)
Podsumowując: układy FPGA odwracają uwagę od rozpoczęcia robotyki - dopóki nie znajdziesz się daleko na drodze do robotyki - i zyskałeś mocne podstawy w projektowaniu elektroniki cyfrowej / mikroprocesora gdzieś po drodze.