开发者生态
morning
我在 Verilog 中设计了一个面向半字节的 CPU 来构建科学计算器
2026-05-15
1 阅读
gdevic
从门到计算器 该项目使用 FPGA 在硬件中实现了功能齐全的科学计算器。它包括定制软 CPU、微代码固件和支持工具。有关完整故事,请参阅博客。在 Web 浏览器中尝试: 不带调试器 带调试器 项目结构 文件夹 说明 verilog/ 用于 CPU、ALU、I/O 和测试台的 SystemVerilog 源文件 ucode/ 用于软 CPU 的微代码(固件) quartus/ 用于 FPGA 综合的 Quartus 项目文件 modelsim/ ModelSim 仿真设置 Qt/ 基于 Qt 的模拟器和调试器(使用 Verilator) calctest/ 用于硬件验证的命令行测试工具(使用 Verilator)工具/用于微代码探路/算法研究和验证项目的汇编器和脚本编译器快速入门尝试计算器的最快方法是构建 Qt 模拟器: # From WSL2 cd /mnt/c/Projects/FPGA-Calculator/verilog make qt 然后在 Qt Creator 中打开 Qt/Calculator.pro 并构建“桌面 Qt MSVC2022 64 位”。有关详细说明,请参阅 verilog/ 和 Qt/ 文件夹。所需工具 根据您的目标安装这些工具: 工具 用途 备注 Verilator Verilog 仿真 Qt 模拟器所需 Qt Desktop/WebAssembly/Android 应用程序 版本 6.9+ Quartus FPGA 综合 Cyclone II ModelSim 波形仿真版本 13.0 SP1 可选的 Visual Studio 2022 C++ 编译器,用于 Qt Community Edition Python 3 汇编器和工具 Verilator 设置 Verilator 在 WSL2(Linux 的 Windows 子系统)中运行。项目源文件驻留在 Windows 分区上并可从 WSL2 访问。目标 Verilator 版本说明 Desktop (Qt/MSVC) 5.x(最新) 推荐 WebAssembly 4.228 必需(无线程支持) # 安装先决条件 sudo apt-get install build-essential autoconf flex libfl-dev bison # 克隆并构建 Verilator git clone https://github.com/verilator/verilator cd verilator git checkout v5.042 # 对于桌面,或 v4.228 WebAssembly autoconf ./configure make -j8 make test # 设置环境(添加到 .bashrc 以实现持久性) export VERILATOR_ROOT= $( pwd ) 可选择安装 GtkWave 以查看波形: sudo apt install gtkwave 构建目标 目标命令 说明 Qt Simulator make qt in verilog/ 为 Qt 桌面应用程序构建 Calctest make calctest in verilog/ ,然后 make in calctest/命令行测试工具 ModelSim 在 verilog 中 make test_self/ModelSim FPGA 的 CPU 自检 硬件在 verilog 中 make revB/为 RevB 板汇编微代码 请参阅每个子文件夹中的 README 文件以获取详细的构建说明: verilog/README.md - Verilator 仿真和微代码汇编 calctest/README.md - 用于硬件验证的命令行测试工具 quartus/README.md - FPGA 综合和编程ucode/README.md - 微代码源文件 探路项目 独立研究和验证项目: 文件夹 说明 探路/原型/ BCD 算术硬件验证黄金参考(子模块) 探路/证明/ 使用基本算术进行复杂操作的概念证明 探路/方法/ 计算器算法的 C++ 实现(已弃用) 探路/输入/ 数字输入状态机模拟 探路/模型/ 键盘布局设计和用户交互测试 许可证 该项目已获得许可知识共享署名-非商业性-相同方式共享 4.0 国际许可证。您可以自由: 共享 - 以任何媒介或格式复制和重新分发材料 改编 - 重新混合、转换材料并在材料的基础上进行构建 根据以下条款: 归属 - 您必须给予适当的署名并注明是否进行了更改 非商业 - 您不得将材料用于商业目的 ShareAlike - 贡献必须在同一许可下分发