65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram

Diskussion geplanter, bearbeiteter oder fertiger Projekte
Antworten
Microprocessor
Beiträge: 79
Registriert: Montag 27. Oktober 2008, 00:03

65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram

Beitrag von Microprocessor » 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)
Dateianhänge
65c02prj.zip
(195.43 KiB) 393-mal heruntergeladen
65c02asm.zip
(63.54 KiB) 385-mal heruntergeladen
Zuletzt geändert von Microprocessor am Samstag 3. Juli 2010, 10:49, insgesamt 3-mal geändert.

BKGMX
Beiträge: 132
Registriert: Montag 7. Dezember 2009, 10:37
Wohnort: Berlin

Re: 65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram

Beitrag von BKGMX » Donnerstag 8. April 2010, 20:28

Mein Gott, was für eine Arbeit.
Als alter Elektroniker bin ich die Schaltung mal durchgegangen und ich muß sagen:
Ich ziehe den Hut vor Dir.
Ich hätte die Sache zwischendurch wahrscheinlich aufgegeben.
(Gruß an die hundert oder mehr aufgegebenen Projekte auf Deiner und Meiner Festplatte)

Du hast recht, die fehlenden FF (7474) wären wirklich eine echte Vereinfachung für die Schaltung. Da ich in Deinem Eintrag wieder nicht richtig gelesen hatte, waren mir die massenhaften "Ersatzschaltungen" doch etwas schleierhaft, aber dann hatte ich es irgendwann begriffen.

Eine ganz große Sache.

Gruß BKGMX

Microprocessor
Beiträge: 79
Registriert: Montag 27. Oktober 2008, 00:03

Re: 65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram

Beitrag von Microprocessor » Sonntag 11. April 2010, 13:53

Hallo bkgmx,

vielen Dank für den freundlichen Kommentar. Die förmliche Anrede wäre wirklich nicht nötig
gewesen, wir sind doch hier im Forum unter uns, da ist die Verwendung des Pseudonyms,
allenfalls in Verbindung mit dem pluralis majestatis, vollkommen ausreichend ;).

Über eine Rückmeldung zu diesem Projekt freue ich mich besonders, da ich, wie bereits oben
gesagt, nicht damit gerechnet habe. Ich hätte eher eine Reaktion auf die Mikroprozessor-DLL
erwartet, da sich diese in Verbindung mit Bauteilen aus der Bibliothek oder einer I/O-Karte als
Micro-Controller betreiben lässt und damit einen praktischen Nutzen hat.

Zum Thema hunderte Projekte:
Die Projekte "gläserner Prozessor", eine 65C02-DLL und die 6805-DLL (s.o.) sind abgeschlossen,
das Projekt einer ATMEL-Core-DLL werde ich auf Grund des ausgebliebenen Interesses an den
DLLs erst gar nicht beginnen, d.h.: meine Projekte sind alle abgearbeitet und ich werde mich
wieder sinnvolleren Tätigkeiten in anderen Lebensbereichen widmen. Fragen und Fehlermeldungen
zu den veröffentlichten Projekten werde ich natürlich weiterhin beantworten bzw. beheben.

Gruß

microprocessor

BKGMX
Beiträge: 132
Registriert: Montag 7. Dezember 2009, 10:37
Wohnort: Berlin

Re: 65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram

Beitrag von BKGMX » Dienstag 20. April 2010, 18:32

Hallo Eure Majestät Mikroprozessor (war das so korrekt?),
tja wer kennt denn heutzutage noch den 6502 und kann das Teil noch in Assembler
oder MC programmieren (Irgendwo habe ich noch eine Kassettenstation 410 für den
Atari mit den entsprechenden Programmen). Die meisten sind doch wohl schon in
Rente. Und von den jungen Spunden interessiert sich keiner mehr für Hardware aus
dem vorigen Jahrtausend (also eigentlich fast zeitgleich mit der Entwicklung der
Ritterrüstung).
Allerdings wer hätte auf der damaligen Hardware an so was wie Profilab gedacht.

