2 poin oleh GN⁺ 2025-12-21 | 1 komentar | Bagikan ke WhatsApp
  • 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
    Iklan

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
    Iklan

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
    Iklan

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

1 komentar

 
GN⁺ 2025-12-21
Komentar Hacker News
  • Saya mengambil jurusan ilmu komputer, tapi juga tertarik pada rekayasa komputer, jadi ingin mencoba sendiri membuat arsitektur rendering retro seperti ini dan bahkan membawanya sampai tape-out
    Strukturnya sederhana tapi benar-benar menarik, jadi saya sangat suka proyek seperti ini

    • Seperti penulisnya, saya merekomendasikan memulai dari simulasi lalu beralih ke FPGA
      Hanya dengan FPGA pun kita bisa melangkah cukup jauh. Bisa merancang SoC sendiri itu selalu terasa mengasyikkan
      Misalnya, kalau berpikir “sepertinya butuh 9 port I2C?”, tinggal salin bloknya lalu tempel saja.
      Kalau ada operasi yang lambat di perangkat lunak, kita juga bisa membuat akselerator perangkat keras sendiri
    • Menakjubkan bagaimana internet menghubungkan komunitas minat kecil seperti ini
      Memang ada sisi bahwa semua orang terhubung lalu budayanya jadi seragam, tapi tetap luar biasa bahwa beberapa puluh orang dari seluruh dunia bisa berkumpul untuk kompetisi sekeren ini
  • Saya suka bagaimana grid-nya berdenyut mengikuti kick drum. Sentuhan kecil yang sangat bagus

  • Saya penasaran soal stabilitas jangka panjang dari generator sin/cos HAKMEM yang dikutip, jadi saya mencarinya
    Ringkasan terkait ada di sini
    (katanya stabil di bawah kondisi aritmetika yang tepat)
    Kebetulan ini juga berkaitan dengan video integrasi Verlet yang saya unggah minggu lalu

    • Dalam kondisi tertentu, ini bekerja dengan tepat. Bisa dibilang memakai trik matematis yang sama
      Saya juga menonton video itu karena rekomendasi YouTube, dan cukup menikmatinya
  • Ini mengingatkan saya pada masa kuliah — saya jadi teringat ungkapan bahwa perangkat keras dan perangkat lunak setara secara logis

    • Menulis perangkat keras mirip dengan menulis perangkat lunak, tetapi paralelisme jauh lebih murah dan kesalahan jauh lebih mahal
  • Ini benar-benar pekerjaan yang mengesankan. Dulu saya sering bermain di demoscene JS, terutama dwitter, tapi ini benar-benar level yang berbeda
    Gara-gara komentar ini saya jadi mengecek dan baru tahu bahwa TinyTapeout hidup kembali

  • Saya ingin mencoba membuat FPAA dengan Tiny Tapeout, tetapi sepertinya tidak akan muat di area yang dialokasikan

    • Di TT, desain multi-blok juga dimungkinkan jika membayar biaya tambahan
  • Karena pola seperti “No x, no y, just z” sering dipakai di ChatGPT, rasanya sekarang bahkan pengguna biasa pun mulai ikut memakainya

    • Bahasa itu cair. LLM memang punya banyak sisi negatif, tetapi saya rasa perubahan bahasa seperti ini tidak berbahaya
    • Sebenarnya saya juga ingat pernah memakai frasa seperti “no x, no y, just z” sebagai slogan pemilihan ketua kelas waktu SD
    • Bisa jadi justru ChatGPT yang mempelajari ekspresi dari pengguna biasa
  • Ini mengingatkan saya pada masa ketika saya memperbaiki mesin pinball di sekolah kejuruan. Kenangan yang indah

  • Keren sekali!

  • Saat melihat Open Shuttle saat ini, tampaknya proyek membutuhkan $2500 untuk memakai lisensi SRAM 4KB
    Sebagai gantinya, antarmuka Wishbone Bus sudah termasuk

    1024x32 Commercial SRAM
    CF_SRAM_1024x32
    Commercial SRAM: 1024 words x 32 bits (4KB) with Wishbone Bus interface
    Area: 0.17mm²
    License: Commercial - $2500 per project