65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram
Verfasst: Mittwoch 31. März 2010, 17:37
Guten Tag,
im Anhang befindet sich der komplette Schaltplan eines Mikroprozessors im Digital ProfiLab-
Format. Er basiert auf Standard-ICs, die alle als Makros realisiert wurden, sodass die
Signalverfolgung bis auf Gatterebene möglich ist.
Der Prozessor, befehlskompatibel zum 65C02, ist voll funktionsfähig. Leider war Abacom nicht
bereit, die interne Bauteile-Bibiliothek um ein 7474-Standard-Flip-Flop (ca. 6 Zeilen Code) zu
ergänzen, sodass die Flip-Flop-Funktion durch ein Makro mit 6 Gattern realisiert werden musste.
Bei 172 Flip-Flops in der Schaltung hat das natürlich erheblichen Einfluss auf die Ladezeit und die
Simulationsberechnung sowie die Simulationsperformance.
Mit der sich aus diesem Umstand ergebenden maximalen Taktung der Schaltung mit ca. 8 Hz (je
nach Rechner-Typ und Einstellung der Signalpegelanzeige) erhält man dennoch einen guten
Eindruck darüber, was in einem Prozessor während des Betriebs so abgeht (gläserner
Prozessor). Ein kleines Demo-Programm inkl. NMI-, INT- und Subroutinen ist bereits geladen.
Vielleicht ist das auch für diejenigen interessant, die ansonsten nichts mit Mikroprozessoren und
Assembler zu tun haben.
Für alle, die tiefer einsteigen möchten, liegt eine Kurz-Dokumentation über die Funktionsweise
der Schaltung und den Mikro-Code bei (65C02DOC.PDF). Auf Grund der Limitierung der
Dateigröße beim Filetransfer musste die Datei in drei Teile zerlegt werden und in einem separaten
Thema hochgeladen werden (viewtopic.php?f=21&t=1514).
Neben der Gesamtprojektdatei 65C02.PRJ (vollautomatischer Ablauf) liegen für Interessierte die
Moduldateien
65C02AS.PRJ (ALU/SHIFT-UNIT),
65C02AS.PRJ (ADRESS-GENERATOR) und
65C02CU (CONTROL-UNIT)
bei, die über Schalter manuell bedienbar sind und so die Möglichkeit bieten, die Funktionen von
Grund auf nachzuvollziehen.
Darüber hinaus gibt es ein kleines Programm, das aus den LST-Files des 65C02- Makro-
Assemblers CA65.EXE ProfiLab-RAM/ROM-kompatible TXT-Files generiert. Dadurch ist es
möglich, auch grössere Software-Projekte komfortabel mit einem Makro-Assembler zu erstellen
und die Programme direkt in den Arbeitsspeicher zu laden (siehe Dokumentation).
Die Veröffentlichung erfolgt ausschließlich hier und nicht auf einer eigenen Web-Seite, da zum
einem das Projekt nur mit ProfiLab dynamisch darstellbar ist und es zum anderen wahrscheinlich
nur auf ein geringes Interesse stoßen wird. Eine Veröffentlichung des Projekts in einem anderen
Zusammenhang hier im Forum (ein-flanken-getriggertes Flip-Flop) sowie Präsentationen in
meinem durchaus technisch interessierten Bekanntenkreis führten zu keinen nennenswerten
Reaktionen. Das Thema ist wohl zu speziell und darüber hinaus auf Grund der geringen
Simulationsgeschwindigkeit des Prozessors ohne praktischen Nutzen. Da aber in dem Projekt
(Systemanalyse, Schaltungsentwurf, Erstellung des Micro-Codes und der Dokumentation) ein paar
Stunden Arbeit stecken, wäre es schade, das Projekt einfach in der Schreibtischschublade
verschwinden zu lassen. Darüber hinaus habe ich bei meinen Recherchen im Internet, in
Vorlesungsskripten und (Uni)-Buchhandlungen nichts Vergleichbares gefunden, das das Innere
eines Prozessor komplett, befehlskompatibel, dynamisch, „gläsern“ und dokumentiert darstellt,
sodass ich denke, es macht Sinn, das Projekt zu publizieren. Vielleicht ist es im Ausbildungs-
bereich dienlich.
Falls jemand eine Mikroprozessorfunktion mit noch akzeptabler Performance benötigt, den
verweise ich in diesem Zusammenhang auf meine 6800-DLL im Download-Bereich auf der
Abacom-Homepage.
Gruß
microprocessor
Schnellstart:
Wer die Schaltung nicht analysieren sondern nur die Bits „flitzen“ sehen möchte, der gehe wie
folgt vor:
Alle Anwendungen beenden
Digital-ProfiLab Ver. 4 (Demo- oder Vollversion) starten
Bauteile-Bibliotheksanzeige („<<<“) ausschalten
Simulation auf „Fast“ einstellen
Datei 65C02.prj laden (dauert ca. 30 Sek.)
Pegelanzeige (HI/LO - Symbol) aktivieren
Simulation starten (dauert ca. 3 Min.) und Frontplatte aktivieren
Modus A:
Clock-Mode-Schalter auf ON (automatischer Programmablauf, default)
RST°-Schalter auf OFF und zurück auf ON (Programmstart)
Sollte das Programm auf älteren, langsamen Rechnern fehlerhaft ablaufen, muss die Frequenz
im CLK-Baustein entsprechend niedriger eingestellt werden.
oder Modus B:
Clock-Mode-Schalter auf OFF (manueller Schritt-für-Schritt- Betrieb)
RST°-Schalter auf OFF und zurück auf ON (Programmstart)
Clock-Schalter im Wechsel (Einzelschritt-Modus)
Viel Spaß!
P.S.
Dank an compander, der sich die Schaltung vor langer Zeit mal angeschaut hat. Für ihn auch die
Dokumentation, die er damals angefordert hat.
Update 65C02PRJ.ZIP am 3.7.2010 (Microcode für Befehl 8Dh, STA abs. korregiert)
im Anhang befindet sich der komplette Schaltplan eines Mikroprozessors im Digital ProfiLab-
Format. Er basiert auf Standard-ICs, die alle als Makros realisiert wurden, sodass die
Signalverfolgung bis auf Gatterebene möglich ist.
Der Prozessor, befehlskompatibel zum 65C02, ist voll funktionsfähig. Leider war Abacom nicht
bereit, die interne Bauteile-Bibiliothek um ein 7474-Standard-Flip-Flop (ca. 6 Zeilen Code) zu
ergänzen, sodass die Flip-Flop-Funktion durch ein Makro mit 6 Gattern realisiert werden musste.
Bei 172 Flip-Flops in der Schaltung hat das natürlich erheblichen Einfluss auf die Ladezeit und die
Simulationsberechnung sowie die Simulationsperformance.
Mit der sich aus diesem Umstand ergebenden maximalen Taktung der Schaltung mit ca. 8 Hz (je
nach Rechner-Typ und Einstellung der Signalpegelanzeige) erhält man dennoch einen guten
Eindruck darüber, was in einem Prozessor während des Betriebs so abgeht (gläserner
Prozessor). Ein kleines Demo-Programm inkl. NMI-, INT- und Subroutinen ist bereits geladen.
Vielleicht ist das auch für diejenigen interessant, die ansonsten nichts mit Mikroprozessoren und
Assembler zu tun haben.
Für alle, die tiefer einsteigen möchten, liegt eine Kurz-Dokumentation über die Funktionsweise
der Schaltung und den Mikro-Code bei (65C02DOC.PDF). Auf Grund der Limitierung der
Dateigröße beim Filetransfer musste die Datei in drei Teile zerlegt werden und in einem separaten
Thema hochgeladen werden (viewtopic.php?f=21&t=1514).
Neben der Gesamtprojektdatei 65C02.PRJ (vollautomatischer Ablauf) liegen für Interessierte die
Moduldateien
65C02AS.PRJ (ALU/SHIFT-UNIT),
65C02AS.PRJ (ADRESS-GENERATOR) und
65C02CU (CONTROL-UNIT)
bei, die über Schalter manuell bedienbar sind und so die Möglichkeit bieten, die Funktionen von
Grund auf nachzuvollziehen.
Darüber hinaus gibt es ein kleines Programm, das aus den LST-Files des 65C02- Makro-
Assemblers CA65.EXE ProfiLab-RAM/ROM-kompatible TXT-Files generiert. Dadurch ist es
möglich, auch grössere Software-Projekte komfortabel mit einem Makro-Assembler zu erstellen
und die Programme direkt in den Arbeitsspeicher zu laden (siehe Dokumentation).
Die Veröffentlichung erfolgt ausschließlich hier und nicht auf einer eigenen Web-Seite, da zum
einem das Projekt nur mit ProfiLab dynamisch darstellbar ist und es zum anderen wahrscheinlich
nur auf ein geringes Interesse stoßen wird. Eine Veröffentlichung des Projekts in einem anderen
Zusammenhang hier im Forum (ein-flanken-getriggertes Flip-Flop) sowie Präsentationen in
meinem durchaus technisch interessierten Bekanntenkreis führten zu keinen nennenswerten
Reaktionen. Das Thema ist wohl zu speziell und darüber hinaus auf Grund der geringen
Simulationsgeschwindigkeit des Prozessors ohne praktischen Nutzen. Da aber in dem Projekt
(Systemanalyse, Schaltungsentwurf, Erstellung des Micro-Codes und der Dokumentation) ein paar
Stunden Arbeit stecken, wäre es schade, das Projekt einfach in der Schreibtischschublade
verschwinden zu lassen. Darüber hinaus habe ich bei meinen Recherchen im Internet, in
Vorlesungsskripten und (Uni)-Buchhandlungen nichts Vergleichbares gefunden, das das Innere
eines Prozessor komplett, befehlskompatibel, dynamisch, „gläsern“ und dokumentiert darstellt,
sodass ich denke, es macht Sinn, das Projekt zu publizieren. Vielleicht ist es im Ausbildungs-
bereich dienlich.
Falls jemand eine Mikroprozessorfunktion mit noch akzeptabler Performance benötigt, den
verweise ich in diesem Zusammenhang auf meine 6800-DLL im Download-Bereich auf der
Abacom-Homepage.
Gruß
microprocessor
Schnellstart:
Wer die Schaltung nicht analysieren sondern nur die Bits „flitzen“ sehen möchte, der gehe wie
folgt vor:
Alle Anwendungen beenden
Digital-ProfiLab Ver. 4 (Demo- oder Vollversion) starten
Bauteile-Bibliotheksanzeige („<<<“) ausschalten
Simulation auf „Fast“ einstellen
Datei 65C02.prj laden (dauert ca. 30 Sek.)
Pegelanzeige (HI/LO - Symbol) aktivieren
Simulation starten (dauert ca. 3 Min.) und Frontplatte aktivieren
Modus A:
Clock-Mode-Schalter auf ON (automatischer Programmablauf, default)
RST°-Schalter auf OFF und zurück auf ON (Programmstart)
Sollte das Programm auf älteren, langsamen Rechnern fehlerhaft ablaufen, muss die Frequenz
im CLK-Baustein entsprechend niedriger eingestellt werden.
oder Modus B:
Clock-Mode-Schalter auf OFF (manueller Schritt-für-Schritt- Betrieb)
RST°-Schalter auf OFF und zurück auf ON (Programmstart)
Clock-Schalter im Wechsel (Einzelschritt-Modus)
Viel Spaß!
P.S.
Dank an compander, der sich die Schaltung vor langer Zeit mal angeschaut hat. Für ihn auch die
Dokumentation, die er damals angefordert hat.
Update 65C02PRJ.ZIP am 3.7.2010 (Microcode für Befehl 8Dh, STA abs. korregiert)