Środowisko Xilinx ISE i ModelSim XE Instrukcja...

13
Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna dr inż. Jarosław Sugier Ver. 10.1 a

Transcript of Środowisko Xilinx ISE i ModelSim XE Instrukcja...

Page 1: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

dr inż. Jarosław Sugier

Ver. 10.1 a

Page 2: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 1 –

1 Wiadomości ogólne

Zintegrowane środowisko Xilinx ISE służy do pracy na wszystkich etapach przygotowania projektu układu cyfrowego oraz jego implementacji w układzie CPLD lub FPGA. Uruchamiane jest ikoną „Xilinx ISE 10.1” , umieszczoną na pulpicie systemu Windows, bądź z menu Start o tej samej nazwie.

Podstawową platformą środowiska jest aplikacja „Project Nawigator”, z której, uruchamiając inne składniki pakietu ISE, można edytować pliki źródłowe projektu, sterować procesem syntezy i implementacji oraz zaprogramować układ poprzez interfejs JTAG.

Widoczne na rys. 1 okno główne aplikacji „Project Nawigator” dzieli się na 4 ogólne obszary:

(a) drzewo plików źródłowych „Sources” przedstawiające w formie hierarchicznej wszystkie elementy źródłowe projektu;

(b) drzewo procesów „Processes” wyświetlające operacje dostępne dla elementu źródłowego aktualnie wybranego w oknie (a);

(c) konsola wyświetlająca komunikaty generowane przez procesy przetwarzające elementy źródłowe;

(d) obszar roboczy, używany do edycji plików projektu, wizualizacji wyników itp.

Pole „Sources for:” w oknie źródłowym (a) decyduje o tym, jakiego typu składniki projektu są w nim wyświetlane. Możliwe opcje to: synteza/implementacja, symulacja behawioralna oraz symulacja projektu „post-fit” (zaimplementowanego w strukturze układu programowalnego).

(a)

(b)

(c)

(d)

Rys. 1 Okno główne środowiska ISE: (a) elementy źródłowe projektu, (b) okno procesów, (c) okno

konsoli, (d) obszar roboczy.

Page 3: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 2 –

Zawartość okna procesów (b) zależy od tego, jakiego rodzaju element jest aktualnie wybrany w oknie plików źródłowych (a). Większość operacji podczas pracy nad projektem wykonuje się wybierając najpierw odpowiedni plik źródłowy w oknie (a) (co może wymagać przełączenia opcji „Sources for:”) i następnie uruchamiając żądany proces w oknie (b).

Uruchomienie procesu widocznego w oknie (b) możliwe jest przez jego dwukrotne kliknięcie. Środowisko ISE domyślnie wykonuje wówczas proces w trybie „automake”, tzn. przed jego wywołaniem aktualizuje pliki wynikowe kroków wcześniejszych, o ile jest to potrzebne (decyduje porównanie daty utworzenia plików wynikowych oraz źródłowych).

Polecenie „Rerun All” w menu kontekstowym procesu powoduje bezwarunkowe powtórzenie wszystkich poprzednich kroków projektowych. Jest to zalecona metoda odświeżenia stanu projektu po wprowadzeniu wielu zmian, które nie zawsze są poprawnie wykrywane przez mechanizm „automake”.

Po zaznaczeniu głównego pliku źródłowego projektu w oknie (a) („Sources for: Implementation”) oraz po dwukrotnym kliknięciu procesu „Implement Design → Configure Target Device” w oknie (b), zostaną wykonane wszystkie wymagane kroki syntezy i implementacji, po czym w przypadku ich poprawnej realizacji zostanie uruchomiony program konfigurujący iMPACT (rozdz. 2.5).

Do przywrócenia domyślnego rozkładu okien w aplikacji „Project Nawigator” służy polecenie View → Restore Default Layout.

Często przed uruchomieniem procesu konieczne jest ustawienie jego specyficznych parametrów. Wykonuje się to poprzez okno właściwości (przykład na rys. 2), otwierane poleceniem „Properties” z menu kontekstowego procesu, które pojawia się po kliknięciu na nim prawym klawiszem myszy.

W każdym programie środowiska ISE polecenie menu „Help → Online Documentation” otwiera dokument z odnośnikami do pełnej dokumentacji elektronicznej PDF „Xilinx ISE Software Manuals”. Ponadto, dodatkowe informacje na temat interfejsu konkretnych programów dostępne są w systemie pomocy MS Windows otwieranym poleceniem „Help → Help Topics”.

Rys. 2 Okno właściwości procesu „Implement Design → Fit”.

Page 4: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 3 –

UWAGI OGÓLNE

1) W ścieżce katalogu z projektem ISE nie mogą występować odstępy (w szczególności więc nie należy umieszczać projektów na pulpicie Windows!).

2) Nazwy niektórych plików źródłowych są używanie jako identyfikatory w kodzie VHDL i należy tworzyć je tak, aby spełniały odpowiednie warunki (muszą rozpoczynać się od litery oraz nie mogą zawierać żadnych znaków innych niż litery, cyfry oraz znak podkreślenia ‘_’). Błędy tego rodzaju w nazwach plików są szczególnie dotkliwe, gdyż nie są sygnalizowane przez program, a objawiają się dopiero złą praca niektórych jego narzędzi.

3) Jeśli aplikacja „Project Navigator” została zamknięta awaryjnie wskutek błędu wewnętrznego, należy sprawdzić czy pozostał po niej proces _pn.exe i w razie potrzeby zamknąć go ręcznie.

2 Synteza układu opisanego w postaci schematowej

Rozdział ten omawia główne kroki przy projektowaniu układu, którego opis zadany jest w postaci schematu logicznego.

2.1 Utworzenie nowego projektu 1º Wybierz „File → New Project…”. W pierwszym oknie parametrów projektu podaj jego

nazwę, lokalizację oraz rodzaj głównego pliku źródłowego „Top-Level Source Type”; w tym przypadku wybierz „Schematic”.

2º W drugim oknie parametrów wybierz kategorię oraz rodzinę układów, konkretne urządzenie, typ obudowy oraz gradację szybkości. Pozostałe parametry:

„Synthesis Tool = XST (VHDL/Verilog)” „Simulator = Modelsim XE VHDL” „Preferred Language = VHDL”

Naciśnij klawisz „Next”.

3º Utwórz nowy plik ze schematem: klawisz „New Source…” → rodzaj pliku „Schematic”, wpisz nazwę pliku, pozostaw opcję „Add to project” włączoną, naciśnij „Next” i potwierdź wpisane parametry w kolejnym oknie.

4º W kolejnym oknie „Add existing sources” nie wykonuj żadnych operacji; naciśnij klawisz „Next”.

5º Sprawdź opcje tworzonego projektu i zatwierdź klawiszem „Finish”.

2.2 Edycja schematu Po utworzeniu nowego projektu wg powyższych kroków środowisko automatycznie wywołuje edytor schematów ECS. Dla schematu już istniejącego w projekcie edytor ten można uruchomić klikając dwukrotnie jego plik (.sch) w oknie elementów źródłowych projektu.

Domyślnie edytor jest wyświetlany jako podokno w obszarze roboczym nawigatora, ale możliwa jest także jego praca niezależna (rys. 3). Przełączenie się pomiędzy tymi dwoma trybami pracy umożliwiają klawisze oraz .

Page 5: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 4 –

Podczas edycji schematu należy umieszczać symbole elementów logicznych wybrane w zakładce „Symbols” po lewej stronie obszaru roboczego (klawisz na pasku narzędzi). Do rysowania połączeń służy polecenie menu „Add → Wire” ( ), własne nazwy można im nadawać poleceniem „Add → Net Name” ( ). Sygnały WE/WY projektu należy umieścić na szczytowym schemacie jako znaczniki WE/WY („Add → I/O Marker”; ).

Dwukrotne kliknięcie dowolnego elementu na schemacie otwiera okno z jego atrybutami; poprzez edycję atrybutów portu WE/WY można nadać mu nazwę własną oraz ustalić kierunek (WE lub WY).

Opisy wszystkich elementów logicznych zawarte są w dokumencie „Libraries Guide” dostępnym w systemie pomocy jako plik PDF. Opisy poszczególnych elementów można wywołać klawiszem „Symbol Info”.

