Brak produktów
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.
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.
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.
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ć.
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.
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.
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.
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.
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.
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 :)