Skip to content

WJH-makers/project4

Repository files navigation

类别 技术栈
语言 Verilog
IDE Xilinx Vivado 2023.2
架构 5 级流水线,RISC 类指令集
硬件 Nexys 4 FPGA (Artix-7)

📋 简介

基于 Verilog 的 5 级流水线 CPU,Xilinx Vivado 综合,Nexys 4 FPGA 验证。经典 RISC 流水线(IF/ID/EX/MA/WB),含完整转发、冒险检测、7 段数码管输出。

🚀 快速开始

# 打开 Vivado 项目
vivado project4.xpr

# 综合
launch_runs synth_1

# 实现并生成比特流
launch_runs impl_1 -to_step write_bitstream

# 烧录 FPGA
open_hw && connect_hw_server && open_hw_target
program_hw_device -file project4.runs/impl_1/sccomp.bit

✨ 功能特性

  • 5 级流水线:取指 → 译码 → 执行 → 访存 → 写回
  • 冒险处理:转发单元解决数据冒险,暂停/冲刷处理控制冒险
  • 指令支持:算术(add/sub/and/or/xor)、访存(lw/sw)、分支(blt/beq/jal/jalr)
  • 7 段数码管:FPGA 板载显示驱动
  • 可综合:完整 Vivado 工程

🏗️ 项目结构

project4.srcs/sources_1/new/
├── sccomp.v        # 顶层模块(CPU + 显示)
├── IFID.v ~ MAWB.v # 流水线寄存器
├── PC.v            # 程序计数器
├── ctrl.v          # 控制单元(指令译码)
├── alu.v           # 算术逻辑单元
├── RF.v            # 寄存器堆
├── dm.v            # 数据存储器
├── EXT.v           # 立即数扩展
├── FWD.v           # 转发单元
└── seg7x16.v       # 数码管驱动

流水线示意图

┌────────┐   ┌────────┐   ┌────────┐   ┌────────┐   ┌────────┐
│   IF   │──▶│   ID   │──▶│   EX   │──▶│   MA   │──▶│   WB   │
│  取指   │   │  译码   │   │  执行   │   │  访存   │   │  写回   │
└────────┘   └────────┘   └────────┘   └────────┘   └────────┘
                  ▲                            │
                  └────── FWD 转发单元 ────────┘

❓ 常见问题

问题 回答
能用其他 FPGA 板吗? 可以,修改 .xdc 约束文件即可,设计兼容 Artix-7
最高时钟频率? Nexys 4 上 50MHz,取决于布线时序
如何添加新指令? 3 步:分配操作码 → 设置控制信号 → 添加数据通路

🔗 相关项目

  • xv6 OS — 运行在 CPU 上的软件层

🎓 课程背景

武汉大学计算机学院 · 计算机组成原理课程设计。


About

5-stage pipeline CPU with forwarding and hazard detection - Verilog/Vivado

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors