Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna



Podobne dokumenty
Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

dr inż. Jarosław Sugier

Środowiska Xilinx ISE i ISim Instrukcja laboratoryjna

Wygląd okna aplikacji Project Navigator.

Bezpieczeństwo informacji oparte o kryptografię kwantową

MentorGraphics ModelSim

Projektowanie układów na schemacie

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Krótkie wprowadzenie do ModelSim i Quartus2

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Układy reprogramowalne i SoC Implementacja w układach FPGA

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Skrócona instrukcja obsługi czujników Fast Tracer firmy Sequoia.

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Układy VLSI Bramki 1.0

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Kolory elementów. Kolory elementów

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

OPROGRAMOWANIE DEFSIM2

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Modelowanie obiektowe - Ćw. 1.

5.2. Pierwsze kroki z bazami danych

Technika cyfrowa. Laboratorium nr 7. Liczniki synchroniczne. Mirosław Łazoryszczak. Temat:

Podręcznik użytkownika programu. Ceremonia 3.1

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Akceleracja symulacji HES-AHDL. 1. Rozpoczęcie pracy aplikacja VNC viewer

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Programowanie w języku Python. Grażyna Koba

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

Projektowania Układów Elektronicznych CAD Laboratorium

1. Przypisy, indeks i spisy.

Projektowanie z użyciem softprocesora picoblaze w układach programowalnych firmy Xilinx

Diagnostyka pamięci RAM

6.4. Efekty specjalne

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

Kadry Optivum, Płace Optivum

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Magistrale na schematach

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Instalacja programu:

Zadanie 11. Przygotowanie publikacji do wydrukowania

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

Projektowanie z użyciem procesora programowego Nios II

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Programowanie Obiektowe GUI

Zaawansowane aplikacje internetowe - laboratorium

1.Wstęp. 2.Generowanie systemu w EDK

5. Kliknij teraz na ten prostokąt. Powinieneś w jego miejsce otrzymać napis. Jednocześnie została wywołana kolejna pozycja menu.

Synchronizator plików (SSC) - dokumentacja

Dell UltraSharp UP3017 Dell Display Manager Instrukcja użytkownika

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Instrukcja obsługi Konfigurator MLAN-1000

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Galileo v10 pierwszy program

Kopiowanie, przenoszenie plików i folderów

Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie)

Konfigurowanie sterownika CP6601 firmy Beckhoff wprowadzenie

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Opis szybkiego uruchomienia programu APBSoft

INSTRUKCJA UŻYTKOWNIKA MPCC

ApSIC Xbench: Szybki start wydanie Mariusz Stępień

Pobieranie edytora CodeLite

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

Instrukcja użytkowania

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Makropolecenia w Excelu

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

PIERWSZE URUCHOMIENIE PROGRAMU ITNC PROGRAMMING STATION

Edytor tekstu OpenOffice Writer Podstawy

Tworzenie prezentacji w MS PowerPoint

Bezpieczeństwo informacji oparte o kryptografię kwantową

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Aplikacja projektu Program wycinki drzew i krzewów dla RZGW we Wrocławiu

Zadanie 10. Stosowanie dokumentu głównego do organizowania dużych projektów

Jak przygotować pokaz album w Logomocji

Informatyka I : Tworzenie projektu

Transkrypt:

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

1 Wiadomości ogólne Zintegrowane środowisko Xilinx ISE służy do wykonania wszystkich operacji związanych z przygotowaniem projektu układu cyfrowego oraz jego implementacji w układzie CPLD lub FPGA. Uruchamiane jest ikoną Xilinx ISE 11, 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, można edytować pliki źródłowe, 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 są do wyboru dwie opcje: implementacja oraz symulacja, przy czym dla opcji symulacja dodatkowo w rozwijanym oknie wybiera się jej typ: behawioralna (bez opóźnień czasowych) lub projektu zaimplementowanego (a) (d) (b) (c) Rys. 1 Okno główne środowiska ISE: (a) elementy źródłowe projektu, (b) okno procesów, (c) okno konsoli, (d) obszar roboczy. 1

