Download
komponenty typu slave n.
Skip this Video
Loading SlideShow in 5 Seconds..
KOMPONENTY TYPU SLAVE PowerPoint Presentation
Download Presentation
KOMPONENTY TYPU SLAVE

KOMPONENTY TYPU SLAVE

123 Vues Download Presentation
Télécharger la présentation

KOMPONENTY TYPU SLAVE

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. KOMPONENTY TYPU SLAVE 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 www.altera.com

  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 www.google.com

  5. Tworzenie systemu

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

  7. 1. Utworzenie projektu (2/3) Założenie projektu: File Save As... …/szkolenie3.bdf „Do you want to create a newprojectwiththis file?” Tak

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

  9. 2. Stworzenie systemu NIOS II (1/5) Utworzenie systemu Nios II: ToolsSOPC Builder System Name: szkolenie3_sopc Target HDL: VHDL

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

  11. 2. Stworzenie systemu NIOS II (2/5) Dodanie pamięci RAM (On-Chip): Memories and MemoryControllers On-Chip On-ChipMemory Memorytype: RAM Data width: 32 Total memorysize: 16 KBytes

  12. 2. Stworzenie systemu NIOS II (2/5) Dodanie komponentu JTAG Uart: InterfaceProtocols Serial JTAG UART

  13. 2. Stworzenie systemu NIOS II (3/5) Przydzielenie przestrzeni adresowej i priorytetów przerwań: System • Auto-AssignBaseAddresses • Auto-AssignIRQ’s

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

  15. Tworzenie komponentu

  16. AlteraNios II

  17. Altera Avalon (1/2) • „System” realizujący połączenia między komponentami • MemoryMapped – komponenty rozmieszczone w przestrzeni adresowej • StreamingMode – bezpośrednie połączenie między komponentami

  18. Altera Avalon (2/2) • Każdy port typu Master posiada bezpośrednie połączenie z wybranym portem typu Slave • W przypadku próby jednoczesnego dostępu wykonywany jest arbitraż (w przykładzie 4:1)

  19. Sygnały (1/6) Sygnały kontrolne: • [in] reset – reset • [in] clk – zegar • [out] irq – przerwanie (musi trwać wystarczająco długo, mechanizm dezaktywacji)

  20. Sygnały (2/6) Szyny danych: • [in] writedata(.. downto 0) – szyna przesyłająca dane do komponentu • [out] readdata(.. downto 0) – szyna odczytująca dane z komponentu • [bidir] data(.. downto 0) – szyna dwukierunkowa Szyny muszą być tej samej szerokości. Szerokość szyn musi być potęgą 2.

  21. Sygnały (3/6) address - szyna adresowa • [in] address(.. downto 0) – szyna adresowa określająca rejestr docelowy IOWR( SWAP_IN1_BASE, 1, data); address <= b’01’ if (address = b’00’ ) then register_0 <= writedata; elsif (address = b’01’ ) then register_1 <= writedata; … Czy to zadziała z DMA ??

  22. Sygnały (4/6) write - żądanie zapisu

  23. Sygnały (5/6) read - żądanie odczytu

  24. Sygnały (6/6) waitrequest - żądanie wstrzymania transferu

  25. Przykładowy zapis process(clk) variableaddr : INTEGER := conv_integer(address); begin if(clk'eventandclk ='1') then if( (write ='1') and (chipselect='1') ) then registers(addr) <= writedata; end if; end if; end process;

  26. Przykładowy odczyt process(clk) variableaddr : INTEGER := conv_integer(address); begin if(clk'eventandclk ='1')then if( (read='1') and (chipselect='1') ) then readdata<= registers(addr); endif; end if; end process;

  27. Konwencja nazw sygnałów (typ portu)_(nazwa portu)_(nazwa sygnału) Np. csi_clock_clk : inSTD_LOGIC; csi_clock_reset_n : inSTD_LOGIC; ins_interrupt_irq : out STD_LOGIC; avs_in1_chipselect : inSTD_LOGIC; avs_in1_write_n : inSTD_LOGIC; avs_in1_address : inSTD_LOGIC_VECTOR(1 downto 0); avs_in1_writedata : inSTD_LOGIC_VECTOR(31 downto 0); avs_out1_chipselect : inSTD_LOGIC; avs_out1_read_n : inSTD_LOGIC; avs_out1_address : inSTD_LOGIC_VECTOR(1 downto 0); avs_out1_readdata : out STD_LOGIC_VECTOR(31 downto 0));

  28. Dodanie komponentu

  29. Uwaga! Katalog z kodem komponentu musi znajdować się w katalogu projektu !!

  30. Dodanie plików

  31. Sygnały

  32. Przerwanie

  33. Port in1

  34. Port out1

  35. Architektura systemu

  36. 2. Stworzenie systemu NIOS II (5/5) Zapisanie i wygenerowanie systemu: GenerateSave

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

  38. 3. Dodanie systemu do projektu (2/2) Połączenie pinów z systemem: • clk_0 clk • reset_n reset

  39. 4. Przypisanie pinów do projektu Dodanie obrazu systemu do pliku projektu: AssignmentsAssignmentEditor Category: PIN clk PIN_N2 reset_n PIN_G26

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

  41. 6. Załadowanie obrazu do układu ToolsProgrammer - Hardware Setup UsbBlaster • Program/Configure • Start - Czasami przydatne bywa włączenie zasilania  -

  42. Programowanie

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

  44. 7. Założenie projektu (2/2) Wskazanie obrazu systemu (.ptf): Selectprojecttemplate: Blank Project Name: szkolenie3_soft SOPC Builder System PTF File: ../szkolenie3_sopc.ptf • Finish

  45. 8. Kompilacja biblioteki • Prawy klawisz myszki na szkolenie3_soft_syslib • Properties System Library • Reduceddevicedrivers • Small C library itp.. • Prawy klawisz myszki na szkolenie3_soft_syslib • Build Project