Mock-A-65xx - Universeller MOS 65xx/85xx CPU Ersatz

  • Durch die schlechte Verfügbarkeit von z.B: 8501 und 6509, die deren Preise in der Bucht in die Höhe treibt,

    möchte ich heute mein neustes H/W-Projekt an dem ich (seit Anfang 2017) gearbeitet habe vorstellen:



    Mock-A-65xx - Universeller MOS 65xx/85xx CPU Ersatz






    Der - noch zu große - Prototyp ist derzeit ausgelegt um folgende MOS 6502(-Derivate) zu ersetzen:

    • 6502 (<- Gähn... langweilig/olle Kamellen! ;) )
    • 6508 (FDC in Commodore C900)
    • 6509 (P500, P6x0/7x0)
    • 6510 (aka 8500)
    • 8501 (C16, plus/4)
    • 8502 (C128)
    • 6510T (Floppy 1551)



    Siehe auch: Mock-A-65xx_Pins.pdf





    Der Core wurde mit Hilfe von diversen (professionell erzeugten!) "die shots", dem Original Schaltplan des 650X Rev.C (enthält noch Fehler!)

    und der Visual6502 Simulation neu (von mir) in Verilog entwickelt. Besonderes Augenmerk legte ich auf folgendes:


    • Phasen-Level-exakte Nachbildung des 6502
    • 100% Unterstützung aller Op-Codes (auch illegale)
    • Simulation der Pass-Gates zw. den internen Bussen
    • Portierung aller Latches/Pass-Gates in Flip-Flops.
    • 100% identische Funktionseinheiten/Modularisierung wie 6502. Siehe auch Schaubild:




    Zeichnung: (C) Donald F. Hanson



    Hilfsmittel: Random-Ctrl-Logik auf Whiteboard mit Annotationen:




    Hier z.B. die GATEIN Logik des 8501:





    Nicht unerwähnt soll bleiben, daß ich anhaltend tatkräftige Unterstützung bei der Umsetzung des Gesamtprojekt von (in alphabetischer Reihenfolge):

    • Brotboxfan (Prototyp-Aufbau)
    • Freak (PCB Layout)
    • Jogi (Test-Geräte und Original-Chips)

    erfahren habe! Mein ausdrückliches Dankeschön an die beteiligten Helfer! :thumbup:



    Die nächsten Schritte:

    • Verkleinerung des Prototyp auf vernünftige Einbaugröße
    • Umsetzung der noch fehlenden CPUs (z.B. 6509R7 -> Warten auf die shot)
    • Vorbereitung Massenproduktion
    • Vollständige Evaluierung (und Bugfixing) mit Hilfe der VICE Testsuites


    ps: In den nächsten Tagen werde ich verschiedene Bilder und/oder Videos von der CPU in Aktion posten... soll ja keiner sagen: Alles nur Fake! :D

    Beispiel:


    Demo 1

    Demo 2


    pps: Bitte nicht wundern: Der Monitor braucht so lange zum Sync'en... das liegt nicht an der Mock-A-65xx, das so lange kein Bild kommt! :zzz:

    Und das Gewackel ist der späten Uhrzeit bzw. meiner Hektik geschuldet: Ich wollte zu dem Zeitpunkt eignetlich schon pennen! :saint:

  • Nur mal so aus Neugierde (da ich mich auch gerade etwas mit FPGA/VHDL beschäftige) - was für eine FPGA ist das ?


    Christian


    In den nächsten Tagen bekomme ich (wenn nix schief läuft) die Bilder vom 6509R7. So wie ich die Logik Reverse engineered
    habe, baue ich den auch gleich ein.

    Wäre es nicht auch möglich eine kleinere FPGA zu nehmen, so dass das Ersatzboard nur so groß wie eine normale DIP40 cpu ist?

    Ich habe mal einen 6502 für mein Cyclone2 kompiliert - und die braucht gerade mal knapp 500 LE's...

    Allerdings braucht man wohl immer noch LVC-TTLs um die 5V auf 3,3V für die Eingänge zu reduzieren. Die hab ich auch verwendet um meinen XMEGA-VICII-Ersatz an den 6502 anzudocken ;)

    ...oder man findet eine ganz alte FPGA, die 5V-tolerant ist.


  • Moin moin... Den FPGA-SID als Basis zu nehmen macht wenig Sinn , da dieser an manchen Stellen aufwändiger ist,

    als das was wir benötigen. Zum Beispiel sind da OP-Amps drauf und ein weiterer CPLD -> Brauchen wir alles nicht. :)


    Zitat

    Wenn das fertig ist dann Bitte den TED angehen


    Ich dachte den gibt's schon?


    Aber das nächste Projekt läuft bereits parallel (wenn auch aus Zeitgründen derzeit nur mit Sparflamme):


    FBI - FPGA-based I/O-Port


    D.h. ein Ersatz für:

    • 6520 (aka MC6820/MC6821)
    • 6522 (VIA)
    • 6526 ("alter" CIA; NMOS)
    • 8520 (Amiga CIA)
    • 8521 ("neuer" CIA HMOS-II; meistens als 6526(A) gestempelt).


    Sobald "MockA65xx" Serienstand erreicht hat, geben wir hier Vollgas!

  • Juup, mir ist schon klar, dass der FPGA-SID zusätzlichen analogen Aufwand betreibt. Allerdings passt er von der Form her perfekt, oder. Ich dachte eher so als Basisgedanke.


    Nach dem TED müsste ich dann mal suchen. Aufgefallen ist mir da noch nichts.


    Gruss,

    Peter

  • In den nächsten Tagen bekomme ich (wenn nix schief läuft) die Bilder vom 6509R7. So wie ich die Logik Reverse engineered
    habe, baue ich den auch gleich ein.

    Wäre es nicht auch möglich eine kleinere FPGA zu nehmen, so dass das Ersatzboard nur so groß wie eine normale DIP40 cpu ist?

    Ich habe mal einen 6502 für mein Cyclone2 kompiliert - und die braucht gerade mal knapp 500 LE's...

    Allerdings braucht man wohl immer noch LVC-TTLs um die 5V auf 3,3V für die Eingänge zu reduzieren. Die hab ich auch verwendet um meinen XMEGA-VICII-Ersatz an den 6502 anzudocken ;)

    ...oder man findet eine ganz alte FPGA, die 5V-tolerant ist.


    Einen alten FPGA zu nehmen ist keine Option: Dann verschiebe ich das Beschaffungsproblem ja nur.
    Das was Du siehst ist nur ein Prototyp... der ist deshalb so groß, weil wir bewusst größere Bauformen genommen haben

    um das Teil selbst bestücken und ggf. Änderungen daran vornehmen zu können.


    Die finale Version wird auch eher in Richtung DIL40 (bzw. leicht darüber) gehen. Der FPGA wird rein nach dem Preis ausgesucht.


    Wie ich in einem anderen Forum schon schrieb: Es soll keine überteuerte Tech-Demo werden, sondern ein bezahlbarer und haltbarer
    Ersatz für die seltenen MOS CPUs.

  • Das Problem beim verkleinern der CPU ist, daß das ganze auch noch fertigbar sein muß. D.h. keine manuellen Schritte zum fertigen

    produkt. Ich denke wir bekommen das hin... aber vorher muß ich noch ein paar Messungen machen um das neue Design auch abzusichern!

    (Und ganz sicher zu sein, das die nächste Auflage kein Schrott wird).