Field Programmable Gate Array (FPGA) to układ scalony, który umożliwia klientom lub projektantom rekonfigurację zgodnie z wymaganiami po procesie produkcyjnym. Ta personalizacja zwykle obejmuje wybór i umieszczenie zestawu bramek, przełączników i kanałów routingu. Programowanie różni się w zależności od potrzeb i celów. Może to być jednak pojedyncza, prosta bramka logiczna lub może obejmować wiele złożonych funkcji.
Użytkownicy programują go bezpośrednio przy użyciu języka programowania, takiego jak Verilog lub VHDL, co pozwala na stworzenie niestandardowych funkcji sprzętowych, które będą odpowiadać ich potrzebom.
Warto zauważyć, że FPGA nie jest w rzeczywistości nową technologią, ale raczej kombinacją istniejących technologii, które są obecne od ponad 40 lat. Jeśli kiedykolwiek bawiłeś się płytką Arduino, będziesz miał pewne doświadczenie z technologią FPGA.
Konfigurację układu FPGA można przeprowadzić zdalnie, zazwyczaj po jego zainstalowaniu w aplikacji końcowej.
Ponieważ jest programowalny, umożliwia wykorzystanie tego samego sprzętu do wielu różnych zastosowań. Sprawia również, że urządzenie nadaje się do prototypowania nowych projektów przy niewielkich początkowych kosztach.
Gdzie jest używany?
Jest to forma programowalnej logiki łącząca elastyczność oprogramowania z wydajnością sprzętu specyficznego dla danego zastosowania układu scalonego, czyli ASIC.
Rezultatem jest niezwykle wydajny chip, który można dostosować do konkretnych zastosowań. FPGA znajdują swoje główne zastosowanie w obliczeniach o wysokiej wydajności, takich jak telekomunikacja, wojsko, lotnictwo i finanse. Technologia ta jest również wykorzystywana do wydobywania Bitcoinów i innych kryptowalut.
Podstawową zaletą FPGA w porównaniu z procesorem ogólnego przeznaczenia jest to, że może być bardziej wydajny pod względem zużycia energii, rozmiaru i szybkości. Każdy z tych czynników staje się ważniejszy w miarę wzrostu liczby obliczeń. FPGA jest o wiele bardziej elastyczny niż implementacja ASIC na stałe, co umożliwia zmianę implementacji sprzętowej bez zmiany oprogramowania, które na niej działa.
Układy FPGA są używane w aplikacjach od wydobywania kryptowalut po przetwarzanie dźwięku. Układy FPGA stanowią elastyczną alternatywę dla układów scalonych ASIC (ang. application-specific integrated circuit), które są układami zaprojektowanymi do określonego celu i nie mogą być ponownie wykorzystywane.
W przeszłości układy FPGA były dość drogie dla większości firm. Jednak ostatnie osiągnięcia sprawiły, że stały się one bardziej przystępne cenowo dla wielu firm, co wywołało entuzjazm wśród przedsiębiorców i inżynierów.
FPGA można zaprogramować tak, aby były zupełnie różnymi aplikacjami. Dzisiaj można używać określonej platformy do jednego zadania, a jutro do czegoś zupełnie innego — wszystko bez konieczności zaczynania od nowa.