Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im....

28
Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA ALGORYTMÓW Ćwiczenie 1 Projekt, symulacja, synteza i implementacja systemu cyfrowego w środowisku Xilinx’s ISE Design Suite Zespół Rekonfigurowalnych Systemów Obliczeniowych © Grzegorz Gancarczyk & Ernest Jamro http://www.fpga.agh.edu.pl/sia 05.03.2012

Transcript of Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im....

Page 1: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie

Wydział EAIiE

Katedra Elektroniki

SPRZĘTOWA IMPLEMENTACJA ALGORYTMÓW

Ćwiczenie 1

Projekt, symulacja, synteza i implementacja

systemu cyfrowego w środowisku Xilinx’s ISE Design Suite

Zespół Rekonfigurowalnych Systemów Obliczeniowych

© Grzegorz Gancarczyk & Ernest Jamro

http://www.fpga.agh.edu.pl/sia

05.03.2012

Page 2: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

2

Niniejsza instrukcja do zajęć laboratoryjnych z przedmiotu Programowalne Układy Cyfrowe po-

wstała na podstawie opracowania „TUTORIAL do symulacji graficznej projektu w programie Xilinx

ISE” autorstwa dra inż. Ernesta Jamro.

Page 3: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

3

1. Wstęp

Celem ćwiczenia jest zapoznanie Studentów ze środowiskiem projektowym Xilinx’s ISE

Design Suite. Jest ono powszechnie wykorzystywane do projektowania (Project Navigator), sy-mulacji (ISim), testowania (ChipScope), syntezy i implementacji (Project Navitagor) systemów i układów cyfrowych opisanych przy pomocy któregoś z języków HDL (Hardware Description Language). Narzędzie ISE Design Suite posiada funkcjonalność, która znacząco wybiega poza ra-my tego przedmiotu. Omówione zostaną jedynie jego najważniejsze, elementarne komponenty. W trakcie zajęć laboratoryjnych Studenci zostaną przeprowadzeni od początku do końca przez ścieżkę projektowania układu cyfrowego w języku VHDL (Very High Speed Integrated Circuits Hardware Description Language). Jako przykład posłuży rejestr FIFO (First In First Out). Niniejsza instrukcja ma za zadanie ułatwić Studentom realizację wybranego przez nich uprzednio zadania projektowego. Wymagania sprzętowe:

komputer klasy PC spełniający wymagania sprzętowe aplikacji ISE Design Suite. Wymagania programowe:

system operacyjny Windows XP lub wyższy, środowisko ISE Design Suite.

Wymagane doświadczenie:

podstawowa umiejętność obsługi komputera klasy PC, podstawowa znajomość systemów operacyjnych rodziny Windows, podstawowa wiedza na temat języków opisu sprzętu (HDL), podstawowa wiedza na temat elementów i układów elektronicznych.

Page 4: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

4

2. Tworzenie projektu w ISE

Projekt zostanie stworzony przy użyciu przygotowanych wcześniej, specjalnie na potrzeby zajęć laboratoryjnych, plików.

2.1. Repozytorium plików

Pliki, które zostaną użyte do budowy projektu znajdują się pod adresem http

http:\\www.fpga.agh.edu.pl\sia\

w zakładce Laboratorium → Materiały do ćwiczeń i dalej Ćwiczenie 1 → materiały. Należy je stamtąd pobrać i zachować na dysku twardym komputera.

2.2. Zakładanie nowego projektu

Na pulpicie znajduje się ikona, przy pomocy której należy uruchomić program ISE Design Suite. Wygląd ikony może różnić się pomiędzy poszczególnymi edycjami ISE.

Po kilkunastu/kilkudziesięciu sekundach otwarte zostanie okno programu Project Navigator. Widocznym będzie ostatnio używany projekt.

Aby założyć nowy projekt proszę wybrać z menu File opcję New Project...

Page 5: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

5

W nowo otwartym oknie „czarodzieja” należy stosownie i jednoznacznie: nazwać projekt (Name: → np. pierwszy_projekt), ustawić ścieżki dostępu (Location: oraz Working Directory: →

np. C:\MyXilDesigns\PUC\NS\), a także:

