Skip to content

MuQY1818/MIPS-single-cycle-CPU

Repository files navigation

🚀 MIPS单周期CPU设计实现

Version License Language

一个基于MIPS指令集的单周期CPU实现,专注于特殊数列计算

🌟 特性一览

✨ MIPS基本指令集 🔄 32位数据通路 📊 32个通用寄存器
🧮 独立乘法器模块 🔍 完整调试接口 📱 LCD显示支持

🎯 数列计算实现

📐 数学定义

这是一个特殊的递推数列,具有以下特点:

$$a₀ = 1, a₁ = 1 aₙ₊₁ = 2aₙ + 1 + 3aₙ₋₁$$

📈 数列前几项

1 → 1 → 5 → 13 → 41 → 121 ...

💻 核心代码实现

# 初始化
addiu $2,$0,#1    ┌─ $2 = 1 (a₀)
addiu $3,$0,#1    └─ $3 = 1 (a₁)
addiu $4,$0,#1    ─── $4 = 1 (计数器i)

# 计算循环
addiu $4,$4,#1    ─── i++
addiu $1,$0,#1    ┌─ $1 = 1
and   $5,$4,$1    └─ 奇偶判断

beq   $5,$0,#6    ─── 偶数则跳转

# 奇数情况:2aₙ₊₁ + 3aₙ
addiu $1,$0,#2    ┌─ $1 = 2
mul   $12,$1,$3   └─ $12 = 2aₙ₊₁
addiu $1,$0,#3    ┌─ $1 = 3
mul   $11,$1,$2   └─ $11 = 3aₙ
j     合并处理

# 偶数情况:3aₙ₊₁ + 2aₙ
addiu $1,$0,#3    ┌─ $1 = 3
mul   $12,$1,$3   └─ $12 = 3aₙ₊₁
addiu $1,$0,#2    ┌─ $1 = 2
mul   $11,$1,$2   └─ $11 = 2aₙ

# 合并处理
addu  $7,$11,$12  ─── 计算新项
or    $2,$3,$0    ┌─ 更新寄存器
or    $3,$7,$0    └─ 保存结果
j     循环开始    ─── 继续循环

🛠️ 使用指南

📋 前置需求

  • Vivado 2019.2
  • ModelSim SE-64 10.5
  • Xilinx 7系列FPGA

⚡ 快速开始

  1. 克隆仓库
git clone https://github.com/MuQY1818/MIPS-single-cycle-CPU.git
cd MIPS-single-cycle-CPU
  1. 运行仿真
vsim -novopt tb
run -all
  1. 查看波形
add wave -position insertpoint sim:/tb/*

🔧 调试功能

展开查看详细信息
  • 🔍 寄存器实时监控
  • 📊 波形完整记录
  • 📱 LCD结果显示
  • 🔄 状态实时更新

⚠️ 注意事项

  • ⏰ 确保时钟配置正确
  • 📈 注意数值溢出风险
  • 🔌 LCD模块需额外配置
  • 🕒 关注乘法器时序

🤝 贡献指南

  1. Fork 本仓库
  2. 创建新分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

📝 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

👥 联系方式

🌟 致谢

感谢 LOONGSON 团队提供的基础框架和参考设计。

🌈 欢迎 Star & Fork

About

Verilog 实现 MIPS 单周期 CPU:32 位数据通路与调试接口(课程设计/仿真/LCD)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors