Ich habe versucht, eine einfache 8-Bit-CPU in Logisim zu implementieren, und habe eine ALU, eine Registerdatei usw. zusammengestellt, sodass Sie durch Manipulieren einiger Steuerleitungen für jedes Teil den Betrieb bestimmen können. Leider habe ich Mühe, die Steuereinheit zu implementieren, um die Steuerung dieser Signale zu koordinieren.
Viele der grundlegenden CPUs, die ich als Referenz finden kann, verwenden 16-Bit-Anweisungen, bei denen die gesamte Steuerlogik Teil des Opcodes selbst ist, wie z. B. die Hack-Architektur, die in The Elements of Computing Systems (die ich zuvor fertiggestellt habe) angegeben ist . Dies erleichtert die Steuerung der CPU erheblich, aber ich interessiere mich für die Verwendung eines 8-Bit-Befehlsformats, wie es bei klassischen 8-Bit-Mikros der Fall ist.
Ich nehme an, dass Sie beispielsweise eine einfache Nachschlagetabelle verwenden könnten, um sicherzustellen, dass Sie die richtigen Steuersignale für jede Anweisung ausgeben (deren Prinzipien ich verstehe), und dass Sie auch eine Zustandsmaschine für etwas Komplexeres verwenden könnten , aber keine der Informationen, die ich finden kann, berührt wirklich die Implementierung.
Was ist im Allgemeinen der einfachste Weg, eine CU für eine CPU zu entwerfen, die Befehle mit variablem Zyklus und eine Befehlslänge haben kann, die nicht alle Steuersignale direkt codieren kann? Ich mache mir keine Sorgen über die Verwendung von Pipelining oder anderen Funktionen, die das Design der CPU verkomplizieren würden.
Ich verstehe auch, dass Sie beim Entwerfen eines FSM normalerweise Karnaugh-Karten aus einer Wahrheitstabelle konstruieren, um die erforderliche kombinatorische Logik dafür zu entwerfen, aber selbst mit nur 16 Anweisungen (4 Eingangsbits) und 16 Zuständen hätten Sie dies sicherlich auch viele Variablen, um sogar eine k-Map zu erstellen? Wie fangen Sie überhaupt an, ein so komplexes FSM zu bauen? Auch hier konzentrieren sich alle Beispiele, die Sie finden können, auf den einfachsten vorstellbaren Fall, der normalerweise kein besonders nützlicher, "realer" Fall ist. Ich nehme auch an, dass FSMs im Prozessordesign im Allgemeinen nicht viel verwendet werden, aber für eine einfache CPU sind sie unbedingt eine schlechte Idee?
Grundsätzlich habe ich keine Ahnung, wo ich mit dem Design einer CU anfangen soll, obwohl ich nur minimale Schwierigkeiten hatte, die anderen Grundelemente einer CPU zu konstruieren.
Suchen Sie auf YouTube nach Ben Eater, „Building an 8 bit breadboard computer“. Er hat ein ganzes Tutorial zum Bau eines 8-Bit-Computers mit ICs der 74LS-Serie auf einem Steckbrett. Derzeit arbeitet er an der Steuerlogik, einschließlich der Anweisungen und des Mikrocodes. Dies ist ein großartiges Tutorial, das Sie durch jedes Modul eines funktionierenden Computers führt, der einfache Programme ausführen kann. Er beginnt mit den Grundlagen jedes Moduls und entwickelt eine Arbeitseinheit, die klar und leicht verständlich ist. Kann es nicht genug empfehlen!!! Hoffe das hilft
Chris Stratton
Oldtimer
Oldtimer