mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 6502 selfmade CPU


Autor: Stephan (Gast)
Datum:

Bewertung
7 lesenswert
nicht lesenswert

Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was begrenzt bei einem solchen sauberen Aufbau den Takt auf 60kHz?

Autor: Jim Meba (turboj)
Datum:

Bewertung
5 lesenswert
nicht lesenswert
Mike B. schrieb:
> Was begrenzt bei einem solchen sauberen Aufbau den Takt auf 60kHz?

Er hat einzelne Transistoren verwendet und keine fertigen 74xx Gatter. 
Da haste vergleichsweise riesige Kapazitäten und signifikante 
Leitungsimpedanz drin. Außerdem muss der Takt halbwegs synchron an 
verschiedenen Stellen auf der recht großen Platine ankommen.

Autor: Pädagoge (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Jim M. schrieb:
> Mike B. schrieb:
>> Was begrenzt bei einem solchen sauberen Aufbau den Takt auf 60kHz?
>
> Er hat einzelne Transistoren verwendet und keine fertigen 74xx Gatter.
> Da haste vergleichsweise riesige Kapazitäten und signifikante
> Leitungsimpedanz drin. Außerdem muss der Takt halbwegs synchron an
> verschiedenen Stellen auf der recht großen Platine ankommen.

Naja, bereits vor 10 Jahren hat man einen Transistor -6502 gebaut, der 
auf 500 kHz läuft:
http://6502.org/users/dieter/mt15/mt15.htm

Das der taktgenerator aus TTL-Gattern aufgebaut wurde ist m.E. nicht 
wesentlich von Belang, 60 kHz ist auch für Transistor-CPU's schnarch 
langsam. Beispielsweise lief der "Saturn Launch Vehicle Digital 
Computer" aus den Sechzigern mit 2.5 MHz.

Ich tippe mal auf die LED's die hier eine extreme Verlangsamung 
erfordern.

Autor: soul eye (souleye)
Datum:

Bewertung
5 lesenswert
nicht lesenswert
Mike B. schrieb:

> Was begrenzt bei einem solchen sauberen Aufbau den Takt auf 60kHz?

Im 6502 werden Leitungskapazitäten genutzt, um latente Zustände 
zwischenzuspeichern. Das erfordert eine minimale Taktrate, sonst hat 
sich die Ladung zu schnell abgebaut. Man wollte den Monster6502 im 
single step betreiben können, also Takt bis Null runter. Sonst bringen 
die LEDs ja nichts. Dazu mussten die parasitäten Kapazitäten durch 
Parallelschalten realer Kondensatoren erhöht werden. Das wirkt sich 
leider am oberen Ende des Taktbereiches aus und reduziert die 
Grenzfrequenz.

D.h. man musste sich quasi entscheiden, 0..60 kHz oder 100..500 kHz(?). 
Null ist halt für einen Demonstrator interessanter.

Autor: Chris D. (myfairtux) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soul e. schrieb:
> Im 6502 werden Leitungskapazitäten genutzt, um latente Zustände
> zwischenzuspeichern.

Interessant - wusste gar nicht, dass man das damals gemacht hat.

Hast Du dazu nähere Infos?

Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dieses Monster hier http://www.megaprocessor.com/index.html wird bei 
wohl 20kHz betrieben
Bei diesem riesigem Baumaß und diese Leitungslängen aber sicher kein 
Wunder.
Aber für Tetris scheinst zu reichen...

Autor: Pädagoge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soul e. schrieb:
> Mike B. schrieb:
>
>> Was begrenzt bei einem solchen sauberen Aufbau den Takt auf 60kHz?
>
> Im 6502 werden Leitungskapazitäten genutzt, um latente Zustände
> zwischenzuspeichern. Das erfordert eine minimale Taktrate, sonst hat
> sich die Ladung zu schnell abgebaut.

Nicht ganz korrekt, zeigt aber in richtige Richtung.
Es sind nicht Leitungskapazitäten sondern Kapazitäten am Gate und 
parasitäre Kondensatoren.
Sttichworter sind dynamische Logik und Transmission Gates. Die ersten 
ARMS waren auch in dynamischer Logik gefertigt und es war eine der 
wichtigsten Entscheidungen um mit dem ARM ein erfolgreiches IP-Geschäft 
zu starten diesen auf statisch umzudesignen.


https://en.wikipedia.org/wiki/Dynamic_logic_(digit...

Autor: Rote Tomate (tomate)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der, der das Ding gebaut hat, weiss es wohl am besten :-)

