TL;DR

Kỹ sư FPGA hobbyist Pongsagon Vichit (X: @MattDIYgraphics) vừa công bố TinyGPU v3.0 — phiên bản mới của "GPU siêu nhỏ" trên nền TinyTapeout. Điểm nâng cấp lớn nhất: lần đầu tiên có programmable Pixel Shader, toàn bộ chip chỉ nằm trong ngân sách ~290.000 transistor. Thiết kế đã verify trên FPGA và submit vào TinyTapeout ttsky26a shuttle (deadline 11/05/2026). Tác giả kèm demo Chameleon như một tribute tới NVIDIA GeForce 3 — GPU đầu tiên có programmable shader, ra mắt tháng 2/2001, tròn 25 năm trước.

Có gì mới ở v3?

TinyGPU v2 (ttsky25b, 2025) là một 3D rasterizer hoàn chỉnh nhưng fixed-function: T&L, backface culling, 1 directional light, flat shading — mọi pixel đều đi qua cùng một công thức cứng. v3 thêm một stage thực sự khác chất:

  • Programmable Pixel Shader — mỗi pixel có thể chạy một chương trình nhỏ do dev nạp vào, thay vì màu được fix cứng trong silicon.
  • Ngân sách transistor tăng từ ~200k lên ~290k (+45%), phần lớn dành cho shader core và decoder.
  • Demo flagship tên Chameleon — port lại tech demo cùng tên của NVIDIA GeForce 3 năm 2001.
  • Hỗ trợ cùng bộ PMOD như v2: QSPI PMOD (flash), TinyVGA PMOD (video out), GamePad PMOD, thêm SNES controller.
  • Repo Verilog mở theo Apache-2.0 trên GitHub.

Vì sao chuyện này đáng chú ý?

Programmable shader là cột mốc đưa GPU từ thiết bị render cố định sang nền tảng compute chung. NVIDIA làm được điều đó năm 2001 với GeForce 3 (NV20) bằng 57 triệu transistor trên tiến trình 150nm. TinyGPU v3 làm điều tương đương ở mức tối giản cực đoan: chỉ ~290.000 transistor — nhỏ hơn gần ~197 lần — nhưng vẫn mang đúng feature cốt lõi: mỗi pixel chạy một chương trình. Đây là minh chứng rõ ràng rằng những ý tưởng từng cần cả một team kỹ sư NVIDIA giờ có thể được một người hobbyist thực thi trên Sky130 qua pipeline tape-out cộng đồng.

Thông số kỹ thuật

Thuộc tínhGiá trị
Transistor budget~290.000
ProcessSky130 (Tiny Tapeout)
VerificationFPGA (trước tape-out)
Shuttlettsky26a (deadline 11/05/2026)
Ngôn ngữVerilog (97.6% repo)
LicenseApache-2.0
OutputVGA qua TinyVGA PMOD
StorageQSPI PMOD (shader/asset)
InputGamePad PMOD + SNES controller

So sánh: v2 vs v3 vs GeForce 3

Tiêu chíTinyGPU v2TinyGPU v3GeForce 3 NV20 (2001)
Transistors~200.000~290.00057.000.000
ProcessSky130Sky130150nm
Programmable pixel shaderKhôngCó (DX8)
Programmable vertex shaderKhôngChưa công bố
Shading modeFlat, 1 directional lightShader-drivenFull programmable
Resolution320×240, 4-bit colorChưa công bốTới 2048×1536
Clock25 MHzChưa công bố200 MHz

Ai dùng được?

  • Demoscene / retro compute: Chameleon demo là một entry cho demoscene competition ttsky26a.
  • Giáo dục GPU architecture: codebase Verilog đủ nhỏ để đọc hết trong vài tối — cách tốt để hiểu shader pipeline từ gốc.
  • ASIC hobbyist / open silicon: bằng chứng rằng shader GPU có thể nhét vừa <300k transistor trên Sky130.
  • Retro-style graphics hack: với GamePad/SNES input, các hiệu ứng per-pixel kiểu PS1/Dreamcast có thể chạy trên chip tự làm.

Hạn chế & availability

Đây là một dự án hobby open-source, không phải sản phẩm thương mại. Một vài điểm cần rõ:

  • Silicon chưa về — TinyTapeout ttsky26a shuttle dự kiến giao chip vào khoảng tháng 11/2026.
  • Tài liệu chi tiết về ISA của pixel shader trong docs/info.md hiện vẫn đang được cập nhật.
  • Không có giá — chip được sản xuất qua tile miễn phí/sponsored của Tiny Tapeout, không phải hàng bán lẻ.
  • Resolution, fps, số triangle tối đa của v3 chưa được công bố chính thức (v2 là 320×240 @ 6.5 fps với 1K triangle).

Điều gì tiếp theo?

Cột mốc gần nhất là 11/05/2026 — hạn submit ttsky26a. Sau đó là 6 tháng chờ silicon từ fab, rồi Chameleon demo sẽ chạy trên ASIC thật tại demoscene competition (post-fab judging). Hướng v4 có thể là thêm vertex shader (bước GeForce 3 sẽ là hoàn chỉnh), tăng resolution, hoặc mở rộng shader ISA. Với nhịp v1 → v2 → v3 khoảng 1 shuttle, khả năng cao sẽ có v4 trong năm 2027.

Nguồn: GitHub pongsagon/ttsky26a_TinyGPU_v3, Tiny Tapeout v2 project page, TTSKY26a demoscene announce, Tom's Hardware, Wikipedia GeForce 3.