Lattice Diamond

Lattice Diamond to oprogramowanie, umożliwiające wykorzystanie układów FPGA i CPLD firmy Lattice. Dużym plusem jest łatwość obsługi, różnorodność funkcji oraz to, że jest darmowe dla prostszych układów. Dużym plusem jest to, że Diamond to jednolite oprogramowanie, a nie zbiór programów. W tym artykule zaprezentuję ciekawsze opcje tego środowiska. 

Lattice Diamond logo

HDL Diagram

Długie opisy HDL złożone z wielu plików są nieczytelne. Zdecydowanie przyjemniej ogląda się schematy. Dzięki temu można wyśledzić błędy oraz lepiej zrozumieć funkcjonowanie układu. Program generuje drzewko projektu w postaci bloczków, ilustrujących poszczególne moduły i instancje. Każdy z nich można otworzyć i zobaczyć, co jest w środku.

Diamond

HDL Diagram

IP Express

W IP Express jest dostępna jest biblioteka najczęściej używanych modułów. Utworzenie modułu jest trywialne proste - wystarczy wybrać to co chcemy, podać żądane parametry i kliknąć Generate! Użytkownik ma do dyspozycji bloki zaszyte wewnątrz struktury FPGA, jakie jak pamięci czy PLL (wystarczy podać częstotliwość wejściową i wyjściową, a dzielniki i mnożniki dobiorą się same) oraz jest cała masa mniej typowych bloków funkcyjnych. Jeśli wbudowana biblioteka nie wystarcza, można ściągnąć dodatkowe, a wśród nich są filtry cyfrowe, kontrolery pamięci i inne cuda.

IP Extpress

IP Core FPGA

Aldec Active HDL

Symulator to rzecz niezbędna przy pracy z układami FPGA. Active HDL można uruchomić bardzo szybko dzięki kreatorowi symulacji, a jeśli popełnimy jakiś błąd pisząc testbench lub będziemy chcieli coś zmienić - wystarczy kilka kliknięć i po chwili otrzymamy kolejne wykresy oraz podgląd pamięci. Opcji jest sporo i w symulatorze można trochę się pogubić.

Aldec Active HDL

Reveal Inserter & Reveal Analyzer

Symulacja jest przydatna, jednak pamiętać trzeba, że to tylko wynik obliczeń na podstawie jakichś danych i nic więcej. Aby zobaczyć, co rzeczywiście dzieje się w układzie scalonym, należy posłużyć się narzędziem Reveal. Składa się z dwóch części: Inserter i Analyzer. Pierwsze z nich tworzy coś w rodzaju analizatora szytego na miarę naszych potrzeb. Definiujemy w nim sygnały wyzwalające, zegar próbkowania, pamięci przechowujące próbki, po czym uzyskujemy moduł, który należy zsyntezować razem z naszym projektem i wgrać do FPGA. Następnie uruchamiamy Reveal Analyzer. Program łączy się z analizatorem w FPGA przez ten sam JTAG, jaki wykorzystujemy do programowania pamięci i od razu jest gotowy do działania. Po wykryciu sygnału wyzwalającego (trigger), zarejestrowane przebiegi są automatycznie przesyłane do komputera i wyświetlane na ekranie.

Lattice Reveal Inserter

Lattice Reveal Analyzer

Lattice FPGA

Spreadsheet

Narzędzie Spreadsheet umożliwia wygodną konfigurację pinów i automatyczne tworzenie pliku LPF. Mamy na ekranie całą tablicę opcji i wystarczy tylko wybrać to, co chcemy. Uwaga! To FPGA, a nie AVR, więc układy IO są daleeeeeeece bardziej rozbudowane! Oprócz tego w Spreadsheet ustawimy także parametry sygnałów zegarowych, dopuszczalne opóźnienia, timingi oraz konfigurację całego układu FPGA.

Spreasheet

Floorplan View & Physical View

Te narzędzia umożliwiają zaglądanie do wnętrza FPGA i wyświetlenie przytłaczającej plątaniny połączeń, jaka w środku się znajduje. Aby łatwiej było się w tym połapać, można podzielić ekran i po jednej stronie oglądać Floorplan View, a po drugiej Physical View. Bardziej użyteczne jednak są tekstowe informacje na temat zużytych zasobów.

Floorplan

MicoSystem

Zastanawiałeś się kiedyś, jak zrobić własny procesor? Ściągnij Lattice Mico System Builder. Jest do dyspozycji rdzeń 8 lub 32-bitowy. Do niego dodaje się peryferia zgodnie z własnymi potrzebami. Jest całkiem sporo gotowców, które można dodawać w dowolnej ilości, na przykład 10 układów UART. Dlaczego nie? Do dyspozycji jest również kompilator języka C.

Lattice Mico System

Programmer

Jest to rzecz prosta i oczywista. Oprócz wrzucania wsadu do pamięci RAM lub FLASH wbudowanej w FPGA, można również programować pamięci zewnętrzne równoległe, SPI czy I2C. Ciekawostką o której warto wiedzieć to Background Mode - FPGA podczas pracy wykorzystuje pamięć RAM, ale można równolegle wgrać nowy wsad do FLASH, bez zatrzymywania wykonywania starego programu. Nowy program zostanie uruchomiony po zresetowaniu układu.

Programmer

Skąd ściągnąć Lattice Diamond?

Wejdź na stronę http://www.latticesemi.com/products/designsoftware/diamond/index.cfm i pobierz wersję właściwą dla Twojego komputera. Jest przy tym trochę klikaniny, bo trzeba sobie założyć konto i wygenerować licencję, ale wystarczy czytać wskazówki, a wszystko będzie jasne!

W następnych odcinkach pokażę, od czego zacząć i jak wykorzystać różne narzędzia. Zapraszam do odwiedzania mojej strony :)