Hacker News 中文摘要

RSS订阅

纯硅演示编码:无CPU,无内存,仅4千门电路 -- Pure Silicon Demo Coding: No CPU, No Memory, Just 4k Gates

文章摘要

作者在Tiny Tapeout 8竞赛中提交了两款微型ASIC设计,仅用约4000个逻辑门实现VGA输出和音频播放。其中一款复古风格演示包含星空背景、3D棋盘和波浪文字效果,受限于无ROM/RAM的硬件条件,所有状态都需用触发器实现,展现了极简设计的创意。

文章总结

纯硅演示编码:无CPU、无内存,仅用4K逻辑门

项目背景

作者参与了Tiny Tapeout 8的演示竞赛,提交了两个ASIC设计作品。这些设计需要在约4000个逻辑门的限制内,输出2位RGB信号到VGA端口和1位音频到扬声器。其中一个作品是复古风格的C64/Amiga风格演示,另一个是Nyan Cat动画。

"TT08"演示

  • 内容:包含星空背景、3D棋盘格和波浪形滚动文字,文字在棋盘上投射阴影。灵感来自lft的AVR演示Craft,还在屏幕边缘添加了青色示波器效果。
  • 技术限制:仅使用两个Tiny Tapeout "tile",无ROM或RAM,所有状态通过触发器实现,占用较多空间。传统的数据压缩技巧不适用,必须在每个时钟周期生成像素。

原型开发

  • 视频模式:使用1220x480分辨率和48MHz时钟,因硬件限制(OrangeCrab FPGA)选择此模式,但后期发现数字捕捉效果不佳。
  • 仿真工具:使用Verilator将Verilog编译为C++,进行逐周期仿真,并通过SDL窗口渲染视频和音频。
  • 硬件实现:在OrangeCrab FPGA上实现,使用R-2R DAC(RGB222)和RC滤波音频输出。音频采用Sigma-Delta调制而非PWM。

Skywater 130nm工艺合成

  • 设计优化:最终设计使用3374个单元,几乎占满可用空间。触发器占用较多面积,因此尽量减少状态位。
  • 数据编码:在ASIC中,数据通过逻辑门编码,而非传统ROM。合成工具(如yosys)将查找表映射到标准单元库,优化逻辑门使用。

正弦波生成

  • 方法:通过向量旋转生成正弦波,避免使用查找表。采用Minsky的HAKMEM 149算法,通过简单的位移和加法操作实现。

棋盘格效果

  • 实现:通过透视变换将屏幕坐标映射到3D平面,计算(u,v)坐标生成棋盘格。使用非恢复除法算法优化计算。

星空背景

  • 实现:使用线性反馈移位寄存器(LFSR)生成随机星位,每行重置LFSR状态,通过帧计数器控制星星移动速度。

音乐合成

  • 结构:采用"ABAC"模式,减少逻辑复杂度。使用三种音色通道:噪声(军鼓)、方波(和弦/旋律)和三角波(底鼓)。
  • 合成器:通过组合逻辑链生成音乐,避免使用寄存器。底鼓采用指数衰减频率,军鼓使用LFSR噪声调制。

Sigma-Delta DAC

  • 实现:通过累加器生成脉冲序列,输出音频。相比PWM,实现更简单,但存在谐波失真。

回顾与改进

  • 问题:音频时钟与视频不同步,导致音乐同步效果不佳。1220x480视频模式在非CRT设备上效果差。
  • 改进:后续设计(如Nyan Cat)改用640x480分辨率,同步音频和视频时钟。

Nyan Cat项目

  • 内容:复刻经典Nyan Cat动画,使用640x480 VGA和同步音频。
  • 技术:复用TT08演示的代码,优化设计以适应单tile,但最终因布线问题扩展为双tile。
  • 音乐:从MIDI提取旋律和低音部分,映射到8音符音阶,通过Verilog代码播放。

制造与结果

  • 制造过程:Tiny Tapeout 8于2024年9月投产,2025年3月因Efabless公司关闭而中断。后由新公司接手,最终在2025年9月交付芯片。
  • 测试结果:所有设计均正常运行,仅Donut因时钟问题需降频至45MHz。

总结

作者通过这两个项目掌握了大量底层技巧,未来计划进一步优化设计。尽管面临制造延迟和技术挑战,最终成果令人满意。

评论总结

总结评论内容:

  1. 对项目的积极评价:
  • 认为项目很酷,特别是复古架构设计简单有趣(评论2:"The retro architectures for rendering are simple but fun!")
  • 直接表达赞赏(评论3:"Really cool!")
  1. 技术性讨论:
  • 指出项目存在概念不准确(评论4:"If you have registers, it's not 'no memory'")
  • 引发关于硬件/软件关系的思考(评论1:"Hardware and Software are logically equivalent")
  1. 个人感受:
  • 表达想要参与类似项目的愿望(评论2:"I really want to find time to build something cool like this")
  • 唤起校园回忆(评论1:"Reminds me of college")

注:所有评论均未显示评分(None),因此无法评估认可度。