Digilent Cmod S6 – niewielka płytka prototypowa z układem Xilinx Spartan 6
Układy FPGA to bardzo ciekawa konstrukcja stosowana w szerokim zakresie urządzeń elektronicznych. To programowalna matryca bramek, która działa w sposób podobny co cyfrowy programowalny układ scalony. Pozwala to osiągnąć wysoką moc obliczeniową z powodu dość dużych możliwości dotyczących zrównoleglania obliczeń. Są często stosowane w aplikacjach przetwarzania danych, a także lotnictwie czy kosmonautyce. Istnieje również możliwość zaprogramowania FPGA jako mikroprocesor, np. MicroBlaze.
Układy FPGA uważane są za trudniejsze do opanowania od np. mikrokontrolerów. Panuje także przekonanie, że narzędzia deweloperskie są droższe i bardziej skomplikowane, nie zawsze jednak jest to prawdą. W szerokiej ofercie płytek rozwojowych dla FPGA firmy Digilent znajdują się bowiem także niewielkie i niedrogie moduły DIP z serii Cmod. W poniższym artykule przedstawię jeden z nich – Cmod S6 z układem z rodziny Spartan-6 firmy Xilinx.
Układ FPGA Xilinx Spartan-6
Głównym elementem płytki jest układ z rodziny Xilinx Spartan 6, model XC6SLX4-2CPG196. Seria Spartan 6 jest najbardziej podstawową z oferty Xilinx, chociaż oczywiście nadal oferuje dość przyzwoitą moc obliczeniową. Sprawia to, że układy nadają się do nauki projektowania, ale także do implementacji w aplikacjach, które nie wymagają nadzwyczajnej wydajności.
Zastosowany układ XC6SLX4-2CPG196 ma następujące parametry:
- 600 bloków podstawowych („slice” złożony z 4 tablic LUT i 8 przerzutników),
- 8 slice-ów DSP (mnożnik 18×18, akumulator i układ dodający)
- Pamięć RAM 216 kB,
- Dwa układy zarządzania zegarem (CMT)
- 103 wyprowadzenia I/O
Pozostałe elementy płytki
Oprócz układu FPGA, moduł Cmod S6 zawiera m.in. pamięć Quad SPI o pojemności 16 MB. Służy ona do przechowywania konfiguracji układu FPGA, a także danych, z których korzysta projekt.
Do zasilania, komunikacji oraz konfiguracji układu FPGA służy port USB Micro AB. Port jest obsługiwany przez niewielki mikrokontroler ATmega16U2, który ma wbudowaną natywną obsługę USB. Układ pozwala na programowanie układu dzięki implementacji interfejsu ISP, a także na komunikację FPGA z komputerem.
Ciekawym rozwiązaniem jest także generowanie zegarów przez ten właśnie mikrokontroler. Do układu FPGA dostarczany jest sygnał 8 MHz, który może być przetwarzany przez obwody wewnętrzne, co pozwala uzyskać taktowanie nawet do 200 MHz. Drugim sygnałem jest zegar 1 Hz, który można wykorzystać m.in. w projektach wymagających odmierzania czasu.
Do programowania układu można również użyć zewnętrznego programatora. Interfejs ISP wyprowadzono bowiem także na 6-pinowe złącze na skraju płytki. Pozwala to wykorzystać zewnętrzne programatory przeznaczone dla układów Xilinx.
Oczywiście do płytki można podłączyć układy zewnętrzne za pomocą złączy krawędziowych. Po obu stronach modułu znajdują się po 24 wyprowadzenia. Z łącznej liczby 48, aż 46 to porty układu FPGA, które można konfigurować zgodnie z potrzebą, właściwie bez żadnych ograniczeń. Ostatnie dwa piny to masa oraz port zasilania, przyjmujący napięcie z zakresu 5 – 15 V. Zasilanie jest konwertowane na napięcia 3,3 V oraz 1,2 V używane dalej na płytce. Dzięki zainstalowanym diodom Schottky’ego, do płytki można podłączyć jednocześnie zasilanie ze złącza rozszerzeń oraz z portu USB.
Rys. 1. Rozkład wyprowadzeń złącza rozszerzeniowego modułu Digilent Cmod S6
Pozostałe elementy płytki to cztery diody LED oraz dwa przyciski podłączone bezpośrednio do układu FPGA.
Digilent Cmod S6 ma formę modułu DIP, dobrze znanego amatorom m.in. z Arduino Nano. Oznacza to, że płytka jest niewielka (67 x 18 mm), podłużna, a wyprowadzenia są umieszczone w dwóch rzędach na dłuższych bokach modułu. Zaletą tego formatu jest możliwość bezpośredniego wpięcia do płytki stykowej. Stąd można łatwo wyprowadzić porty modułu na zewnątrz, a także podłączyć je do układów zewnętrznych. Proces fizycznego połączenia projektu jest więc identyczny, jak dla większości projektów na Arduino.
Rys. 2. Moduł Digilent Cmod S6 wpięty do płytki stykowej
Oprogramowanie
Do projektowania w układach FPGA Xilinx Spartan-6 służy oprogramowanie ISE Design Suite. Jest to kompletne środowisko służące do konfiguracji układów, projektowania kodu, weryfikacji, symulacji oraz programowania układów. Program dostępny jest w darmowej wersji WebPack oraz w wersjach płatnych. Oprogramowanie służy do obsługi układów z serii Spartan-6, Virtex-6, a także CoolRunner – dla nowszych produktów firma Xilinx poleca środowisko Vivado.
Rys. 3. Ekran startowy ISE Design Suite
Dodatkowo, firma Digilent opracowała narzędzie Adept 2. Rozwiązanie umożliwia m.in. komunikację z płytkami producenta z układami FPGA oraz CPLD. Zapewnia także możliwość konfiguracji i programowania układów. Obsługuje m.in. układy Xilinx z serii Spartan, a także Virtex.
Rys. 4. Ekran startowy Digilent Adept 2
Podsumowanie
Moduł Digilent Cmod S6 to doskonały produkt do rozpoczęcia przygody z układami FPGA. Płytka ma dobrze znaną amatorom formę DIP, co oznacza niewielkie wymiary i kompatybilność z płytką stykową. Układ Spartan-6 ma co prawda podstawowe możliwości, ale dzięki mniej złożonej architekturze jest on łatwiejszy do opanowania przez początkujących. Producent udostępnia w pełni funkcjonalne narzędzia do programowania układu, co zapewnia dostęp do wszystkich możliwości dostarczanych przez płytkę.
Do końca kwietnia w sklepie Kamami.pl można nabyć moduł Digilent Cmod S6 z rabatem -70%