Es hat mir gefallen, mal wieder eine ordentliche Schaltung zu lesen.

Gruß BKGMX

Microprocessor
Beiträge: 79
Registriert: Montag 27. Oktober 2008, 00:03

Re: 65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram

Beitrag von Microprocessor » Donnerstag 22. April 2010, 06:21

Hallo bkgmx,

die Veröffentlichung der Schaltung soll ja nicht nur den wenigen Interessierten wie Dir sondern
auch als Kompliment und Dank an Abacom für ein Programm dienen, das selbst ein solch
umfangreiches Projekt korrekt simuliert und damit den letzten Beweis antritt, dass es auch bei
Benutzung des gesamten Arbeitsblattes und einer grossen Anzahl geschachtelter Makros noch
stabil und zuverlässig läuft. Über das fehlende ein-flanken-getriggerte Flip-Flop und die
gelegentlich verlorengegangenen Verbindungen nach dem Verschieben grosser Bereiche im
Edit-Modus kann man grosszügig hinwegsehen (den größten Teil des Projekts habe ich noch
unter ProfiLab 3.0 ohne Gummibandfunktion edititert, eine Schweinearbeit für das Extrahieren
bzw. Komprimieren der Schaltung beim Einfügen oder Löschen von Komponenten im Vergleich
zur aktuellen Version).

Der Vergleich mit der Erfindung der Ritterrüstung trifft auf der einen Seite natürlich zu. Warum die
Wahl auf diesen Typ fiel, wird ausführlich im Intro der Dokumention dargestellt. Dass die
Schaltung erst jetzt fertig geworden ist liegt daran, dass ich 20 Jahre mit dem Projekt schwanger
ging und weitere 10 Jahre mehr oder weniger intensiv mit der Realisierung beschäftigt war.
Die Tatsache, dass ich Digitaltechnik-Laie bin hat die Entwicklungszeit natürlich zusätzlich
erhöht. Darüber hinaus gab es, wie Du schon feststelltest, vor 30 Jahren noch kein ProfiLab oder
ähnliches und schon gar nicht zu einem solch unschlagbaren Preis. Übrigens, wenn Du jetzt
nachrechnest, bitte keinen Trugschluss: es bleibt mit noch reichlich Zeit bis zur Rente :( !!!!

Auf der anderen Seite geht es ja auch weniger um den 65C02 als um die exemplarische
Realisierung irgendeines transparenten Prozessors. Ob der 4004 vor vierzig Jahren oder der
Cell-Prozessor seit vier Jahren: die internen Strukturen sind im Prinzip (selbst wenn man die
Unterschiede der Harvard- und der von-Neumann-Architektur mit einbezieht) für alle Prozessoren
immer die gleichen und werden sich erst mit den Quantenrechnern ändern. Aber selbst dann
bleibt die klassische Logik die Grundlage der digitalen Rechner und auch bei der Verabeitung von
Qbits wird es so bleiben. Ich finde es immer wieder faszinierend, dass man mit zwei Zuständen
und den drei Grundfunktionen NOT, AND und OR die Welt abbilden kann.

Hätte ich einen 8051, einen Atmel-Core oder sonst einen zeitgenössischen Prozessor aus diesem
Jahrtausend für das Projekt gewählt, wäre das Interesse der Jungspunde auch nicht grösser
gewesen. Was das Grundlagenwissen betrifft stochern die (bei aller Anerkennung für ihre
Leistungen) doch hoch über festem Grund in dichten Wolken.


Gruss
microprocessor

Microprocessor
Beiträge: 79
Registriert: Montag 27. Oktober 2008, 00:03

Re: 65C02 Mikroprozessor Schaltplan / 65C02 Wiring Diagram

Beitrag von Microprocessor » Samstag 3. Juli 2010, 12:56

Update-Info 3.7.2010

Im Dateianhang (65C02PRJ.ZIP) des Original-Beitrags (Top of Thread) steht ein Update
mit der Korrektur des Microcodes für den Befehl 8Dh (STA ABS.) zu Verfügung.

Gruß
microprocessor

Antworten

Zurück zu „Projekte“