MiSTer-FPGA

Mit programmierbaren Schaltungen klassische Computer nachbilden als Alternative zur reinen software-basierten Emulation

Seit Januar 2019 ist der FPGA-Entwicklungsbausatz DE10-Nano Teil meines „Retro-Fuhrparks“, der mit entsprechender Software und einigen Erweiterungen zum sogenannten MiSTer oder MiSTer-FPGA wird. FPGA steht für „Field Programmable Gate Array“ und kann grob als „vor Ort (beim Kunden) programmierbare Gatter-Anordnung“ übersetzt werden, was immer noch nicht jeder versteht.

Wozu dienen FPGAs?

Es handelt sich um eine Möglichkeit, per Software logische Schaltungen aufzubauen, um damit ein einfaches UND-Gatter bis hin zu komplexeren Digitalschaltungen wie z.B. einen Mikroprozessor zu erstellen. Um logische Schaltungen „programmieren“ zu können, verwendet man entsprechende Beschreibungssprachen wie Verilog, welches eher im US-amerikanischem Raum verwendet wird, oder VHDL, was viele Hochschulen hierzulande lehren. Inzwischen ist die Durchmischung in der Community aber so weit fortgeschritten, dass man beide Sprachen lernen sollte, wenn man sich für die FPGA-Programmierung interessiert. Für den Einstieg empfehle ich jedoch einen einfachen Lernbausatz, der in einem anderen Beitrag (noch nicht veröffentlicht) thematisiert wird, da der DE10-Nano zu viele zusätzliche Funktionen hat, die den Anfänger einfach überfordern.

MiSTer im Gehäuse mit Größenvergleich

Unterschiede zur software-basierten Emulation

Den MiSTer habe ich mir als Alternative zur Software-Emulation klassischer Computer und Videospielkonsolen angeschafft. Während ein PC oder Raspberry Pi das zu emulierende System, beispielsweise den Commodore 64, CPU-typisch sequenziell verarbeitet, erlaubt ein FPGA eine echt-parallele Verarbeitung – eben wie es bei logischen beziehungsweise digitalen Schaltungen möglich ist. Deswegen haben selbst kleinere FPGA-ICs recht viele Pins, um eine Verbindung zur Außenwelt herstellen zu können. Durch die parallele Verarbeitung können Systeme oder integrierte Schaltungen deutlich originalgetreuer, insbesondere hinsichtlich des Zeitverhaltens, nachgebildet werden, sofern der Schaltplan bekannt und verstanden ist, was leider immer noch selten der Fall ist. Denn schließlich handelt es sich um Geschäftsgeheimnisse der Hersteller dieser ICs.

Vorgehen bei der Rekonstruktion von integrierten Schaltungen

Nur wenige Amateure versuchen sich an der Rekonstruktion (Reverse Engineering) von integrierten Schaltungen. Der vielversprechendste Ansatz ist das sogenannte Decapping, also das Abtragen der Oberfläche von ICs, um eine freie Sicht auf den Siliziumkern zu bekommen. Dass dies sehr aufwendig ist und eine kostspielige Laborausrüstung samt entsprechenden Chemikalien erfordert, lässt sich sicherlich gut nachvollziehen. Der zeitaufwendigste Teil des Reverse Engineering ist dabei die Analyse und die Erstellung eines Schaltplans. Die Funktionen der (Teil-)Schaltungen müssen abschließend auch im Kontext verstanden werden, um sie entsprechend mit Verilog / VHDL oder Entwicklungswerkzeugen für die software-basierte Emulation rekonstruieren zu können.

Decapping – ein Beispiel (engl.)

Vorteile von FPGAs und ein Beispiel

Was ist nun der Vorteil eines FPGA? Die Frage ist bei all der verfügbaren CPU-Power tatsächlich nicht so leicht zu beantworten. Auf Platz 1 wird vermutlich die Antwort sein: die Faszination oder der Bedarf, ein Bauteil, ein ganzes System oder Teile eines Systems rekonstruieren, verkleinern, verbessern oder schlicht nicht mehr erhältliche ICs oder ganze Komponenten kostengünstig ersetzen zu können.

Ein gutes Beispiel ist der in FPGA rekonstruierte Soundchip des C64 namens „SID“ (Sound Interface Device). Immer mehr SIDs segnen nach etwa 30 Jahren, der letzte C64 wurde 1994 produziert, altersbedingt das Zeitliche. Und die allmählich schwindende Verfügbarkeit schlägt sich auch in den Preisen für, wohlgemerkt, gebrauchte Ersatzteile wieder, die sich abhängig vom Modell und Jahrgang in der Region 35 bis 50 € bewegen. Die Preise sind seit 12 Monaten nur deshalb einigermaßen stabil, da sich wohl zu viele Ebayer auf den lukrativen Verkauf ausgelöteter SIDs ausgerichtet haben. Diese aktuelle Schwemme wird sicherlich nicht ewig anhalten.

Rekonstruktion eines Soundchips

Glücklicherweise gibt es Reimplementierungen wie den FPGASID, der wegen der digitalen Rekonstruktion des analogen Teils des SIDs nicht von jedem Audiophilen als gleichwertigen Ersatz anerkannt wird. Die Hörproben im Internet klingen jedoch so gut, dass ich auch über die Kopfhörer keinen Unterschied über das esotherische Maß hinaus feststellen kann. Der FPGASID verfügt über zwei SIDs, die mit einem Programm auf dem C64 konfiguriert werden können, beispielsweise um das Modell, den alten 6581 oder neueren 8580, Filter, Stereo oder sechs Stimmen statt der üblichen drei einzustellen. Ich freue mich jedenfalls, dass es eine sofort erhältliche Alternative – auch als Ersatz für einen einzelnen SID – gibt. Der FPGASID kostet derzeit 80 € und ist mit dem beschriebenen Mehrwert durchaus angemessen. Gekauft habe ich mir ihn noch nicht.

Vortrag des FPGASID-Entwicklers

Energie-Effizenz von FPGAs

Ein weiterer Vorteil ist schlichtweg die Effizienz von FPGA beziehungsweise die Reimplementierungen damit. Ein Raspberry Pi 4 ist zwar verhältnismäßig genügsam, was den Energieverbrauch betrifft. Allerdings wird die meiste Energie durch die notwendige Prozessor-Power für das Betriebssystem und die Emulation verschwendet. Zugegeben, die Stromkosten von nicht mal 20 EUR für den Dauerbetrieb eines Raspberry Pi 4 ist noch kein ernstzunehmendes Argument. Die Schere zwischen dem Energiehunger von FPGAs und Single-Board-Computern oder Computer im Allgemeinen dürfte sich bezogen auf die Leistungsfähigkeit in Zukunft jedoch vergrößern.

Warum MiSTer?

Warum sollte man sich also den MiSTer zulegen? Meine Antwort ist recht einfach: Mit den entsprechenden FPGA-Cores lassen sich klassische Computer und Konsolen zum Leben erwecken, ohne vorher ein großes Betriebssystem starten zu müssen. Mit einem FPGA fühlt sich auch die Handhabung deutlich authentischer an. Die Leistungsreserven erlauben es überdies, selbst einen 486er-PC nachzubilden, auch wenn der entsprechende Core noch einiger Optimierungen bedarf. In weiteren Beiträgen werde ich auf die Möglichkeiten und die Cores noch genauer eingehen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.