- Modulare C++-Architektur
- 8-Bit Tri-State-Busmodell
- Mikrocode-Befehlslogik
- Dear ImGui Echtzeit-Inspektion
COMPUTER ARCHITECTURE / 8-BIT EMULATION
Computerarchitektur vom Taktimpuls bis zur Bildschirmanzeige
BENCPU ist ein modularer 8-Bit-CPU-Emulator in C++, der die fundamentalen Bausteine eines diskreten Prozessors exakt nachbildet. In Verbindung mit einer Dear-ImGui-Oberfläche (CPUdockingimgui) können Entwickler Buszuteilung, Taktflanken und Registerübergänge in Echtzeit nachvollziehen.
Zentrale Busverwaltung (my_Bus)
Modelliert einen geteilten Tri-State-Datenbus für den kontrollierten Datenaustausch zwischen Komponenten. Module legen Daten nur bei aktivem Output-Enable-Signal auf den gemeinsamen Bus.
Programmierbarer Zähler & Ablaufsteuerung
Der Programmzähler (my_counter) reagiert präzise auf Taktflanken, unterstützt synchrones Laden sowie Enable-Signale für Adressinkremente und bedingte Sprünge.
Mikrocode-Steuermatrix & ALU
Koordiniert Taktzyklen über Fetch-, Decode- und Execute-Phasen. Die Recheneinheit führt arithmetische sowie logische Operationen aus und setzt Zero- und Carry-Flags.
Interaktive Desktop-Oberfläche (CPUdockingimgui)
Mit GLFW und OpenGL3 entwickelt, visualisiert die andockbare ImGui-Oberfläche Registerwerte (A, B, MAR, IREG, OUTREG), Busdaten, Taktfrequenzen und Einzelschrittausführung.
Architekturkomponenten im Überblick
- Bussystem
- Gemeinsamer Datenpfad mit updateBus()- und getBusData()-Steuerung
- Programmzähler
- Taktgesteuerter Zähler mit bedingter Lade- und Zählfunktion
- Registersatz
- Akkumulator (A), Operand (B), Speicheradresse (MAR), Befehl (IREG)
- Recheneinheit (ALU)
- 8-Bit Addierer/Subtrahierer mit Zero- (Z) und Carry- (C) Flags
- Visualisierung
- Dear ImGui mit Andockfenstern, Disassembler und Speichereditor
- Programmiersprache / Build
- C++14 / C++20 · CMake · MSBuild · Visual Studio
Bedeutung für Lehre und Systemtechnik
Das Projekt verbindet hardwarenahe Logiksimulation mit modernen Entwicklerwerkzeugen und macht das Zusammenspiel von Mikrocode und Prozessorarchitektur transparent erlebbar.