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 :).

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 😉

BTW: https://translate.google.com/#view=home&op=translate&sl=zh-CN&tl=pl&text=daxigua

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” 🙂

 

ZX Spectrum 128 na MIST!

Kolejny prezent od Tilla Harbauma – tym razem port rdzenia Mike’a Stirlinga z dodaną obsługą emulacji magnetofonu (pliki csw) i joysticka via Kempston. Jest to drugi po atari800 rdzeń, który sprawił mi ogromną frajdę, ponieważ zawsze chciałem mieć Spectruma (koledzy ze SP117 w Krakowie pewnie pamiętają lekcje WF ze Spectrum w roli głównej :)). I prawdę mówiąc gumiak to był pierwszy komputer jaki widziałem w życiu…

Jest jeszcze jedna rzecz o której muszę wspomnieć: XXL i jego porty gier ze Spectruma (grałem w Jetpac i Deathchase). Teraz dopiero widzę jak bardzo niedoceniany jest za te konwersje na małe Atari.

MIST – to działa!

Za mój komentarz niech posłuży poniższa galeria. Dodam tylko, że MIST działa z moim telewizorem przez wspomniany wcześniej konwerter AK145A.

Po kilku dniach eksperymentów, stwierdzam jedno: rewelacja i mistrzostwo świata, mam wrażenie jakbym odpalał programy na prawdziwym sprzęcie. Udało mi się ustawić ekran (położenie poziome i pionowe) we wszystkich trzech rdzeniach, więc nie wymaga to poprawek za każdym razem jak przełączam rdzeń. W przypadku ST lepiej sprawdzają się TOS-y z UK (nie wiem  jak to wyjaśnić, ale obraz prawidłowo się dopasowuje do ekranu w PAL) a w rdzeniu atari800 brakuje mi w zasadzie tylko obsługi podkatalogów w file-selektorze (pod F9).

Nieczęsto mi się to zdarza, ale po tych kilku dniach nie mam wątpliwości – kupiłbym MIST ponownie. Jedynie obudowę można by trochę dopieścić (na 100% wymienię wymieniłem przedni biały panel na przeźroczysty z poliwęglanu plexi).

No i jeśli wierzyć pogłoskom szykuje się core SNES i C64, a w aktualnym firmware jest już nawet obsługa joysticków USB, czas więc na jakiś wypasiony pad, zamiast wysłużonego Matt-a.