Warsztat

Dostępnych jest już kilka platform, na których możemy tworzyć własne projekty. Ardiuno, Raspberry Pi, STM32, każde z nich oferuję nieco inne możliwości, ale raczej to po nie sięgamy w pierwszej kolejności wybierając sprzęt do realizacji naszego projektu. W taki razie czy warto uczyć się kolejnego języka „programowania”, który to w powszechnej opinii należy do raczej trudnych. Inwestować w kolejny sprzęt, który jak wiemy do najtańszych nie należy. Czy warto zająć się tematyką FPGA? Na to pytanie postaram się odpowiedzieć w tym artykule.

Moja historia

Osobiście zawsze fascynowała mnie w szczególności 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ą między innymi Bena Eatera postanowiłem zająć się elektroniką cyfrową w najczystszej postaci. Bramki logiczne, dekodery, 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. Bardzo szybko przyszły kolejne projekty, pierwszy układ 8-bitowy później jego następca a wszystko zrealizowane na podstawowych układach logicznych. Jednak w dość krótkim czasie dotarłem do przysłowiowego sufitu. Projekty stawały się coraz bardziej zaawansowane a ich realizacja coraz trudniejsza.

Układy scalone FPGA

W tamtym czasie po raz pierwszy zainteresowałem się tematyką FPGA, ale pewnie tak jak większość zrezygnowałem z tego pomysłu. Układy te wydawały mi się przerostem formy nad treścią a język VHDL zbyt trudny. Wówczas wróciłem do esencji elektroniki cyfrowej. Jednak po dość krótkim czasie stwierdziłem, że trzeba wrócić do tematu FPGA.

Poszukując jakichś informacji na ten temat natknąłem się na kurs FPGA dostępny na stronie Forbot. Według mnie świetne źródło informacji na początek. Kupiłem płytkę Elbert v2 i tak zaczęła się moja przygoda z FPGA. Początkowo wszystko szło dość topornie, ale z biegiem czasu zacząłem realizować coraz bardziej zaawansowane projekty. Obecnie jestem autorem bloga właśnie na temat FPGA a 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. Według mnie można to 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.

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.

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ęzyka Verilog popularniejszy jest w Stanach Zjednaczonych.

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.

Od czego zacząć?

Elbert v2

Osobiście na początek mogę polecić płytkę Elbert v2, od której również sam zaczynałem. Według mnie posiada ona jedną 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.

Jeżeli chodzi o środowisko to tak jak wspominałem jest to Xilinx Ise Design Suite dostępne na stronie producenta za darmo. Sam proces instalacji został doskonale wyjaśniony w kursie na Forbot.

Tak więc czy warto?

Odpowiadając na pytanie ze wstępu czy warto zająć się tematyką FPGA według mnie 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. Dodatkowo nie bez przyczyny tam gdzie mikrokontrolery nie dają sobie rady angażuje się 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

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *