1. Hardwareluxx
  2. >
  3. News
  4. >
  5. Hardware
  6. >
  7. Prozessoren
  8. >
  9. Originales DOOM läuft auf einem FPGA

Originales DOOM läuft auf einem FPGA

Veröffentlicht am: von

doomField Programmable Gate Arrays (FPGAs) lassen sich auf vielfältige Art und Weise nutzen und eben zu diesem Zweck werden sie meist eingesetzt. Ganze CPU- und GPU-Designs wurden früher zunächst in FPGAs simuliert, bevor sie dann letztendlich als ASIC (Application-specific Integrated Circuit) fest verdrahtet hergestellt wurden.

In einigen Bereichen sind FPGAs noch heute im Einsatz, denn immer dann, wenn das Anwendungsgebiet zwar grob eingeschränkt, die genaue Anwendung aber höchst unterschiedlich sein kann, machen FPGAs auch heute noch Sinn, da sie auf die spezifische Anwendung hin ausgelegt programmiert werden können.

Sylvain Lefebvre hat ein DE10-Nano-Development-Kit dazu verwendet, darauf Doom laufen zu lassen. Das besondere daran ist: Ein FPGA kommt ohne CPU-Kerne oder Shadereinheiten aus. Das DE10-Nano Development Kit verwendet einen Intel Cyclone V SoC (5CSEBA6U23I7) bzw. eben einen FPGA. Dieser verfügt über 110.000 programmierbare Logikgatter und 5.570 KBit an Speicher. Damit musste Lefebvre auskommen, um DOOM lauffähig zu bekommen.

Datenschutzhinweis für Twitter

An dieser Stelle möchten wir Ihnen einen Twitter Feed zeigen. Ihre Daten zu schützen, liegt uns aber am Herzen: Twitter setzt durch das Einbinden des Applets Cookies auf ihrem Rechner, mit welchen sie eventuell getracked werden können. Wenn Sie dies zulassen möchten, klicken Sie einfach auf diesen Feed. Der Inhalt wird anschließend geladen und Ihnen angezeigt.

Ihr Hardwareluxx-Team

Tweets ab jetzt direkt anzeigen

Nun darf man sich nicht vorstellen, das eine Art Berechnung auf dem FPGA durchgeführt wird. Stattdessen wird ein komplettes Level und alles was auf dem Display zu sehen ist, direkt in die Hardware geschrieben. Es ist daher nicht möglich, sich frei zu bewegen, da keine Echtzeit-Berechnungen stattfinden. Der komplette Renderer befindet sich in 666 Zeilen Code. Für die gezeigte Sequenz werden in etwa 30 % der Ressourcen des FPGAs benötigt.

Der FPGA arbeitet dabei mit einem Takt von 100 MHz. Die Ausgabe erfolgt mit 320 x 200 Pixel bei 60 Hz. Intern wird allerdings in VGA-Auflösung gearbeitet, jedoch erfolgt die Bildausgabe über die GPU des Entwicklerboards eben mit nur halbierter Auflösung.

Noch einmal: Die in dieser Form umgesetzte Variante von DOOM kann derzeit nicht gesteuert werden oder dergleichen. Stattdessen läuft eine vordefinierte Schleife durch eine vordefinierte bzw. fixe Umgebung. Künftig soll jedoch eine Steuerung per Joystick möglich gemacht werden.

Den Sourcecode von DOOM hat id Software bereits vor einiger Zeit auf GitHub veröffentlicht. Auf Basis dessen sind bereits zahlreiche Projekte entstanden.