Rys. 2 Okno właściwości procesu Implement Design Fit. w rzeczywistym układzie z uwzględnieniem wszystkich opóźnień (post-fit). Zawartość okna procesów (b) zależy od tego, jakiego rodzaju element (schemat, moduł VHDL, wektor testowy ) 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 ) 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). 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, które pojawia się po kliknięciu na proces prawym klawiszem myszy. 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. Do przywrócenia domyślnego rozkładu okien w aplikacji Project Nawigator służy polecenie View Restore Default Layout. Okno źródłowe (a) oraz procesów (b) umieszczone są w zakładce Design ; uruchomienie w obszarze roboczym np. edytora schematów często powoduje automatyczne przełączenie zakładek. W każdym programie środowiska ISE polecenie menu Help Software Manuals otwiera dokument z odnośnikami do pełnej dokumentacji elektronicznej PDF Xilinx ISE Software Manuals. Ponadto, dodatkowe informacje na temat pracy konkretnych aplikacji dostępne są w standardowym systemie pomocy MS Windows otwieranym poleceniem Help Help Topics. 2

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. 4) Aplikację impact (patrz dalej) służącą do programowania układu lepiej uruchamiać jej ikoną na pulpicie niezależnie od Nawigatora Projektu; w Nawigatorze należy wówczas przeprowadzać implementację do procesu Generate Progamming File włącznie i następnie załadować powstały plik JED do aplikacji impact. 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 (klawisz Next ) 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. 3

