Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Architektura mikrokontrolera pisana słowem.

145 views

Published on

Jak wygląda mikrokontroler od środka? W jaki sposób do niego mówić? Jak tłumaczy się kod C na wykonanie w sprzęcie? Skąd bierze się instrukcja? Gdzie szukać wyników operacji?
Dowiecie się, co to jest język opisu sprzętu i jak się go używa oraz jak zaprojektować własną architekturę mikrokontrolera z użyciem jednego z nich – języka Verilog.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Architektura mikrokontrolera pisana słowem.

  1. 1. #1 - BarCamp Semihalf. System wbudowany? Zrób to sam!
  2. 2. Architektura mikrokontrolera pisana “słowem” Zyta Racia Inżynier oprogramowania zr@semihalf.com
  3. 3. O czym usłyszymy l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język miktrokontrolera l Rozmawiamy z pamięcią l Poszerzamy horyzonty mikrokontrolera l Reasumujemy
  4. 4. l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język miktrokontrolera l Rozmawiamy z pamięcią l Poszerzamy horyzonty mikrokontrolera l Reasumujemy
  5. 5. Czym różni się Verilog od C
  6. 6. Czym różni się Verilog od C
  7. 7. Nomenklatura MODUŁ • Wejścia • Wyjścia • Zmienne lokalne • Logika zawartosc_rej = WE_ZAW_REJ; WY_NR_REJ WE_ZAW_REJ WISHBONE PODAJ_WARZACHOWAJ_WAR
  8. 8. l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język miktrokontrolera l Rozmawiamy z pamięcią l Poszerzamy horyzonty mikrokontrolera l Reasumujemy
  9. 9. Moduł, sygnał, stan, przebieg LICZNIK CLK RESET Q [3:0] ENABLE
  10. 10. l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język miktrokontrolera l Rozmawiamy z pamięcią l Poszerzamy horyzonty mikrokontrolera l Reasumujemy
  11. 11. Rdzeń mikrokontrolera
  12. 12. l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język mikrokontrolera l Rozmawiamy z pamięcią l Poszerzamy horyzonty mikrokontrolera l Reasumujemy
  13. 13. Dekoder instrukcji § ADD R7, R8 # dodaj do siebie zawartości rejestrów o numerach 7 i 8; § STS 0xa, R7 # zapisz wynik w pamięci 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 op op op op op op s d d d d d s s s s Krok 1 Krok 2 Krok 3 ADD: 0000 11sd dddd ssss STS: 1001 001s ssss 0000 aaaa aaaa aaaa aaaa
  14. 14. Jak to się pisze § ADD R7, R8 § STS 0xa, R7 0000 1110 0111 1000 1001 0010 0111 0000 0000 0000 0000 101 casex (INSTR) 16'b000011xxxxxxxxxx: begin /* ADD Rd, Rs */ NR_REJ_A = nr_a NR_REJ_B = nr_b; WPISZ_DO_REJ = 1'b1 OPERACJA = ALU_ADD; end endcase
  15. 15. Przekład na moduły
  16. 16. Moduł na język opisu sprzętu module DekoderInstrukcji ( input [15:0] INSTR, output reg [4:0] NR_REJ_A output reg [4:0] NR_REJ_B output reg WPISZ_DO_REJ output reg [5:0] OPERACJA ); parameter ALU_OP = 6'h03 wire [4:0] nr_a; wire [4:0] nr_b; assign nr_a = { INSTR[9], INSTR[3:0] assign nr_b = INSTR[8:4]; always @* begin NR_REJ_A = 5'hXX; NR_REJ_B = 5'hXX; OPERACJA = 6h000000; WPISZ_DO_REJ = 1'b0; casex (INSTR) […]
  17. 17. l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język mikrokontrolera l Rozmawiamy z pamięcią l Poszerzamy horyzonty mikrokontrolera l Reasumujemy
  18. 18. Pamięć programu
  19. 19. Implementacja always @(posedge CLK or posedge RESET) begin if (RESET) begin licznik <= 16'hffff; end else begin if (ACK_I) begin licznik <= ADR_O; end else ; end end always @(licznik) begin ADR_O = licznik + 1'b1; end endmodule
  20. 20. Pamięć danych (RAM)
  21. 21. l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język mikrokontrolera l Rozmawiamy z pamięcią l Poszerzamy horyzonty mikrokontrolera l Reasumujemy
  22. 22. Zapis do pamięci danych
  23. 23. l Poznajemy język opisu sprzętu l Budujemy z modułów i sygnałów l Słowo o architekturze l Definiujemy słownik/język mikrokontrolera l Poszerzamy horyzonty mikrokontrolera l Rozmawiamy z pamięcią l Reasumujemy
  24. 24. Podsumowanie § ~3800 linijek § 19 modułów § ~120 instrukcji
  25. 25. Efekty specjalne
  26. 26. Więcej? Bibliografia: [1] Jarosław Doliński, Mikrokontrolery AVR w praktyce, wyd. BTC, Warszawa, 2003. [2] specyfikacja Wishbone http:// cdn.opencores.org/downloads/ wbspec_b4.pdf
  27. 27. Architektura mikrokontrolera pisana “słowem” Zyta Racia Inżynier oprogramowania zr@semihalf.com

×