MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu (standardowo modelsim.tcl). Zapis ustawień: linia poleceń: write preferences <nazwa_pliku> Aby ustawienia były widziane przy każdym uruchomieniu systemu należy ustawić zmienną systemową MODELSIM_TCL=<path>\modelsim.tcl <path> - ścieżka do pliku modelsim.tcl 2. Zarządzanie projektem Tworzenie nowego projektu: File -> New -> Project... W momencie utworzenia nowego projektu powstaje biblioteka robocza o nazwie nadanej w powyższym oknie (w tym przypadku work). Aby utworzyć nową bibliotekę lub zmienić mapowanie (alias) do istniejącej biblioteki należy skorzystać z poleceń opisanych w pkt.5 niniejszej instrukcji lub w [1]. [!] Polecenie: utwórz nowy projekt o nazwie <nr_indeksu> w katalogu CADHDL na dysku wskazanym przez prowadzącego (jeśli katalog nie istnieje utwórz go); pozostaw domyślna nazwę dla biblioteki roboczej; M.Kropidłowski v.2.0.b 1/8
Po utworzeniu przestrzeni projektu można dodać do niego istniejące modele opisane w języku HDL lub stworzyć nowe elementy projektowe. W tym celu można skorzystać z kreatora, który uruchamia się po utworzeniu projektu (okno poniżej) lub stworzyć nowe źródło poleceniem Project -> Add to Project -> New File... [!] Polecenie: utwórz nowe źródło projektowe o nazwie mux4x1 ; typ źródła VHDL ; pozostaw domyślną lokalizację pliku; Efekt działania każdego polecenia modyfikującego strukturę i stan projektu jest widoczny w oknie Workspace. Na etapie tworzenia projektu okno Workspace posiada dwie zakładki: Project dotyczącą plików źródłowych i ich statusu oraz Library zawierającą dane dotyczące bibliotek widzianych z poziomu projektu. W zakładce Library na obecnym etapie wykonywania projektu powinna być widoczna pusta biblioteka work. M.Kropidłowski v.2.0.b 2/8
Poza tworzeniem nowych modeli do projektu można dodawać istniejące pliki HDL w celu wielokrotnego wykorzystania raz zdefiniowanych jednostek projektowych. Istniejące pliki można dodawać poleceniem Project -> Add to Project -> Existing File... lub z poziomu menu kontekstowego okna Workspace. [!] Polecenie: pobierz z serwera kursu plik gates.vhd i zapisz go w dowolnym katalogu tymczasowym; dodaj ten plik do projektu z opcją Copy to project directory ; typ źródła VHDL ; (Jeśli plik został zapisany w katalogu projektu należy go dodać do projektu z opcją Reference from current location.) Dodany plik może zawierać jeden lub więcej modeli jednostek projektowych. Aby były dostępne w bibliotece roboczej plik należy skompilować przy pomocy polecenia Compile -> Compile Selected (menu lub prawy przycisk myszy). Efekt działania polecenia kompilacji widoczny jest w oknie transkrypcji: # Compile of gates.vhd was successful. M.Kropidłowski v.2.0.b 3/8
Informacje szczegółowe na temat działania polecenia (składnia, numery błędów, itp.) można uzyskać klikając dwukrotnie na komunikat okna transkrypcji. Zakreślona linia w oknie poniżej przedstawia składnię polecenia wywołanego komendą Compile -> Compile Selected. [!] Polecenie: uruchom kompilację pliku gates.vhd ; obserwuj wyniki kompilacji w oknie transkrypcji. Zwróć uwagę na składnię polecenia kompilacji (vcom). Po pomyślnej kompilacji w bibliotece roboczej widoczne są jednostki projektowe zdefiniowane w kompilowanym pliku VHDL. 3. Symulacja Drogą prowadzącą do weryfikacji działania modeli opisanych w językach opisu sprzętu jest ich symulacja. Model VHDL można symulować przy pomocy wymuszeń zdefiniowanych w tzw. testbenchu lub korzystając z polecenia force symulatora ModelSim. Symulator uruchamiany jest poleceniem z menu Simulate - > Start Simulation... M.Kropidłowski v.2.0.b 4/8
Wyniki symulacji mogą być obserwowane w postaci tekstowej (okno transkrypcji) lub graficznej (okno przebiegów czasowych). Aby obserwować przebiegi czasowe należy stworzyć graficzne okno debugowania poleceniem View -> Wave i dodać do niego interesujące nas przebiegi z okna Objects. Należy zaznaczyć żądane sygnały w oknie Objects a następnie uruchomić polecenie Add -> To Wave -> Selected items [!] Polecenie: uruchom symulację dla jednostki projektowej and2 z biblioteki work; wyświetl okno Wave i dodaj do okna wszystkie sygnały z okna Objects ; Do budowania wymuszeń w systemie ModelSim wykorzystywane zostanie polecenie force. Pozwala ono na zdefiniowanie prostych wymuszeń, jednak przy symulacji złożonych układów wydawanie poleceń poprzez interfejs graficzny jest zbyt czasochłonne wykorzystuje się w tym celu skrypty Tcl lub modele wymuszeń zdefiniowane w języku HDL. M.Kropidłowski v.2.0.b 5/8
W interfejsie graficznym symulatora istnieją dwa polecenia do definiowania wymuszeń: Wave -> Force Wave -> Clock [!] Polecenie: zbuduj wymuszenia dla obu wejść bramki and2 ; użyj komendy force dla zbudowania sekwencji: in1 -> 1 20ns, 0 20ns, 1 20ns, 0 20ns in2 -> 1 40ns, 0 40ns Uruchom symulację poleceniem Simulate -> Run -> Run 100 ns; obserwuj wyniki symulacji w oknie Wave ; M.Kropidłowski v.2.0.b 6/8
4. Polecenia w oknie transkrypcji W interfejs programu ModelSim wbudowany jest interpreter poleceń języka skryptowego Tcl. Ułatwia to automatyzację projektowania poprzez skrypty Tcl (makra mają standardowo rozszerzenie.do). Każdą operacje opisaną w punkcie poprzednim można zrealizować wydając polecenie w oknie transkrypcji. Tworzenie nowej biblioteki linia poleceń: vlib <nazwa biblioteki> domyślnie tworzony jest nowy katalog o nazwie biblioteki Mapowanie nazwy logicznej do katalogu biblioteki linia poleceń: vmap <nazwa logiczna> <nazwa biblioteki> podanie tylko nazwy logicznej wyświetla aktualne mapowanie Kompilacja zaznaczonego źródła: Compile -> Compile Selected linia poleceń: vcom work <nazwa biblioteki> 2002 explicit <nazwa pliku> domyślna nazwa biblioteki roboczej = work Załadowanie symulacji: Simulate -> Simulate... linia poleceń: vsim <nazwa biblioteki>.<nazwa entity>(<architektura>) Otwieranie okna sygnałów: View -> Objects linia poleceń: view objects / view signals Otwieranie okna diagramów czasowych: View -> Wave linia poleceń: view wave / view new wave Dodanie wybranego sygnału do okna wyników: Add -> Wave -> Selected Signals linia poleceń: add wave label <etykieta> <nazwa sygnału> Uruchomienie symulacji: Simulate -> Run -> Run-All linia poleceń: run all (wszystkie wydane komendy i komunikaty dotyczące wyników ich działania pojawiają się w oknie transkrypcji; szczegółowy opis komend w pozycji [1]) [!] Polecenie: korzystając tylko z linii poleceń wykonaj następujące operacje: - utwórz bibliotekę gates - skompiluj plik gates.vhd do biblioteki gates - dokonaj mapowania biblioteki gates na nazwę bramki 5. Automatyzacja symulacji W celu automatyzacji działania programu wykorzystywane są pliki skryptowe (makra).do Składają się one z poleceń programu ModelSim [1] i komend języka Tcl. przykład makra dla modelu test.vhd [dostępny na serwerze kursu]: # kompilacja modelu test vcom -work work -2002 explicit./test.vhd # załadowanie modelu do symulatora vsim work.test M.Kropidłowski v.2.0.b 7/8
# wyświetlenie okna sygnałów i wyników symulacji view wave title test view signals # dodanie wszystkich sygnałów do okna wyników add wave * # budowa wymuszeń force a 1 0, 0 {50 ns} -r 100 force b 1 0, 0 {100 ns} -r 200 force c 1 0, 0 {200 ns} -r 400 # uruchomienie symulacji run 800 ns [!] Polecenie: napisz plik makra wykonującego następujące operacje: - kompilacja źródła test.vhd - uruchomienie symulatora dla modelu test - wyświetlenie przebiegów czasowych - budowa wymuszeń i symulacja modelu [1] ModelSim SE Reference Manual, Software Version 6.4a, Mentor Graphics 2008. M.Kropidłowski v.2.0.b 8/8