Elementy „vcc” oraz „gnd” są źródłami sygnałów logicznej 1 oraz 0.

Na rysunku 3 widać zasadę konstruowania magistral sygnałowych: rozmiar magistrali należy podać w nazwie sygnału jako zakres indeksu (X:Y), a dostęp do jej poszczególnych składowych następuje poprzez odwołanie się do konkretnej wartości indeksu. Zakres indeksu nie musi być malejący ani kończyć się na 0. Elementem graficznym przedstawiającym dołączenie linii do magistrali jest tzw. „bus tap”, .

W zakładce „Options” można przełączać ważne opcje, np. zaznaczanie całości połączenia lub tylko pojedynczych jego odcinków, automatyczne lub ręczne trasowanie geometrii połączeń podczas ich wprowadzania („Autorouter”), itp. Widoczne opcje zależą od aktualnie wybranego narzędzia rysowania.

Przydatne skróty klawiszowe: F8 / F7= Zoom In/Out, F5 = Refresh.

Po zakończeniu edycji schematu należy sprawdzić jego poprawność poleceniem „Tools → Check Schematic” ; jeśli znajdowane są błędy, raportowane symbole lub połączenia można wyszukać poleceniem „Edit → Find (Ctrl+F)”.

Rys. 3 Edytor schematów ECS.

Page 6: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 5 –

Nazwy portów na schemacie muszą być poprawnymi identyfikatorami języka VHDL: muszą zaczynać się od litery, nie mogą być słowami kluczowymi, np. „in”, „out”, itp. Błędy tego rodzaju nie są wykrywane przez polecenie Check Schematic.

Dalszych szczegółowych informacji nt. edytora ECS należy szukać w jego systemie pomocy on-line.

2.3 Określenie lokalizacji sygnałów WE/WY Przypisanie sygnałów WE/WY projektu do konkretnych wyprowadzeń obudowy układu scalonego jest fragmentem szerszego zagadnienia, jakim jest definiowanie ograniczeń projektowych („user constraints”). Sformułowane ograniczenia są przechowywane w pliku tekstowym o rozszerzeniu UCF, który jest jednym z (ważnych!) elementów źródłowych projektu i jest widoczny w drzewie plików wejściowych w nawigatora.

W środowisku ISE przypisanie wyprowadzeń można wykonać na dwa sposoby:

1) dodając ręcznie plik UCF do projektu (menu „Project → New Source → Implementation Constraints File”), następnie wykonując jego edycję („User Constraints → Edit Constraints (Text)”) i wpisując odpowiednie linie z poleceniami LOC:

#Format: NET "NazwaPortu" LOC = "Wyprowadzenie"; NET "We1" LOC = "P13"; NET "We2" LOC = "P12"; NET "Wy" LOC = "P24"; ...

2) uruchamiając aplikację PACE – „Pinout Area Constraints Editor” („User Constraints → Floorplan IO – Pre-Synthesis”), w której można przeciągnąć myszką porty WE/WY na graficzny obraz obudowy układu.

Rys. 4 Nawigator projektu z uruchomionym edytorem „HDL Bencher”.

Page 7: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 6 –

Jeśli po uruchomieniu aplikacji PACE lista widocznych w nim portów nie zgadza się z rzeczywistymi sygnałami WE/WY projektu, należy ją zamknąć i wykonać edycję tekstową pliku UCF jak w punkcie 1.

Symbole wyprowadzeń podawane z poleceniach LOC zależą od typu obudowy. Dla obudowy typu PLCC (XC9536XL) numeracja wyprowadzeń jest liniowa i symbole maja postać „PNrWypr”, dla obudów BGA, używanych w układach FPGA, symbole mają postać „szachową”, np. A1, C35 itp. W każdym przypadku należy sprawdzić w dokumentacji, do którego wyprowadzenia obudowy powinien być dołączony każdy port i opisać to odpowiednio w pliku UCF.

Jeśli w projekcie pozostają porty, dla których nie podano poleceń LOC, program automatycznie przypisze im lokalizację wg własnych kryteriów. Implementacja projektu będzie wówczas wykonywana, ale nie ma co liczyć na jej poprawną pracę w sprzęcie.

