Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna



Podobne dokumenty
Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

Wygląd okna aplikacji Project Navigator.

dr inż. Jarosław Sugier

Bezpieczeństwo informacji oparte o kryptografię kwantową

MentorGraphics ModelSim

Środowiska Xilinx ISE i ISim Instrukcja laboratoryjna

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Projektowanie układów na schemacie

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

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

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

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

Krótkie wprowadzenie do ModelSim i Quartus2

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...

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

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

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

Kolory elementów. Kolory elementów

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

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

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

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

Projektowanie z użyciem procesora programowego Nios II

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

Modelowanie obiektowe - Ćw. 1.

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

INSTRUKCJA UŻYTKOWNIKA MPCC

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

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

Opis szybkiego uruchomienia programu APBSoft

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

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

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

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

Układy VLSI Bramki 1.0

Zaawansowane aplikacje internetowe - laboratorium

Kadry Optivum, Płace Optivum

Galileo v10 pierwszy program

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

1. Przekrój poprzeczny tranzystora nmos. Uzupełnij rysunek odpowiednimi nazwami domieszek (n lub p). S G D

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Konfigurowanie sterownika CP6601 firmy Beckhoff wprowadzenie

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

Programowanie Obiektowe GUI

5.2. Pierwsze kroki z bazami danych

Projektowania Układów Elektronicznych CAD Laboratorium

Podręcznik użytkownika programu. Ceremonia 3.1

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

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

Magistrale na schematach

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

Konfiguracja pakietu CrossStudio for MSP

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

Laboratorium Układów Programowalnych System projektowy WebPack ISE 8.2i

OPROGRAMOWANIE DEFSIM2

ApSIC Xbench: Szybki start wydanie Mariusz Stępień

Zadanie 11. Przygotowanie publikacji do wydrukowania

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Product Update Funkcjonalność ADR dla przemienników Częstotliwości PowerFlex 750 oraz 525 6

Instrukcja ręcznej konfiguracji połączenia z Internetem przez. modem ED77 w systemie Windows XP

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

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

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

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

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

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

Programowanie sterowników

2.2 Opis części programowej

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

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

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-520L

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

Konfigurowanie sterownika BC8150 firmy Beckhoff wprowadzenie

Windows 10 - Jak uruchomić system w trybie

Instrukcja użytkowania

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

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD.

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

6.4. Efekty specjalne

Programowanie w języku Python. Grażyna Koba

Dell P2018H Dell Display Manager Instrukcja użytkownika

Projektowanie układów VLSI-ASIC techniką od szczegółu do ogółu (bottom-up) przy użyciu pakietu CADENCE w technologii UMC 0.18µm

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

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: TECHNIKA CYFROWA 2 TS1C

Podgląd z rejestratorów IPOX na komputerze z systemem WINDOWS za pomocą programu NVMS-2.0 LITE

1. Przypisy, indeks i spisy.

Cover sheet. WinCC (TIA Portal) FAQ Listopad 2012

Ploter I-V instrukcja obsługi

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

Ukªady Kombinacyjne - cz ± I

Makropolecenia w Excelu

Aplikacja npodpis do obsługi certyfikatu (instrukcja użytkownika)

Transkrypt:

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

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) (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. 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. 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. 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. 3

Rys. 3 Edytor schematów ECS. 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). 4

Rys. 4 Nawigator projektu z uruchomionym edytorem HDL Bencher. 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. 5

Rys. 5 Okno z przebiegami czasowymi symulatora ModelSim. 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). 6

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. 7

Rys. 6 Środowisko ISE z uruchomioną aplikacją impact. 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. 8

Rys. 7 Aplikacja StateCAD z utworzonym grafem stanów automatu. 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 systemowego 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. 9

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 ). 10

Rys. 8 Definicja portów podczas tworzenia nowego modułu VHDL. 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. 11

Rys. 9 Pusty szablon VHDL wygenerowany dla parametrów jak na rys. 8. 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 12