Pobierz prezentację z tego wydarzenia.
Transkrypt
Pobierz prezentację z tego wydarzenia.
#1 - BarCamp Semihalf. System wbudowany? Zrób to sam! Architektura mikrokontrolera pisana “słowem” Zyta Racia Inżynier oprogramowania [email protected] O czym usłyszymy 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 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 l Czym różni się Verilog od C Czym różni się Verilog od C Nomenklatura PODAJ_WAR ZACHOWAJ_WAR MODUŁ • Wejścia • Wyjścia • Zmienne lokalne • Logika zawartosc_rej = WE_ZAW_REJ; WY_NR_REJ WE_ZAW_REJ WISHBONE 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 l Moduł, sygnał, stan, przebieg ENABLE CLK RESET Q [3:0] LICZNIK 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 l Rdzeń mikrokontrolera 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 l Dekoder instrukcji Krok 1 § ADDR7,R8 § STS0xa,R7 #dodajdosiebiezawartościrejestrówonumerach7i8; #zapiszwynikwpamięci Krok 2 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 3 ADD: STS: 0000 11sd dddd ssss 1001 001s ssss 0000 aaaa aaaa aaaa aaaa Jak to się pisze § ADDR7,R8 § STS0xa,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 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_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) […] 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 l Pamięć programu 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 Pamięć danych (RAM) 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 l Zapis do pamięci danych 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 l 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 Wishbone http:// cdn.opencores.org/downloads/ wbspec_b4.pdf Architektura mikrokontrolera pisana “słowem” Zyta Racia Inżynier oprogramowania [email protected]