Symulacja systemu z procesorem MicroBlaze w środowisku ActiveHDL

Podobne dokumenty
Programowanie procesora Microblaze w środowisku SDK

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

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

MentorGraphics ModelSim

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

Krótkie wprowadzenie do ModelSim i Quartus2

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

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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

Konfiguracja pakietu CrossStudio for MSP

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Realizacja własnych modułów IP Cores w srodowisku EDK

Systemy Czasu Rzeczywistego FPGA

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

Informatyka I : Tworzenie projektu

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

Programowanie niskopoziomowe

Systemy Czasu Rzeczywistego FPGA

Wprowadzenie do środowiska Qt Creator

Materiały dodatkowe. Simulink PLC Coder

Projektowanie z użyciem procesora programowego Nios II

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

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

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

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji.

Inżynieria Materiałowa i Konstrukcja Urządzeń - Projekt

WPROWADZENIE DO INFORMATYKI

Projektowania Układów Elektronicznych CAD Laboratorium

Instalacja i opis podstawowych funkcji programu Dev-C++

1 Moduł Modbus ASCII/RTU 3

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.

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

Programy LeftHand - Obsługa plików JPK. Wrzesień 2016

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

C++ - [1-3] Debugowanie w Qt Creator

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

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

1. Uruchomić Aldec Actve-HDL 9.2 (skrót na pulpicie). Program uruchamia się dosyć długo cierpliwości.

Spis treści. 1 Moduł Modbus TCP 4

Programowanie Systemów Wbudowanych

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Instrukcja obsługi programu PLOMP PLUS FM

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Projektowanie własnego modułu na przykładzie modułów OPB_MEM oraz OPB_EPP

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Naprawa uszkodzonej bazy Interbase/Firebird

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Instrukcja użytkownika. Aplikacja dla Comarch Optima

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

Podstawowe zasady tworzenia projektu w środowisku uvision 4.0, pisanie programów w asemblerze 8051

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

Programy LeftHand - Obsługa plików JPK. Luty 2017

Instrukcja użytkownika. Aplikacja dla WF-Mag

Wygląd okna aplikacji Project Navigator.

SPRZĘTOWA IMPLEMENTACJA ALGORYTMÓW

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

2. Architektura mikrokontrolerów PIC16F8x... 13

Programowanie Systemów Czasu Rzeczywistego

Instrukcja instalacji i obsługi programu Szpieg 3

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

Aktualizacja Firmware >>> Android Jelly Bean >>> wersja 1

Tworzenie pliku źródłowego w aplikacji POLTAX2B.

ALGORYTM URUCHOMIENIA I OBSŁUGI PROGRAMU ACTIVE-HDL (zajęcia wprowadzające) Uruchomienie programu i utworzenie nowego projektu

Instrukcja instalacji i konfiguracji bazy danych SQL SERVER 2008 EXPRESS R2. Instrukcja tworzenia bazy danych dla programu AUTOSAT 3. wersja 0.0.

INSTRUKCJA UŻYTKOWANIA

Quartus. Rafał Walkowiak IIn PP Wer

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

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

Spis treści

Electronic Infosystems

Tomasz Greszata - Koszalin

1 Moduł Modbus ASCII/RTU

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

Instrukcja do oprogramowania ENAP DEC-1

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Rozdział 1. Informacje ogólne

WPROWADZENIE DO ŚRODOWISKA SCICOS

Pracownia internetowa w szkole ZASTOSOWANIA

Jak szybko wystawić fakturę w LeftHand? Instalacja programu

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Ćwiczenie 8 Implementacja podpisu cyfrowego opartego na standardzie X.509

Instalacja programu:

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Rozwiązywanie problemów z Javą

PRACA W ZINTEGROWANYM ŚRODOWISKU URUCHOMIENIOWYM - IDE Keil μvision 2

Systemy uruchomieniowe

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Programowanie w Javie

Instalacja oprogramowania Rigel Med-eBase dla systemów Windows XP, 7 oraz 8.

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Transkrypt:

Symulacja systemu z procesorem MicroBlaze w środowisku ActiveHDL wersja 6.06.2007 Zespół Rekonfigurowalnych Systemów Obliczeniowych AGH Kraków http://www.fpga.agh.edu.pl/

