1541 im FPGA

Aus LaborWiki
Wechseln zu: Navigation, Suche
Fpgafloppy 0.jpg
   
1541 im FPGA

Release status: unknown [box doku]

Fpgafloppy 1.jpg
Description Emulation einer 1541 Floppy in einem FPGA
Author(s)  Tixiv

Nun habe ich (Tixiv) mich endlich dazu entschlossen, mal was mit meinem Xilinx Spartan-3 FPGA Board zu tun. Jörg (unser FPGA Meister) war auch sofort mit dabei, und wir bauen nun ein 1541-Floppy-Laufwerk (vom guten alten C64) im FPGA nach.

Bei der Floppy handelt es sich nicht um ein dummes Gerät, sondern sie hat ein eigenes Microprozessor-System mit 6502 Prozessor, das sie steuert. Der Plan ist, dieses möglichst originalgetreu in VHDL nachzubilden, nur dass die Daten dann nicht von einer Diskette, sondern von einer MMC-Karte kommen sollen (wo dann mal so eben all die schönen alten Spiele drauf passen).

Der Stand sieht zur Zeit so aus, dass das Microprozessorsystem bereits bootet, wir aber noch keine virtuelle Diskette haben, und der C64 noch nicht angeschlossen ist.

More to come....

So, jetzt mal ein kleines Update: Die Floppy ist nun quasi fertig. Die VHDL Implementation der Floppy läuft mit allen ausprobierten Fastloadern(incl. Jiffydos und Action Replay Modul). Ausser der einen PU der Floppy, die mit 1MHz läuft, gibt es in dem Design noch eine zweite 6502, die mit 16MHz läuft. Ihre Aufgabe ist es, die Daten von der MMC Karte für die Floppyemulation zu laden.

Beim Booten lädt die Controlling CPU über einen kleinen Bootloader von der MMC Karte erstmal seine eigene Firmware. Diese lädt dann das Floppy-ROM von der Karte in das RAM des Spartan-Boards. Dann wird die Virtuelle Floppy gebootet. Nun kann man auf einem Grafik-LCD mit den Tasten des Spartanboards ein D64-Image aussuchen, das dann von der 16MHz-CPU in eine virtuelle Diskette geladen wird, die die Floppyemulation dann sieht.

Es gibt eine Sache die noch fehlt: Man kann seine Diskette, nachdem man darauf geschrieben hat, nicht wieder auf die MMC Karte zurückspeichern. Das muss ich in einem ruhigen Moment mal machen.