2 puan yazan GN⁺ 2025-12-21 | 1 yorum | WhatsApp'ta paylaş
  • Tiny Tapeout 8 demo yarışmasında yalnızca yaklaşık 4 bin mantık kapısıyla VGA grafikleri ve 1 bit ses üreten iki ASIC demosu hazırlandı
  • İlk çalışma, 3D dama tahtası, yıldız arka planı, kayan metin ve müzik içeren geleneksel demoscene tarzı bir intro olup CPU ve RAM olmadan, saf bir durum makinesi olarak gerçekleştirildi
  • İkincisi, 640x480 VGA ve videoyla senkronize ses kullanan bir Nyan Cat animasyonu; neredeyse tüm devre tek bir tile içine sığdırıldı
  • Tüm görsel ve işitsel efektler Verilog tabanlı mantık devreleri ile doğrudan üretiliyor; üçgen dalga ve pulse wave sentezleyiciler, LFSR gürültüsü, sigma-delta DAC gibi bileşenlerle çok sınırlı kaynakla müzik yeniden üretildi
  • Efabless'in iflası nedeniyle üretim durdu, ancak daha sonra çipler kurtarıldı ve gerçek donanımda kusursuz çalıştıkları doğrulandı

TT08 intro demosu

  • Grafik yapısı; arka planda yıldız alanı, 3D dama tahtası, dalgalanan kayan metin ve gölge efektleri içeriyor
    • VGA çözünürlüğü 1220x480, 48MHz saat kullanılıyor
    • Görüntü, Verilator simülasyonu ile C++'a dönüştürülüp SDL penceresinde render edilerek üretiliyor
  • 293 flip-flop ve toplam 3374 hücre kullanılarak alan sınırına yaklaşıldı
    • Font kodlaması kapı alanının büyük kısmını tükettiği için renk değerlerinden vazgeçilip çapraz şerit deseni kullanıldı
  • ROM olmadan veri kodlamak için desenler doğrudan mantık kapılarıyla ifade edildi
    • Yosys sentez hattı, truth table'ları standart hücrelere dönüştürüyor
    • Veri karmaşıklığından çok, adrese bağlı algoritmik sadelik alan tasarrufu açısından daha avantajlı oldu
  • Sinüs kaydırıcı, tablo kullanmadan vektör döndürme ile gerçekleştirildi
    • Minsky'nin symplectic integrator yöntemiyle dairesel yörünge üretildi
  • Dama tahtası düzleminin projeksiyonu sabit noktalı aritmetik ile gerçekleştirildi
    • recip16 modülü, y koordinatının tersini hesaplayarak perspektif dönüşümünü yapıyor
    • Renk deseni XOR işlemiyle üretiliyor, düzlemin yüksekliği de davul vuruşlarına göre değişiyor

Grafik ayrıntıları

  • Gölge efekti, kayan metni düzlem koordinat sistemine yansıtıp renk bitlerini kaydırarak oluşturuluyor
  • Yıldız arka planı (Starfield), her scanline için LFSR ile rastgele değer üretiyor
    • Kare sayacıyla birleştirilerek yıldızların konumu ve hızı belirleniyor, kuyruk uzunluğu da snare davul zamanlamasına göre değişiyor

Müzik sentezi

  • Mantık kapısı tekrarını en aza indirmek için yineleyen ABACABAD yapısı kullanıldı
  • Üç kanallı yapı
    • Gürültü + üstel sönümleme (snare)
    • Kare dalga arpejleri (melodi/akorlar)
    • Üçgen dalga + üstel sönümleme (kick/bas)
  • Ses çıkışı sigma-delta DAC ile veriliyor
    • PWM yerine birikimcinin carry bit'inin çıkış alınmasıyla daha basit bir uygulama sağlandı
  • Akor ilerleyişi, Crooner (C64 SID) parçasından uyarlandı
    • 8 notalı dizi tabanlı, 2 oktav aralığında, bit tabanlı arpejler kullanılıyor
    • Tempo 15 ve 25 tick arasında dönüşümlü kullanılarak swing ritim elde edildi

Geriye dönük değerlendirme

  • Ses ve video saatlerinin ayrıldığı tasarım nedeniyle müzik-görüntü senkronu bozuldu
  • Standart dışı 1220x480 çözünürlük seçimi yüzünden LCD görüntü kalitesi düştü
  • CRT'de doğal bir dithering etkisi oluşurken dijital yakalamada bozulma görüldü

Nyan Cat demosu

  • Tiny Tapeout 8 son teslim tarihine hemen önce üretildi; 640x480 VGA ve 60Hz senkron ses kullanıyor
    • Orijinal GIF'ten kareler ve palet çıkarılıp RGB222'ye dithering ile dönüştürüldü
    • LFSR tabanlı yıldız arka planı yeniden kullanıldı
  • Müzik verisi, MIDI dosyası parse edilerek 8 notalı diziye yeniden eşlendi
    • Yalnızca bas/kick kanalı ile melodi kanalı olmak üzere iki kanal kullanıldı
    • Her kare başlangıcında (60Hz) üstel sönümleme zarfı uygulanıyor
  • Melodi, %25 duty cycle pulse wave ile üretiliyor
    • Frekans ayarı için oktava göre üst bitler seçiliyor
    • Tınıyı ayarlamak için alçak geçiren filtre eklendi