wybrać typ plików źródłowych (Top-level source type: → HDL), kliknąć przycisk Next.

1

2

3

4

Page 6: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

6

Pojawi się kolejne okno, w którym proszę wybrać: rodzinę układów Spartan 6 (Family → Spartan6), układ xc6slx16 (Device → XC6SLX16), typ obudowy csg324 (Package → CSG324), opóźnienie (Speed → -3), narzędzie do syntezy (Synthesis Tool → XST (VHDL/Verilog)), symulator ISim (Simulator → ISim (VHDL/Verilog)), preferowany język VHDL (Preferred Language → VHDL), standard języka (VHDL Source Analysis Standard → VHDL-93),

a następnie kolejno kliknąć przyciski Next i Finish.

2.3. Dołączanie źródeł

Nowy projekt został właśnie założony. Pozostaje jeszcze dołączyć do niego pliki źródłowe. Dla potrzeb niniejszego wprowadzenia będzie to dokonywane stopniowo. Proszę rozpakować lub rozpakować i skopiować zawartość ściągniętego wcześniej archiwum do katalogu roboczego ISE DS (np. C:\MyXilDesigns\pierwszy_projekt).

4 3

2 1

7 6

5

8

9

Page 7: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

7

Interesujące w tej chwili są jednie dwa pliki – fifo.vhd (projekt układu cyfrowego wykonany w języku VHDL) oraz fifo_tb.vhd (test bench dla tego układu). Aby dołączyć nowe pliki do projektu należy kliknąć na ikonę Add Source,

a następnie dodać stosowne pliki znajdujące się w katalogu roboczym ISE DS (katalog aktywnego projektu).

Page 8: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

8

W oknie informującym o statusie dołączanych plików należy kliknąć przycisk OK.

Jeśli wszystko przebiegło poprawnie, można przystąpić do symulacja działania rejestru FIFO. W przeciwnym wypadku proszę postarać się samodzielnie przezwyciężyć napotkane trudności. Jeśli okaże się to zbyt trudne, proszę zwrócić się o pomoc do osoby prowadzącej zajęcia.

Page 9: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

9

3. Symulacja w ISim

Program symulacyjny ISim jest wbudowany w środowisko ISE Design Suite. Aby móc przeprowadzić symulację, należy wpierw poprawnie go skonfigurować.

3.1. Konfiguracja symulacji

Proszę kolejno: przełączyć program ISE Project Navigator z trybu implementacji (Implementation)

w tryb symulacji (Simulation), zaznaczyć element, który będzie podlegał symulacji (fifo_tb - behavior), kliknąć prawym przyciskiem myszy na opcji Simulate Behavioral Model symulatora

ISim, z menu kontekstowego wybrać opcję Process Properties...

3

1

2

4

Page 10: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

10

W nowo otwartym oknie należy określić czas symulacji (Simulation Run Time) jako 200 [ns], a następnie kolejno kliknąć na przyciski Apply i OK.

Symulator został poprawnie skonfigurowany. Można teraz przystąpić do przeprowadzenia symu-lacji.

1

2

3

Page 11: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

11

3.2. Symulacja

Aby przeprowadzić symulację, należy dwukrotnie kliknąć prawym przyciskiem myszy na opcji Simulate Behavioral Model. Symulacja powinna zakończyć się po kilkudziesięciu sekundach. Gdy ulegnie zakończeniu, w kon-soli (Console) programu Project Navigator pojawi się komunikat Process „Simulate Behavioral Model” completed successfully i otwarte zostanie nowe okno symulatora ISim. Będzie ono zawiera-ło wykresy przebiegów podobne do tych zaprezentowanych poniżej.

Aby jak najlepiej wykorzystać dostępną przestrzeń roboczą, proszę rozszerzyć przebiegi widoczne w oknie symulacji na całą jego szerokość. Najprościej i najskuteczniej zrobić to poprzez kliknięcie ikony Zoom to Full View.

Page 12: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

12

