Laboratorium Sprzętowej Implementacji Algorytmów

Transkrypt

Laboratorium Sprzętowej Implementacji Algorytmów
Wydział: Elektrotechniki, Automatyki, Informatyki i Elektroniki
Kierunek: Elektronika i Telekomunikacja
Rok studiów: III
Laboratorium Sprzętowej Implementacji Algorytmów
Autor:
dr inŜ. Ernest Jamro
TUTORIAL
do
w programie Xilinx ISE
symulacji
graficznej
projektu
Kreator tworzenia nowego projektu
1. Uruchom ISE Projekt Navigator przez podwójne kliknięcie na ikonę znajdująca się na
pulpicie :
2.
Kliknij przycisk New Project w oknie kreatora.
3.
Wpisz nazwę oraz lokalizacje nowego projektu.
4. Kliknij przycisk next.
5. W kolejnym oknie wybierz urządzenie i właściwości projektu.
6. Zmień ustawienia tak aby były zgodne z ustawieniami z rysunkiem (zapytaj się
prowadzącego jaki dokładnie układ FPGA będzie uŜywany, najprawdopodobniej XC3S500E4FG320C), zwróć uwagę na wybrany symulator: ISim. W kaŜdej chwili moŜliwe jest
zmienienie poniŜszych ustawień poprzez wybranie menu: Project/Design Properties
7. Kliknij next Ŝeby kontynuować do zamknięcia kreatora nowego projektu.
Pobierz ze strony www (tuŜ obok miejsca gdzie znajduje się tekst tego tutoriala) plik ze
źródłami. Następnie skopiuj (rozpakuj) wszystkie pliki *.vhd do katalogu głównego
niniejszego tutoriala. Następnie przejdź do programu ISE. Prawym przyciskiem myszki
wybierz nazwę układu FPGA a następnie wybierz: Add Source. W ten sposób dodajemy
istniejące juŜ pliki *.vhd do naszego projektu.
9.
W kolejnym oknie sprawdzamy czy dodane przez nas pliki są traktowane jako
moduły do implementacji czy teŜ symulacji.
Symulacja za pomocą programu ISim
1. Program ISim jest wbudowany w pakiet ISE i podobnie jak ActiveHDL słuŜy do symulacji
HDL. Aby przeprowadzić symulację ISim naleŜy (zob. poniŜszy rysunek):
wybrać zakładkę Simulation
wybrać element nadrzędny (top level), który ma być symulowany
kliknij podwójnie myszką: Simulate Behav. Model co spowoduje uruchomienie programu
ISim. Zwróć uwagę, Ŝe moŜliwa jest zmiana rodzaju symulacji poprzez zmianę ustawień
Behavioral na inną (okienko zaraz pod wybranym widokiem Simulation).
2. W konsekwencji pokaże nam się następujące okno:
Na tym oknie naleŜy odpowiednio pomniejszyć skalę czasu, np. klikając ikonę: Zoom to Full
View. Zaleca się równieŜ zmianę formatu wyświetlanych danych wejściowych i wyjściowych
din i dout z binarnego na heksagonalny.
Następnie naleŜy wybrać sygnały które chcemy obserwować postępując z poniŜszym
rysunkiem:
wybierz moduł uut (Unit Under Test) w oknie Instance and Process Name
dodaj sygnały empty i count_dif poprzez wybranie ich z okna Objects i przeciągnięcie ich na
okno przebiegów czasowych.
wybierz ikonę Restart
zmień czas symulacji na 400ns
uruchom symulację ikoną: Run for the time specified on the toolbar
zapisz ustawienia waveform poprzez wybranie: Manu File/Save As. KaŜda zmiana kodu pliku
VHDL wymaga zamknięcia powtórnego uruchomienia ISim . Dlatego przy powtórnym
uruchomieniu ISim moŜliwe jest łatwe odtworzenie poprzednich ustawień poprzez wybranie
Manu/File/Open i wybranie zapisanych uprzednio ustawień.
3. Zaobserwuj działanie bufora FIFO (First In First Out). Zwróć szczególą uwagę na
sygnały:
Prześledź otrzymane przebiegi czasowe:
din- sygnał danych wejściowych
dout – sygnał danych wyjściowych
stbI – sygnał gotowości wpisu danych na wejściu
ackI – zezwolenie wpis danych na wejściu (potwierdzenie transmisji danych na wejściu)
stbO – sygnał gotowości bufora FIFO do wysłania danych na wyjście – zaprzeczenie sygnału
empty (bufor pusty).
ackO- zezwolenie na odczyt danych na wyjściu (potwierdzenie transmisji danych na wyjściu).
count_dif – sygnał wewnętrzny pokazujący ile danych jest wewnątrz bufora FIFO (uwaga
stan 0 oznacza Ŝe nie znajduje się Ŝadna dana lub teŜ znajduje się tylko jedna dana).
full –bufor FIFO jest pełny
Sprawdź co oznaczają sygnały: almost_empty, almost_full, half_full oraz czy nie następuje
przepełnienie lub niedopełnienie bufora FIFO.
5. Postępując z poniŜszym rysunkiem stwórz nowy przebieg czasowy poprzez wybieranie
menu File/New/Wave Configuration. Następnie wybierz moduł sr w oknie Instance and
Process Name. Dodaj wszystkie sygnały do nowego przebiegu czasowego. Zrestartuj
symulacje (ikona restart) i powtórnie uruchom symuulację (ikona run for ...).
Zaobserwuj otrzymany przebieg czasowy. Przedstawia on moduł SRL – rejestr przesuwny
umiejscowiony w pamięci LUT wewnątrz układu FPGA. Adres określa który rejestr jest
czytany. Sygnał Adr jest tożsamy z sygnałem count_dif występujący na poprzednim wykresie.
Implementacja projektu
Niestety bufor FIFO posiada zbyt duŜo wejść i wyjść aby w prosty sposób nimi ręcznie
sterować. Dlatego implementowany będzie duŜo prostszy moduł: licznik (counter.vhd).
którego starsze bity sterują diodami.Przejść z powrotem do programu ISE. Zaznacz teraz
zakładkę Implementation zgodnie z poniŜszym rysunkiem.
Następnie dodaj do projektu plik counter.vhd (ściągnięty z sieci razem z fifo.vhd), co
przedstawia poniŜszy rysunek (kliknij prawym przyciskiem myszki na wybrany kład FPGA).
Następnie wybierz moduł counter.vhd jako nadrzędny (top module), klikając na niego
prawym przyciskiem myszki, co przedstawia poniŜszy rysunek. W podobny sposób dodaj plik
counter.ucf klikając prawym przyciskiem myszki plik counter.vhd i wybierając menu add
source. MoŜliwa jest edycja pliku counter.ucf zarówno w trybie teksotowym jak i specjalnym
edytorem przeznaczonym dla plików ucf. Aby tego dokonać kliknij dwukrotnie myszką plik
counter.ucf.
Następnie zaimplementuj projekt i wygeneruj plik konfigurujący układ FPGA poprzez
naciśnięcie przycisku Generate Programming File.
MoŜliwe jest odczytanie raportu oraz zmiana ustawień na poszczególnych etapach działania
programu zgodnie z poniŜszym rysunkiem.
Sprawdź zajmowane zasoby układu FPGA. MoŜna tego dokonać na dwóch etapach – po
syntezie (raport syntezy) gdzie pokazywane są uŜyte elementy biblioteczne (macro), takie jak
liczniki, multipleksery, układy dodające. W dalszej części raportu po syntezie szacowane są
uŜyte podstawowe elementy (zasoby) układu FPGA takie jak rejestry, pamięci LUT, pamięci
RAM, itd. UŜyte podstawowe elementy (zasoby) układu FPGA wyŜwietlane są równieŜ w
raporcie po MAPowaniu. Wyniki są jednak dokładniejsze (uaktualnione), dodatkowo
pokazywane są uŜyte wyprowadzenia układu FPGA oraz procentowa zajętość układu FPGA.
Raport po Place & Route pokazuje spełnienie załoŜeń czasowych oraz maksymalne czasy
propagacji.
Warto równieŜ zwrócić uwagę na moŜliwość zmian ustawień (properties), np. dla syntezy
moŜna zmienić optymalizację względem szybkości (maksymalnej częstotliwości pracy) lub
teŜ zajmowanej powierzchni, metod kodowania automatu, ekstrakcji pamięci RAM, itd.
Impact
Impact – programowanie układu FPGA. Podobnie jak w przypadku generacji pliku
konfigurującego aby zaprogramować układ FPGA naleŜy wybrać: Configure Target
Device/Impact.
Programowanie układu FPGA naleŜy dokonać poprzez wybranie Launch Wizard.
Następnie najedz prawym przyciskiem myszki na znaleziony układ FPGA, wybierz plik
konfigurujący *.bit oraz zaprogramuj układ FPGA (prawy przycisk myszki / program).

Podobne dokumenty