Youtube-Video "Interview with the Creator of MOnSter6502; a Discrete 6502 Processor"

Autor: Pädagoge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://bwrcs.eecs.berkeley.edu/Classes/icdesign/ee...

Ab Seite 282ff vermeine ich einige Beispiele für dynamische Logik zu 
erkennen.

Autor: soul eye (souleye)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pädagoge schrieb:
> http://bwrcs.eecs.berkeley.edu/Classes/icdesign/ee...
>
> Ab Seite 282ff vermeine ich einige Beispiele für dynamische Logik zu
> erkennen.

Die dürften sich dann hier wiederfinden: 
http://www.downloads.reactivemicro.com/Public/Elec...

Den Schaltplan hat Balazs Beregnyei vor einigen Jahren 
reverse-engineered.



BTW: Den 6502 gab es später auch als CMOS, 65C02. Der war dann komplett 
statisch, man konnte den Takt anhalten.

Den 6502 durfte man auch nicht übermässig lange über die RDY-Leitung 
anhalten, die hat ebenfalls den Refresh unterbunden. Projekte mit 
Endlos-DMA (wie z.B. die Microsoft Z80 Softcard im Apple) haben den 6502 
deshalb alle paar Millisekunden ein paar Takte laufen lassen.

Autor: Erich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soul e. schrieb:
> Im 6502 werden Leitungskapazitäten genutzt, um latente Zustände
> zwischenzuspeichern. Das erfordert eine minimale Taktrate, sonst hat
> sich die Ladung zu schnell abgebaut.

Sicher hat er diesen Effekt nicht mit dem Transistorgrab nachgebaut.
Gruss

Autor: hinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soul e. schrieb:
> Den 6502 durfte man auch nicht übermässig lange über die RDY-Leitung
> anhalten, die hat ebenfalls den Refresh unterbunden. Projekte mit
> Endlos-DMA (wie z.B. die Microsoft Z80 Softcard im Apple) haben den 6502
> deshalb alle paar Millisekunden ein paar Takte laufen lassen.

Der 6502 hat keinen Refresh gemacht, und beim Apple II hat das der 
Videocontroller (aus TTL aufgebaut) erledigt, auch wenn die Z80 aktiv 
war.

Autor: AUGE Member (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hätte noch einen nahezu neuwertigen Apple IIGS im Keller,
will jemand mal auf Vintage Trip (65816) gehen?

Autor: soul eye (souleye)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hinz schrieb:

> Der 6502 hat keinen Refresh gemacht, und beim Apple II hat das der
> Videocontroller (aus TTL aufgebaut) erledigt, auch wenn die Z80 aktiv
> war.

Die Videologik hat keinen Zugriff auf die internen Register des 6502. 
Das kann  er nur selber machen.

(Es geht hier um Akku und Program Counter, nicht das externe RAM!)

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Im Gegensatz zum 6502 hatte der Z80 einen internen Refreshgenerator für 
externes DRAM. Der Prozessor selbst hatte aber auch dynamische Logik, 
was ich damals nach langer, langer Fehlersuche nur auf die harte Tour 
lernte. Ich hatte mir auch eine Single-Step-Logik gebaut, die auch 
prächtig funktionierte. Allerdings waren komischerweise die 
Registerinhalte völlig verbogen...

Mich juckt es derzeit etwas im Lötkolben, einen statischen Z80-Clone in 
diskreter Logik oder gar mit Einzeltransistoren aufzubauen... Dann hat 
meine Frau wieder etwas zum Löten! ;-)