Dobrym zabiegiem będzie również zmiana formatu (radix) wyświetlanych danych na bar-dziej czytelny. W tym celu proszę zaznaczyć sygnały din[7:0] oraz dout[7:0], i z menu kontek-stowego wybrać opcję Radix → Hexadecimal.

1

2

3

4

Page 13: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

13

Proszę wykonać kolejno następujące polecenia: wybrać moduł uut w oknie Instance and Process Name, zaznaczyć sygnały empty i count_dif[3:0] w oknie Objects, dodać (metodą przeciągnij i upuść) zaznaczone sygnały do okna symulacji,

zrestartować symulację klikając na ikonę Reset, ustawić czas symulacji na 400 [ns], uruchomić symulację poprzez kliknięcie na ikonę Run for the time specified on the to-

olbar.

1

2

3

1 2

3

Page 14: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

14

Proszę uważnie prześledzić przebiegi otrzymane w trakcie symulacji. Szczególną uwagę należy zwrócić na linie:

danych wejściowych (din[7:0]), danych wyjściowych (dout[7:0]), gotowości do zapisu danych wejściowych (stbi), potwierdzenia zapisu danych wejściowych (acki), gotowości do wystawienia danych wyjściowych (stbo), potwierdzenia wystawienia danych wyjściowych (acko), określającą ilość danych wewnątrz bufora (count_dif), zapełnienia bufora (full).

Wartość 0 na linii count_dif oznaczać może zarówno brak danych wewnątrz bufora, jak i jedną daną wewnątrz bufora. Położenie wykresów w poziomie można swobodnie zmieniać przy użyciu kursora myszy. Odpo-wiednie ułożenie obserwowanych linii znacznie ułatwi zrozumienia zasady działania bufora FIFO i pomoże w odpowiedzi na poniższe pytania.

1. Do czego służy sygnał almost_empty? 2. Kiedy aktywnym staje się sygnał almost_full? 3. Co sygnalizuje linia half_full? 4. Czy analizowany bufor FIFO ulega przepełnieniu lub niedopełnieniu?

Uwaga. Zespół, który jako pierwszy odpowie poprawnie na wszystkie pytania otrzyma „+”.

Należy utworzyć nowy przebieg czasowy. W tym celu proszę wybrać z menu File opcję New.

W nowym oknie należy wybrać opcję Wave Configuration i kliknąć na przycisk OK.

Page 15: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

15

Proszę wybrać moduł sr i dodać do symulacji wszystkie jego sygnały tak, jak pokazano to na rysunku poniżej.

Ostatni krok dotyczący symulacji polega na jej zresetowaniu, a następnie powtórnemu uruchomieniu dla czasu trwania jak uprzednio. Proszę zaobserwować i przeanalizować otrzyma-ne przebiegi. Moduł sr odpowiada rejestrowi przesuwnemu (SRL) umiejscowionemu w pamięci LUT (Look-Up Table) wewnątrz układu FPGA. Linia adr[0:3] określa, który rejestr jest aktualnie odczytywany. Jest ona tożsama z analizowany uprzednio sygnałem count_dif.

1

2

3

Page 16: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

16

4. Płyta ewaluacyjna Nexys 3

Sprzętowa implementacja rejestru FIFO zostanie przeprowadzona z użyciem układu FPGA z rodziny Spartan 6, który znajduje się na płycie ewaluacyjnej Nexys 3 firmy Digilent.

Płyta będzie zasilana i programowana z komputera PC przy pomocy interfejsu USB 2.0. Przewód USB, który do tego posłuży dołączono do zestawu. Proszę dopilnować, aby został on po-prawnie dołączony do komputera oraz płyty Nexys 3, tj. złączem USB do gniazda w komputerze, a złączem mini USB do gniazda mini USB znajdującego się na płycie Nexys 3, oznaczonego jako USB PROG. Należy dopilnować również, aby zworka na złączce oznaczonej JP1 znalazła się w położeniu USB. Po podłączeniu przewodu do komputera oraz płyty, powinno nastąpić jej „ożywienie” (zapalić powinny się diody oznaczone jako LD9 DONE – sygnalizuje poprawne zakończenie rekonfiguracji układu FPGA z pamięci PROM – oraz LD8 POWER – sygnalizuje obecności napięcia zasilającego). Jeśli tak się nie stało, proszę ustawić przełącznik oznaczony jako SW8 POWER – wyłącza zasilanie – w położeniu ON. Jeśli w tym momencie płyta Nexys 3 dalej pozostaje nieaktywna, należy zwrócić się o pomoc do osoby prowadzącej zajęcia.

