FPGA: czy warto?

Czas czytania: 3 min.

Dostępnych jest już kilka platform, na których możemy tworzyć własne projekty. Arduino, Raspberry Pi czy STM32 oferują nieco inne możliwości, ale raczej to po nie sięgamy w pierwszej kolejności wybierając sprzęt do realizacji projektu. Czy warto poświęcać czas na kolejny język programowania, który w obiegowej opinii uchodzi za raczej trudny? Albo inwestować w kolejny sprzęt, który jak wiemy do najtańszych nie należy? Czy warto zająć się tematyką FPGA? Odpowiem na te pytania w poniższym artykule.

Moja historia

Osobiście zawsze fascynowała mnie elektronika cyfrowa. Pewnie jak większość zaczynałem od Arduino i mikrokontrolerów AVR, ale jednak czułem, że to nie do końca jest to. Zafascynowany twórczością Bena Eatera postanowiłem zająć się elektroniką cyfrową w najczystszej postaci. Bramki logiczne, dekodery i multipleksery… szybko postanowiłem zaprojektować coś większego. Tak powstał mój pierwszy projekt własnego procesora. Była to 4-bitowa jednostka, która obecnie wydaje mi się bardzo prosta, ale w tamtym czasie byłem z niej bardzo dumny. Prędko nadeszły kolejne projekty, w tym pierwszy układ 8-bitowy, a później jego następca. Wszystko zostało zrealizowane na podstawowych układach logicznych. Jednak w dość krótkim czasie dotarłem pod sufit. Projekty stawały się bardziej zaawansowane, a ich realizacja coraz trudniejsza. Trzeba było iść wyżej.

W tamtym czasie po raz pierwszy zainteresowałem się tematyką FPGA, ale początkowo, po namyśle, zrezygnowałem z tego pomysłu. Układy te wydawały mi się przerostem formy nad treścią, a język VHDL jawił mi się jako zbyt trudny. Wówczas wróciłem do esencji elektroniki cyfrowej, ale krótko później był kolejny zwrot o 180 stopni – postanowiłem dać FPGA szansę.

Poszukując jakichś informacji na ten temat natknąłem się na kurs FPGA dostępny na stronie Forbot. Według mnie jest to świetne źródło informacji na początek. Kupiłem płytkę Elbert v2 i tak zaczęła się moja przygoda z FPGA. Najpierw wszystko szło dość opornie, ale z biegiem czasu zacząłem realizować trudniejsze pomysły. Obecnie jestem autorem bloga na temat FPGA, ponadto wróciłem do projektowania procesorów. Jeden z takich projektów mam już za sobą, a kolejny jest właśnie realizowany.

Czym właściwie jest FPGA i jak się je „programuje”?

Czym właściwie są układy FPGA? Jak podaje Wikipedia – są to programowalne macierze bramek logicznych. Można je określić prościej: jako zbiór bramek logicznych, a połączenia między nimi możemy dowolnie tworzyć. Oczywiście jest to dość uproszczony opis, ale tak się składa, że jakiś czas temu na moim blogu opisałem dokładnie czym są układy FPGA. Zainteresowanych tym tematem zapraszam właśnie tam.

FPGA – Programowanie

Nie bez przyczyny słowo programowanie umieszczałem w cudzysłowie. Poprawnym stwierdzeniem jest, że układy FPGA się konfiguruje, ponieważ nie tworzymy programu, a raczej opis funkcjonowania naszego projektu. Programowanie FPGA nie jest więc do końca poprawną formą.

Projekty zrealizowane na FPGA możemy opisywać w języku VHDL lub Verilog. Osobiście używam VHDL, ponieważ jest on częściej używany w Europie. Język Verilog jest popularniejszy w USA.

Projektując układy zrealizowane za FPGA musimy wybrać również platformę, na której wszystko zrealizujemy. Na rynku dostępne są układy kilku różnych producentów, ale czołowymi są Xilinx oraz Altera (Intel). Osobiście korzystam z układów Xilinxa tylko dlatego, że zaczynałem od płytki wyposażonej w układ tej firmy. Zależnie od wybranego układu musimy wyposażyć się w inne środowisko. Dla Xilinx jest to Xilinx Ise Design Suite, natomiast dla układów firmy Altera (Intel) jest to Altera Quartus. Oba środowiska są darmowe.

Układy FPGA – Od czego zacząć?

Z czystym sumieniem mogę na początek polecić płytkę Elbert v2, od której sam zaczynałem. Posiada ona bardzo dużą zaletę: złącze miniUSB. Dzięki niemu możemy konfigurować układ FPGA bez konieczności zakupu dość drogiego programatora. Poza tym oferuje ona dość ciekawy zestaw elementów peryferyjnych, a są to gniazdo VGA, slot kart microSD, złącze jack, wyświetlacze siedmiosegmentowe, przyciski oraz diody LED.

FPGA – Kurs i nauka

Jeżeli chodzi o środowisko, to tak jak wspominałem wcześniej: jest to Xilinx Ise Design Suite dostępne na stronie producenta za darmo. Sam proces instalacji został doskonale wyjaśniony w kursie Forbota. Polecamy kurs FPGA dla wszystkich użytkowników szukających prostej instrukcji do rozpoczęcia przygody z tymi układami.

FPGA – Zastosowanie w praktyce – Tak więc: czy warto?

Odpowiadając na pytanie ze wstępu: czy warto zająć się tematyką FPGA? Według mnie zdecydowanie tak! Układy tego typu dają olbrzymie możliwości i tak naprawdę ogranicza nas tylko wyobraźnia. Możemy zaprojektować nawet własny procesor. Nie bez przyczyny tam, gdzie mikrokontrolery nie dają sobie rady, angażuje się układ FPGA. Ponadto układy FPGA różnią się od mikrokontrolerów na tyle, aby dać nam zupełnie świeże spojrzenie na elektronikę cyfrową.

Autor: Rafał Bartoszak

Dodaj komentarz