Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

TWORZENIE SYSTEMU NIOS II

Podobne prezentacje


Prezentacja na temat: "TWORZENIE SYSTEMU NIOS II"— Zapis prezentacji:

1 TWORZENIE SYSTEMU NIOS II
Orkiszewski Marcin Koło Naukowe Układów Cyfrowych DEMAIN

2 Altera NIOS II Wymagane oprogramowanie: Quartus II v. 9.0
Nios IDE v. 9.0 Do pobrania na stronie

3 Uwaga! Katalogi, w których instalujemy oprogramowanie oraz w których zakładamy projekty: ! NIE MOGĄ zawierać spacji !

4 Uwaga! Unikać powtarzania nazw: - block diagram: <..>_project
- SOPC: <..>_sopc - Nios IDE <..>_soft W razie problemów

5 Tworzenie systemu

6 1. Utworzenie projektu (1/3)
Utworzenie pliku z obrazem systemu: Quartus II File New… Block Diagram/Schematic File

7

8 1. Utworzenie projektu (2/3)
Założenie projektu: File Save As …/szkolenie1.bdf „Do you want to create a new project with this file?” Tak

9 1. Utworzenie projektu (3/3)
Wybór układu: Family: Cyclone II Device: EP2C35F672C6

10

11 2. Stworzenie systemu NIOS II (1/5)
Utworzenie systemu Nios II: Tools SOPC Builder System Name: szkolenie1_sopc Target HDL: VHDL

12

13 2. Stworzenie systemu NIOS II (2/5)
Dodanie procesora CPU: Nios II Processor Nios II/e

14

15 2. Stworzenie systemu NIOS II (2/5)
Dodanie pamięci RAM (On-Chip): Memories and Memory Controllers On-Chip On-Chip Memory Memory type: RAM Data width: 32 Total memory size: KBytes

16 2. Stworzenie systemu NIOS II (2/5)
Dodanie komponentu JTAG Uart: Interface Protocols Serial JTAG UART

17 2. Stworzenie systemu NIOS II (2/5)
Dodanie portów I/O (diody LED): Peripherals Microcontroller Peripherals PIO (Parallel I/O) Output ports only - Width: 8

18 2. Stworzenie systemu NIOS II (2/5)
Dodanie portów I/O (przełączniki SWITCH): Peripherals Microcontroller Peripherals PIO (Parallel I/O) Input ports only - Width: 8

19 2. Stworzenie systemu NIOS II (2/5)
Dodanie licznika czasu (Timer): Peripherals Microcontroller Peripherals Interval Timer Period: 1 ms + Writable period, Start/Stop control bits

20 2. Stworzenie systemu NIOS II (2/5)
Zmiana nazw komponentów (Ctrl + R): pio_0 leds pio_1 buttons timer_1 timer Powyższe nazwy będą używane w kodzie programu!

21

22 2. Stworzenie systemu NIOS II (3/5)
Przydzielenie przestrzeni adresowej i priorytetów przerwań: System Auto-Assign Base Addresses Auto-Assign IRQ’s

23

24 2. Stworzenie systemu NIOS II (4/5)
Ustawienie adresu początku programu i adresu wektora przerwań: cpu_0: Reset Vector: onchip_memory2_0 Exception Vector: onchip_memory2_0

25

26 2. Stworzenie systemu NIOS II (5/5)
Zapisanie i wygenerowanie systemu: Generate Save

27

28 3. Dodanie systemu do projektu (1/2)
Dodanie obrazu systemu do pliku projektu: Edit Insert Symbol… Project szkolenie1_sopc Dodanie pinów wejścia/wyjścia: input + output

29

30 3. Dodanie systemu do projektu (2/2)
Połączenie pinów z systemem: clk_ clk reset_n reset in_port_to_the_buttons[7..0] switch[7..0] out_port_from_the_leds[7..0] led[7..0]

31

32 4. Przypisanie pinów do projektu
Dodanie obrazu systemu do pliku projektu: Assignments Import Assignments… File name: DE2_PIN.csv

33

34 5. Zapisanie i kompilacja projektu
Processing Start compilation - Wykorzystanie komórek logicznych - Wykorzystanie bloków pamięci Minimalna częstotliwość taktowania - Compilation Report Timing Analizer

35

