| 类别 | 技术栈 |
|---|---|
| 语言 | 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 上的软件层
武汉大学计算机学院 · 计算机组成原理课程设计。