MiSTer FPGA počítač

Alexey Melnikov volně navázal na známý FPGA počítač MiST a vytvořil nový výrazně výkonnější FPGA počítač, který nazval MiSTer. Narozdíl od MiST nepoužívá speciální desku, ale je založený na standardní desce Terasic DE10-nano, kterou Alexej (na Atari fóru a GitHub vystupující pod nickem Sorgelig) rozšířil o několik desek, které se na DE10-nano připojují přes standardní konektory. Celý projekt je otevřený, veškerá dokumentace a zdrojové kódy hardwaru a softwaru jsou dostupné.

MiSTer_Martin_complete_working  MiSTer_Martin_complete  MiSTer_Martin_boards

Hardware

Použití desky Terasic DE10-nano byl od Alexeje poměrně chytrý krok. Na desce je hodně výkonný čip Intel (Altera) Cyclone V SoC (System-on-Chip), který v sobě zahrnuje velké FPGA (110.000LE a 5.570kbit Block RAM) a současně dvou jádrový RISC procesor ARM Cortex A9 na 800MHz. Vtip je v tom, že celá deska stojí méně, než kolik stojí samostatně koupený použitý Intel Cyclone V SoC čip. Jako bonus pak dostáváte HDMI výstup, 1GB DDR3, microSD kartu, Ethernet a USB porty. Rozšiřující desky se snadno připojují na pinové lišty nebo konektory a jsou poměrně jednoduché.

SDRAM Board je jediné nutné rozšíření. Připojuje se do GPIO0 konektoru a jak sám název napovídá, obsahuje 32MB paměti SDRAM v jednom čipu 16Mbit×16  a využívá ho většina jader. Interní DDR3 paměť má totiž vysokou latenci a je sdílena s ARM, takže použití externí paměti pro pohodlnou emulaci je nutností. Deska existuje ve více provedeních, já jsem si postavil výrobně o trochu složitější Extra Slim SDRAM Board v1.1, který ale nezabírá místo, nevyčuhuje a běží mi spolehlivě na plných 166 MHz. Pro otestování SDRAM Boardu existuje speciální testovací jádro.

MiSTer_Martin_SDRAM_angle2   MiSTer_Martin_SDRAM_angle1


IO Board
je již součást, bez které se obejdete, ale celkem bych ho doporučoval. Připojuje se do GPIO1 konektoru a nabízí kombinaci několika vlastností, které se hodí. První z nich je ventilátor, který chladí SoC na desce DE10-nano, který doporučuji navíc opatřit chladičem. Při provozu se totiž SoC silně hřeje a bez chladiče bych ho provozovat asi nedoporučoval, ventilátor pak situaci ještě výrazně zlepší, je potřeba zvolit jen nějaký tichý. Můj je slyšet, jen když je v místnosti opravdu ticho, možná ho ještě trochu zpomalím nějakým vhodným odporem, fouká celkem hodně. Dále zde najdete slot pro sekundární microSD kartu, kterou využívají některá jádra, která potřebují mít k SD kartě přímý přístup. Přístup k microSD na desce DE10-nano je totiž složitější přes podkladový LINUX. Možná jsem vás teď trochu vyděsil, ano na MiSTer pod vším běží LINUX, ale nabíhá tak rychle, že si to skoro nevšimnete, než se syncne monitor (cca 3s). IO Board dále obsahuje VGA výstup, analogový audio výstup, optický TOSLINK, 3 stavové LED, 3 ovládací tlačítka a IO porty pro připojení externích tlačítek a LED, pokud chcete MiSTer někam zabudovat.

MiSTer_Martin_IO-Board

RTC board využijete jen, pokud trváte na přesném času na nemáte MiSTer připojený k síti. Pokud je MiSTer připojený k síti, načte si čas z NTP serveru. Pokud ne, a používáte jádro, které RTC využívá (ao486, Minimig, …), pak se hodí mít RTC desku, která má čas uložený na sobě. RTC Board se připojuje do LTC konektoru a obsahuje samozřejmě i záložní baterii. Na mojí verzi desky (v1.3) je navíc teplotní čidlo protažené k SoC, ale ve chvíli, kdy fouká ventilátor shora, tak je úplně nanic, měří teplotu okolního vzduchu. Sorgelig došel ke stejnému závěru a firmware ho nijak nevyužívá.

MiSTer_Martin_RTC-Board

USB Hub je součást, bez které se sice neobejdete, ale vůbec si ho nemusíte vyrábět, stačí použít jakýkoli OTG USB HUB (ideálně napájený), který běžně koupíte nebo úplně normální USB HUB s OTG redukčním kablíkem. Jde o to, že na desce DE10-nano je jediný microUSB konektor, který slouží pro připojení všech USB perfierií. Pokud si HUB postavíte na Sorgeligově desce, získáte kompaktní tvar celého MiSTer a 7 USB 2.0 portů, což je více než dost. V mojí verzi desky (v1.0) není úplně vyřešeno napájení. Celou desku a všechny zařízení samozřejmě může napájet z microUSB OTG portu, ale to nemusí být pro všechna zařízení dost, proto je dobré připojit externí napájení. Moje deska to řeší připájením krátkého kablíku přímo na 5V napájení desky DE10-nano, novější deska má klasický kulatý 2.1 napájecí konektor. Já osobně mám v USB připojený dongle na bezdrátovou klávesnici, USB myš, dongle na 8BITDO gamepad a občas WiFi. Připojení WiFi mi ale zlobí, připojí se jak kdy, chce to občas zkusit změnit USB port, případně ještě jednou jinam, chová se to divně. S externím USB HUBem mi to dělá méně, ale dělá to také, tak nevím, zda je to použitým FE2.1 čipem nebo nějakou obsluhou WiFi dongle v LINUXu. Když už se WiFi chytí, chodí dobře. Ostatní USB periferie jsou bez problémů, připojení sítě přes Ethernet LAN port funguje také bezchybně.

