Forum: Mikrocontroller und Digitale Elektronik 6502 selfmade CPU


von Stephan (Gast)


Lesenswert?


von Mike B. (mike_b97) Benutzerseite


Lesenswert?

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

von Jim M. (turboj)


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.

von Pädagoge (Gast)


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.

von Soul E. (Gast)


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.

von Chris D. (myfairtux) (Moderator) Benutzerseite


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?

von Mike B. (mike_b97) Benutzerseite


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...

von Pädagoge (Gast)


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_(digital_electronics)

von 🍅🍅 🍅. (tomate)


Lesenswert?

Der, der das Ding gebaut hat, weiss es wohl am besten :-)

https://www.youtube.com/watch?v=FzWwUPkSEvs

von Pädagoge (Gast)


Lesenswert?

http://bwrcs.eecs.berkeley.edu/Classes/icdesign/ee141_f01/Notes/chapter7.pdf

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

von Soul E. (Gast)


Lesenswert?

Pädagoge schrieb:
> http://bwrcs.eecs.berkeley.edu/Classes/icdesign/ee141_f01/Notes/chapter7.pdf
>
> 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/Electronics/CPU/6502%20Schematic.pdf

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.

von Erich (Gast)


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

von hinz (Gast)


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.

von AUGE Member (Gast)


Lesenswert?

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

von Soul E. (Gast)


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!)

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


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
von H-G S. (haenschen)


Lesenswert?

Kann er mit der Menge an Transistoren wirklich alle Befehle der CPU 
ausführen ?

von (prx) A. K. (prx)


Lesenswert?

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

: Bearbeitet durch User
von VOA (Gast)


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?

von hinz (Gast)


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.

von hinz (Gast)


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.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


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

von Manfred (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.