Symulacja układów cyfrowych w środowisku Xilinx ISE
Masz własną stronę WWW (prywatną lub firmową)? Dodaj ją do katalogu stron związanych z elektroniką. Wpis jest całkowicie darmowy!
Projekty tworzone w języku Verilog mogą być bardzo proste (oparte o 1-2 moduły), a do sprawdzenia ich poprawności, najczęściej wystarczy pozytywny wynik kompilacji. W przypadku bardziej złożonych projektów, poprawna składnia nie gwarantuje działania układu zgodnie z oczekiwaniem projektanta. Wymagane są testy oraz weryfikacja projektu.
Pamiętaj: 60-70% czasu przeznaczonego na projektowanie układów cyfrowych, poświęcone jest testowaniu i weryfikacji jego działania.
Testowanie układów opisanych w języku Verilog przeprowadza się za pomocą symulacji na komputerze. W naszym przypadku wykorzystamy darmowe oprogramowanie ISE WebPACK firmy Xilinx dostępne na stronie http://www.xilinx.com/tools/webpack.htm (przed pobraniem wymagana jest rejestracja). Istnieje szereg innych narzędzi służących temu celowi (niejednokrotnie lepszych), jednak są to programy płatne. W każdym bądź razie ISE WebPACK jest narzędziem wystarczającym do nauki i tworzenia średnio skomplikowanych układów.
Jako przykład posłuży nam kod, który został przedstawiony we wpisie Verilog - start w jeden dzień. Warto się z nim zapoznać, aby dobrze zrozumieć zasady symulacji układów opisanych w języku HDL.
Jak uruchomić symulację?
Na początku musimy zainstalować i uruchomić środowisko ISE. Gdy już się z tym uporamy (instalacja niestety trwa dość długo), możemy przystąpić do pracy.
1. Utworzenie nowego projektu
Z menu wybieramy File->New Project…
W okienku, które się otworzy wpisujemy nazwę projektu (Project name), wskazujemy gdzie mają być przechowywane pliki projektu (Project location) oraz wybieramy typ modułu głównego (Top-level source type). Tą ostatnią opcję ustawiamy na HDL, która oznacza język opisu sprzętu.
Po kliknięciu w przycisk Next ujrzymy kolejne okienko, w którym należy wybrać układ FPGA, dla którego przygotowana będzie implementacja projektu. Ustawimy tutaj także preferowane narzędzia do syntezy i symulacji oraz język w jakim opiszemy nasz układ.
Jeśli nasz projekt nie ma jeszcze określonego docelowego układu scalonego, lub tworzymy układ tylko do symulacji i nie wykorzystujemy bloków dostępnych tylko w danej jednostce, to wybór układu FPGA jest właściwie dowolny. Warto jednak wybrać układ o słabszych parametrach, co później pozytywnie przełoży się na czas potrzebny na syntezę projektu. Przykładowe wartości pokazane są na poniższym rysunku.
Gdy wszystkie parametry będą już ustawione klikamy w przycisk Next i przechodzimy do następnego okienka. W tym kroku możemy zdefiniować nowe pliki wchodzące w skład projektu. Można to również uczynić w późniejszym etapie i tak właśnie postąpimy w tym przykładzie.
Kolejne okienko pozwala dodać do projektu pliki już istniejące. W naszym przypadku po prostu klikamy Next.
Ujrzymy podsumowanie. Jeśli coś się nie zgadza możemy wrócić i dokonać stosownych zmian. Gdy klikniemy w przycisk Finish, projekt zostanie utworzony.
2. Dodawanie plików do projektu
Gdy projekt jest już utworzony, możemy dodać do niego potrzebne pliki: opis układu oraz testbench.
Rozpoczynamy klikając w opcję Create New Source w zakładce Processes. W otwartym okienku wybieramy Verilog Module oraz wpisujemy nazwę naszego modułu (File name). Plik z opisem układu nazwiemy leds_effect, natomiast testbench - leds_effect_tb.
W następnym okienku możemy zdefiniować porty dostępne w naszym module. Osobiście jednak nigdy nie korzystam z tego formularza. Uważam, że znacznie wygodniej oraz elastyczniej jest definiować porty ręcznie.
Po kliknięciu w Next ujrzymy krótkie podsumowanie.
Kilkamy Finish i plik zostaje dołączony do projektu. Będzie on zawierał zadeklarowany pusty moduł. My w jego miejsce wkleimy kod z czwartej części kursu języka Verilog.
Analogicznie należy postąpić dla drugiego pliku tj. leds_effect_tb.
3. Symulacja behawioralna
Gdy pliki są już dodane do projektu, możemy rozpocząć symulację. W pierwszym kroku należy zmienić Sources for: Implementation na Sources for: Behavioral Simulation w zakładce Sources.
Gdy już zobaczymy pliki symulacji, musimy zaznaczyć leds_effect_tb w zakładce Sources. Dzięki temu w zakładce Processes pojawią się opcje dostępne dla pliku z testbenchem. Pozwoli to nam uruchomić symulację klikając w opcję Simulate Behavioral Model (dostępna po rozwinięciu Xilnx ISE Simulator).
Efektem uruchomienia powyższej opcji będzie wygenerowanie i rozpoczęcie symulacji, czyli osiągnięcie naszego celu.
Ujrzymy pierwsze 1000ns symulacji. Do wygenerowania następnych danych służy niebieski przycisk play dostępny na górnej listwie z ikonami.
I to by było na tyle. Zachęcam do eksperymentowania z symulatorem i poznania szerzej jego możliwości.