Üretim ve sonuç

  • Tiny Tapeout 8, 2024 Eylül'ünde üretime başladıktan sonra Efabless iflası nedeniyle durdu
    • 2025'in ikinci yarısında yeni operasyon ekibi çipleri geri alıp dağıttı
  • Gerçek çip testlerinde tüm tasarımlar düzgün çalıştı
    • Yalnızca Donut demosunda kararlılık için saat frekansının 45MHz'e düşürülmesi gerekti
  • Nyan Cat demosu, hem LCD'de hem CRT'de kusursuz oynatıldı
    • Bitluni'nin YouTube canlı yayınında gösterildi

Kapanış

  • 1 yıldan uzun bekleyişin ardından gerçek silikonda kusursuz çalışan demo doğrulandı
  • Tiny Tapeout ortamında CPU ve RAM olmadan, saf mantık devreleriyle görsel ve işitsel efekt üretimine dair bir örnek sunuldu
  • Gelecekte daha gelişmiş düşük seviyeli donanım demo teknikleri geliştirme planlarından söz ediliyor

1 yorum

 
GN⁺ 2025-12-21
Hacker News yorumları
  • Bilgisayar bilimi mezunuyum ama bilgisayar mühendisliğine de ilgim var; böyle bir retro render mimarisini kendim yapıp tapeout aşamasına kadar götürmeyi isterdim
    Basit ama gerçekten çok eğlenceli bir yapı, o yüzden bu tür projeleri çok seviyorum

    • Yazarın yaptığı gibi simülasyonla başlayıp sonra FPGA'ya geçme yaklaşımını tavsiye ederim
      Sadece FPGA ile bile oldukça ileri gidilebilir. Kendi SoC'ni tasarlayabiliyor olmak her zaman heyecan verici
      Mesela “9 tane I2C portu gerekiyor?” dersen, bloğu kopyalayıp yapıştırman yeterli.
      Yazılımda yavaş kalan bir işlem varsa, donanım hızlandırıcısını da kendin yapabilirsin
    • İnternetin böyle küçük ilgi topluluklarını birbirine bağlaması şaşırtıcı
      Herkes bağlandıkça kültürün tekdüzeleştiği yönler de var ama dünyanın dört bir yanından birkaç düzine insanın böyle harika bir yarışma için bir araya gelebilmesi müthiş
  • Gridin kick drum'la birlikte nabız atar gibi titreşen efektini sevdim. Hoş bir ince dokunuş

  • Alıntılanan HAKMEM sin/cos üretecinin uzun vadeli kararlılığını merak edip araştırdım
    İlgili genel bakış burada
    (kesin aritmetik koşulları altında kararlı olduğu söyleniyor)
    Tesadüfen, geçen hafta paylaşılan Verlet integration videosuyla da bağlantılı

    • Belirli koşullarda tam olarak doğru çalışıyor. Yani aynı matematiksel numarayı kullanıyor
      Ben de o videoyu YouTube önerilerinde görmüştüm, epey keyifliydi
  • Üniversite yıllarımı hatırlattı — “donanım ve yazılım mantıksal olarak eşdeğerdir” sözü aklıma geldi

    • Donanım yazmak, yazılım yazmaya benziyor ama paralellik çok daha ucuz, hatalar ise çok daha pahalı
  • Gerçekten etkileyici bir iş. Eskiden JS demoscene, özellikle de dwitter ile çok uğraşırdım; ama bu bambaşka bir seviye
    Bu yorum sayesinde kontrol edince TinyTapeout'un yeniden canlandığını öğrenmiş oldum

  • Tiny Tapeout ile bir FPAA yapmayı isterdim ama ayrılan alana sığmaz gibi görünüyor

    • TT'de ek ücret ödeyerek çok bloklu tasarım da yapılabiliyor
  • “No x, no y, just z” gibi kalıplar ChatGPT'de çok sık kullanıldığı için artık sıradan kullanıcılar da kullanmaya başlamış gibi görünüyor

    • Dil akışkandır. LLM'lerin olumsuz yanları çok ama böyle dilsel değişimlerin zararsız olduğunu düşünüyorum
    • Aslında ben de ilkokulda sınıf başkanlığı seçim sloganı olarak “no x, no y, just z” tarzı bir ifade kullandığımı hatırlıyorum
    • Belki de ChatGPT aslında sıradan kullanıcıların ifadelerini öğrenmiştir
  • Eskiden meslek okulunda pinball makinesi tamir ettiğim günleri hatırlattı. Güzel anılar

  • Gerçekten harika!

  • Şu anki Open Shuttle'a baktığımda, projede 4KB SRAM lisansını kullanmak için $2500 gerektiğini görüyorum
    Bunun yerine Wishbone Bus arayüzü de dahil

    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