Jak jste si možná všimli, psal jsem nahoře o různých verzích desek. Projekt je otevřený Sorgelig na něm stále intenzivně pracuje a desky se vám mění pod rukama. Než jsem svoje dostavěl, už téměř každá existuje v novější verzi. Na druhou stranu, nejsou to žádné zásadní, ani příliš potřebné změny. Naopak třeba u mojí IO desky se mi líbí klasický TOSLINK míst nově vytvořeného analog/optika hybridu.

Software

Už jsem zmínil, že pod vším běži minimální verze LINUXu. Pokud chcete můžete rozjet i normální LXDE LINUX, který existuje formou jádra, ale to asi není to, proč si bude někdo MiSTer pořizovat. Každého zajímají emulační jádra a těch je poměrně hodně. Sorgelig poctivě portuje jedno jádro po druhém a z MiST už jsou to v podstatě všechny, kromě Atari ST a naopak je naportováno i hodně jader z jiných volně přístupných projektů.

V době psaní tohoto článku (27.7.2018) máte k dispozici emulační jádra Acorn Archimedes, Amiga (Minimig AGA), Amstrad CPC 6128, ao486, Apogee, Apple II+, Apple Macintosh Plus, Aquarius, Atari 800XL, Atari 5200, Atari 2600, BBC Micro B + Master, BK0011M, CoCo 3, ColecoVision, Commodore 64, Ultimax, Commodore 16, Plus/4, Commodore PET, Commodore VIC-20, Gameboy, MSX, MultiComp, NES, SAM Coupe, Sega Genesis/Megadrive, Sega Master System, Sinclair QL, Specialist/MX, TurboGrafx 16 / PC Engine, Vectrex, Vector 06C, X68000 a ZX Spectrum.

Kromě osobních a herních počítačů je k dispozici i celá řada emulačních jader klasických arkádových mašin Alibaba and 40 Thieves, Azurian, Amidar, Bagman, Black Hole, Bomb Jack, Burger Time, Burning Rubber, Catacomb, Computer Space, Cosmic Avenger, Crazy Climber, Crazy Kong, Crush Roller, Defender, Donkey Kong, Dorodon, Dream Shopper, Eeekk!, Eyes, Frogger, Galaga, Galaxian, Gorkans, Lady Bug, Lizard Wizard, Moon Cresta, Moon Patrol, Mr.Do’s Nightmare, Mr.TNT, Ms.Pacman, Omega, Orbitron, Pacman, Pacman Club, Pacman Plus, Pacmanic Miner, Pengo, Phoenix, Pisces, Ponpoko, Pooyan, Scramble, Snap Jack, Space Invaders, Super Glob, The End, Time Pilot, Van-Van Car, War of the Bugs, Woodpecker a Xevious.

Je to jako jinde na FPGA emulátorech, některá jádra chodí dobře, jiná velmi špatně. Například ZX Spectrum je radost používat, simulace je perfektní, časování na HDMI výstupu u všech dem které jsem zkoušel je naprosto bez problémů. Takhle mělo chodit ZX Spectrum Next, ale to je jiná kapitola. Naproti tomu, jeden z důvodů, proč jsem do MiSTer šel bylo X68000 jádro a to je naprosto nepoužitelné. Když už něco pustíte, má to hromady artefaktů, ale původní autor na jádru stále pracuje a Sorgelig slíbil jádro zaktualizovat, když se to někam posune. PC Engine, který mám rád, celkem chodí, ale některé cartridge zlobí. Všechny jádra jsem zkusil spustit a šlo to, ale zkoušel jsem je zatím poměrně zběžně, takže nečekejte na nějaké detailnější testy, mrkněte spíš na Atari fórum, kde je celá jedna sekce věnovaná MiSTer.

MiSTer_Martin_menu-scr   MiSTer_Martin_ZX-SHOCK-scr

Kdyby měl někdo zájem, tak pár desek mi ještě zbylo, včetně nějakých hůře sehnatelných součástek, tak můžu nabídnout (jen komplet sadu). Stačí si k tomu dokoupit součástky dle košíku v DigiKey a zapájet. A samozřejmě budete potřebovat taky Terasic DE10-nano.

Příspěvek byl publikován v rubrice Moderní projekty se štítky , , , , , , , , , , , , , , , , , , , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

6 komentářů: MiSTer FPGA počítač

  1. Nemehlo napsal:

    Díky za sumarizující blogýsek od velezkušeného odborníka.

  2. mike/zeroteam napsal:

    Takze to pouziva firmwary z MISTu?

  3. hlide fremen napsal:

    Hi,

    yeah, I also decided to get MiSTer because X6800 and ao486 cores were available. But, yeah, they are not so fine as I expected. Anyway, I really love MiSTer and it is definitely a good candidate to start fun coding with the FPGA without all the hassles regarding the memory/video/audio parts to access them as they have a common stuff to be able to use them.

    Regards.

    • Martin napsal:

      I think it is better to start with FPGA develeopment on other simpler boards. Altera DE-10 nano is pretty powerful and complex and compile of even simple projects tooks quite long time (10-20 minutes).

  4. Pingback: ByteFEST 2019 | Martinův 8-bitový blog

Napsat komentář: Martin Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *