Alchitry – rodzina zestawów rozwojowych z układami FPGA
Firma Alchitry wprowadziła na rynek nową serię płytek ewaluacyjnych wyposażoną w układy programowalne FPGA. Jest to część projektu mającego na celu dostarczenie niezbędnych narzędzi do nauki dla początkujących – od tanich zestawów poprzez liczne pomoce naukowe i zintegrowane środowisko pracy. Początki projektu były związane z kampanią na portalu Kickstarter, która rozpoczęła się w roku 2013. Natomiast obecnie płytki są produkowane i dystrybuowane przez firmę Sparkfun.
Układy FPGA to układy składające się z olbrzymiej liczby komórek logicznych. Funkcję i działanie układu ustawia się programując połączenia między komórkami. Pozwala to zapewnić funkcjonalność analogiczną do specjalizowanych układów scalonych typu ASIC, ale proces produkcji układu spełniającego daną funkcję jest o wiele prostszy i tańszy. Dodatkowo układ FPGA oferuje możliwość wielokrotnego programowania. Układ sprawdza się szczególnie w aplikacjach przetwarzania sygnałów, nawet przy bardzo skomplikowanych obliczeniach, dzięki szerokim możliwościom zrównoleglania wykonywanych operacji. Drugą ważnym obszarem zastosowań układów FPGA jest prototypowanie specjalizowanych układów scalonych. Programowanie układów odbywa się za pomocą języków opisu sprzętu, takich jak VHDL oraz Verilog.
W rodzinie Alchitry można znaleźć zarówno płytki bazowe, zawierające układy FPGA, jak i płytki rozszerzeniowe. Te ostatnie mają na celu rozszerzenie możliwości w stosunku do podstawowych właściwości płytki bazowej. Płytki rozwojowe dostępne są w dwóch wersjach z dwoma różnymi układami FPGA.
Alchitry Au z układem Xilinx Artix-7
Zestaw Alchitry Au wyposażono w potężny układ Xilinx Artix-7 XC7A35T-1C. Układ dysponuje ponad 33 tysiącami komórek logicznych. Płytka zawiera także pamięć RAM DDR3 o pojemności 256 MB, a także pamięć QuadSPI Flash o pojemności 32 Mbit. Oferuje aż 102 dostępne wyprowadzenia wejścia/wyjścia o poziomie logicznym 3,3 V, z czego 20 z nich można przełączyć na poziom logiczny 1,8 V. Dodatkowo zestaw oferuje 9 różnicowych wejść analogowych, z czego jedno jest dedykowane, a pozostałych osiem współdzielone z pinami cyfrowymi.
Rys. 1. Płytka Alchitry Au z układem Xilinx Artix-7
Zestaw zawiera także wbudowany zegar o częstotliwości do 100 MHz, który można konfigurować z poziomu układu FPGA. Oferuje także złącze USB-C, za pomocą którego można zarówno dostarczyć zasilanie, skonfigurować układ, a także przesyłać dane. Płytka zawiera też złącze w standardzie Qwiic wspieranym przez Sparkfun. Złącze umożliwia podłączenie do układu FPGA modułów rozszerzających takich jak czujniki czy wyświetlacze. Na płytce zamontowano również złącza o rastrze 0,5 mm z wyprowadzeniami układu FPGA umożliwiające podłączenie płytek rozszerzeniowych m.in. z oferty Alchitry. Ostatnimi ważnymi elementami płytki jest 8 diod LED ogólnego przeznaczenia oraz przycisk, który zazwyczaj jest używany jako reset.
Alchitry Cu z układem Lattice iCE40 HX
Drugą płytką bazową z oferty Alchitry jest zestaw Cu wyposażony w układ iCE40 HX8K z oferty firmy Lattice Semiconductor. Jest to układ bardziej budżetowy niż w poprzednim zestawie – liczba komórek logicznych wynosi tu jedynie 7680. Również liczba wyprowadzeń cyfrowych oferowanych przez zestaw jest niższa i wynosi 79.
Rys. 2. Płytka Alchitry Cu wyposażona w układ FPGA Lattice iCE40 HX
Oprócz innego układu FPGA reszta płytki jest wyposażona bardzo podobnie. Alchitry Cu zawiera więc złącze USB-C, które można wykorzystać w celu programowania układu, zasilania oraz komunikacji. Ponadto, podobnie jak w przypadku Alchitry Au, tutaj również zastosowano 8 diod LED, jeden przycisk, wbudowany zegar 100 MHz sterowany z układu FPGA, złącza Qwiic oraz złącza board-to-board do podłączania płytek rozszerzeniowych. Na płytce zamontowano również układ pamięci QSPI Flash o pojemności 32 MBit.
Obie płytki charakteryzują się takimi samymi, niewielkimi wymiarami wynoszącymi 65 x 45 mm.
Płytki rozszerzeniowe Alchitry Io oraz Br
W ofercie Alchitry można także znaleźć płytki rozszerzeniowe przeznaczone dla zestawów Alchitry Au i Cu, wpinane do zestawów za pomocą złączy board-to-board. Pierwszą z nich jest Alchitry Io, która dysponuje zestawem podstawowych elementów cyfrowych. Na płytce znajdziemy więc 24 diody LED, 24 przełączniki typu DIP, 5 przycisków, a także 4 cyfry w formie 7-segmentowego wyświetlacza LED. Płytka rozszerzeniowa z pewnością urozmaici naukę obsługi wejść i wyjść cyfrowych w układzie FPGA oraz implementacji prostej logiki.
Rys. 3. Płytka rozszerzeniowa Alchitry Io
Następną płytką w ofercie jest Alchitry Br. Również ten produkt można połączyć z płytką bazową za pomocą złączy board-to-board. Jednak Alchitry Br to płytka prototypowa o rastrze 2,54 mm, która umożliwia budowę własnych układów na jej powierzchni. Pozwala też na przylutowanie i wyprowadzenie przewodów np. na płytkę stykową lub do zewnętrznych komponentów. Dodatkowo, płytka zawiera złącza board-to-board zarówno męskie jak i żeńskie, co pozwala zastosować ją jako płytkę przelotową – na jej szczycie można umieścić kolejną płytkę rozszerzeniową.
Rys. 4. Płytka rozszerzeniowa Alchitry Br
W ofercie dostępny jest także zestaw Alchitry Au FPGA Kit składający się z produktów Alchitry Au, Alchitry Br oraz Alchitry Io, a także zestaw złączy żeńskich umożliwiający łatwiejszy montaż elementów na płytce prototypowej.
Rys. 5. Zestaw Alchitry Au FPGA Kit
Programowanie układów FPGA na zestawach rozwojowych
Zestawy współpracują z oprogramowaniem Alchitry Labs, a także Alchitry Loader. Pierwszy to prosty edytor kodu wspierający języki Verilog oraz Lucid. Jest on polecany dla mniej zaawansowanych użytkowników, gdyż pomaga znacząco uprościć proces projektowania. Oprócz środowiska należy też zainstalować pakiet narzędzi do układów FPGA przygotowanych przez producenta, tj. Xilinx Vivado (darmowy w wersji WebPack) dla płytki Alchitry Au lub iCEcube2 dla płytki Alchitry Cu. To oprogramowanie ma za zadanie konwersję kodu programu na plik konfiguracyjny układu programowalnego. Jego instalacja jest niezbędna, aby można było zaprogramować odpowiednią płytkę.
Rys. 6. Środowisko Alchitry Labs
Jak wspomniano Alchitry Labs wspiera programowanie układów w językach Verilog i Lucid. Verilog jest językiem opisu sprzętu powszechnie stosowanym w programowaniu układów FPGA, zarówno przez początkujących, do podstawowych projektów, jak i w profesjonalnych, zaawansowanych zastosowaniach. Natomiast Lucid jest językiem specjalnie opracowanym przez specjalistów z Alchitry w celu uproszczenia projektowania w FPGA. Jest on oparty na Verilogu, ale pozwala na redukcję długości kodu i likwiduje część pułapek Veriloga, w które łatwo wpadają początkujący. Jest on więc szczególnie polecany początkującym projektantom do nauki.
Narzędzia producentów układów FPGA
Drugim podejściem do projektowania na płytkach Alchitry jest wykorzystanie natywnych narzędzi do projektowania w układach, tj. środowiska Xilinx Vivado lub Lattice iCEcube2. Oba to potężne środowiska do tworzenia projektów w układach programowalnych i dysponują szerokimi możliwościami, w tym obsługą języka VHDL, bloków IP przygotowanych przez producenta, narzędzi do konfiguracji układu oraz wieloma innymi możliwościami pozwalającymi na dokładniejszą kontrolę zachowania układu FPGA. Do wgrywania pliku konfiguracyjnego na układ służy wtedy narzędzie Alchitry Loader dostarczane z Alchitry Labs.
Rys. 7. Tworzenie projektu w środowisku Xilinx Vivado
Oba podejścia można porównać do programowania mikrokontrolerów w Arduino oraz w dedykowanych środowiskach takich jak STM32Cube lub MPLAB X. Pierwsza opcja pozwala na szybkie i łatwe tworzenie programów i jest bardzo popularna wśród hobbystów i początkujących. Natomiast projektowanie w środowiskach dedykowanych jest bardziej skomplikowane i wymaga większej wiedzy i doświadczenia. W zamian jednak otrzymujemy większe możliwości projektowania i kontroli zachowania układu.
Firma Alchitry przygotowała również szereg tutoriali i szkoleń dotyczących zarówno układów FPGA, języków programowania i poszczególnych środowisk projektowych, jak i podstaw elektroniki cyfrowej. Można się z nimi zapoznać na stronie: https://alchitry.com/blogs/tutorials
Podsumowanie
Zestawy rozwojowe Alchitry FPGA wydają się dość ciekawą opcją do rozwoju projektów z układami FPGA. Dwie płytki bazowe charakteryzują się prostą konstrukcją oraz umożliwiają pracę zarówno z małym układem Lattice, jak i z dość zaawansowanym układem Xilinx Artix. Płytki rozszerzeniowe umożliwiają natomiast przetestowanie podstawowych możliwości płytki oraz budowę własnych układów, które mogą współpracować z FPGA. Alchitry nie zapomina też o materiałach edukacyjnych oraz o prostym środowisku projektowym, które pozwala na zapoznanie się z programowaniem FPGA również mniej doświadczonym użytkownikom. Zestawy są też stosunkowo tanie jak na ten rynek, co również przypadnie do gustu początkującym ze względu na niższy koszt startowy. Płytki Alchitry są więc produktem, który może być pierwszym krokiem dla rozpoczynających przygodę z układami FPGA.
Płytki Alchitry są dostępne w sklepie internetowym Kamami.pl