Poniższe ćwiczenie jest kontynuacją ćwiczenia firmy Xilinx EDK MicroBlaze Tutorial. Aby przystąpić do wykonania tego ćwiczenia należy w pierwszej kolejności dokonać realizacji systemu z procesorem MicroBlaze wg. powyższego ćwiczenia. Celem ćwiczenia jest na zapoznaniu się ze sposobem i możliwością symulacji systemu zaprojektowanego przy wykorzystaniu pakietu EDK przy pomocy dostępnego do symulacji środowiska ActiveHDL firmy ALDEC Symulacja strukturalna systemu MicroBlaze Powyższa symulacja polega na sprawdzeniu działania systemu MB po syntezie systemu do sieci połączeń elementów bibliotecznych technologii FPGA firmy Xilinx. Jest to tak zwana ang. structural simulation. Oznacza to, że: symulacja nie uwzględnienia opóźnień czasowych połączeń pomiędzy elementami logicznymi powstałymi wskutek implementacji czyli rozmieszczenia elementów w strukturze FPGA i połączenia tych elementów przy pomocy dostępnych zasobów połączeniowych symulacja nie umożliwia śledzenia kodu źródłowego systemu czego konsekwencja jest brak możliwości zlokalizowania ewentualnych błędów funkcjonalnych w opracowywanym kodzie. Ten sposób symulacji jest właściwy jedynie w celu weryfikacji pracy układu jeżeli zastosowane w systemie moduły IPCore były już wcześniej przetestowane i sprawdzone przy pomocy symulacji funkcjonalnej (to znaczy symulacji kodu źródłowego modułów). Nie jest zalecany do weryfikacji poprawności funkcjonalnej nowo tworzonych modułów IPCore. W naszym przypadku symulujemy pracę gotowych, sprawdzonych modułów dostarczonych przez Xilinx ten sposób symulacji jest więc dopuszczalny. Brak możliwości dokonania symulacji funkcjonalnej (ang. behavioral simulation) systemu wynika z braku dostępu do źródeł stosowanych IPCore. Przygotowanie systemu z ćwiczenia EDK MicroBlaze Tutorial do symulacji. 1. Usunąć (wstawić komentarz) z wykonywanego przez nasz system z Microblaze programu funkcje komunikacji z portem RS232 (funkcja xil_prinft) oraz funkcję opóźnień czasowych (funkcja sleep()). Należy tego dokonać w programie Platform Studio w zakładce Applications w kodzie programu. Chodzi o to, aby przeprowadzana symulacja nie była zbyt czasochłonna Uwaga. Należy sobie zdawać sprawę, że przesymulowanie kilku sekund pracy sytemu MB wymaga kilkunastu minut pracy symulatora. 2. W menu Project->Project Options wybrać strukturalny typ przeprowadzanej symulacji. Nie zaznaczamy żadnych bibliotek. Zaznaczamy: OK

3. Wygenerować model systemu przeznaczony do symulacji poprzez funkcję z menu Simulation -> Generate Simulation HDL files. W wyniku działania generatora w katalogu./simulation/structural powstaje symulacyjny model systemu. Przed przystąpieniem do dalszej części ćwiczenia należy sprawdzić, czy wspomniany katalog rzeczywiście został utworzony. Praca z programem AHDL 4. Uruchomić program Active-HDL. Założyć nowy projekt. Ze względów porządkowych dobrze jest utworzyć ten projekt w katalogu znajdującym się w katalogu projektowym EDK. Ułatwi to dalsza pracę z systemem. 5. Z katalogu <Moj projekt>/simulation/structural dodać do tworzonego projektu wszystkie pliki z rozszerzeniem.vhd. Warto przy tym zwrócić uwagę na check box: Make Local Copy. Jeżeli podczas dołączania do projektu nowych plików odznaczymy ten box, to później jeżeli dokonamy zmian w EDK Platform Studio i na nowo wygenerujemy model symulacyjny będą one automatycznie uwzględniane w naszym otwartym projekcie AHDL 6. Kompilujemy próbnie pliki przy pomocy funkcji menu Design->Compile All Uwaga. W przypadku pojawienia się pytania Up to date? zaznaczamy Nie. Przygotowanie pliku testbench do symulacji systemu Dalsza praca z systemem wymaga użycia pliku testowego testbench. Mimo że AHDL umożliwia symulację bezpośrednio testowanego systemu poprzez ustawienie jego pliku nadrzędnego jako Top Level, a następnie uruchomienie symulacji to metoda ta nie sprawdzi się przy testowaniu projektu z EDK 1. Do symulacji systemu posłużymy się plikiem testbench utworzonym automatycznie przez środowisko Active-HDL. W skompilowanej bibliotece odnaleźć moduł system(structure) kliknąć go prawym przyciskiem myszy i ustawić moduł jako nadrzędny (Set as Top- Level). Następnie wygenerować plik testbench dla tego dla tego modułu: kliknąć go prawym przyciskiem myszy i wybrać Generate TestBench