36 6. Załadowanie obrazu do układu
Tools Programmer - Hardware Setup ByteBlaster Program/Configure Start - Czasami przydatne bywa włączenie zasilania  -

37 Programowanie

38 7. Założenie projektu (1/2)
File New Project… Nios II C/C++ Application

39

40 7. Założenie projektu (2/2)
Wskazanie obrazu systemu (.ptf): Select project template: Blank Project Name: szkolenie1_soft SOPC Builder System PTF File: ../szkolenie1_sopc.ptf Finish

41 8. Kompilacja biblioteki
Prawy klawisz myszki na szkolenie1_soft_syslib Properties System Library Reduced device drivers Small C library itp.. Build Project

42

43 9. Dodanie plików źródłowych (C/C++)
Prawy klawisz myszki na szkolenie1_soft Import… File System szkolenie1.h szkolenie1_1.c szkolenie1_2.c

44 10. Uruchomienie projektu
Run Run… Nios II Hardware Main Project: szkolenie1_soft Target Connection: USB-Blaster Run

45

46 Program 1

47 Program 1 Typy danych: Nagłówki: alt_8, alt_u8 alt_16, alt_u16
<stdio.h> - funkcja printf() ”system.h” - adresy komponentów wygenerowane przy tworzeniu systemu SoPC

48 Program 1 int main() { alt_u8 variable; while(1)
variable = IORD_ALTERA_AVALON_PIO_DATA( BUTTONS_BASE ); IOWR_ALTERA_AVALON_PIO_DATA( LEDS_BASE, variable ); } return 0;

49 Komunikacja z komponentami
Przez makrodefinicje: IOWR_ALTERA_AVALON_PIO_DATA( LEDS_BASE, variable ); (wpis) (dane) typ komponentu rejestr adres bazowy variable = IORD_ALTERA_AVALON_PIO_DATA( BUTTONS_BASE ); (dane) (odczyt) ”system.h” - nagłówek z adresami bazowymi komponentów ”altera_avalon_pio_regs.h” – nagłówek z makrami

50 Komunikacja z komponentami
Przez rejestry: STATUS – stan pracy komponentu np. ukończenie liczenia, zgłoszenie przerwania CONTROL – rejestr konfiguracyjny np. odblokowanie przerwań, start, stop, reset, itp.. DATA – rejestr danych SPECJALISTYCZNE – w zależności od komponentu np. DIRECTION, PERIODL, PERIODH, itd..

51 Komponent PIO – mapa rejestrów

52 Program 2

53 Program 2 int main() { IOWR_ALTERA_AVALON_TIMER_PERIODH( TIMER_BASE, 0x02FA ); IOWR_ALTERA_AVALON_TIMER_PERIODL( TIMER_BASE, 0xF080 ); IOWR_ALTERA_AVALON_TIMER_CONTROL( TIMER_BASE, 0x02 | 0x04 ); while(1) status = IORD_ALTERA_AVALON_TIMER_STATUS( TIMER_BASE ); if( status & 0x01 ) IOWR_ALTERA_AVALON_TIMER_STATUS( TIMER_BASE, 0 ); // do something… }

54 Komponent TIMER – mapa rejestrów

55 Program 2 IOWR_ALTERA_AVALON_TIMER_CONTROL( TIMER_BASE, 0x02 | 0x04 );
Ustawienie pracy ciągłej (nie trzeba restartować) oraz uruchomienie licznika

56 Program 2 IOWR_ALTERA_AVALON_TIMER_PERIODH( TIMER_BASE, 0x02FA );
IOWR_ALTERA_AVALON_TIMER_PERIODL( TIMER_BASE, 0xF080 ); Dlaczego takie wartości ? = 0x02FAF080 = Jeden okres licznika trwa 50 MHz (clk) dekrementacja co 20 ns * 20 ns = 1 sekunda PERIODH PERIODL

57 Program 2 status = IORD_ALTERA_AVALON_TIMER_STATUS( TIMER_BASE );
if( status & 0x01 ) IOWR_ALTERA_AVALON_TIMER_STATUS( TIMER_BASE, 0 );

58 Materiały dostępne na stronie Koła
Publikacje 17 XI 2009


Pobierz ppt "TWORZENIE SYSTEMU NIOS II"

Podobne prezentacje


Reklamy Google