Rys. 3 Edytor schematów ECS (oraz przykład użycia 4-bitowej magistrali sygnałowej). 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. 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 atrybuty połączenia z portem WE/WY można nadać mu nazwę własną; kierunek portu (WE lub WY) także jest atrybutem. 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 na dole zakładki Symbols. Źródłami sygnałów logicznej 1 oraz 0 są elementy vcc oraz gnd ; bramka negacji nosi nazwę INV. 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 w nazwie połączenia odchodzącego od magistrali. Zakres indeksu nie musi być malejący ani kończyć się na 0, choć tak standardowo się je tworzy. Elementem graficznym przedstawiającym dołączenie linii do magistrali jest tzw. bus tap ( ). W zakładce Options są dostępne ważne opcje edycji, np. zaznaczanie całości połączenia lub tylko pojedynczych jego odcinków (przydatne przy usuwaniu), automatyczne lub ręczne trasowanie geometrii połączeń podczas ich dodawania ( Autorouter ), itp. Widoczne opcje zależą od aktualnie wybranego narzędzia rysowania. 4

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). 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 zawsze 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 CPLD 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 Nawigatora. Podczas pracy z płytą ZL-9572 należy korzystać z pliku UCF dostępnego na stronie WWW, który zawiera przypisania wszystkich wyprowadzeń. Plik ten należy dodać do projektu ( Project Add Source ) i następnie usunąć w nim znaki komentarza (#) w liniach opisujących porty rzeczywiście występujące na schemacie. W przypadku ogólnym utworzenie nowego pliku UCF oraz przypisanie wyprowadzeń można wykonać na dwa sposoby: 1) dodając ręcznie źródło 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. 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 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. 5

Rys. 4 Automatycznie wygenerowany szablon kodu VHDL dla jednostki testowej uzupełniony o instrukcje przypisania pobudzeń dla wejść we1 i we2. Jeśli w projekcie pozostają porty, dla których nie podano poleceń LOC w pliku UCF, program automatycznie przypisze im lokalizację wg własnych kryteriów. Implementacja projektu będzie wówczas wykonywana, ale nie ma dużych szans na jej poprawną pracę w sprzęcie. 2.4 Symulacja projektu Symulacja przygotowanego projektu wymaga zdefiniowania pliku VHDL z wektorami pobudzeń dla portów WE oraz wywołania symulatora ModelSim-XE, który obliczy oraz przedstawi graficznie wygenerowane przez układ odpowiedzi na portach WY. Sam język VHDL będzie omawiany na wykładzie, natomiast podane niżej informacje wstępne, choć fragmentaryczne, są wystarczające do pisania prostych wektorów pobudzeń na początkowych zajęciach. System ISE automatycznie generuje odpowiedni szablon VHDL dla układu ze wskazanego schematu zob. przykład na rys. 4. Utworzenie pliku VHDL z pobudzeniami testowymi 1º Wybierz polecenie Project New Source, zaznacz VHDL Test Bench oraz podaj nazwę pliku; w następnym oknie zaznacz plik schematowy projektu jako obiekt symulacji. 2º Po zatwierdzeniu parametrów zostanie utworzony plik o rozszerzeniu.vhd z automatycznie utworzoną jednostką testową (ENTITY) oraz architekturą (ARCHITECTURE). Wygenerowane nazwy jednostki oraz architektury nie są istotne, uzupełnienia natomiast wymagać będzie treść architektury zawarta pomiędzy słowami BEGIN END. 3º Przed modyfikacją treści architektury należy zwrócić uwagę na jej część deklaracyjną przed słowem BEGIN. Powinny znajdować się w niej automatycznie wygenerowane: deklaracja symulowanej jednostki (COMPONENT) z portami WE/WY jak na schemacie 6

oraz definicje odpowiadających im sygnałów (SIGNAL). Identyczne nazwy sygnałów oraz portów w języku VHDL nie powodują konfliktów; ponadto duże i małe litery nie są rozróżniane w identyfikatorach, więc tego typu różnice mogą wystąpić. 4º W treści architektury (po słowie BEGIN) powinna znajdować się instrukcja instancji zadeklarowanego wyżej komponentu UUT: ( ) ;. Należy pozostawić ją bez zmian, natomiast dalsze instrukcje (do słowa END) usunąć zostaną zastąpione poleceniami własnymi. 5º Za instancją komponentu dopisz pobudzenia tych sygnałów, które odpowiadają portom WE. Najprościej można to zrobić instrukcjami przypisań współbieżnych <=, których uproszczoną składnię wystarczająco tłumaczą następujące dwa przykłady: we1 <= '0', '1' after 100 ns, '0' after 300 ns; we2 <= '0', '1' after 200 ns, '0' after 400 ns; Dla każdego sygnału WE należy podać dokładnie jedną instrukcję przypisania. W przykładach powyższych we1 i we2 są ich nazwami, '0' oraz '1' są przypisywanymi wartościami, natomiast po słowach after podawane są momenty czasu, w których dane przypisanie ma mieć miejsce. Efekt powyższych dwóch instrukcji można zobaczyć na rys. 5: oba sygnały są początkowo inicjalizowane zerem logicznym, po czym na każdym z nich pojawia się trwający 200 ns impuls jedynkowy. Różne przesunięcie czasowe impulsu daje efekt dwubitowego kodu Gray a. Gdy zachodzi potrzeba generacji fali prostokątnej o wypełnieniu 50% i stałym okresie należy dopisać inicjalizację wartości początkowej sygnału do jego definicji w części deklaracyjnej: SIGNAL Clk : STD_LOGIC := '0'; oraz w treści architektury zastosować przypisanie jak w poniższym przykładzie: Clk <= not Clk after 500 ns; (gdzie przykładowa wartość 500 ns oznacza żądaną wartość półokresu). Oznaczenia jednostek czasu w języku VHDL: fs, ps, ns, us, ms, sec. Sygnałom, które są wektorami (odpowiadają portom magistralowym), przypisuje się stałe ujęte w znaki " ": SIGNAL K : STD_LOGIC_VECTOR( 3 DOWNTO 0 ); (...) K <= "0000", "0001" after 100 ns, "0011" after 300 ns; Stałe wektorowe, których długość jest wielokrotnością 4, można zapisywać w notacji heksadecymalnej: "0011" = X"3", "11110111" = X"F3", itp. (ale "011" X"3"). Wywołanie symulatora ModelSim 1º W oknie plików źródłowych wybierz opcję Sources for: Simulation oraz zaznacz utworzony powyżej plik VHDL z pobudzeniami (ale nie również widoczny poniżej podporządkowany mu element UUT!). Uruchom proces ModelSim Simulator Simulate Behavioral Model lub ModelSim Simulator Simulate Post-Fit Model ; zostanie uruchomiona aplikacja ModelSim-XE. W przypadku wybrania symulacji czasowej post-fit może okazać się konieczna synteza i implementacja układu; jeśli nie zakończy się powodzeniem, zamiast oczekiwanej pracy z aplikacją ModelSim trzeba będzie wrócić do poprawiania błędów wykrytych w projekcie. 7

Rys. 5 Okno z przebiegami czasowymi symulatora ModelSim. 2º 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 oraz z trybu niezależnego umożliwiają klawisze oraz. Przy analizie wykresów czasowych ważne jest ustawienie odpowiedniego powiększenia skali czasowej (polecenia View Zoom In / Out / Full /, klawisze ). Ponadto przy precyzyjnym wyznaczaniu opóźnień pomocne są polecenia ustawiające kursory: Insert Cursor, Find Previous Transition, Find Next Transition, etc. 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 1000 ns. Kolejne cykle wydłużające czas symulacji można uruchamiać wpisując w oknie Transcript na dole środowiska ModelSim polecenie run <czas>, np. run 10 us. Polecenie Simulate Run Restart (lub po prostu restart w oknie Transcript ) 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 w oknie Workspace. Po kliknięciu prawym klawiszem myszy na sygnał, który chcemy śledzić, należy wybrać polecenie Add to Wave, po czym 8

Rys. 6 Poprawnie wykryty układ w aplikacji impact z oknem wyboru pliku konfiguracyjnego. 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 zaraz po uruchomieniu ModelSim, albo zapisać w pliku skryptu użytkownika (nazwa identyczna jak jednostka VHDL + rozszerzenie.udo) i wówczas będzie wykonywane automatycznie przy starcie symulatora. Dzięki niemu po dodaniu do okna Wave nowego sygnału zostanie natychmiast wyświetlona historia jego zmian od chwili 0. 2.5 Zaprogramowanie układu 1º Dla głównego pliku schematowego uruchom proces Implement Design Generate Programming File. Jeśli zakończy się powodzeniem, w katalogu głównym projektu powstanie plik o rozszerzeniu.jed gotowy do przesłania do układu CPLD. Implementacja projektów CPLD składa się z procesów Synthesize, Translate oraz Fit. Jeśli którykolwiek nie zakończy się pomyślnie, należy odszukać w oknie konsoli komunikat o błędach i wrócić do ich usunięcia. Najczęściej błędy procesu Synthesize dotyczą kodu VHDL, błędy Translate pliku UCF, błędy Fit problemów z przypisaniem wyprowadzeń, niedostatecznymi zasobami w wybranym układzie itp. 2º Podłącz sprzęt do zasilania oraz do komputera poprzez kabel JTAG i uruchom aplikację impact. 3º Zamknij pierwsze pojawiające się okno New impact Project bez tworzenia projektu oraz dwukrotnie kliknij opcję Boundary Scan w podoknie impact Flows (lewy górny róg okna głównego). Wybierz polecenie File Initialize Chain (Ctrl+I). 9

Rys. 7 Definicja portów podczas tworzenia nowego modułu VHDL. W tym momencie program musi automatycznie wykryć i poprawnie zidentyfikować dołączony układ CPLD tak, jak pokazuje rys. 6. Jeśli tak się nie stanie, sprawdź jeszcze raz podłączenie kabli, zasilanie płyty itp. 4º W oknie wyboru pliku konfiguracyjnego (rys. 6) wskaż plik.jed wygenerowany w katalogu głównym projektu, następnie zaakceptuj zaproponowane ustawienia Device Programming Properties. 5º Aplikacja impact gotowa jest do zaprogramowania układu: kliknij prawym klawiszem myszy na jego symbol oraz wybierz polecenie Program ; jeśli transmisja poprzez kabel JTAG odbędzie się pomyślnie, pojawi się niebieski komunikat Programming succeeded. W przypadku wystąpienia błędów wykonaj test łącza poleceniem Debug IDCODE Looping. 6º Układ został skonfigurowany zgodnie z projektem sprawdź poprawność jego pracy na płycie laboratoryjnej. 3 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. 7) 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. 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. 8. 4º Pusty szkielet kodu należy uzupełnić wpisując instrukcje VHDL jako treść architektury. 10

Rys. 8 Pusty szablon VHDL wygenerowany dla parametrów jak na rys. 7. Przy opisie podstawowych układów kombinacyjnych oraz sekwencyjnych należy wzorować się na przykładach zawartych w dokumencie PDF XST User Guide, rozdz. XST HDL Coding Techniques. Pomocne mogą być też szablony, których bibliotekę otwiera w oknie nawigatora polecenie Edit Language Templates ( ; patrz gałąź VHLD Synthesis Constructs Coding Examples). 5º Dla przygotowanego modułu VHDL można utworzyć symbol uruchamiając dla niego proces Design Utilities Create Schematic Symbol. Po umieszczeniu takiego symbolu na schemacie powstaje hierarchia różnych plików źródłowych (sch na szczycie + VHDL jako submoduł). Domyślnie każdy symbol jest tworzony jako prostokąt z dołączonymi wyprowadzeniami, które odpowiadają portom jednostki VHDL: po lewej stronie porty WE, po prawej WY. Aby zmienić taki początkowy układ 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 (przypisanie wyprowadzeń, symulacja 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 1.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 11