3

4

5

2

1

Page 17: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

17

W narzędziu Project Navigator proszę przełączyć tryb widoku (View) z symulacji (Simu-lation) na implementację (Implementation).

Analizowany i symulowany poprzednio układ FIFO wymaga podania na jego wejście clk sygnału zegarowego. Na płycie Nexys 3 znajduje się oscylator o częstotliwości 100 [MHz], oznaczony jako IC9, który zostanie wykorzystany w tym projekcie jak sygnał taktujący. Częstotliwość 100 [MHz] jest zdecy-dowania za duża, by możliwą była przy niej obserwacja zasady działania rejestru FIFO. Musi ona zostać obniżona. Zostanie zmniejszona do 1 [Hz] przez moduł o nazwie prescaler. Moduł ten, napisany w języku VHDL, dołączony był do repozytorium plików i obecnie powinien znajdować się w katalogu roboczym ISE. Proszę dołączyć go teraz do projektu. Osoby zainteresowane mogą zaznajomić się z jego opisem w języku VHDL i zasadą działania.

Page 18: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

18

Do wprowadzenia 8 bitów danych wejściowych na port wejściowy din[0:7] modułu FIFO, posłuży 8 przełączników typu Dip Switch oznaczonych kolejno SW0 – SW7. Wartość liczbową zarówno danych wejściowych, jak i wyjściowych, będzie można zobaczyć na czterech wyświetlaczach siedmiosegmentowych. Wartość liczbowa danych wejściowych wyświe-tlona zostanie z lewej strony wyświetlacza i oddzielone kropką od wartości liczbowej danych wyj-ściowych, wyświetlonych z prawej strony wyświetlacza. Obie wartości zostaną wyświetlone w kodzie HEX. Obsługę wyświetlacza siedmiosegmentowego zapewnia moduł o nazwie led_demux. Zadaniem modułu jest dokonanie translacji danych z kodu binarnego do kodu heksadecymalnego. Prócz tego realizuje on sekwencyjne zapalanie i gaszenie kolejnych bloków wyświetlacza siedmioseg-mentowego. Podobnie jak prescaler, został on dołączony do repozytorium plików i powinien znajdować się w katalogu roboczym ISE. Należy dołączyć go teraz do projektu. Osoby chcące zaznajomić się z jego opisem w języku VHDL i zasadą działania, mogą zrobić to te-raz. Pozostałe 4 wejścia rejestru FIFO (arst, rst, stbi, acko) zostaną obsłużone przy pomocy czterech przycisków monostabilnych znajdujących się na płytce Nexys 3 zaraz poniżej wyświetla-cza siedmiosegmentowego. Przyporządkowanie sygnałów do przycisków będzie wyglądać nastę-pująco:

arst → BTNL, rst → BTNR, stri → BTNU, acko → BTND.

Pozostałe 6 sygnałów wyjściowych (almost_empty, half_full, almost_full, full, acki, stbo) zosta-nie natomiast dołączonych do diod LED oznaczonych kolejno jako LD0 – LD3 oraz LD6 i LD7.

1

3

2

Page 19: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

19

5. Synteza i implementacja projektu

Budowy całości projektu odbędzie się z wykorzystaniem schematu (Schematic). Taki spo-sób projektowania nosi nazwę projektowania mieszanego (Mixed Design), gdyż wykorzystuje zarówno czysty język opisu sprzętu, jak i schematy blokowe.

5.1. Tworzenie schematu blokowego

Proszę kliknąć prawym przyciskiem myszy na ikonę New Source.

W nowo otwartym oknie proszę wybrać jako element źródłowy Schematic. Należy rów-nież nazwać stosownie (File name:) nowy schemat (np. top), a następnie kliknąć na przyciski Next i Finish.

Page 20: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

20

Pojawi się pusty arkusz schematu.

1

3

2

Page 21: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

21

W oknie/zakładce Design proszę zaznaczyć moduł fifo, a następnie wybrać opcję Design Utilities → Create Schematic Symbol i kliknąć na niej dwukrotnie. W ten sposób tworzy się schemat blokowy dla elementu fifo. Postąpić identycznie z modułami led_demux oraz prescaler.

1

2

1

3

Page 22: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

22

Proszę przejść do okna/zakładki Symbols, wybrać lokalizację projektu na dysku i zazna-czyć element fifo.

Następnie skierować kursor myszy nad pusty arkusz schematu i klikając prawym przyciskiem myszy, umieścić na nim blok fifo. Operację należy powtórzyć również dla bloków led_demux oraz prescaler.

1

2

3

2

Page 23: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

23

Następnie należy połączyć porty wejścia i wyjścia poszczególnych bloków ze sobą. Aby tego dokonać należy wybrać stosowne do tego narzędzie. Proszę kliknąć na ikonie Add Wire, a następnie kliknąć na punktach (portach) jakie chcemy ze sobą połączyć. Porty należy połączyć ze sobą w następujący sposób:

clk_1k (prescaler) → clk_1k (led_demux), clk_1 (prescaler) → clk (fifo), datI_I(0:7) (fifo) → data_1(7:0) (led_demux), datO_O(0:7) (fifo) → data_2(7:0) (led_demux).

Dodatkowo należy utworzyć rozgałęzienie magistrali datI_I w taki sposób, by z jednej strony była ona niezakończona (symbolizuje to czerwony kwadrat). Prócz połączeń należy również utworzyć porty wejścia i wyjścia, które posłużą do komunikacji układu FPGA z peryferiami. W tym celu należy kliknąć prawym przyciskiem myszy na ikonie Add I/O Marker i objąć zaznaczeniem wszystkie elementy na schemacie. Automatycznie utworzone zostaną w ten sposób brakujące porty wejścia i wyjścia.

Porty muszą zostać odpowiednio nazwane. W tym celu należy dwukrotnie kliknąć na sym-bol portu i dokonać edycji jego nazwy Nets → Name. Po wprowadzeniu odpowiedniej nazwy w polu Value, proszę kliknąć kolejno na przyciskach Apply oraz OK.

1

2

1

2

Page 24: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

24

Wygląd poprawnie utworzonego schematu (porty i połączenia) przedstawiono poniżej.

W tym momencie należy zaznaczyć, który z modułów dołączonych do projektu jest modu-łem nadrzędnym. W rozważanym przypadku jest to blok top. Aby wskazać go jako element nad-rzędny, należy kliknąć na jego nazwie prawym przyciskiem myszy i z menu kontekstowego wy-brać Set as Top Module.

1

2

Page 25: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

25

5.2. Edycja pliku ucf

Przed przystąpieniem do syntezy pozostaje jeszcze tylko odpowiednio przypisać porty wejścia i wyjścia do fizycznych pinów układu FPGA. Przy większości z elementów znajdujących się na płytce Nexys 3 widnieją prócz nazw również oznaczenia w nawiasach okrągłych (np. BTNL jest oznaczony dodatkowo jako (C4)). Symbole w nawiasach odnoszą się do pinu układu FPGA, do którego fizycznie podłączony jest dany ele-ment. Informacja ta jest niezbędna dla etapu sprzętowej implementacji. Do repozytorium plików dołączony został plik z rozszerzeniem ucf. Należy go dołączyć do projek-tu i zaznajomić się z jego zawartością. Plik należy zmienić w taki sposób, aby przypominał wzorzec zamieszczony poniżej. Po wykonaniu wszystkich zmian, plik ucf należy koniecznie zapisać.

## This file is a general .ucf for Nexys3 rev B board

## To use it in a project:

## - remove or comment the lines corresponding to unused pins

