Hello, Guest the thread was called165 times and contains 3 replays

last post from Jotta at the

FPGA64 - 6510

  • Die Entity hat zwar einen Clock Eingang aber keinen Ausgang.

    Warum sollte man einen Clock-Ausgang hinzufügen. Der C64 (oder besser

    so gut wie alle MOS-Chips) arbeiten ja im Latch-Modus, wärend heutige

    Designs für FPGAs idR taktsynchron per Clock-Edges sind. Die FFs der

    meisten FPGAs haben zwar auch einen Latch-Modus, der lässt sich aufgrund

    extrem unterschiedlicher Timings aber nicht kompatibel zu den damalige

    MOS-Chips betreiben (was aber nicht heisst, dass der Latch-Modus nicht

    sehr genau emuliert werden kann. Das habe ich aber bis jetzt noch nie

    gesehen, ich habe so etwa eine Vorstellung, wie das einfach formuliert

    werden kann). Entsprechend designed muss nur jedem Chip ein

    Clock-Eingang für den Systemtakt hinzugefügt werden.


    Also ist die erste Aufgabe beim Umsetzen eines Retro-Designs, alles von

    Latch auf sync-Edge umzuformulieren. Das klappt oft auch sehr gut, es

    gibt aber auch Probleme: z.B. glaube ich ist der Takteingang für den

    seriellen Eingang des CIAs vom Clock-Eingang total unabhängig, meisst

    wird er aber in HDL-Umsetzungen synchron gehalten. Mit den exakten

    Timings kenne ich mich aber noch nicht so gut aus, deshalb das nur als

    Vermutung.

  • Warum sollte man einen Clock-Ausgang hinzufügen.

    Naja, wenn ich eine 6510 CPU nachbilde, dann sollte der Block so sein wie die Hardware.

    Und da gehört nun mal der PHI2 dazu.

    Ob man es braucht oder nicht …



    Brauchen würde man es zb. wenn man die CPU alleine betreiben will, als CPU Ersatz zum Beispiel.

  • Brauchen würde man es zb. wenn man die CPU alleine betreiben will, als CPU Ersatz zum Beispiel.

    Ja, in dem Fall hast du natürlich recht. Ich für mich versuche immer, alles ins FPGA

    rüberzuziehen, also so gut wie keine Kommunikation mit alter Hardware.


    Die Emulation der Clocks Phi1/Phi2 ist aber nicht so gross, man muss nur per

    entsprechend hohe Taktfrequenz Phi1 ensamplen und per Zähler+kleine FSM

    Phi2 generieren.