- Beim Tiny Tapeout 8-Demo-Wettbewerb wurden zwei ASIC-Demos erstellt, die mit nur rund 4.000 Logik-Gates VGA-Grafik und 1-Bit-Audio ausgeben
- Das erste Werk ist ein Intro im traditionellen Demoscene-Stil mit 3D-Schachbrett, Sternenhintergrund, Scrolltext und Musik, umgesetzt als reine Zustandsmaschine ohne CPU und RAM
- Das zweite ist eine Nyan-Cat-Animation, die 640x480 VGA und videosynchrones Audio nutzt und nahezu die gesamte Schaltung in einem Tile integriert
- Alle visuellen und akustischen Effekte werden direkt durch Verilog-basierte Logikschaltungen erzeugt; Musik wird mit minimalen Ressourcen durch Dreieckwellen- und Pulswellensynthese, LFSR-Rauschen, Sigma-Delta-DAC usw. reproduziert
- Die Fertigung wurde durch die Insolvenz von Efabless gestoppt, später wurden die Chips jedoch gerettet und liefen nachweislich auf echter Hardware perfekt
TT08-Intro-Demo
- Grafischer Aufbau mit Sternenfeld im Hintergrund, 3D-Schachbrett, wellenförmigem Scrolltext und Schatteneffekten
- VGA-Auflösung 1220x480, 48-MHz-Takt
- Videoerzeugung durch Verilator-Simulation, Umwandlung nach C++ und Rendering in ein SDL-Fenster
- Mit 293 Flip-Flops und insgesamt 3374 Zellen nahe an der Flächengrenze
- Da die Font-Kodierung viel Gate-Fläche belegte, wurden Farbwerte aufgegeben und durch ein diagonales Streifenmuster ersetzt
- Für Datenkodierung ohne ROM wurden Muster direkt mit Logik-Gates beschrieben
- Die Yosys-Synthese-Pipeline wandelt truth tables in Standardzellen um
- Für die Flächeneinsparung war algorithmische Einfachheit abhängig von der Adresse günstiger als Datenkomplexität
- Der Sinus-Scroller wurde ohne Tabelle über Vektorrotation umgesetzt
- Erzeugung einer Kreisbahn mit Minskys symplectic integrator
- Die Projektionsberechnung der Schachbrett-Ebene wurde mit Festkommaarithmetik umgesetzt
- Das Modul
recip16berechnet den Kehrwert der y-Koordinate und führt damit die Perspektivtransformation aus - Farbmuster werden per XOR erzeugt, die Ebenenhöhe verändert sich passend zum Drumbeat
- Das Modul
Grafische Details
- Der Schatteneffekt projiziert den Scrolltext in das Koordinatensystem der Ebene und verschiebt dabei Farbbits
- Der Sternenhintergrund (Starfield) erzeugt mit einem LFSR Zufallswerte für jede Scanline
- In Kombination mit dem Frame-Zähler werden Position und Geschwindigkeit der Sterne bestimmt; passend zum Snare-Timing verändert sich die Länge der Schweife
Musiksynthese
- Eine ABACABAD-Struktur aus Wiederholmustern minimiert doppelte Logik-Gates
- Aufbau aus drei Kanälen
- Rauschen + exponentielle Dämpfung (Snare)
- Rechteckwellen-Arpeggio (Melodie/Akkorde)
- Dreieckwelle + exponentielle Dämpfung (Kick/Bass)
- Audioausgabe über Sigma-Delta-DAC
- Statt PWM wird zur einfachen Umsetzung das Carry-Bit eines Akkumulators ausgegeben
- Verwendet die Akkordfolge aus Crooner (C64 SID)
- Basierend auf einer 8-Ton-Skala, über zwei Oktaven, mit bitweisem Arpeggio
- Swing-Rhythmus durch abwechselndes Tempo von 15 und 25 Ticks
Rückblick
- Durch ein Design mit getrennten Audio- und Video-Takten kam es zu Asynchronität zwischen Musik und Bild
- Die Wahl der nicht standardkonformen Auflösung 1220x480 führte zu schlechterer Darstellungsqualität auf LCDs
- Auf CRTs ergibt sich ein natürlicher Dithering-Effekt, bei digitaler Aufnahme treten jedoch Verzerrungen auf
Nyan-Cat-Demo
- Kurz vor dem Tiny-Tapeout-8-Deadline erstellt, mit 640x480 VGA und 60-Hz-synchronem Audio
- Frames und Palette wurden aus dem Original-GIF extrahiert und per Dithering nach RGB222 konvertiert
- Der LFSR-basierte Sternenhintergrund wurde wiederverwendet
- Die Musikdaten wurden durch Parsen einer MIDI-Datei auf eine 8-Ton-Skala remappt
- Verwendet werden nur ein Bass/Kick-Kanal und zwei Melodiekanäle
- Zu Beginn jedes Frames (60 Hz) wird eine exponentiell abklingende Envelope angewendet
- Die Melodie wird mit einer Pulswelle mit 25 % Duty Cycle erzeugt
- Frequenzanpassung durch Auswahl höherer Bits je Oktave
- Zusätzlicher Tiefpassfilter zur Klangformung
Fertigung und Ergebnis
- Bei Tiny Tapeout 8 begann die Fertigung im September 2024, wurde aber durch die Insolvenz von Efabless gestoppt
- In der zweiten Jahreshälfte 2025 holte ein neues Betriebsteam die Chips zurück und verteilte sie
- Tests mit echten Chips zeigten, dass alle Designs ordnungsgemäß funktionierten
- Nur bei der Donut-Demo musste der Takt für Stabilität auf 45 MHz gesenkt werden
- Die Nyan-Cat-Demo lief auf LCD und CRT gleichermaßen perfekt
- Vorgeführt im YouTube-Livestream von Bitluni
Abschluss
- Nach mehr als einem Jahr Wartezeit wurde bestätigt, dass die Demo auf echtem Silizium perfekt läuft
- Ein Beispiel dafür, wie sich im Tiny-Tapeout-Umfeld visuelle und akustische Effekte ohne CPU und RAM allein mit reiner Logikschaltung umsetzen lassen
- Erwähnt werden Pläne, künftig weiterentwickelte Low-Level-Hardware-Demo-Techniken zu entwickeln
1 Kommentare
Hacker-News-Kommentare
Ich habe zwar Informatik studiert, interessiere mich aber auch für Computer Engineering, deshalb würde ich so eine Retro-Rendering-Architektur gern selbst bauen und sogar bis zum Tape-out bringen
Eine einfache, aber wirklich spannende Struktur, deshalb liebe ich solche Projekte
Schon allein mit FPGA kommt man ziemlich weit. Dass man ein eigenes SoC entwerfen kann, ist immer wieder aufregend
Wenn man zum Beispiel denkt: „Ich brauche wohl 9 I2C-Ports?“, dann kopiert man einfach den Block und fügt ihn ein.
Wenn es in der Software eine langsame Operation gibt, kann man auch direkt selbst einen Hardware-Beschleuniger bauen
Natürlich hat die totale Vernetzung auch die Kehrseite kultureller Vereinheitlichung, aber dass sich ein paar Dutzend Leute aus aller Welt für so einen tollen Wettbewerb zusammenfinden können, ist großartig
Mir gefällt, wie das Grid im Takt der Kickdrum pulsiert. Ein schöner, sorgfältiger Touch
Ich war neugierig auf die Langzeitstabilität des zitierten HAKMEM-Sin/Cos-Generators und habe das nachgeschlagen
Eine passende Übersicht gibt es hier
(Unter den exakten arithmetischen Bedingungen soll er stabil sein)
Zufällig hat das auch mit dem Verlet-Integration-Video zu tun, das letzte Woche gepostet wurde
Ich habe das Video auch über YouTube-Empfehlungen gesehen und fand es ziemlich unterhaltsam
Das erinnert mich an meine Uni-Zeit — ich muss an den Satz denken: „Hardware und Software sind logisch äquivalent“
Wirklich beeindruckende Arbeit. Früher habe ich oft JS-Demoscene gemacht, besonders dwitter, aber das hier ist noch einmal ein ganz anderes Niveau
Durch diesen Kommentar habe ich nachgesehen und erfahren, dass TinyTapeout wieder da ist
Ich würde gern mit Tiny Tapeout ein FPAA bauen, aber ich glaube nicht, dass es in die zugewiesene Fläche passt
Muster wie „No x, no y, just z“ werden von ChatGPT so oft benutzt, dass inzwischen wohl sogar normale Nutzer sie übernehmen
Das erinnert mich an die Zeit, als ich auf der Berufsschule Flipperautomaten repariert habe. Gute Erinnerungen
Wirklich cool!
Wenn ich mir das aktuelle Open Shuttle anschaue, kostet die Nutzung der 4KB-SRAM-Lizenz im Projekt offenbar 2500 $
Dafür ist allerdings eine Wishbone-Bus-Schnittstelle enthalten