Neo430 czyli coś więcej niż mikrokontroler w FPGA.

Szukałem jakiegoś małego rdzenia mikrokontrolera w FPGA, który miałby wsparcie w gcc i znalazłem: projekt Neo430. Rewelacja! Jest to rozwinięcie MPS430 firmy Texas Instruments, które wykorzystuje narzędzia tego mikroprocesora. Co najważniejsze: dokumentacja jest świetna. Nawet taki lajkonik jak ja dał radę. Jedyna modyfikacja dla mojego chińskiego devboarda (Daxigua Logic^3 na Alterze Cyclone IV EP4CE6E22C8), to odwrócenie sygnału ledów gpio w neo430_test.vhd:

— constrain output signals —
gpio_o <= not gpio_out(7 downto 0);

Core zajmuje 19% LE (1181 elementów logicznych) FPGA, zostaje sporo na zabawę i mieści się bez problemu we flashu EPCS4 :).

Reklamy

Tom2.

Postanowiłem przetestować taki minimalistyczny retro-zestaw: Atari 600XL z SIO2BT do emulacji stacji dysków, oraz interfejs TOM2 z bezprzewodowym padem Logitech F710. Działa fajnie, a zajmuje naprawdę niewiele miejsca i poza krótkim adapterem do portu joysticka (wtyczka DB9 nie pasuje do portu Atari) nie wymaga żadnych kabli. Muszę tylko zmodyfikować moje ulubione shootery. Zacznę od River Raid i Space Invaders, tak żeby dało się je włączać przyciskiem Fire, a nie Start ;).

Duży arbuz miga, czyli chiński devboard FPGA.

O dziwo przesyłka dotarła w 20 dni… Daleka droga przede mną, ale od czegoś trzeba zacząć 😉


module light
 (
   input x1, x2,
   output f
 );
   assign f = ~((x1 & ~x2) | (~x1 & x2));
endmodule

A tutaj diody migają wg zegara:

module leds 
 ( 
    input clk_50, 
    output [7:0] led_arr 
 ); 
 
    reg [25:0] counter; 
    reg [8:0] state = 9'b011111111; 
    reg shft = 1'b0; 
 
    assign led_arr = state[8:1]; 
 
    always @ (posedge clk_50) begin 
        counter <= counter + 1'd1; 
        shft <= counter[25]; // zmiana statusu co 0.6s  
 
        if (shft) 
         begin 
               state <= state >> 1; 
               counter <= 0; 
               shft <= 0; 
         end 
 
         if (state == 9'b000000000) 
             state <= 9'b011111111; 
    end  
endmodule

Wszystkie eksperymenta będę wrzucał tutaj:

https://bitbucket.org/greblus/fpga_fun

Wątpie żeby komuś się to do czegoś przydało, ale przyda się na pewno mnie 😉

Mera400f…

Niestety mój devboard jest nadal w Hefei City :(. Budowanie rdzenia dla:
FAMILY = „CycloneIV E”
DEVICE = EP4CE6E22A7
trwało chwilę, ale z przypisaniem pinów i przerobieniem sevenseg.v dla mojego chińskiego wynalazku będę miał prawdziwy „crash course in (FPGA) brain surgery” 🙂

 

Stockfish.

Zawsze chciałem zacząć grać w szachy, ale jakoś nie mogłem znaleźć wystarczająco cierpliwego nauczyciela ;). Niedawno odkryłem silnik nie z tego świata Stockfish i dwa programy: Arena dla Linuksa i Droidfish dla Androida (mój ulubiony).

arena

screenshot_2017-02-12-01-41-14

Dalej kiepsko mi idzie, ale chyba mam kolejne hobby…