Czas czytania: 4 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ę.

Kurs FPGA

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.

Programowanie FPGA

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. Wiele osób ceni sobie tworzenie w języku VHDL. Kurs specjalistyczny powinien pomóc w opanowaniu tej umiejętności.

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ą. Układy FPGA zastosowanie znajdą w wielu dziedzinach elektroniki. Wszystko zależy od Ciebie!

Autor: Rafał Bartoszak

Układy FPGA – FAQ

Co to jest FPGA? Z definicji encyklopedycznej dowiemy się, że FPGA to programowalne macierze tak zwanych bramek logicznych. Prościej rzecz ujmując FPGA jest zbiorem bramek logicznych między którymi możemy tworzyć praktycznie dowolne połączenia. Układy FPGA wyróżniają się wysokim poziomem skomplikowania, a co za tym idzie szerokimi możliwościami wykorzystania. Połączenie tych cech sprawia, że są określane jako najbardziej wszechstronne ze wszystkich układów należących do grupy PLD.

Zastosowanie układów FPGA w elektronice jest niezwykle szerokie. Dzięki nim można np. implementować większą liczbę układów logicznych zastosowanych w jednym układzie. W praktyce oznacza to nie tylko oszczędność miejsca na płytce PCB, ale również zmniejszenie zapotrzebowania na energię elektryczną. Układy pozwalają na zaprojektowanie np. własnego procesora. Wybrane płytki rozwojowe są wyposażone w interfejsy komunikacyjne, np. w postaci złącz miniUSB, które umożliwiają programowanie, a dokładniej konfigurowanie układów FPGA. Warto również zaznaczyć, że układy FPGA są niekiedy mylone z mikrokontrolerami. Jest to oczywisty błąd, ponieważ zdecydowanie różnią się od nich.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.4 / 5. Liczba głosów: 19

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Grzegorz Galuba

Grzegorz Galuba

GG nie ma czasu na gadu-gadu - jest zawsze na bieżąco z nowościami z oferty, wybiera tylko najlepsze i dba, aby pojawiały się na czas. Jego rozległa wiedza o specyfikacjach technicznych produktów to nieocenione wsparcie dla całej ekipy. Do pracy przyjeżdża rowerem i już najwyższa pora, aby wszyscy zaczęli brać z niego przykład. Oaza spokoju.

Zobacz więcej:

2 Responses

  1. Fajnie by było, gdyby linki do stron zewnętrznych działały.
    “… jakiś czas temu na moim blogu opisałem dokładnie czym są układy FPGA” -> wchodzę i czytam, cytuję:
    “Niczego tu nie ma.”

    1. To dość wiekowy artykuł, a nasz link checker nie mógł tego wykryć – strona koniec końców działa, choć owszem, jest pusta. Dziękujemy za sygnał i skontaktujemy się z autorem (nie redaktorem) wpisu 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce prywatności i Warunkom użytkowania.