单周期 MIPS32 CPU 课程设计
项目简介
本项目实现了一个基于 MIPS32 精简指令集的单周期 CPU,支持 10 条指令,能够执行斐波那契数列计算程序。
文件结构
.
├── README.md # 本文件
├── CPU设计说明文档.md # 详细设计文档
├── 斐波那契数列运行指标说明.md # 波形观察指南
├── run.bat # Windows 运行脚本
├── cpu_top.v # CPU 顶层模块
├── pc_register.v # PC 寄存器
├── instruction_memory.v # 指令存储器
├── control_unit.v # 控制单元
├── register_file.v # 寄存器文件
├── alu_control.v # ALU 控制单元
├── alu.v # 算术逻辑单元
├── data_memory.v # 数据存储器
└── testbench.v # 测试平台
快速开始
环境要求
- 仿真工具:iverilog + gtkwave
- FPGA 工具(可选):Vivado(用于 FPGA 综合和下载)
运行仿真
Windows 系统:
run.bat
查看波形
gtkwave cpu_test.vcd
支持的指令
| 指令 | 类型 | 功能 |
|---|---|---|
| add | R-type | 寄存器加法 |
| sub | R-type | 寄存器减法 |
| and | R-type | 按位与 |
| or | R-type | 按位或 |
| slt | R-type | 小于则置位 |
| lw | I-type | 从内存加载字 |
| sw | I-type | 向内存存储字 |
| beq | I-type | 相等则分支 |
| addi | I-type | 立即数加法 |
| j | J-type | 无条件跳转 |
测试程序
预装载的测试程序计算斐波那契数列的前 10 项:
fib[0] = 0
fib[1] = 1
fib[2] = 1
fib[3] = 2
fib[4] = 3
fib[5] = 5
fib[6] = 8
fib[7] = 13
fib[8] = 21
fib[9] = 34
结果存储在数据内存的 0x100-0x124 地址。
预期输出
运行仿真后,终端会显示:
========================================
斐波那契数列计算完成
========================================
存储在内存中的斐波那契数列:
fib[0] = 0 (地址 0x100)
fib[1] = 1 (地址 0x104)
fib[2] = 1 (地址 0x108)
fib[3] = 2 (地址 0x10C)
fib[4] = 3 (地址 0x110)
fib[5] = 5 (地址 0x114)
fib[6] = 8 (地址 0x118)
fib[7] = 13 (地址 0x11C)
fib[8] = 21 (地址 0x120)
fib[9] = 34 (地址 0x124)
========================================
✓ 测试通过!斐波那契数列计算正确。
========================================
Vivado 工程创建
- 打开 Vivado,选择 "Create Project"
- 添加所有
.v文件(除了testbench.v) - 设置
cpu_top.v为顶层模块 - 根据目标 FPGA 开发板添加约束文件
- 运行综合(Synthesis)
- 运行实现(Implementation)
- 生成比特流(Generate Bitstream)
- 下载到 FPGA
文档说明
- CPU 设计说明文档.md:包含完整的模块功能说明、引脚定义、数据通路设计等
- 斐波那契数列运行指标说明.md:详细说明如何在波形中观察和验证程序执行
技术指标
- 架构:单周期 CPU
- 数据宽度:32 位
- 指令数量:10 条
- 寄存器数量:32 个
- 指令存储:128 条指令(512 字节)
- 数据存储:256 个字(1KB)
- 时钟频率:100MHz(仿真)
文件列表
- 【大三】硬件综合设计
- 注意事项.docx
- debug.log
- 宣城课程设计报告注意事项.docx
- xxxxxxxx.docx
- 2025.12系统硬件综合设计报告模板.docx
- 布置题目.docx
- demo.pptx
- 注意事项.ppt
- project
- data_memory.v
- testbench.v
- alu.v
- 项目清单.md
- instruction_memory.v
- 斐波那契数列运行指标说明.md
- pc_register.v
- 6条指令测试波形观察指南.md
- cpu_test.vcd
- problem.md
- CPU设计说明文档.md
- control_unit.v
- run.bat
- cpu_top.v
- tempCodeRunnerFile.bat
- alu (2).v
- CPU处理指令过程.txt
- PPT大纲.md
- Vivado工程建立与模块设计说明.md
- alu_control.v
- cpu_test_fib.vcd
- 设计要求章节_纯文字版.txt
- cpu_sim.vvp
- register_file.v
- 学习环境资料