

当我们谈到 FPGA 项目时,大多数人想到的是 RISC-V、AI 加速器、视频处理或者高速接口。而最近,一个看似普通却极具工程魅力的项目引起了不少 FPGA 开发者的关注——一台完全从零设计的科学计算器。
它没有使用 ARM,也没有使用 RISC-V,更没有调用现成的软件数学库,而是从 CPU、指令集、汇编器、微代码,到科学计算算法和硬件 PCB,全都由作者独立完成。
这不仅仅是一台计算器,更像是一堂完整的计算机体系结构实践课。
这是一个采用二进制编码十进制的科学计算器,其内部数字格式与惠普公司自 20 世纪 70 年代以来在其科学计算器中使用的格式相同。它将每个十进制数字表示为一个 4 位半字节,这意味着完美的十进制精度、零浮点转换误差,以及真正由其所解决的问题驱动的架构。为了实现这一点,还设计了一个同样以半字节为单位进行运算的定制 CPU。它运行在 Altera Cyclone II FPGA 上,使用 Quartus 进行综合,使用 Verilator 和 ModelSim 进行仿真,并通过基于 Qt 的桌面原型进行调试。如果想在浏览器中运行它,该原型还可以编译成 WebAssembly。它涉及多种工具和多个组件——所有组件均分阶段构建,并在每个阶段都经过测试。
https://baltazarstudios.com/calculator/
https://baltazarstudios.com/files/calculator-d/Calculator.html
该项目作者配套了完整的说明文档,文档共十章,完整呈现整个设计流程:从架构决策和权衡取舍,到数值算法(加法、乘法、用于三角函数的 CORDIC 算法、对数),再到定制 CPU 设计及其 12 位指令集,用 Python 手写的两遍汇编器,运行在该 CPU 上的微代码,用于高级按键功能的脚本层,以及最终包含电池、显示屏和键盘的物理电路板。每个部件都依赖于前一个部件,因此我们按顺序构建并测试每个部件,因为一个返回错误答案的计算器远比一个根本不返回答案的计算器糟糕得多。



一个值得学习的完整工程
相比很多只展示最终效果的 FPGA 项目,这个开源工程最大的价值在于完整记录了整个开发过程。
作者将整个项目拆分成十个章节,从需求分析、算法设计,到 CPU 架构、微代码、硬件实现,再到最终产品,每一步都进行了详细讲解。
对于想深入理解:
的开发者来说,这都是一份非常难得的学习资料。
如今,越来越多的 FPGA 项目开始围绕 AI、大模型和高速接口展开,而这样一个"计算器"项目却显得格外特别。
它没有追求算力,也没有追求性能指标,而是用一种近乎教科书式的方式,把计算机体系结构、数字电路、数值计算和 FPGA 开发串联成了一个完整的工程实践。
如果你正在学习 FPGA,或者希望真正理解"CPU 是如何工作的",这个项目无疑值得花时间深入阅读。
GitHub:FPGA-Calculator
https://github.com/gdevic/FPGA-Calculator
系列文章:
https://baltazarstudios.com/calculator/
END