: Bearbeitet durch User
Autor: H-G Sch (haenschen)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Kann er mit der Menge an Transistoren wirklich alle Befehle der CPU 
ausführen ?

Autor: A. K. (prx)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Wieso nicht? Der hat nichts eingespart. Das Original hat gemäss anderer 
Quelle ~3500 Transistoren.
Components that correspond 1:1 with transistors in the original 6502:
Total active transistors: 4237
3218 enhancement mode n-channel MOSFETs
2588 discrete
630 located on 164 quad transistor array chips (26 of these 656 transistors are not used)
1019 resistors (the original 6502 used depletion mode MOSFETs in place of resistors)

: Bearbeitet durch User
Autor: VOA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas S. schrieb:
> Der Prozessor selbst hatte aber auch dynamische Logik,
> was ich damals nach langer, langer Fehlersuche nur auf die harte Tour
> lernte.

Der Z80? Ach was, sicher?

Autor: hinz (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
soul e. schrieb:
> hinz schrieb:
>
>> Der 6502 hat keinen Refresh gemacht, und beim Apple II hat das der
>> Videocontroller (aus TTL aufgebaut) erledigt, auch wenn die Z80 aktiv
>> war.
>
> Die Videologik hat keinen Zugriff auf die internen Register des 6502.
> Das kann  er nur selber machen.
>
> (Es geht hier um Akku und Program Counter, nicht das externe RAM!)

Stimmt, da war was...

Ist aber auch schon verdammt lang her.

Autor: hinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VOA schrieb:
> Andreas S. schrieb:
>> Der Prozessor selbst hatte aber auch dynamische Logik,
>> was ich damals nach langer, langer Fehlersuche nur auf die harte Tour
>> lernte.
>
> Der Z80? Ach was, sicher?

Im Datenblatt von MOSTEK (1979) steht, dass er zwar statisch sei, aber 
dennoch wird nicht für Betrieb unterhalb 5kHz garantiert.

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
2 lesenswert
nicht lesenswert
VOA schrieb:
> Der Z80? Ach was, sicher?

Ja, ganz sicher. Die neumodischen CMOS-Ausführungen waren aber 
sicherlich vollstatisch aufgebaut, wenn auch nicht von mir verifiziert.

Hier ein paar interessante Informationen zu niedrig getakten Z80. Dort 
erfährt man auch, dass der 8080 (trotz NMOS) vollstatisch war, nicht 
aber der Z80.

https://groups.google.com/forum/#!topic/sebhc/xB5t-s6zX1o

Autor: Manfred (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Andreas S. schrieb:
> Ja, ganz sicher. Die neumodischen CMOS-Ausführungen waren aber
> sicherlich vollstatisch aufgebaut, wenn auch nicht von mir verifiziert.

Ich habe früher den 6502 eingesetzt, unter anderem für Prüfsysteme. Mit 
einem Empfäner hatte ich Ärger, dass der Prozessortakt den sauberen 
Abgleich unmöglich machte.

Der 65SC02 macht dabei deutlich mehr Sauerei als der NMOS. Aber: Ich 
habe den tatsächlich angehalten und über externe Hardware den Quarz 
abgeschaltet. In Richtung der Portbausteine ist dabei eine 
Phasenbedingung einzuhalten.

Dann gab es einen handbedienten Taster "weiter", Quarz wieder ein und 
das Programm weiterfahren.

------

Ich hatte mal eine längere Suche, mit dem In-Circut-Emulator lief das 
Programm, mit dem realen NMOS nicht: Der SC-Typ hat ein paar Befehle 
mehr, und gerade wegen des statischen Verhaltens ist im ICE natürlich 
der CMOS zwingend.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.