W 8. części kursu zaprezentowałem symulator EDA Playground. Jest to świetne narzędzie dla początkujących. Wystarczy wejść na stronę www.edaplayground.com, założyć konto i od razu możemy testować nasze kody w przeglądarce internetowej – bez potrzeby instalowania czegokolwiek na naszym komputerze. Symulator ten jest świetny, ale ma pewne wady:
- Wymaga połączenia z internetem.
- Serwer musi działać, a niestety rosnąca popularność symulatora sprawiła, że stał się on ofiarą własnego sukcesu i często serwery są przeciążone.
- Mamy osobne pliki do symulacji w chmurze i osobne pliki do syntezy na komputerze. Zmiany musimy wprowadzać zarówno w chmurze, jak i na komputerze. Łatwo stracić nad tym kontrolę, przez co może okazać się, że pliki do symulacji i syntezy nie będą identyczne.
Trzeci problem staje się tym większy, im bardziej rozbudowany projekt tworzymy. EDA Playground nie obsługuje żadnych narzędzi do zarządzania kodem, takich jak np. Git, więc jedyny sposób na „synchronizację” pomiędzy komputerem a chmurą to ręczne kopiowanie plików.
W tej części poznamy symulator Icarus Verilog. Kod syntezowalny oraz testbench będziemy przechowywać w projekcie Lattice Diamond. Napiszemy także proste skrypty, dzięki którym będziemy uruchamiać symulator jednym kliknięciem. Skonfigurujemy program GTK Wave, który pozwoli nam oglądać i analizować symulowane sygnały.
Instalacja Icarus Verilog
Icarus jest projektem open source i możemy go bezpłatnie stosować bez ograniczeń. Powstał jako hobbystyczny projekt Stephena Williamsa w 2007 roku. Teraz autor wraz z kilkoma innymi osobami ciągle rozwija projekt – już 16 lat.
Strona główna projektu znajduje się pod adresem http://iverilog.icarus.com/ , a różne instrukcje symulatora znajdziemy na stronie https://steveicarus.github.io/iverilog/usage/index.html. Ale jak to w ogóle zainstalować? Autor udostępnia tylko kody źródłowe i instrukcję długą na kilka ekranów, jak sklonować repozytorium kodu i skompilować samemu, wklepując ręcznie litanię magicznych zaklęć w konsoli systemowej. Co gorsza – instrukcja dotyczy tylko systemu Linux.
Na ratunek przychodzi Pablo Bleyer, który na swojej stronie udostępnia normalny windowsowy instalator. Ze strony https://bleyer.org/icarus/ możemy ściągnąć instalator najnowszej wersji. W chwili pisania tego artykułu najnowsza wersja to v12 wydana 11 czerwca 2022 roku. Instalacja jest banalna i nie wymaga komentarza. Oprócz symulatora zostanie zainstalowana także przeglądarka GTKWave, która w postaci graficznej umożliwia analizowanie wyników symulacji. Instalator skonfiguruje system tak, że pliki z rozszerzeniem *.vcd i *.gtkw mają być otwierane przez GTKWave.
Przetestujmy, czy wszystko zainstalowało się poprawnie. Kliknij przycisk Start, a następnie Uruchom i wpisz cmd, aby uruchomić wiersz poleceń. Wpisz polecenie iverilog -v i wciśnij enter. Powinien pokazać się komunikat z numerem wersji oraz informacjami o autorze i licencji (rysunek 1). Jeżeli natomiast pojawi się komunikat, że nie rozpoznano polecenia, sprawdź, czy instalator poprawnie dodał ścieżki do zmiennej środowiskowej Path.
W systemie Windows 11 robi się to następująco. Kliknij przycisk Start i wpisz „zmienne”. Pojawi się opcja Edytuj zmienne środowiskowe systemu, którą wybieramy. Otworzy się okienko, w którym klikamy przycisk Zmienne środowiskowe. Pojawi się okno takie, jakie pokazano w lewej części rysunku 1. Wybieramy z listy zmienną Path, po czym klikamy Edytuj.