2.4 Symulacja projektu Symulacja układu wymaga zdefiniowania pliku TBW z wektorami pobudzeń („Test Bench Waveform”) oraz wywołania symulatora ModelSim XE.

Utworzenie pliku pobudzeń (.tbw)

1º Wybierz polecenie „Project → New Source…”, zaznacz „Test Bench Waveform” oraz podaj nazwę pliku; w następnym oknie zaznacz plik schematowy projektu jako obiekt symulacji. Po zamknięciu kolejnego okna zostanie uruchomiony edytor „HDL Bencher”.

Nazwa pliku TBW nie może być taka sama jak pliku SCH. 2º W oknie „Initialize Timing” wybierz rodzaj układu: synchroniczny z jednym lub wieloma

sygnałami zegarowymi albo kombinacyjny; uzupełnij odpowiednie parametry czasowe ustawiania / testowania sygnałów. Po zatwierdzeniu w nawigatorze projektu pojawi się okno edytora „HDL Bencher” (rys. 4).

Rys. 5 Okno z przebiegami czasowymi symulatora ModelSim.

Page 8: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 7 –

3º Klikając myszką na wykresy poszczególnych sygnałów WE (pola jasnoniebieskie), ustaw przebiegi pobudzeń. Poleceniem „Test Benach → Set End of Test Benach” określ czas trwania testu. Zapisz zmiany w pliku TBW.

Wywołanie symulatora ModelSim 4º W oknie plików źródłowych zaznacz plik TBW, następnie uruchom proces „ModelSim

Simulator → Simulate Behavioral Model” (symulacja funkcjonalna opisu układu; opcja „Sources for: Behavioral Simulation”) lub proces „ModelSim Simulator → Simulate Post-Fit Model” (symulacja czasowa układu zaimplementowanego w strukturze CPLD; opcja „Sources for: Post-Fit Simulation”).

5º Symulator ModelSim pracuje we własnym środowisku z szeregiem obszarów roboczych; okno z obliczonymi przebiegami czasowymi (Wave) pokazuje rys. 5.

Przełączanie podokien ModelSim do trybu niezależnego umożliwiają klawisze oraz .

Przy analizie wykresów czasowych do precyzyjnego wyznaczania opóźnień pomocne mogą być polecenia ustawiające kursory: „Insert Cursor” , „Find Previous Transition” oraz „Find Next Transition” .

Moduł poddawany symulacji powinien być modułem będącym na szczycie hierarchii plików źródłowych (w symulacji post-fit jest to konieczne). Ustawienie szczytu hierarchii wykonuje się poleceniem „Set as Top module”, które jest dostępne w menu kontekstowym modułu (jeśli jest ono nieaktywne, dany moduł już znajduje się na szczycie hierarchii).

Po starcie ModelSim wykonuje cykl symulacji trwający domyślnie 1000ns (1µs) niezależnie od długości testu tbw. Kolejne cykle wydłużające czas symulacji można uruchamiać wpisując w oknie „Transcript” polecenie run <czas>, np. run 10us. Polecenie Simulate → Run → Restart wraca do chwili zero.

Podczas symulacji behawioralnej możliwe jest śledzenie w oknie „Wave” nie tylko portów badanego modułu, ale też wszystkich jego sygnałów wewnętrznych (w tym przypadku warto nadać połączeniom na schemacie nazwy znaczące w miejsce domyślnie generowanych przez system XLXN_xx). Sygnały te można odszukać w oknie „Objects” po zaznaczeniu elementu UUT (Unit Under Test) w oknie „Workspace”. Po kliknięciu prawym klawiszem myszy na sygnał, który chcemy śledzić, należy wybrać polecenie „Add to Wave”, po czym uruchomić symulację ponownie („Simulate → Run → Restart” + „Simulate → Run → Run -All”).

