Hello, Guest the thread was called1.9k times and contains 48 replays

last post from Diddl at the

Programmable GMOD2 cartridge

  • Es passt zwar nicht 100% in den GMOD Thread ...

    ... aber hier sind wahrscheinlich die Leute die mir das erklären können.




    ======


    Frage 1:


    Die meisten C64 Cartridges die Banking haben, also ein Register mit D-FF realisieren, die machen eine Verknüpfung von IO1 (oder IO2) mit PHI2.

    Warum?


    In der PHI1 Phase greift sowieso niemand schreibend auf IO1 oder IO2 zu ...


    ======


    Frage 2
    :


    Ich möchte ein C64 Register realisieren mit einem GAL 16v8.


    Im Registered Mode muss CLK auf Pin 1 liegen.

    Leider geht da keine kombinatorische Logik als Clock, oder sehe ich das falsch?


    Also muss ich erst wieder ein 7400 nehmen um IO1, R/W und PHI2 zu verknüpfen?

    Oder geht das auch im GAL (registered und Kombinatorisch)?


    Wenn es im GAL geht, muss ich dann das Ergebnis wirklich von einem Pin zum Pin1 (Clk) führen?

    Oder geht das auch über interne Rückführung?


    Wenn ja, wie sag ich das dem WinCUPL?

  • Nun, so wie der Gmod2 einen Schreibvorgang ins RAM nicht nur mit R/W timen kann, kann man auch einen Schreibvorgang in ein Bankschalterregister nicht mit R/W timen. PHI2 bestimmt wann der Bus stabil ist und deine Register muss also mit einer Kombination aus IO1/2, R/W und PHI2 getaktet werden. Während PHI1 kann IO1/2 nicht aktiviert werden, die PLA-Gleichungen lassen dies nicht zu.

    Das seht du richtig, enige lösung ist ein der Ausgänge mit Pin 1 zu verbinden. Dies ist eine nicht besonders hilfreicheFunktion einer GAL, da es eher selten vorkommt, dass man einen komplizierteren Ausdruck für CLK verwenden möchte.

    Wenn es im GAL geht, muss ich dann das Ergebnis wirklich von einem Pin zum Pin1 (Clk) führen?

    Oder geht das auch über interne Rückführung?

    Leider, iInterne Rückführung ist nicht möglich für CLK.

  • Die Frage ist, ob man dann nicht gleich einen ATF1504 nimmt.


    Kosten drei Euro ... ist verkraftbar.

    Und man spart sich die LS273 Latch gänzlich.

    Weil der hat genug Pins und genug Flip-Flops.



    Ich hab das Teil damals beim Fe3 für den VC-20 verwendet und gute Erfahrungen damit.


    Allerdings hab ich keinen PC mehr mit parallel Port.

    Da müsste ich mir für das JTAG was basteln ...

  • Der erste Schritt ist naturlich der ATF1502.


    Abgesehen davon denke ich, dass Register eigentlich etwas sind, wofür eine 74x273 perfekt geeignet ist. Man kann sie in einen GAL oder CPLD einbauen, aber dann nutzt man die Logik, die dieser Chip bietet (große AND/OR-Arrays), schlecht aus. Bei einem GAL16v8/20v8 sind sogar alle Makrozellen dann sofort verwendet, so dass kein Platz für zusätzliche Logik mehr vorhanden ist.


    Ich denke, es macht mehr Sinn, einfach eine 74x273 (oder 373, 573) für das Register selbst zu verwenden und die Steuersignale mit einem GAL zu erzeugen. Du kannst mit einem GAL wesentlich komplexere Logik ausführen als mit einem oder eben zwei einzelnen 74xx und damit eine wesentlich komplexere Ansteuerung der Chips realisieren. Ein ATF150x mag nicht viel kosten, aber ein 74x273 kostet überhaupt nichts.

  • Übrigens, ich möchte auch sehen, ob es möglich ist, eine 74x646 zu verwenden. Bei einer 74x273 ist das Register immer write-only was zwar praktikabel, aber nicht elegant ist. Mit einem 74x646 sollte es möglich sein, ein Register zu bauen, das auch gelesen werden kann.

    Ah, ein richtiger IO Baustein.

    Reichelt hat den als HCT, werde ich mir mal mit bestellen.



    Das geht übrigens prinzipiell mit dem 16v8 auch, die Ausgänge sind Tristate und über OE steuerbar.

    Das wäre ein Register, das man lesen und schreiben kann.

    Nur halt blöd, dass man mit den IO nichts machen kann, außer wenn die CPU gerade liest ... :D