O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
#1 - BarCamp Semihalf.
System wbudowany?
Zrób to sam!
Architektura mikrokontrolera pisana
“słowem”
Zyta Racia
Inżynier oprogramowania
zr@semihalf.com
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ło...
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 miktro...
Czym różni się Verilog od C
Czym różni się Verilog od C
Nomenklatura
MODUŁ
• Wejścia
• Wyjścia
• Zmienne lokalne
• Logika
zawartosc_rej =
WE_ZAW_REJ;
WY_NR_REJ
WE_ZAW_REJ
WISHBON...
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 miktro...
Moduł, sygnał, stan, przebieg
LICZNIK
CLK
RESET
Q [3:0]
ENABLE
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 miktro...
Rdzeń mikrokontrolera
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 mikrok...
Dekoder instrukcji
§ ADD	R7,	R8 	#	dodaj	do	siebie	zawartości	rejestrów	o	numerach	7	i	8;	
§ STS	0xa,	R7 	#	zapisz	wynik	w...
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'b0...
Przekład na moduły
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_...
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 mikrok...
Pamięć programu
Implementacja
always @(posedge CLK or posedge RESET)
begin
if (RESET) begin
licznik <= 16'hffff;
end else begin
if (ACK_I)...
Pamięć danych (RAM)
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 mikrok...
Zapis do pamięci danych
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 mikrok...
Podsumowanie
§ ~3800 linijek
§ 19 modułów
§ ~120 instrukcji
Efekty specjalne
Więcej?
Bibliografia:
[1] Jarosław Doliński, Mikrokontrolery
AVR w praktyce, wyd. BTC, Warszawa,
2003.
[2] specyfikacja Wi...
Architektura mikrokontrolera pisana
“słowem”
Zyta Racia
Inżynier oprogramowania
zr@semihalf.com
Próximos SlideShares
Carregando em…5
×

Architektura mikrokontrolera pisana słowem.

141 visualizações

Publicada em

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.

Publicada em: Software
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×