Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE ES1C420 300 Ćwiczenie Nr 2 KOMPILACJA I SYMULACJA PROJEKTU W SYSTEMIE CAD Opracował: dr inż. Walenty Owieczko BIAŁYSTOK 2014
Spis treści instrukcji: 1. Cel ćwiczenia... 2 2. Informacje wstępne 2 3. Symulacja czasowa i funkcjonalna. 3 4. Etapy tworzenia wektorów testowych symulatora.. 4 5. Symulator-analizator czasowy 7 6. Czynności przygotowawcze... 8 7. Przebieg ćwiczenia 8 8. Sprawozdanie i forma zaliczenia ćwiczenia... 9 9. Literatura.. 9 1. CEL ĆWICZENIA Zapoznanie się z kolejnymi etapami realizacji projektu kompilacją i symulacją projektu, sposobem tworzenia wymuszeń do symulacji, symboli bibliotecznych własnych specjalizowanych funkcji oraz pracą symulatora-analizatora czasowego. 2. INFORMACJE WSTĘPNE Kompilacja projektu Kompilator (Compiler) - składa się z modułów i aplikacji umożliwiających: sprawdzenie poprawności, syntezę logiczną, generowanie zbiorów wejściowych do symulacji, analizy czasowej oraz fizycznego zaprogramowania układów. Program wykonuje się automatycznie z możliwością sterowania przebiegiem kompilacji. Wybór w menu jednej z opcji konfiguracyjnych kompilatora, np. Assign>Global Project Logic Synthesis umożliwia określenie szybkości pracy, wykorzystanie zasobów i in. Kontrolę poprawności projektu pod względem zgodności z zasobami i możliwościami funkcjonalnymi układu zapewnia narzędzie diagnostyczne Design Doctor: menu Processing>Design Doctor (włączenie/wyłączenie), zaś konfigurację Design Doctor Setting. Kompilator można uruchomić z poziomu menu głównego MAX+Plus II >Compiler przycisk Start, z paska narzędzi File>Project> Save&Compile lub ikoną na pasku zadań. 2
Rys. 1. Widok okna programu Compiler. W przypadku wykrycia błędów w opisie projektu, proces kompilacji zostaje przerwany i wyświetlany jest komunikat o liczbie błędów oraz opis każdego z nich w oknie informacyjnym. Pełna interpretacja określonego błędu jest możliwa poprzez wskazanie go w oknie informacyjnym, a następnie uruchomienie komentarza funkcją Help on Message. Edytor symboli (Symbol Editor) pomocniczy program graficzny do tworzenia i edytowania symboli bloków specjalizowanych funkcji użytkownika. Poprawnie skompilowany projekt lub jego fragment może stanowić element biblioteczny użytkownika, któremu przypisano symbol graficzny. Utworzenie symbolu graficznego wykonuje się poprzez uruchomienie z poziomu schematu funkcji: File > Create Default Symbol. Nowy symbol elementu jest dostępny w bieżącym katalogu projektu. Edycji symbolu dowolnego elementu można dokonać również z poziomu edytora symboli funkcją: File > New... > Symbol Editor file > OK. Uwaga! Symbole graficzne tworzone przez projektanta system domyślnie umieszcza w katalogu głównym C\\max2work\. 3. SYMULACJA CZASOWA I FUNKCJONALNA Symulacja czasowa rozpoczyna się od skompilowania projektu z uaktywnioną w menu Processing opcją Timing SNF Extractor. Kompilator tworzy zbiór typu timing SNF (Timing Simulator Netlist File) zawierający dane o czasach propagacji sygnałów. Symulator przeprowadza na tej podstawie pełną syntezę i optymalizację projektu, a następnie tworzy czasowy zbiór (.snf). Symulacja czasowa dotyczy całego projektu i pozwala wykryć błędy, wywołane zjawiskami czasowymi typu hazard, wyścigi itp. 3
Rys. 2. Widok okna kompilatora z uaktywniona opcją symulatora czasowego. Symulacja funkcjonalna kompilator tworzy zbiór typu functional SNF (Simulator Netlist File), na podstawie którego symulator przeprowadza syntezę logiczną projektu. Wyniki symulacji funkcjonalnej mogą wskazywać na prawidłowe (bądź nie prawidłowe) działanie układu. Czynnością poprzedzającą symulację (czasową, funkcjonalną lub kompleksową Linked Multi-Project Simulation) dla projektu wieloukładowego jest kompilacja projektu w celu utworzenia zbioru Simulator Netlist File (.snf) 4. ETAPY TWORZENIA WEKTORÓW TESTOWYCH SYMULATORA Przed uruchomieniem symulatora czasowego lub funkcjonalnego należy przygotować wektor wymuszeń czasowych. Etapy tworzenia wymuszeń: Uruchamiamy edytor przebiegów czasowych - menu File>New zaznaczając opcję Waveform Editor file lub z poziomu menu głównego MAX+Plus II > Waveform Editor. Wywołujemy okno dialogowe z nazwami sygnałów do wstawienia - lewym przyciskiem myszy wskazujemy miejsce wstawienia, zaś prawym wywołujemy menu kontekstowe z opcją Insert Node Dokonujemy wyboru przebiegów do symulacji - prawym przyciskiem myszy wywołujemy menu kontekstowe i opcją Insert Node wywołujemy okno dialogowe z nazwami sygnałów do wstawienia na planszę edytora przebiegów. 4
Inny sposób korzystając z opcji Enter Nodes from SNF w menu kontekstowym pliku *.snf wygenerowanego podczas kompilacji. Rys. 3. Menu edytora wymuszeń w trybie Enter Nodes from SNF. Po umieszczeniu wskaźnika myszy w polu listy portów (pod napisem Name:) z menu podręcznego należy wybrać funkcje: Insert Node... lub Enter Nodes from SNF... w celu wprowadzenia w pole listy portów symboli tych portów, które podlegają symulacji. W przypadku trybu Enter Nodes from SNF przy pomocy opcji List wprowadza się wszystkie nazwy portów w pole Available Nodes & Groups a następnie przy pomocy kluczy => i <= przenosi/kasuje wybrane elementy w obszar pola Selected Nodes & Groups, zatwierdzając wybraną listę OK. Uwaga! Otwarty w oknie edytora przebiegów plik o nazwie untitled.scf zapisujemy na pod nazwą identyczną z nazwą projektu (np.: l_nkb1.scf, rys. 4). Rys. 4. Widok okna edytora wymuszeń 5
Przed definiowaniem wymuszeń należy ustawić parametry czasowe symulacji: czas końcowy symulacji: File > End Time > wartoś_czasu > OK, krok symulacji (gęstość siatki): Options > Grid Size... > wartość kroku > OK. Rys. 4. Widok okna edytora wymuszeń oraz uruchomienia symulatora czasowego. Proces symulacji uruchamia się z managera poleceniem: MAX+plusII > Simulator > Start lub ikoną z górnego paska narzędzi. Po zakończeniu symulacji wyniki wyświetlane są funkcją Open SCF. Przykład okna edytora wymuszeń po wprowadzeniu portów przedstawiono na poniższym rysunku. Rys. 5. Okno edytora po wprowadzeniu symboli portów. 6
5. SYMULATOR-ANALIZATOR CZASOWY Timing analyzer (analizator czasowy) program, który w oparciu o modele czasowe układów obsługiwanych przez kompilator, określa czasy propagacji sygnałów na drodze pomiędzy wybranymi węzłami oraz wyznacza maksymalną częstotliwość taktowania. Simulator (symulator) program do testowania funkcji i zachowania się w czasie, przed zaprogramowaniem projektowanego układu w strukturze programowalnej. Symulator uruchamia się z managera: MAX+plusII > Timing Analyzer > Start lub ikoną na pasku zadań. Funkcje programu Timing Analyzer: Delay Matrix - przedstawia tablicę czasów opóźnień poszczególnych sygnałów w torach we - wy i opóźnienia między nimi (dla UK). Setup/Hold - przedstawia tablicę czasów ustalenia i podtrzymania sygnału w blokach z rejestrami, Registered Performance - określa maksymalną częstotliwość taktowania od wybranego wejścia. Okno wyniku symulacji opóźnień dla projektu l_nkb1 przedstawiono na rysunku 6. Rys. 6. Wyniki symulacji opóźnień projektu l_nkb1 W ćwiczeniu wykorzystuje się funkcje edytora przebiegów, kompilatora oraz symulatoraanalizatora czasowego do analizy pracy projektowanego układu. 7
6. CZYNNOŚCI PRZYGOTOWAWCZE Przed przystąpieniem do wykonania ćwiczenia, student powinien: - szczegółowo zapoznać się z instrukcją, - zapoznać się z wykorzystywanymi w ćwiczeniu aplikacjami systemu MAX+Plus II. - powtórzyć teorię układów logicznych, w szczególności metody opisu i realizacji układów jedno- i wielowyjściowych, - przedstawić rozwiązanie zadań podanych przez prowadzącego 7. PRZEBIEG ĆWICZENIA I. EDYCJA PROJEKTU Poleceniem MAX+Plus II>... Editor, które otwiera zbiór Untitled1 lub File>New okno z możliwością wyboru zbioru, np.:.gdf,.sch, uruchamia się wybrany edytor projektowy. Poleceniem File>Save zapisujemy edytowany plik na dysku, nie zmieniając jego domyślnej nazwy (identycznej z nazwą projektu, uzupełnioną o rozszerzenie). Ikoną na pasku zadań dokonujemy zmiany nazwy bieżącego projektu na nazwę edytowanego pliku (w przypadku, gdy są różne). Uwaga! Kompilowane są pliki położone najwyżej w hierarchii, nie zaś aktualnie edytowane. Tworzymy symbol graficzny (biblioteczny) odpowiadający opisowi tekstowemu polecenie File>Create Default Symbol. Edycja symbolu (np.: rozmieszczenie nazw i wyprowadzeń): menu File>Edit Symbol. Uwaga! 1. Podczas zapamiętywania układu po raz pierwszy <Save As> program automatycznie generuje symbol układu oraz zbiór włączalny. Operacja ta odpowiada instrukcjom: Create Default Symbol i Create Default Include File z menu File. W celu zamiany lub modyfikacji symbolu automatycznego korzystamy z edytora symboli. 2. Przed utworzeniem symbolu bibliotecznego zaleca się przeprowadzenie symulacji funkcjonalnej okno managera MAX+Plus II>Compiler przycisk Start, zaznaczając opcję Functional SNF Extractor w menu Processing. II. KOMPILACJA PROJEKTU Uruchomienie kompilatora menu MAX+Plus II>Compiler przycisk Start lub z paska narzędzi File>Project> Save&Compile. 8
Zaznaczając opcję Functional SNF Extractor w menu Processing uruchamiamy wstępną (funkcjonalną) kompilację, zaś opcją Timing SNF Extractor kompilację pełną, uwzględniającą opóźnienia czasowe (niezbędna przy implementacji projektu w układzie programowalnym). Przy tym generowane są pliki do symulacji czasowej, dla programatora oraz plik dokumentacyjny. Rozpoczęcie kompilacji włączenie przycisku Start w oknie kompilatora. Okno Message Compiler wyświetla komunikat o przebiegu kompilacji. III. ETAPY TWORZENIA WYMUSZEŃ DO SYMULACJI Uruchamiamy edytor przebiegów czasowych - okno managera MAX+Plus II> Waveform Editor lub menu File>New, opcja Waveform Editor file w oknie dialogowym, Ustalamy rozdzielczość edycji przebiegów w funkcji czasu Options>Grid Size oraz całkowity czas symulacji File>End Time, Dokonujemy wyboru sygnałów wymuszających, Rysujemy przebiegi sygnałów wymuszających, korzystając z zestawu specjalnych narzędzi funkcji wywołanych ikonami paska narzędziowego w lewej części okna lub z poziomu menu: opcje Edit>Overwrite. Otwarty w oknie edytora przebiegów plik o nazwie untitled.scf zapisujemy na dysku pod nazwą identyczną z nazwą projektu. 8. SPRAWOZDANIE I FORMA ZALICZENIA ĆWICZENIA Ocenie podlegają czynności zarówno etapu przygotowawczego jak i realizacyjnego. Warunkiem zaliczenia ćwiczenia jest poprawny przebieg procesu edycji, kompilacji oraz edycji wymuszeń do symulacji projektu. Ponadto wymagane jest przedstawienie protokołu oraz wykazanie się niezbędną wiedzą z zakresu wykonywanego ćwiczenia. Protokół powinien zawierać: temat i cel ćwiczenia, treść wykonywanych zadań projektowych, kolejne etapy syntezy, schematy projektowanych układów, wyniki badań symulacyjnych projektów, interpretację wyników i wnioski końcowe. 9. LITERATURA 1. L. Grodzki, W. Owieczko: Podstawy techniki cyfrowej, 2006. 2. T. Łuba, B. Zbierzchowski: Komputerowe projektowanie układów cyfrowych, WKŁ 2000. 3. P. Zbysiński, J. Pasierbiński: Układy programowalne pierwsze kroki. BTC, 2004. 4. M. Barski, W. Jędruch: Układy cyfrowe- podstawy projektowania i opis w języku VHDL, Gdańsk 2007. 9