Ich versuche, einen 16-Bit-Einplatinencomputer rund um den 68000 zu bauen, und frage mich, ob es nicht proprietäre 16-Bit-Grafikchips wie den Yamaha V9958 mit leicht verfügbaren Datenblättern gibt.
Danke
Ich versuche, einen 16-Bit-Einplatinencomputer rund um den 68000 zu bauen, und frage mich, ob es nicht proprietäre 16-Bit-Grafikchips wie den Yamaha V9958 mit leicht verfügbaren Datenblättern gibt.
Danke
Nun, eine naheliegende Wahl wäre die Verwendung des Chips, von dem die von Ihnen erwähnten Yamaha-Geräte erweiterte Klone waren, des TMS9918. Sie werden nicht mehr hergestellt, können aber relativ einfach erworben werden, wenn Sie an den richtigen Stellen suchen. Sie sind also definitiv eine plausible Wahl. Der TMS9918 wurde im ersten 16-Bit-PC, dem TI-99/4, verwendet, sodass Sie sich dort in guter Gesellschaft befinden. Sie würden im Vergleich zum MSX etwas an Auflösung verlieren, aber es ist immer noch ein ziemlich vernünftiges System.
Eine andere Wahl wäre das Motorola 6845, das etwas weniger fortschrittlich, aber viel vielseitiger war - es wurde schließlich als Grundlage für die IBM PC-Grafikkarten bis einschließlich EGA (und) verwendet ist auch im VGA in abwärtskompatibler Form vorhanden), ist also für echte Arbeit geeignet.
Der NEC uPD7220 ist ein weiterer guter Kandidat, insbesondere sein 16-Bit-Nachfolger, der uPD72120. Im Gegensatz zum 6845 implementiert dies ein befehlsbasiertes System, bei dem Sie dem Chip mitteilen, was zu zeichnen ist, und der Videospeicher für Sie aktualisiert wird. Wie die 99x8-Chips verfügt es über einen eigenen Speicher, auf den der Zugriff verwaltet wird (während der 6845 unabhängig davon ist, ob der Speicher, mit dem er verbunden ist, ein eigener ist oder von der Host-CPU verwaltet wird: Er generiert nur Adressen und erwartet externe Schaltkreise Führen Sie den eigentlichen Speicherzugriff durch) und bieten Sie eine Möglichkeit, Änderungen am Speicher von der CPU zusammen mit allgemeinen Zeichnungsprimitiven anzufordern (im Gegensatz zum 99x8 bietet es jedoch ein Busanforderungs- / Bestätigungsprotokoll, das auch direkten Zugriff darauf ermöglicht und verwenden kann ein Standard-DMA-Protokoll zum Durchführen von Blockübertragungen zum und vom Systemspeicher).
Wie die anderen oben ist es ein veraltetes Teil, das nicht mehr hergestellt wird, sondern bei ebay und ähnlichen Websites gekauft werden kann.
Ich habe mir Xilinx FPGAs angesehen. Ich habe eine VGA / SVGA / XGA-Tabelle mit verschiedenen Bits pro Pixel erstellt: 3,9,12. Einige Ergebnisse:
Dann habe ich versucht, das auf einem FPGA abzubilden. Der begrenzende Faktor ist der interne Speicher. ~ $ 25 gibt Ihnen 1,6 Mbit. ~ $ 57 gibt Ihnen 2,7 Mbit
Als nächstes habe ich mir die Verwendung eines externen SRAM angesehen. Viel billiger! Ein 100-Pin-FPGA kostet ungefähr 8 US-Dollar, ein 16-Mbit-SRAM ~ 7 US-Dollar (LQFP-Paket) Das gibt Ihnen theoretisches XGA mit 262K Farben pro Pixel.
Dann können Sie einen DAC hinzufügen oder ein Widerstandsnetzwerk verwenden.
Ich konnte nicht überprüfen, ob das ausgewählte FPGA groß genug für XGA-Code ist. Der Code ist sehr einfach, nur eine Reihe von Zählern, aber Sie müssen eine CPU-Schnittstelle hinzufügen und können ein Zeichen-ROM-Modus sein.
Wenn mir sehr langweilig ist, könnte ich versuchen, morgen eine zu schreiben.
Die Frage wird derzeit gehalten, aber ich gebe trotzdem ein Update.
Begonnen mit einem 100-poligen XC3S50. Ich musste die Videoschnittstelle auf 12 Bit und den CPU-Datenbus auf 8 Bit reduzieren, um innerhalb der Pin-Anzahl zu bleiben. (Dies ist für XVGA) Das Design passt leicht. Ich habe einen 256x54-Bit-RAM hinzugefügt, um als Zeichen "ROM" zu arbeiten (verwendbar als 9x6 oder 10x5). Zu diesem Zeitpunkt ging mir mit dem FIFO der interne Speicher aus.
Dann habe ich einen 144 Pin XC6SL4 ausprobiert. Ich habe mich für ein größeres Gerät entschieden, weil die Erfahrung gezeigt hat, dass Sie immer etwas mehr brauchen, als Sie erwartet hatten. Es kostet 2 Dollar mehr. Diesmal hatte ich interne Speicherblöcke und Multiplikatoren frei. Ich hatte Probleme mit der Pin-Anzahl und konnte mit dem 16-Bit-CPU-Datenbus auf 18 Bit / Pixel oder mit dem 32-Bit-CPU-Datenbus auf 15 Bit / Pixel aufsteigen.
In beiden Fällen reicht die Speicherbandbreite nicht aus, um &-Schreibvorgänge gleichzeitig zu lesen. In beiden Designs gibt es einen FIFO, der die CPU-Schreibvorgänge abfängt und sie in der Austastperiode ausführt.Mit 256 Einträgen ist die 68000-CPU nicht schnell genug, um den FIFO in einer Zeilenzeit zu füllen.
Beide Designs können im Grafik- oder Zeichenmodus verwendet werden.Das gesamte Video-Timing ist programmierbar (wie beim 6845, jedoch größer und schneller), sodass viele Videomodi bis zu 1024 x 768 ausgeführt werden können.Ich habe dem Grafikmodus keine Farben hinzugefügt, aber das ist nur eine Frage der Zeit.(z. B. 16 Vordergrund- und 16 Hintergrundfarben).Da es einige Ersatzgatter gab, kann der Grafikmodus verbunden oder getrennt werden.(Im getrennten Modus fügt die Hardware den Zeichen Austastpixel hinzu, damit sie hervorstechen.)
Ich habe keine Hardware, was bedeutet, dass nichts davon im wirklichen Leben getestet werden kann.