- Co to jest FPGA i czym różni się od mikrokontrolera
- Architektura FPGA
- Kiedy potrzebne są układy FPGA
Wraz z rosnącą popularnością mikrokontrolerów inżynierowie używają mikrokontrolerów częściej niż układów FPGA. W Mikrokontrolery stały się dominującym nad FPGA ze względu na ich niski koszt, dobre wsparcie, łatwa dostępność, duża społeczność, wszechstronność, programowanie itd. Ale poza tym mikroprocesory mają pewne ograniczenia, takie jak zestaw instrukcji, sekwencyjne wykonywanie programów (sekwencyjne przetwarzanie), brak elastyczności i możliwości ponownego wykorzystania itp. Jednakże FPGA może pokonać te ograniczenia, ponieważ FPGA mają równoległe wykonywanie programów i jest elastyczny i wielokrotnego użytku, co oznacza, że można go wielokrotnie przeprogramowywać do różnych zadań.
Co to jest FPGA i czym różni się od mikrokontrolera
Tablica bramek programowalna przez użytkownika to krzemowy chip z układem scalonym, który ma tablicę bramek logicznych, a ta tablica może być programowana w terenie, tj. Użytkownik może nadpisać istniejące konfiguracje nowymi zdefiniowanymi konfiguracjami i może stworzyć własny obwód cyfrowy na miejscu. FPGA można uznać za pustą kartę. FPGA nic nie robią same, podczas gdy projektanci muszą stworzyć plik konfiguracyjny, często nazywany plikiem bitowym dla FPGA. FPGA będzie zachowywać się jak obwód cyfrowy po załadowaniu pliku bitowego.
Podczas gdy w mikrokontrolerach tak nie jest, ponieważ mikrokontrolerów nie można programować ani restrukturyzować w terenie. Użytkownikowi nie wolno nadpisywać istniejących konfiguracji ani tworzyć żadnych obwodów cyfrowych w terenie. Mikrokontrolery są łatwe do zaprogramowania, a społeczność jest również szeroka. Mikrokontrolery to zbudowane na zamówienie mini komputery, które są dostarczane w postaci układów scalonych, podczas gdy układy FPGA zawierają tylko bloki logiczne, które można ponownie podłączyć elektrycznie. Również pod względem mikrokontrolerów zużywa mniej energii niż układy FPGA. Wiadomo, że układy FPGA są kosztowne i wymagają więcej kosztów niż mikrokontroler, jeśli chodzi o zbudowanie dowolnego urządzenia. Konfiguracja układów FPGA zajmuje znacznie więcej czasu, podczas gdy mikrokontrolery są dostępne w postaci łatwej do zbudowania dla określonych zastosowań.
Architektura FPGA
FPGA ma regularną strukturę komórek logicznych lub modułów i połączeń, które są całkowicie kontrolowane przez programistów i projektantów. FPGA składa się głównie z trzech głównych bloków, takich jak konfigurowalny blok logiczny (CLB), bloki we / wy lub podkładki oraz macierze przełączników / przewody połączeniowe. Każdy blok zostanie omówiony poniżej w skrócie.
- CLB (Configurable Logic Block): Są to podstawowe komórki FPGA. Składa się z jednego 8-bitowego generatora funkcyjnego, dwóch 16-bitowych generatorów funkcyjnych, dwóch rejestrów (przerzutników lub zatrzasków) oraz programowalnych elementów sterujących routingiem (multipleksery). CLB są stosowane do implementacji innych zaprojektowanych funkcji i makr. Każdy CLB ma wejścia po każdej stronie, co czyni je elastycznymi do mapowania i partycjonowania logiki.
- Podkładki lub bloki I / O: Podkładki wejścia / wyjścia są używane dla zewnętrznych urządzeń peryferyjnych w celu uzyskania dostępu do funkcji FPGA, a za pomocą padów I / O może również komunikować się z FPGA dla różnych aplikacji wykorzystujących różne urządzenia peryferyjne.
- Matryca przełączania / przewody łączące : Matryca przełączająca jest używana w FPGA do łączenia długich i krótkich przewodów łączących w elastyczną kombinację. Zawiera również tranzystory do włączania / wyłączania połączeń między różnymi liniami.
Kiedy potrzebne są układy FPGA
Jak wspomniano powyżej, mikrokontrolery mają pewne ograniczenia i nie mogą być używane do wykonywania zadań równolegle, ponieważ mikrokontroler i mikroprocesory działają na sekwencyjnym wykonywaniu programów, co powoduje, że w niektórych aplikacjach jest nieco powolny, w tym scenariuszu FPGA ma przewagę i może być skutecznie używany. Również mikrokontroler może wykonywać ograniczone zadania, ponieważ zawiera instrukcje i obwody. Programista musi przestrzegać ograniczeń podczas tworzenia kodu. Więc w tym scenariuszu również FPGA mają przewagę.
Jednak w przypadku mikrokontrolerów procesor przełącza się z jednego kodu na inny, aby osiągnąć pewien poziom równoległości. Łatwiej będzie Ci pisać kody na mikrokontrolerach niż na układach FPGA. Zdolność przetwarzania równoległego układów FPGA umożliwia efektywną kontrolę przerwań przy użyciu maszyn skończonych (FSM).
W przypadku mikrokontrolerów należy wziąć pod uwagę czas potrzebny do usunięcia przerwy przez ISR. Możesz łatwo przeprogramować FPGA, po prostu przeprogramowując go. Konfiguracja w układzie FPGA jest ładowana do konfigurowalnych komórek logicznych po włączeniu zasilania.
Nie musisz wprowadzać żadnych zmian w sprzęcie, aby przeprogramować FPGA. Układy FPGA nadają się do szybkiego przetwarzania danych równoległych i charakteryzują się wysokim stopniem dostosowania. Jednak mają również wady związane z działaniem prototypu i złożonością konfiguracji. Zatem układy FPGA można wybierać z tymi zaletami w porównaniu z mikrokontrolerami. Zacznijmy od programowania FPGA i podkreślmy