Aby nie było konieczne powtarzanie symulacji po dodaniu każdego nowego sygnału do okna „Wave”, można włączyć rejestrowanie historii zmian wszystkich sygnałów poleceniem log –r /*. Polecenie to można wpisać ręcznie w oknie „Transcript” po starcie ModelSim, albo zapisać w pliku skryptu użytkownika (nazwa identyczna jak .tbw + rozszerzenie .udo) – wówczas będzie wykonywane automatycznie po załadowaniu pliku .tbw.

Page 9: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 8 –

2.5 Zaprogramowanie układu

Przy pracy z układem XC9536XL na płytce dydaktycznej należy wybrać opcję, która wyłącza podtrzymywanie sygnałów na wyprowadzeniach układu (zablokowanie tzw. obwodów „pin keeper” znajdujących się w komórkach I/O). W tym celu w opcjach procesu „Implement Desing → Fit” należy ustawić „I/O Pin Termination = Float” w miejsce domyślnego „Keeper”.

1º Dla głównego pliku schematowego uruchom proces „Implement Design → Generate

Programming File”. W katalogu projektu powstanie plik o rozszerzeniu .jed służący do konfigurowania układu.

2º Podłącz sprzęt do zasilania oraz do komputera poprzez kabel JTAG i uruchom proces

„Configure Target Device”. Rozpocznie pracę aplikacja iMPACT.

3º W oknie powitalnym wybierz opcję „Automatically connect to a cable and identify Boundary-Scan chain”.

Po tym kroku program musi automatycznie wykryć i poprawnie zidentyfikować dołączony układ CPLD; efekt pokazuje rys. 6. Jeśli tak się nie stanie, sprawdź podłączenie kabli, zasilanie płyty itp.

4º W oknie wyboru pliku konfiguracyjnego wskaż plik .jed wygenerowany w kroku 1º, następnie zaakceptuj zaproponowane domyślne ustawienia „Device Programming Properties”.

5º Kliknij prawym klawiszem myszy na symbol układu oraz wykonaj polecenie „Program…”; jeśli transmisja poprzez interfejs JTAG odbędzie się pomyślnie, pojawi się komunikat „Programming succeeded”.

Do testowania błędów transmisji JTAG służy polecenie „Debug → IDCODE Looping”.

Rys. 6 Środowisko ISE z uruchomioną aplikacją iMPACT.

Page 10: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 9 –

6º Sprawdź poprawność pracy projektu na diodach i klawiszach płyty laboratoryjnej.

Program iMPACT może być także uruchamiany jako aplikacja niezależna z systemo-wego menu Start (Xilinx ISE Design Suite → ISE → Accessories). Należy wówczas zamknąć okno ładowania projektu, które otwiera się domyślnie na początku jego pracy, w oknie „Modes” kliknąć dwa razy tryb „Boundary Scan”, wybrać polecenie „File → Initialize Chain” (Ctrl+I) i dalej postępować jak wyżej od kroku 4º.

Wersja ISE 10.1 wydaje się niekiedy zawieszać, gdy program iMPACT jest wielokrotnie uruchamiany z Menadżera Projektu. Jeśli taka sytuacja ma miejsce, należy po kroku 1º uruchomić iMPACT jako aplikację samodzielną wg opisu j.w. i pozostawić ją otwartą przez cały czas pracy z programem ISE.

3 Opis układu poprzez graf automatu

W systemie Xilinx ISE aplikacja StateCAD służy do specyfikacji układu sekwencyjnego jako maszyny stanów o zadanym przez projektanta grafie. Plik z danymi aplikacji StateCAD (o rozszerzeniu .dia) nie jest jednak plikiem syntezowanym; należy na jego podstawie wygenerować moduł VHDL i następnie dołączyć go do projektu.

Utworzenie projektu

1º Wybierz „File → New Project…”; w pierwszym oknie parametrów jako „Top-Level Module Type” wybierz „HDL”, w drugim oknie podaj typ układu programowalnego, typ obudowy oraz szybkość. Inne parametry: „Synthesis Tool = XST (VHDL/Verilog)”, „Simulator = Modelsim-XE VHDL”, „Preferred Language = VHDL”. Naciśnij klawisz „Next”.

2º W kolejnych oknach nie wykonuj żadnych operacji, tzn. nie twórz nowego pliku źródłowego projektu ani nie dodawaj istniejących; zatwierdź utworzenie pustego projektu.

Rys. 7 Aplikacja StateCAD z utworzonym grafem stanów automatu.

Page 11: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 10 –

3º Aby utworzyć nowy plik z grafem stanów wybierz polecenie „Project → New Source…”, zaznacz „State Diagram” oraz wpisz nazwę pliku. Po akceptacji zostanie automatycznie uruchomiona aplikacja StateCAD (rys. 7).

Edycja diagramu stanów 4º Utwórz graf automatu umieszczając stany oraz rysując przejścia w diagramie:

„Add state” ( ) – dodawanie nowych węzłów grafu (stanów), „Add transition” ( ) – dodawanie krawędzi grafu (przejść).

Aby dodać przejście między dwoma stanami kliknij najpierw obwód stanu początkowego, a następnie końcowego.

Każda krawędź jest graficznie reprezentowana jako krzywa o dwóch punktach końcowych oraz dwóch punktach kontrolnych, które są wyświetlane gdy zaznaczona jest opcja „View → Show Control Points”. Przeciągając punkty kontrolne można modelować kształt krawędzi.

5º Klikając dwukrotnie na stany oraz na przejścia (kursor musi być w trybie wskazywania, ), dodaj warunki przejść oraz generowane sygnały WY. W polu „Outputs” wpisuj

instrukcje przypisania sygnałów, np. WyY <= '0', w polu „Condition” wpisuj warunki logiczne, np. WeX = '1' and WeY = '0'.

6º (Opcjonalnie) Dodaj sygnał inicjalizujący układ, tzn. powodujący przejście do określonego stanu początkowego; służy do tego polecenie „Add Reset”, .

7º W aplikacji StateCAD jest dostępny prosty symulator funkcjonalny StateBench, w którym można prześledzić pracę automatu oraz przełączanie się stanów wprost na grafie. Symulator jest uruchamiany poleceniem „Options → StateBench (Create Test Bench)…F5” i każdorazowo przed symulacją wywołuje kompilację diagramu do postaci VHDL (patrz krok poniższy). Aby szybko rozpocząć w nim symulację zainicjalizuj automat klawiszem „Reset” , następnie generuj kolejne impulsy zegarowe klawiszem „Cycle” , zmieniając jednocześnie wartości sygnałów WE (dwukrotne kliknięcię na wykres sygnału przełącza jego wartość).

8º Gotowy diagram zapisz poleceniem „File → Save”; nowopowstały plik .dia zostanie dodany do projektu. Plik ten nie jest syntezowalny, więc okno procesów będzie dla niego puste.

Utworzenie modułu VHDL

9º W aplikacji StateCAD wybierz polecenie „Options → Compile (Generale HDL)”.

W tym momencie, jako jeden z etapów syntezy kodu VHDL, może opcjonalnie zostać wywołana automatyczna optymalizacja struktury automatu, powodująca przyjęcie rejestrowego trybu pracy sygnałów wyjściowych. Należy zdawać sobie sprawę z tego, że wprowadzenie w tym kroku dodatkowych przerzutników do układu może zmienić jego charakter. Tryb pracy, jaki został przyjęty dla poszczególnych sygnałów, można sprawdzić otwierając okno „Options → Variable…”.

10º Jeśli kompilacja przebiegnie bezbłędnie, zostanie utworzony plik .vhd, który należy dodać do projektu w oknie głównym nawigatora poleceniem „Project → Add Source…” i wskazać go jako moduł szczytowy hierarchii projektu (prawy klawisz myszy → „Set as Top Module”).

Page 12: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 11 –

Jeśli podczas dodawania pliku .vhd pojawi się komunikat „File.vhd is already in the project, it cannot be added again”, należy usunąć plik .dia z projektu, spróbować ponownie, po czym przywrócić plik .dia.

11º Uruchamiając proces „Design Entry Utilities → Create Schematic Symbol” dla przygotowanego modułu VHDL można utworzyć reprezentujący go symbol schematowy. Symbol ten można umieszczać następnie na schematach logicznych podczas pracy z edytorem ECS, odszukując go w kategorii noszącej nazwę taką, jak katalog główny projektu.

Domyślnie każdy symbol jest tworzony jako prostokąt o dołączonych wyprowadzeniach odpowiadających portom jednostki VHDL, tj. sygnałom WE/WY automatu odczytanym z diagramu. Aby zmienić taki układ symbolu należy poddać go edycji: w edytorze ECS po jego zaznaczeniu dostępne jest polecenie „Edit → Symbol”.

Dalsze kroki (symulacja, implementacja, przypisanie wyprowadzeń oraz zaprogramowanie układu) wykonuje się identycznie, jak dla opisu schematowego.

Jeśli podczas implementacji projektu pojawiają się komunikaty błędów typu „Library synopsys cannot be found”, należy przed kompilacją w kroku 9º upewnić się, że w konfiguracji StateCAD (Options → Configuration…) jako „Language Vendor” jest wybrany „Xilinx XST”.

4 Opis układu w języku VHDL

Język VHDL jest podstawowym formatem opisu danych w środowisku ISE dla ścieżki projektowej „XST VHDL” i nie wymaga żadnych zewnętrznych edytorów. Aby utworzyć nowy moduł w języku VHDL i dodać go do projektu:

1º W nawigatorze projektu wybierz „Project → New Source…”; zaznacz „VHDL Module”, podaj nazwę pliku oraz naciśnij klawisz „Next”.

2º W oknie „Define Module” (rys. 8) podaj nazwy jednostki i architektury oraz opisz porty jednostki. Dla każdego portu wpisz jego nazwę, wybierz kierunek oraz, w przypadku magistral, w polach MSB / LSB podaj zakres indeksu sygnałów składowych.

Ze względu na możliwości syntezy nie należy stosować innych trybów pracy portów jak dwa podstawowe in oraz out.

Rys. 8 Definicja portów podczas tworzenia nowego modułu VHDL.

Page 13: Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjnajaroslaw.mierzwa.staff.iiar.pwr.wroc.pl/ptc/instr_ise.pdf · 2 Synteza układu opisanego w postaci schematowej Rozdział

J.Sugier Xilinx ISE / ModelSim XE – Instrukcja laboratoryjna Ver. 10.1 a

– 12 –

3º Po zatwierdzeniu podanych parametrów nowopowstały plik .vhd zostanie automatycznie dodany do projektu i otworzony do edycji. Początkowa treść pliku będzie zawierała definicję jednostki (z podanymi wcześniej portami) oraz definicję jednej, pustej, architektury, jak na rys. 9.

4º Pusty szkielet kodu należy uzupełnić wpisując instrukcje VHDL jako treść architektury.

Przy opisie podstawowych układów kombinacyjnych oraz sekwencyjnych należy wzorować się na przykładach zawartych w dokumencie PDF „XST User Guide”, rozdz. „HDL Coding Techniques”. Pomocne mogą być też szablony, których bibliotekę otwiera w oknie nawigatora polecenie „Edit → Language Templates…” ( ; zob. gałąź VHLD → Synthesis Constructs → Coding Examples).

5º Dla przygotowanego modułu VHDL można utworzyć symbol uruchamiając dla niego proces „Design Entry Utilities → Create Schematic Symbol”. Po umieszczeniu takiego symbolu na schemacie powstaje hierarchia różnych plików źródłowych (sch + VHDL jako submoduł).

Domyślnie każdy symbol jest tworzony jako prostokąt z dołączonymi wyprowadzeniami, które odpowiadają portom jednostki VHDL. Aby zmienić taki układ domyślny należy poddać symbol edycji: w edytorze schematów ECS po jego zaznaczeniu dostępne jest polecenie „Edit → Symbol”.

Po wskazaniu modułu VHDL jako głównego pliku projektu, pozostałe kroki projektowe (synteza, symulacja, przypisanie wyprowadzeń oraz zaprogramowanie układu) wykonuje się identycznie, jak zostało to opisane w części 2 dla opisu schematowego.

Literatura 1) ISE Libraries Guide (lib.pdf), Xilinx Inc. 2) XST User Guide (lib.pdf), Xilinx Inc. 3) Pomoc on-line aplikacji pakietu ISE 4) ISE 10.1 Quick Start Tutorial (qst.pdf), Xilinx Inc. 5) K. Parnell, N. Mehta: Programmable Logic Design Quick Start Hand Book

(logic_handbook.pdf), Xilinx Inc., www.xilinx.com

Rys. 9 Pusty szablon VHDL wygenerowany dla parametrów jak na rys. 8.