S wie Suska

Ein in VHDL modellierter Open Source IP-Core mit Atari ST(E) Funktionalität

Dieses Projekt entstand aus einer Laune heraus und aus Interesse an der Modellierung von digitalen Schaltungen.

Suska, ist inzwischen zu einem fast vollständigen Atari ST herangewachsen, der komplett in VHDL modelliert ist. Zu Anfang stand der Versuch, den Adressdekoder des GLUE Custom Chips durch eine entsprechend modellierte Schaltung zu ersetzen; mit Erfolg. Dies war im Februar 2003. Viele hundert Stunden später sind alle im Atari ST verbauten Custom-Chips durch ein einziges FPGA ersetzt worden, sogar die 68000 CPU wurde integriert.

Nach der Modellierung jedes Atari Custom-Chips, bestand eine Herausforderung darin, die entworfene Hardware direkt im Atari Mainboard zu testen und ggf. Timings anzupassen. Hierzu boten sich die von Inventronik GmbH entwickelten Sphinx Module an; FPGAs, die als Piggy-Backs mittels eines Adapters direkt in das Mainboard eingesteckt werden konnten. In der Bildergalerie sind Photos hierzu zu finden.

Nachdem immer mehr Funktionseinheiten der ST Maschinen nachgebildet werden konnten, bestand die Herausforderung schließlich in komplexeren Strukturen wie Floppy Disk Controller, Blitter und last but not least in der 68000 CPU.

Dank einiger Spenden konnte schließlich das Suska Board entwickelt und aufgebaut werden. Das Board verwendet einen FPGA von Altera (Cyclone II im BGA Gehäuse), Flash Prom, RAM sowie zwei Atmel Microcontroller für den Bootloader und zum Progammieren des FPGAs. Das Board integriert alle STE typischen Schnittstellen. Die Verwendung eines FPGAs von anderen Herstellern wie z.B. Actel, Lattice oder Xilinx wäre ebenfalls möglich gewesen.

Mit der Fertigstellung der Hardware kam ein weiterer Aspekt zum Tragen: das Betriebssystem. Zur besseren Fehlersuche und auch aus rechtlichen Gründen wird eine Open Source Alternative zum Atari TOS verwendet – EmuTOS. Hier hat Jens während des Debuggings und bis heute ganze Arbeit geleistet.

Suska versteht sich als Long-Term Vorhaben. Den aktuellen Status findet ihr im Logbuch oder im Fortschritt.

Viel Spaß beim Stöbern.

Wolfgang