Utworzenie projektu
Zacznijmy od uruchomienia Lattice Diamond i utworzenia nowego, pustego projektu. Po otwarciu programu Diamond pokazuje nam się strona startowa Start Page, gdzie umieszczone są linki do różnych instrukcji. Na środku ekranu widoczne są przyciski Open, New i lista ostatnio otwieranych projektów. Klikamy przycisk New. Uruchamia się kreator tworzenia nowego projektu. Klikamy Next. Następnie musimy podać nazwę projektu oraz wskazać folder na dysku, w którym będzie on umieszczony. Proponuję projekt nazwać HelloWorld i umieścić go w katalogu o takiej samej nazwie.
Następnie musimy podać nazwę implementacji. Implementacje to wersje projektu, różniące się na przykład kodem źródłowym, ustawieniami syntezy, optymalizacji i innymi parametrami. Różne implementacje mogą wykorzystywać te same pliki lub każda implementacja może mieć swoje własne pliki źródłowe. Do tego tematu wrócimy za jakiś czas, a na potrzeby naszego pierwszego projektu zostawmy domyślną nazwę impl1. Klikamy Next.
W kolejnym kroku mamy możliwość dodania do projektu istniejących już plików. Możemy w tym momencie dodać utworzone wcześniej moduły. W zależności, od tego czy zaznaczona jest opcja Copy source to implementation directory, możemy te pliki źródłowe używać globalnie i dzielić je pomiędzy różnymi projektami lub możemy utworzyć ich kopie i zapisać w katalogu projektu. Nie dodajemy żadnych plików i klikamy Next.
Kreator pyta nas, jaki układ FPGA chcemy zastosować. W moim przykładzie będę pracował z układem LCMXO2-1200HC-4TG100C. Czytelnik może wybrać inny układ, w zależności od używanej płytki deweloperskiej. Po prawej stronie okna wyświetla nam się skrócona specyfikacja wybranego układu oraz informacje o peryferiach, jakimi on dysponuje. W dolnej części możemy dodać układ ASC – jest to programowalny manager zasilania. Umożliwia sterowanie źródłami napięć zasilających, monitorowanie prądów, temperatury, itp. W naszym projekcie nie będziemy stosować tych układów, więc w polu External ASC Number wpisujemy liczbę 0. Klikamy Next.
Kolejnym krokiem jest wybór syntezatora. W podstawowej wersji Lattice Diamond umożliwia zastosowanie dwóch:
- Lattice LSE – syntezator opracowany przez firmę Lattice. Działa szybko i jest dobrze zintegrowany ze środowiskiem Diamond. Jego wadą jest brak obsługi języka SystemVerilog.
- Synplify Pro – czas syntezy nawet prostego projektu jest wielokrotnie dłuższy niż w przypadku Lattice LSE, jednak umożliwia uzyskanie bitstreamu zajmującego mniej zasobów logicznych. Obsługuje SystemVerilog. Wadą jest generowanie większej liczby ostrzeżeń dotyczących braku zdefiniowania wielu różnych parametrów, co dla początkujących może być irytujące.
Wybieramy Lattice LSE i klikamy Next. Pojawia się podsumowanie wszystkich wybranych opcji. Klikamy Finish.