Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 wersja startowa dla słuchaczy studiów niestacjonarnych. Laboratorium Mikroprocesorowych Układów Sterowania instrukcja wspomagająca realizację projektu
1. Wstęp Laboratorium Mikroprocesorowych Układów Sterowania składa się z pięciu spotkań, na których realizowany jest projekt polegający na: a) utworzeniu struktury cyfrowej zawierającej wejścia, wyjścia, układ PLL oraz procesor NIOSII b) wyborze i parametryzacji modułów procesora takich jak CPU, pamięć, układy transmisji szeregowej, układy portów równoległych oraz ustawieniu właściwych połączeń logicznych i adresów w powstałej strukturze procesora c) napisaniu programu w języku C wykonywanego przez procesor NIOSII służącego testom wybranych układów elektronicznych umieszczonych na płytce edukacyjnej DE2 Na wstępnie należy pobrać i zainstalować program Quartus13.0sp1 ze strony www.altera.com Wybrać Design Tools & Services, Design Software i wybrać Quartus II Web Edition Software
Nacisnąć przycisk Download Software Web Edition Free. Wskazać na wersję 13.0sp1
Można pobrać pełne oprogramowanie w postaci obrazu DVD lub zdecydować się na pobranie wersji minimalnej ale wystarczającej. Sprowadza się to do wyboru jedynie dwóch komponentów i naciśnięciu przycisku Download Selected File. Następnie program należy zainstalować przy zachowaniu jego defaultowych ustawień i podpowiedzi. Gdyby pojawiła się potrzeba zainstalowania sterowników dla programatora Byte-Blaster należy odszukać te sterowniki w folderze c:\altera\13.0sp1\quartus\drivers\ lub podobnym.
Istalacja powinna spowodować, że w menu start pojawi się folder Altera 13.0.1.232 Web Edition. Proszę zwrócić uwagę na dwa środowiska: a) Quartus II 13.0sp1 (63-bit) --- tutaj powstaje struktura cyfrowa oraz procesor b) Nios II 13.0sp1 Software Build Tool For Eclipse --- tutaj piszemy kod program dla procesora NIOSII 2. Materiały pomocnicze oraz literatura Na stanowisku komputerowym w folderze MUS_NS umieszczono materiały pomocnicze: a) Procesory_NiosII_cz1.pdf, Procesory_NiosII_cz2.pdf, Procesory_NiosII_cz3.pdf, Procesory_NiosII_cz4.pdf artykuły poświęcone tworzeniu procesora NIOS II b) DE2_System_v1.5.zip pakiet przykładowych projektów, ćwiczeń oraz dokumentacji dla zestawu DE2, znajdują się tu między innymi DE2_UserManual.pdf, DE2_schematics.pdf oraz DE2_Pin_Table.pdf c) RAPID_SOPC.pdf książka napisana w języku angielskim wprowadzająca do projektowania i prototypowania z wykorzystaniem układów FPGA d) Materiały do wykładu w postaci plików pdf Materiały pomocnicze znajduje się również w zasobach internetowych.
3. Projekt struktury startowej w środowisku Quartus II 1. Uruchomić z menu START program Quartus II 13.0sp1 (64-bit) 2. Wybrać z menu górnego głównego paska File, New Project Wizard 3. Po pojawieniu się nowego okna, w odsłonie 1/5 (Directory, Name, Top-Level Entity ) należy wprowadzić ścieżki i nazwy projektu, krótkie, bez spacji oraz polskich czcionek 4. W odsłonie Add Files [page 2 of 5] wybieramy next 5. W odsłonie Family & Device Settings [page 3 of 5] należy zaznaczyć opcje jak na ilustracji poniżej i kliknąć Next 6. W odsłonie EDA Tool Settings [page 4 of 5] wybieramy next a następnie kończymy naciskając przycisk Finish 7. Tworzymy plik struktury cyfrowej, wybieramy menu New a następnie zaznaczamy Desing Files, Block Diagram/Schematic File. Naciskamy OK. 8. Zapisujemy plik z nazwą sugerowaną przez system 9. Należy teraz zaimportować listę nazw wyprowadzeń jest to plik, który znajduje się w materiałach pomocniczych, w pliku DE2_System_v1.5.zip. Należy rozpakować i odszukać plik \DE2_demonstrations\DE2_Default\DE2_Default.qsf. Wskazówki umieszczone są na następnej ilustracji
Wybrać Import Assigments Wskazać plik DE2_Default.qsf Upewnić się, że import zostały zakończony powinien pojawić się napis w oknie konsoli środowiska QUARTUS II 10. Na tym etapie można przystąpić do budowy procesora NIOS, która raczej przypomina składanie procesora z dostępnych komponentów. Wybrać menu Tools a następnie nacisnąć Qsys pojawi się nowe okno, w którym projektant tworzy procesor NIOSII
11. W małym oknie po lewej stronie o nazwie Component Library, w gałęzi Embedded Processors wybieramy Nios II Processor i klikamy przycisk znajdujący się poniżej +Add 12. Pojawi się okno parametryzacji modułu CPU, który został właśnie wybrany. Proszę zwrócić uwagę na zakładki, zwłaszcza na zakładkę Core Nios II, w której wybieramy wersję rdzenia CPU (zaznaczyć wybór Nios II/e) oraz wskazujemy pamięci, z którymi rdzeń CPU będzie współpracował. Jednakże pamięci te pojawią się dopiero po ich dodaniu do projektu procesora oraz skonfigurowaniu połączeń logicznych między wszystkimi modułami. Należy więc nastawić się na parametryzację iteracyjną. W niniejszym punkcie wybieramy jedynie Nios II/e i klikamy Finish 13. W małym oknie po lewej stronie o nazwie Component Library, w gałęzi Memories and Memory Interfaces wybieramy SDRAM Interfaces, SDRAM Control i klikamy przycisk znajdujący się poniżej +Add. Tutaj zmieniamy jedynie szerokość szyny danych z 32 bitów na 16 i zatwierdzamy przyciskiem Finish 14. Teraz postępując analogicznie, należy odszukać komponent JTAG UART i dodać do struktury 15. Dodać ostatni element jakim jest port PIO (Parallel I/O) 8-bitowy 16. Ustanowić połączenia logiczne między komponentami, na ten czas należy zaznaczyć wszystkie punkty gdzie krzyżują się ścieżki powiązań. Po zaznaczeniu (kropki, miejsca przecięcia powinny być czarne) należy wybrać z menu System, Assign Base Addresses służy to uporządkowaniu adresów komponentów. Liczba błędów powinna być teraz zredukowana do dwóch tak jak jest to pokazane na ilustracjach
Przez zaznaczeniem powiązań Po zaznaczeniu powiązań oraz uporządkowaniu adresów 17. Teraz należy powrócić do edycji i parametryzacji modułu CPU. Kliknąć na moduł nios2_qsys_0 oraz wskazać oraz wybrać pamięć SDRAM w zakładce Core Nios II
18. Po wskazaniu pamięci, z którymi współpracuje CPU powinny pozostać jedynie trzy ostrzeżenia. Aby je usunąć należy wykonać trzy czynności polegające na podwójnym kliknięciu w miejsca oznaczone na ilustracji czerwoną strzałką 19. Aktualizujemy adresy modułów tak jak w punkcie 16 a następnie w zakładce Generation naciskamy przycisk Generate. Po udanej kompilacji struktury procesora zamykamy okno główne narzędzia Qsys i przechodzimy do głównego okna projektu w środowisku Quartus. 20. Wprowadzić do schematu symbol procesora klikając dwukrotnie lewym przyciskiem myszy. Otworzy się okno biblioteki elementów. Wskazujemy na procesor i zatwierdzamy. Następnie na schemacie klikamy prawym przyciskiem myszy wskazując na procesor i wybieramy z menu kontekstowego Generate Pins For Symbol Ports. Aby sprawdzić poprawność projektu na tym etapie wybieramy z menu głownego Processing, Analyze Current File. Jeśli pojawi się błąd jak na ilustracji
Należy dodać plik opisujący procesor. Menu Project, Add/Remove Files In Project. Na ilustracji poniżej nazwa procesora jest px, tutaj należy wskazać pliki własne. 21. Jeśli sprawdzenie schematu zakończyło się bez błędów należy zmienić nazwy wyprowadzeń na takie, które występują w mapie wyprowadzeń, które została zaimportowana w punkcie 9 22. Dodanie układu PLL z dwoma zegarami 50MHz. Należy wprowadzić element z biblioteki o nazwie ALTPLL i ustawić jego parametry tak, by były one zgodne z poniższą ilustracją. Zegar C0: 50MHz, faza 0, zegar C1: 50MHz, faza -60. Następnie należy uruchomić pełną kompilację menu Procesing, Start Compilation 23. Po kompilacji włączyć zasilanie płytki i zaprogramować ją. Wybrać z menu Tools, Programmer a następnie nacisnąć przycisk START 24. W tej chwili rozpoczyna się etap programowania procesora NIOSII, którego struktura cyfrowa została wgrana do zestawu DE2. Proszę uruchomić z menu Tools, Nios II Software Build Tools For Eclipse. Bezwzględnie należy wskazać swój folder, czyli workspace. W przeciwnym razie środowisko otworzy strukturę projektu innej grupy laboratoryjnej
25. Po uruchomieniu nowego środowiska do pisania kodu w języku C i pisania programów dla procesora NIOSII należy utworzyć nowy projekt, menu File, New, Nios II Application and BSP form Template 26. Po otwarciu okna dialogowego należy podać ścieżkę do pliku opisu procesora, nazwę właśnie tworzonego projektu oraz wybrać template projektu (wzorzec). Ilustruje to rysunek na następnej stronie
Proszę pamiętać o wskazaniu swojego procesora, może on mieć nazwę różną od px 27. Teraz można przystąpić do kompilacji wzorca (później można ten kod zmienić na swój). Prawym przyskiem myszy wskazać na folder projektu w oknie drzewa projektu. Następnie z menu kontekstowego wybrać Run As, Nios II Hardware
28. Przed finałowym połączeniem z procesorem NIOSII znajdującym się w układzie CYCLONEII na płytce DE2 może wystąpić potrzeba wskazania urzadzenia ByteBlaster. Sprowadza się do naciśnięcia REFRESH CONNCECTION 29. Po połączeniu środowiska NiosII Build Tools oraz załadowaniu kodu programu, w konsoli systemowej powinien pojawić się napis wysłany z procesora NIOSII/e do komputera PC: Hello from Nios II Celem ćwiczenia jest utrwalenie postępowania wg instrukcji oraz wstępna zmiana kodu programu procesora. CDN