首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一台计算器,为什么要自己设计CPU?这个开源FPGA项目把"从零开始"做到了极致

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

作者头像
FPGA技术江湖
发布2026-07-15 14:15:25
发布2026-07-15 14:15:25
00
举报

当我们谈到 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 体系结构
  • CPU 设计
  • BCD 运算
  • 微代码控制器
  • 科学计算算法
  • Verilator 仿真
  • FPGA 工程开发流程

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

写在最后

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

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

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

项目地址

GitHub:FPGA-Calculator

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

系列文章:

https://baltazarstudios.com/calculator/

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 项目结构
  • 所需工具
  • 总结
  • 写在最后
  • 项目地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档