Skip to content

同济大学CS《计算机系统实验》实验一TongJi University CS computer system experiment assignment 1

License

Notifications You must be signed in to change notification settings

lingbai-kong/MIPS89-pipeline-CPU

Repository files navigation

MIPS89-pipeline-CPU

同济大学CS《计算机系统实验》实验一TongJi University CS computer system experiment assignment 1

概述

本工程为2021年同济大学计算机系计算机系统实验实验1。本次实验使用Verilog语言实现了89条MIPS指令的多周期CPU的设计、仿真和下板。支持cp0和时钟中断。

备注:star:

带分支预测的54条指令动态流水CPU由我在2021年寒假重构完成。本学期在此基础上实现新增的指令以及中断。过程较为顺利。

如果本仓库有帮助到你,就送我一颗star吧🤗

如果有问题也可以在issue提出,方便其他人参考或一起讨论😋

功能说明

CPU采用动态流水技术,内含2bit分支预测器。

环境

软件环境

开发环境Vivado 2020.2

仿真环境ModelSim PE 10.4c

测试环境MARS 4.5(小端)、notepad++

硬件环境

NEXYS 4 DDR Atrix-7

测试

18级的测试程序是我编写的,不知道有没有沿用下来:joy:

概述

本测试程序由11个测试函数构成,测试内容覆盖了89条MIPS指令、cp0以及时钟中断

要求

  1. cpu采用小端模式
  2. 中断例程起始地址为0x00400004
  3. 数码管显示地址为0x10010000的DMEM单元

测试结果说明

  • 正确结果:数码管低半字显示0x0001,高半字随着时钟中断而计数
  • 错误结果:数码管显示-1~-10的错误码,或者数码管低半字显示0x0001但高半字不计数

测试函数说明


测试函数1:(54条MIPS指令流水线标准测试程序) 测试指令:addi,addiu,andi,ori,slti,sltiu,lui,xori,and,beq,bne,j,jal,jr,lw,sw,mul,sll,sub 错误码:-1


测试函数2: 测试指令: mfhi,mflo,div,divu 错误码:-2


测试函数3: 测试指令:sb,lb,lbu,sh,lh,lhu,mthi,mtlo,mfhi,mflo,sltu,sllv,srav,srlv,sra,srl,subu,add,addu,slt,clz,clo 错误码:-3


测试函数4: 测试指令: jalr 错误码:-4


测试函数5: 测试指令:mult,multu,madd,maddu,msub,msubu 错误码:-5


测试函数6: 测试指令: movn,movz 错误码:-6


测试函数7: 测试指令: bgez,bgtz,blez,bltz,bltzal,bgezal 错误码:-7


测试函数8: 测试指令: lwl,lwr,swl,swr 错误码:-8


测试函数9: 测试指令: ll,sc 错误码:-9


测试函数10: 测试指令: cp0相关指令,包括自陷指令、syscall、break、ret、mfc0、mtc0 错误码:-10


测试函数11: 测试功能:时钟中断


其他仓库推荐

  1. 计算机系统&操作系统移植
  2. 54条MIPS指令的多周期CPU

About

同济大学CS《计算机系统实验》实验一TongJi University CS computer system experiment assignment 1

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published