## - rename the used signals according to the project

##Clock signal

Net "clk" LOC=V10;

## 7 segment display

Net "seg<7>" LOC = T17;

Net "seg<6>" LOC = T18;

Net "seg<5>" LOC = U17;

Net "seg<4>" LOC = U18;

Net "seg<3>" LOC = M14;

Net "seg<2>" LOC = N14;

Net "seg<1>" LOC = L14;

Net "seg<0>" LOC = M13;

Net "anoda<0>" LOC = N16;

Net "anoda<1>" LOC = N15;

Net "anoda<2>" LOC = P18;

Net "anoda<3>" LOC = P17;

## Leds

Net "almost_empty" LOC = U16;

Net "half_full" LOC = V16;

Net "almost_full" LOC = U15;

Net "full" LOC = V15;

#Net "Led<4>" LOC = M11;

#Net "Led<5>" LOC = N11;

Net "ack_in" LOC = R11;

Net "stb_out" LOC = T11;

## Switches

Net "data_in<7>" LOC = T10;

Net "data_in<6>" LOC = T9;

Net "data_in<5>" LOC = V9;

Net "data_in<4>" LOC = M8;

Net "data_in<3>" LOC = N8;

Net "data_in<2>" LOC = U8;

Net "data_in<1>" LOC = V8;

Net "data_in<0>" LOC = T5;

## Buttons

#Net "btns" LOC = B8;

Net "stb_in" LOC = A8;

Net "async_rst" LOC = C4;

Net "ack_out" LOC = C9;

Net "rst" LOC = D9;

Page 26: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

26

5.3. Synteza i implementacja

Przy zaznaczonym module top należy dwukrotnie kliknąć prawym przyciskiem myszy na opcji Synthesize – XST. Doprowadzi to do syntezy układu. Po kilkudziesięciu sekundach wyniki syntezy będzie można oglądać w zakładce Design Summary. Po ich przejrzeniu należy następnie wykonać analogicznie implementację (Implement Design) oraz generację pliku programującego (Generate Programming File). Jeśli wszystko przebiegło pomyślnie, proszę zaznajomić się z raportem po implementacji (okno Design Summary), a na-stępnie przystąpić do konfiguracji urządzenia.

1

2

4 3

5

Page 27: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

27

5.4. Rekonfiguracja układy FPGA

W celu zaprogramowania układu FPGA, należy dwukrotnie kliknąć prawym przyciskiem myszy na opcji Configure Target Device. Otwarte zostanie nowe okno, w którym kolejno proszę kliknąć na opcję Boundary Scan (dwukrotnie) i ikonę Initialize Chain (jednorazowo).

1

2

Page 28: Akademia Górniczo – Hutnicza im. Stanisława Staszica w ... Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie Wydział EAIiE Katedra Elektroniki SPRZĘTOWA IMPLEMENTACJA

Sprzętowa Implementacja Algorytmów Ćwiczenie nr 1

28

W nowo otwartym oknie należy zaznaczyć plik, który posłuży do konfiguracji układu FPGA. W naszym przypadku należy zaznaczyć plik o nazwie top.bit, a następnie kliknąć na przy-cisk Open.

W kolejnych oknach należy kliknąć na przyciski No oraz Cancel. Proszę zwrócić uwagę, że typ układu FPGA został rozpoznany automatycznie. Pod symbolem układu oraz jego typem widnieje nazwa pliku, który zostanie użyty do konfiguracji (top.bit). Prawym przyciskiem myszy kliknąć na symbolu imitującym kość FPGA i z pojawiającego się menu kontekstowego wybrać Program.

Pojawi się okno postępu rekonfiguracji układu. Gdy pasek postępu osiągnie 100%, pojawi się ko-munikat Program Succeeded. Układ jest w tej chwili skonfigurowany.

Operując przełącznikami typu Dip Switch oraz przyciskami monostabilnymi, proszę zwe-ryfikować poprawność pracy układu. Proszę pamiętać również, że układ potrzebuje ok. 1 [s] na zatrzaśnięcie danej wejściowej i wystawienie danej wyjściowej.