一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致

FPGA技术江湖 2026-07-14 08:09
一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图1

当我们谈到 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 上的微代码,用于高级按键功能的脚本层,以及最终包含电池、显示屏和键盘的物理电路板。每个部件都依赖于前一个部件,因此我们按顺序构建并测试每个部件,因为一个返回错误答案的计算器远比一个根本不返回答案的计算器糟糕得多。

一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图2

项目结构

一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图3

所需工具

一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图4

总结

一个值得学习的完整工程

相比很多只展示最终效果的 FPGA 项目,这个开源工程最大的价值在于完整记录了整个开发过程。

作者将整个项目拆分成十个章节,从需求分析、算法设计,到 CPU 架构、微代码、硬件实现,再到最终产品,每一步都进行了详细讲解。

对于想深入理解:

  • FPGA 体系结构
  • CPU 设计
  • BCD 运算
  • 微代码控制器
  • 科学计算算法
  • Verilator 仿真
  • FPGA 工程开发流程

的开发者来说,这都是一份非常难得的学习资料。

写在最后

如今,越来越多的 FPGA 项目开始围绕 AI、大模型和高速接口展开,而这样一个"计算器"项目却显得格外特别。

它没有追求算力,也没有追求性能指标,而是用一种近乎教科书式的方式,把计算机体系结构、数字电路、数值计算和 FPGA 开发串联成了一个完整的工程实践。

如果你正在学习 FPGA,或者希望真正理解"CPU 是如何工作的",这个项目无疑值得花时间深入阅读。

项目地址

GitHub:FPGA-Calculator

https://github.com/gdevic/FPGA-Calculator

系列文章:

https://baltazarstudios.com/calculator/

END


往期精选 

一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图5 
一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图6 


一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图7
一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图8

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图9

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图10

备注姓名+公司/学校+岗位/专业进群

一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致图11

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
FPGA 开源
more
Xilinx FPGA中的OSERDESE2介绍
国产FPGA闯出新速度,HME-PV为AI视觉注入新动能
新左移:以FPGA原型验证为“决策透镜”,加速RISC-V IP精准选型
FINN:FPGA AI 推理新范式 —— 定制化、高性能、量化神经网络编译器框架
基于 FPGA Vivado 示波器设计(附源工程)
资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2026.02.28更新)
SystemVerilog如何优雅的提升FPGA开发效率
FPGA+DSP/ARM架构开发与应用
FPGA标准库-Open Logic
全体FPGA从业者做好随时涨薪的准备吧!
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号