UltramarineW / MIPS-CPU-SingleCycle

https://hit-coa.gitlab.io/hit-cdp-lab/testcase/lab3.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MIPS CPU Design

本项目为哈尔滨工业大学处理器设计实践课程,设计非流水多周期CPU,利用MIPS指令集,将一个指令周期划分为IF、ID、EX、MEM、WB五个机器周期进行实现。

具体实验文档位于lab4_doc

lab4文件夹为处理器设计与实践课程实验4-非流水线CPU实验测试环境。

目录

├── lab_4
│   ├── lab_4.srcs             所有用户编写的源码、仿真文件与约束文件,你在项目中创建的文件可以在这里找到
│   ├── lab4.data              自动化测试所使用的trace文件的文件夹
│   │   ├── cpu_trace          用于对比验证的的trace文件
│   │   ├── data_data.txt      数据缓冲存储器的初始化文件
│   │   ├── inst_data.txt      指令缓冲存储器的初始化文件
│   └── lab_4.xpr              实验所用的项目,直接双击即可打开完整的实验 Vivado 工程
└── readme.md                  本文档

测试样例

测试所用的指令序列:

// 非流水线CPU实验测试
0x0000:  8C 01 00 04    LW   $1,  4($0)
0x0004:  8C 02 00 08    LW   $2,  8($0)
0x0008:  00 22 18 20    ADD  $3,  $1,  $2
0x000c:  00 22 20 22    SUB  $4,  $1,  $2
0x0010:  00 22 28 24    AND  $5,  $1,  $2
0x0014:  00 22 30 25    OR   $6,  $1,  $2
0x0018:  00 22 38 26    XOR  $7,  $1,  $2
0x001c:  00 22 40 2A    SLT  $8,  $1,  $2 
0x0020:  00 01 48 80    SLL  $9,  $1,  0x2  //$9 <- $1 << 2
0x0024:  AC 01 00 08    SW   $1,  8($0)
0x0028:  AC 02 00 04    SW   $2,  4($0)
0x002c:  14 06 00 02    BNE  $0,  $6,  0x2  // taken to 0x38
0x0030:  AC 01 00 00    SW   $1,  0($0)
0x0034:  08 00 00 00    J    0              // back to start
0x0038:  08 00 00 10    J    0x10           // jumps to 0x40
0x003c:  AC 01 00 00    SW   $1,  0($0)
0x0040:  8C 00 00 00    LW   $0,  0($0)
0x0044:  00 00 00 00    NOP
0x0048:  08 00 00 00    J    0              // back to start

trace:

pc addr data
00000000 01 00000001
00000004 02 00000002
00000008 03 00000003
0000000c 04 f f f f f f f f
00000010 05 00000000
00000014 06 00000003
00000018 07 00000003
0000001c 08 00000001
00000020 09 00000004
00000034 00 00000000
00000040 00 00000000

About

https://hit-coa.gitlab.io/hit-cdp-lab/testcase/lab3.html


Languages

Language:Verilog 44.1%Language:C 27.0%Language:Tcl 19.7%Language:HTML 4.8%Language:Batchfile 3.9%Language:Pascal 0.4%