Zaznaczamy: Dalej Zaznaczamy: Dalej Zaznaczamy: Dalej Zaznaczmy: Zakończ W wyniku wykonanych operacji w drzewie projektu AHDL utworzony zostanie katalog TestBench z 3 plikami: system_tb.vhd, system_tb_tim_cfg.vhd i system_tb_runtest.do.

2. Aby symulacja przyniosła efekt należy zainicjować pamięć programu symulowanego systemu binariami otrzymanymi w wyniku kompilacji kodu programu. Bianria te znajdują cię w pliku system_ini.vhd. Należy zapoznać się ze strukturą tego pliku a następnie w pliku żródłowym naszego testbench a tj. pliku system_tb.vhd zmienić typ konfiguracji systemu. Zamiast : configuration TESTBENCH_FOR_system of system_tb is for TB_ARCHITECTURE for UUT : system use entity work.system(imp); end TESTBENCH_FOR_system; powinno byc: configuration TESTBENCH_FOR_system of system_tb is for TB_ARCHITECTURE for UUT : system use configuration work.system_conf; end TESTBENCH_FOR_system; W ten sposób dyrektywy generic typu: INIT_xx w module lmb_bram_wrapper opisującym pamięć programu BRAM zostaną z wartości domyślnych zmienione na wartości z konfiguracji system_conf. Dyrektywa generic INIT_XX tradycyjnie służy do inicjowania zawartości pamięci block ram w narzędziach Xilinx. Jest ona rozpoznawana również przez kompilator i umożliwia inicjowanie pamięci podczas konfiguracji sytemu w FPGA. Zawartość pamięci znajduje się wtedy w pliku.bit. 3. Wpisać do TestBench wymuszenia sygnałów CLK_PROC i RESET_PROC: CLK_PROC: process(clk) begin CLK<=not CLK after 10ns end RESET_PROC: process: RST<= 1 wait for 20ns RST<= 0 wait; end process; 4. Uruchomić plik system_tb_runtest.do w celu skompilowania TestBench. Klikamy prawym klawiszem myszy i wybieramy polecenie Execute. Uwaga. W przypadku pojawienia się pytania Up to date? zaznaczamy Nie.

5. Dodać do listy obserwowanych sygnałów magistralę instrukcji LMB (adres i dane). Należy w tym celu: przejść do zakładki Structure w oknie projektu AHDL. odszukać skompilowany moduł procesora MicroBlaze wyświetlić listę portów procesora MicroBlaze i odszukać wspomniane magistrale. Nazwy użyte dla poszukiwanych sygnałów można znaleźć w dokumencie http://galaxy.uci.agh.edu.pl/~jamro/opb/org/mb_ref_guide.pdf na stronie 33 w tablicy 2-2 (nazwy wspomnianych magistral to: INSTR i INSTR_ADDR) 6. Jeżeli wszystko zostało wykonane poprawnie to na magistrali instrukcji pojawiać się będą inkrementowane adresy i dane odczytywane z pamięci, a po pewnym czasie można zaobserwować zmiany na liniach leds. Częste błędy to: niewłaściwa polaryzacja sygnału sys_rst brak zmiany konfiguracji dla pamięci BRAM w pliku testbench Debugowanie programu 1. W programie Platform Studio ustawić opcje kompilacji (w zakładce Aplications, w rozwiniętym drzewie projektu dwa razy kliknąć na Compiler Options ) tak aby generowane były pliki wynikowe dołączonymi z symbolami oraz dla lepszej spójności kodu skompilowanego ze źródłowym wyłączyć optymalizację (Optimization Level: No optimization) Zaznaczamy: OK 2. Skompilować powtórnie program poprzez menu Software->Build All User Applications

3. Uruchomić okno debuggera w programie Platform Studio: Debug->Launch Software Debugger. 4. W oknie debugera zmienić tryb SOURCE na MIXED i prześledzić wykonanie pętli w języku asemblera mikroprocesora. 5. Poprzez menu Platform Studio uruchomić EDK Shell: Project->Launch EDK Shell. Nawigować do katalogu <<Mó_ projekt>/<nazwa_projektu_softwarowego> i odszukać plik executable.elf. Uruchomić program deassembulujący: mb-objdump d executable.elf > objdump. Otworzyć plik objdump w oknie Platform Studio lub ActiveHDL (w edytorze Notepad plik będzie wyglądał bardzo źle ponieważ jest to plik tekstowy typu UNIX). Porównać adresy w pamięci programu wyświetlone w objdump z wyświetlanymi w oknie symulatora Active-HDL na magistrali adresowej i danych. Prześledzić kod asemblera który odpowiada poszczególnym operacjom opisanym w języku C. Przeanalizować linię: j = (j+1)%16; (opis komend instrukcji maszynowych procesora MicroBlaze znajduje się w dokumentacji procesora).