# mipscpu **Repository Path**: hjzboss/mipscpu ## Basic Information - **Project Name**: mipscpu - **Description**: 一个简单的mips cpu的设计,已通过fpga的验证 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-01-15 - **Last Updated**: 2024-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简单五级流水的32位MIPS CPU 该cpu实现了五级流水,解决了数据相关的问题,但是没有很好地解决控制相关。能够完成基本的运算,并拥有输入和输出功能,能够在FPGA开发板上很好的实现。只实现了9条基本mips指令加上改编的输入和输出指令(指令正在扩充中),其中输入输出指令用于在fpga开发板上读取数据和输出数据。 ## CPU结构 采用mips架构的五级流水线,分别为: * 取指(IF):取出指令 * 译码(ID):对取出的指令进行译码,发出控制信号 * 执行(EX):进行逻辑和算术运算 * 访存(MEM):访问存储器或者输入输出 * 写回(WB):将数据写回寄存器文件 在每个模块之间都有一个流水线寄存器,在每个时钟周期的上升沿将前一个模块的数据送往下一个模块。并且综合了两个32位的存储器:数据存储器和指令存储器。 其中MEM模块中集成了输入输出功能,可以用于fpga的测试。 ## 目前实现的指令 采用的是mips32位的指令集,目前只实现了其中9条指令: | 指令符 | op[31:26] | rs[25:21] | rt[20:16] | rd[15:11] | shamt[10:6] | funct[5:0] | 功能 | 格式 | 功能描述 | | ---- | --------- | --------- | --------- | --------- | ----------- | ---------- | ----- | ------------ | ------------------ | | ADD | 000000 | rs | rt | rd | 00000 | 100000 | 寄存器加 | Add rd,rs,rt | Rd = rt + rs | | SUB | 000000 | rs | rt | rd | 00000 | 100010 | 寄存器减 | Sub rd,rs,rt | Rd = rs - rt | | AND | 000000 | rs | rt | rd | 00000 | 100100 | 寄存器与 | And rd,rs,rt | Rd = rs & rt | | OR | 000000 | rs | rt | rd | 00000 | 100101 | 寄存器或 | Or rd,rs,rt | Rd = rs \| rt | | SLT | 000000 | rs | rt | rd | 00000 | 101010 | 小于则置位 | Slt rd,rs,rt | Rd = (rs