Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

5B5-Lite - emulator starych komputerów na FPGA by piotr_go

piotr_go 08 Wrz 2015 15:15
  • 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    Witam.
    Przedstawiam projekt emulatora starych komputerów na układzie FPGA (Xilinx Spartan6: XC6SLX9). Jest to uproszczona wersja wcześniejszego mojego projektu "5B5-Pro".

    Emulator posiada:
    - FPGA XC6SLX9,
    - wyjście HDMI (z dźwiękiem),
    - 512kB 16bitową pamięć SRAM,
    - mikrokontroler ARM Cortex M0 (LPC1114) służący do konfigurowania fpga, ładowania oprogramowania i komunikacji z peryferiami (klawiatura, joystick, uSD...),
    - gniazdo uSD,
    - radio nRF24l01+,
    - 32GPIO do dowolnego wykorzystania,
    - gniazdo zasilania 5V microUSB (pobór prądu poniżej 70mA),
    - wymiary 50x50mm.

    Klawiatura/mysz jaką użyłem to "MS Wireless Keyboard 800" Logitech Unifying.
    Na chwilę obecną udało mi się odpalić emulację C64 i NESa.


    5B5-Lite:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    Obudowa (widok od spodu) i rendering (widok od góry):
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    Schemat:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    Joystick:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    C64:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    NES:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    ZX Spectrum 128k:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    Amiga:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    Atari:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go

    5B5-Pro:
    5B5-Lite - emulator starych komputerów na FPGA by piotr_go 5B5-Lite - emulator starych komputerów na FPGA by piotr_go


































    Link


    Link


    Link

  • #2 08 Wrz 2015 16:12
    Freddy
    Poziom 43  

    Piotrowi się chyba nudzi z wymyślaniem projektów :D. Jak zawsze super konstrukcja, przemyślana i bardzo starannie wykonana.
    DO czegoś więcej ma służyć to gniazdo 36pin (oprócz tej PCB, którą widać), przyszłe rozszerzenia ?

  • #6 08 Wrz 2015 18:27
    LA72
    Poziom 39  

    piotr_go napisał:
    LA72 napisał:
    Czy posiadasz też oprogramowanie emulujące Atarynkę?

    Będzie, tylko nie wiem co pierwsze, Atari czy Spectrum, czy może Amiga (do wersji pro) za którą się miałem zabrać już jakiś czas temu.

    Polecam kolejność: Amisia (:D), Atari, spectrum.

  • #8 08 Wrz 2015 18:50
    treker
    Poziom 25  

    Super projekt, grałoby się... Jak szacujesz koszt całości (zarówno finansowy, jak i czasowy)?

  • #9 08 Wrz 2015 19:10
    piotr_go
    Poziom 26  

    Wersję "Pro" zacząłem robić jakieś pół roku temu. Pochłonęła mnóstwo (tajemnica :) ) kasy.
    "Lite" była sporo tańsza (głównie dzięki temu że miałem już działającą wersję "Pro" i płytki nie były tak wymagające), prawie wszystkie elementy już miałem. Tylko płytki i Spartany musiałem zamówić.

  • #10 08 Wrz 2015 20:03
    jackfinch
    Poziom 13  

    Witam

    Próbowałeś instalować linux np: PetaLinux?

    Pozdrawiam

  • #11 08 Wrz 2015 20:05
    MasMas
    Poziom 16  

    O kurcze z nieba mi ten projekt :) Bo sam przymierzam się do użycia FPGA a jeszcze nie robiłem sam płytek pod to.

    Może byś napisał coś więcej? O uruchamianiu FPGA? Jak z zasilaniem, jakie trudności co trzeba konfigurować na początku (czyli co ten procek robi). Jak wygląda kwestia zegara do tego FPGA?

    Ilu warstwowe są te płytki i gdzie je zamawiałeś jeśli można spytać.

    I ogólnie byłbym super ciekawy jakbyś zamieścił może bardziej rozbudowany opis :)

  • #12 08 Wrz 2015 20:44
    piotr_go
    Poziom 26  

    MasMas napisał:
    Jak z zasilaniem

    Dałem przetwornice 1.2A , wydaje się być aż nadto.

    MasMas napisał:
    co trzeba konfigurować na początku

    "Spartan-6 FPGA Configuration" - ug380.pdf
    W skrócie, jeżeli chcesz konfigurować prockiem to piny M0 i M1 podciągasz do "+"
    Konfigurację wysyłasz po zresetowaniu starej jak leci, nie ma żadnych rejestrów czy czegoś takiego.

    MasMas napisał:
    Jak wygląda kwestia zegara do tego FPGA?

    Podpinasz pod GCLK.

    MasMas napisał:
    Ilu warstwowe są te płytki i gdzie je zamawiałeś jeśli można spytać.

    4ro, Elecrow.

  • #13 08 Wrz 2015 21:46
    MasMas
    Poziom 16  

    Fajnie wygląda ten Elecrow. Ile płaciłeś za przesyłkę? I ile czekałeś? Jakieś opłaty celne są z tego tytułu? Bo tam mi obliczyło koszty przesyłki najmniej 20$ czyli jakieś 75zł :/ Przy małej serii nie wychodzi jakoś taniej niż w PL.

    Jeszcze pytanie: jaki RAM użyłeś? (model)

  • #14 08 Wrz 2015 22:05
    piotr_go
    Poziom 26  

    MasMas napisał:
    Jeszcze pytanie: jaki RAM użyłeś?

    Na fotce spodu widać oznaczenie.

    MasMas napisał:
    Ile płaciłeś za przesyłkę? I ile czekałeś?

    10$, ale to przy 10 płytkach + szablon do pasty. Przy samych płytkach 2warstwowych było poniżej 5$.
    3 tygodnie

  • #15 09 Wrz 2015 10:15
    djfarad02
    Poziom 16  

    Na ile kłopotliwa była implementacja HDMI? Udało Ci się oprzeć choć częściowo na przykładach czy tworzyłeś całość jedynie w oparciu o dokumentację?

  • #16 09 Wrz 2015 10:28
    piotr_go
    Poziom 26  

    Najpierw uruchomiłem kod Xilinxa, potem napisałem swój w oparciu o jego analizę i PDFy.
    Potem potrzebowałem audio więc zaadoptowałem część kodu z https://github.com/charcole/NeoGeoHDMI
    Najtrudniejsze było dopasowanie wyjścia c64/nesa do enkodera hdmi, audio jest przeplatane z video i timingi muszą się zgadzać bo inaczej czarny ekran.

  • #17 11 Wrz 2015 11:41
    Mamut
    Poziom 17  

    Pytanie o emulację: stosujesz gotowy kod emulatora, czy jest tu coś własnego? Jak w ogóle to jest rozwiązane programowo? Emulator chodzi na FPGA czy na ARMie? Na FPGA jest jakiś softcore?

  • #18 11 Wrz 2015 18:43
    piotr_go
    Poziom 26  

    Mamut napisał:
    stosujesz gotowy kod emulatora

    (VHDL/VERILOG) Pół gotowy, musiałem dodać hdmi , osd, i parę dupereli, no i dopasować to do sprzętu. 100% (aaaaa, 99% :), zapomniałem o bibliotece do fat, zastosowałem gotową) mój jest kod na ARMa no i sprzęt.
    Mamut napisał:
    Emulator chodzi na FPGA czy na ARMie? Na FPGA jest jakiś softcore?

    Na fpga, arm odpowiada za ładowanie softu, menu, i komunikację z peryferiami.

  • #19 11 Wrz 2015 22:56
    kilioo
    Poziom 9  

    Świetny pomysł.
    Powiedz mi jak programujesz FPGA? Poprzez JTAGa?
    Jak wygląda ładowanie softu?

    Jeśli chodzi o projekt to na przyszłość warto dodać zabezpieczenie przed ESD dla USB oraz HDMI np. diody.

  • #20 11 Wrz 2015 23:56
    piotr_go
    Poziom 26  

    kilioo napisał:
    Powiedz mi jak programujesz FPGA? Poprzez JTAGa?

    Do testów JTAGiem, w układzie "Slave Serial Configuration Mode".

    kilioo napisał:
    Jak wygląda ładowanie softu?

    Prosto do SRAMu. Nie robiłem jakiegoś specjalnego bootloadera.

    kilioo napisał:
    warto dodać zabezpieczenie przed ESD dla USB oraz HDMI

    Na HDMI jest, na USB nie dawałem.

  • #21 13 Wrz 2015 10:47
    kilioo
    Poziom 9  

    Cytat:
    Prosto do SRAMu. Nie robiłem jakiegoś specjalnego bootloadera.

    Jak wygląda programowanie SRAMu, programujesz to JTAGiem, czy prockiem przez FPGA?

  • #24 15 Wrz 2015 11:46
    piotr_go
    Poziom 26  

    Sprawdziłem pierwsze dwa. Obydwa się uruchamiają, gra muzyczka i coś się dzieje na ekranie.
    Nie wiem jak powinny wyglądać na prawdziwym c64 ale wydaje mi się że coś nie działa, bo nie wyglądają na tak wysoką ocenę.


    Znalazłem filmiki na YT, sporo u mnie brakuje.

  • #25 15 Wrz 2015 13:27
    Ronin64
    Poziom 34  

    To i tak dużo jak na tego typu emulator :)

  • #26 18 Wrz 2015 09:56
    luzik1980
    Poziom 19  

    A jaka będzie cena za jedną sztukę i jak z liczbą emulowanych gier z C64 ile procentowo działa poprawnie ?

  • #28 18 Wrz 2015 15:07
    Ronin64
    Poziom 34  

    Póki co lepiej nie zdradzaj zbyt wiele na temat tego projektu bo są ludzie którzy mogą chcieć Ci go przywłaszczyć. Sprawdzałeś gry które działają z loaderami czy takie które ładują dane za pomocą zwykłego "load"?.

  • #29 18 Wrz 2015 15:24
    piotr_go
    Poziom 26  

    Na C64 gry w *.PRG chodzą, takie co niczego dodatkowo same nie ładują.
    ARM ładuje *.PRG do ramu, daje RUN i tyle.


    ================ update ================
    Dodałem logo po załadowaniu się NESa, przyspieszyłem dwukrotnie ładowanie gier, dodałem wskaźnik postępu.