Mikroprozessorbasierte d-Systeme und spätere Mikrocontroller haben einen enormen Funktionsumfang erreicht, indem sie viele der darin enthaltenen einzelnen Schaltkreise verwenden konnten, um viele verschiedene Aufgaben zu unterschiedlichen Zeiten zu erfüllen. Ich denke, es ist aufschlussreich, den 1976 entworfenen Arcade-Automaten Tank mit dem Game Combat zu vergleichen, der auf dem zweiten mikroprozessorgesteuerten Spielautomaten der Welt, dem Atari 2600, ausgeführt wird. Obwohl es einige Unterschiede im Gameplay gibt, wurde die Atari 2600-Hardware im Wesentlichen entworfen Spiele wie Tank zu minimalen Kosten zu implementieren; Die Tatsache, dass es möglich war, durch Einsetzen verschiedener ROM-Kassetten verschiedene Spiele zu spielen, war ein netter Bonus.
Das Spiel Panzer ermöglicht es zwei Spielern, Panzer über den Bildschirm zu fahren und Schüsse aufeinander abzufeuern. Es hat "Slip" -Zähler für die X- und Y-Position jedes Panzers, die X- und Y-Position jedes Spielers, einen Aufwärts- / Abwärtszähler für den Winkel jedes Spielers und den Schusswinkel jedes Spielers, einen Zähler für die Punktzahl jedes Spielers, X- und Y-Raster -Positionszähler und viele Steuerschaltkreise über diesen Dingen. Es verfügt über Hardware zum Abrufen und Anzeigen von Spielfelddaten aus dem ROM sowie über Hardware zum Abrufen und Anzeigen von Formen für die Panzer der beiden Spieler und Punktzahlen aus dem ROM.
Der Atari 2600 verfügt über einen Schlupfzähler für die horizontalen Positionen von jeweils zwei Spielerobjekten, von jeweils zwei Raketenobjekten, und über ein zusätzliches Objekt namens "Ball", das im Kampf nicht verwendet wird, aber in einigen anderen Spielen verwendet wird. Für jedes der Spielerobjekte verfügt es über Hardware, um ein in einem 8-Bit-Latch gespeichertes Muster sowie einen "verzögerten" 8-Bit-Latch für jeden Spieler auszugeben, der jedes Mal in den primären 8-Bit-Latch des anderen Spielers kopiert wird Form wird aktualisiert. Es hat auch einen horizontalen Strahlpositionszähler und ein 20-Bit-Latch in Form eines Spielfelds, das zweimal pro Abtastzeile auf dem Bildschirm ausgegeben wird, wobei die Kopie auf der rechten Seite entweder als Wiederholung oder als Reflexion der linken Seite erscheint. Es hat Hardware, um Kollisionen zu erkennen, aber nichts als Folge davon zu tun. Das tut es nicht Hardware für die vertikalen Positionen von Objekten, die vertikale Position des Rasterstrahls (!) sowie Hardware für die Punktezählung, die Punkteanzeige, die Spieldauer usw.
Alle Funktionen, bei denen der 2600 die Hardware auslässt, werden von der Software in der Kassette ausgeführt. Die vertikale Position jedes Objekts muss nur einmal pro Scan-Zeile mit der Raster-Beam-Position verglichen werden. Die Punktzahl des Spielers und die verbleibende Spielzeit müssen nur einmal pro Frame aktualisiert werden. Die Punktzahlen der Spieler werden in Scan-Zeilen über dem Spielfeld gespeichert und kann daher die gleiche Hardware verwenden, die für das Spielfeld usw. verwendet wird.
Der normale Ansatz zur Implementierung eines Spiels wie "Tank" in einem FPGA besteht darin, getrennte Schaltkreise für verschiedene Funktionen zu verwenden, ähnlich wie es der 1976er Arcade-Automat tat. Ein solcher Ansatz würde funktionieren, aber eine erhebliche Menge an Hardware verwenden. Ein mikroprozessorbasierter Ansatz könnte mehr als die Hälfte dieser Hardware für das Hinzufügen eines Mikroprozessors einsparen, der wahrscheinlich weniger Schaltkreise enthält als die ersetzte Hardware (der 2600 könnte Spiele implementieren, die weitaus ausgefeilter sind als Tank, für die viel mehr Hardware erforderlich wäre) wenn sie keinen Mikroprozessor benutzen).
FPGAs eignen sich hervorragend für den Fall, dass ein Gerät benötigt wird, das viele einfache Aufgaben gleichzeitig ausführen kann . Mikroprozessor-basierte (oder Mikrocontroller-basierte) Systeme sind im Allgemeinen jedoch besser, wenn viele Aufgaben ausgeführt werden müssen, diese jedoch nicht gleichzeitig verarbeitet werden müssen, da sie die Verwendung einer kleinen Menge vereinfachen der Schaltung eine große Anzahl von unterschiedlichen Zwecken zu erreichen.