- Dalam kompetisi demo Tiny Tapeout 8, dibuat dua demo ASIC yang menghasilkan grafik VGA dan audio 1-bit hanya dengan sekitar 4 ribu logic gate
- Karya pertama adalah intro bergaya demoscene tradisional yang mencakup checkerboard 3D, latar bintang, teks scroll, dan musik, diimplementasikan sebagai state machine murni tanpa CPU maupun RAM
- Karya kedua adalah animasi Nyan Cat, memakai VGA 640x480 dan audio yang tersinkron dengan video, dengan hampir seluruh rangkaian dipadatkan ke dalam satu tile
- Semua efek visual dan audio dihasilkan langsung oleh rangkaian logika berbasis Verilog, dengan reproduksi musik memakai sumber daya minimum seperti sintesis gelombang segitiga dan pulsa, noise LFSR, serta DAC sigma-delta
- Produksi sempat terhenti akibat kebangkrutan Efabless, tetapi chip kemudian dipulihkan dan dipastikan berjalan sempurna pada perangkat keras nyata
Demo intro TT08
- Komposisi grafis mencakup starfield latar, checkerboard 3D, teks scroll bergelombang dan efek bayangan
- Resolusi VGA 1220x480, memakai clock 48MHz
- Video dihasilkan dengan merender hasil konversi C++ dari simulasi Verilator ke jendela SDL
- Menggunakan 293 flip-flop dan total 3374 sel, nyaris mencapai batas area
- Encoding font memakan banyak area gate sehingga nilai warna dikorbankan dan diganti dengan pola garis diagonal
- Untuk encoding data tanpa ROM, pola direpresentasikan langsung dengan logic gate
- Pipeline sintesis Yosys mengubah truth table menjadi standard cell
- Dibanding kompleksitas data, kesederhanaan algoritmik berdasarkan alamat lebih menguntungkan untuk penghematan area
- Scroller sinus diimplementasikan dengan rotasi vektor tanpa tabel
- Menggunakan metode symplectic integrator dari Minsky untuk menghasilkan lintasan melingkar
- Proyeksi bidang checkerboard diimplementasikan dengan operasi fixed-point
- Modul
recip16 menghitung invers koordinat y untuk melakukan transformasi perspektif
- Pola warna dibuat dengan operasi XOR, dan tinggi bidang berubah mengikuti beat drum
Detail grafis
- Efek bayangan dibuat dengan memproyeksikan teks scroll ke sistem koordinat bidang lalu menggeser bit warna
- Latar bintang (Starfield) menghasilkan bilangan acak per scanline menggunakan LFSR
- Dikombinasikan dengan frame counter untuk menentukan posisi dan kecepatan bintang, dengan panjang ekor berubah mengikuti timing snare drum
Sintesis musik
- Struktur pola berulang ABACABAD dipakai untuk meminimalkan duplikasi logic gate
- Terdiri dari tiga channel
- Noise + exponential decay (snare)
- Arpeggio gelombang kotak (melodi/chord)
- Gelombang segitiga + exponential decay (kick/bass)
- Output audio memakai DAC sigma-delta
- Implementasi dibuat sederhana dengan mengeluarkan carry bit akumulator alih-alih PWM
- Mengadopsi progresi chord dari lagu Crooner (C64 SID)
- Berbasis tangga nada 8 nada, rentang 2 oktaf, arpeggio per bit
- Ritme swing diimplementasikan dengan mengalihkan tempo antara 15 dan 25 tick
Retrospektif
- Desain yang memisahkan clock audio dan video menyebabkan ketidaksesuaian sinkronisasi musik dan video
- Pemilihan resolusi nonstandar 1220x480 menurunkan kualitas tampilan pada LCD
- Pada CRT muncul efek dithering yang alami, tetapi pada capture digital terjadi distorsi
Demo Nyan Cat
- Dibuat tepat sebelum tenggat Tiny Tapeout 8, memakai VGA 640x480 dan audio sinkron 60Hz
- Frame dan palet diekstrak dari GIF asli lalu dikonversi dengan dithering ke RGB222
- Latar bintang berbasis LFSR digunakan kembali
- Data musik dibuat dengan mem-parsing file MIDI lalu dipetakan ulang ke tangga nada 8 nada
- Hanya memakai dua channel: bass/kick dan melodi
- Envelope exponential decay diterapkan pada awal setiap frame (60Hz)
- Melodi dihasilkan dengan pulse wave duty cycle 25%
- Frekuensi disesuaikan dengan memilih bit-bit atas per oktaf
- Ditambahkan low-pass filter untuk mengatur timbre
Manufaktur dan hasil
- Tiny Tapeout 8 mulai diproduksi pada September 2024 lalu terhenti akibat kebangkrutan Efabless
- Pada paruh kedua 2025, tim operasi baru mengambil kembali chip dan mendistribusikannya
- Dalam pengujian chip nyata, semua desain berjalan normal
- Hanya demo Donut yang perlu menurunkan clock ke 45MHz agar stabil
- Demo Nyan Cat diputar sempurna di LCD maupun CRT
- Didemonstrasikan dalam siaran langsung YouTube milik Bitluni
Penutup
- Setelah menunggu lebih dari setahun, akhirnya terkonfirmasi ada demo yang berjalan sempurna di silikon nyata
- Ini merupakan contoh implementasi efek visual dan audio di lingkungan Tiny Tapeout dengan rangkaian logika murni tanpa CPU maupun RAM
- Disebutkan pula rencana pengembangan teknik demo hardware low-level yang lebih maju ke depan
Belum ada komentar.