合肥工业大学《系统硬件综合设计》(《计算机组成原理》,CPU)课程设计报告(2020)

本报告详细介绍了合肥工业大学《系统硬件综合设计》课程设计任务,目标是设计并实现一个支持50条MIPS指令的五级流水CPU。设计内容涵盖了MIPS体系结构、流水线CPU设计、数据转发和气泡式流水线处理。通过Verilog实现,实验结果显示,设计的CPU能够正确处理数据冲突、分支跳转和load-use冲突,达到了设计要求。
摘要由CSDN通过智能技术生成

1 课程设计概述

1.1 设计目的

  计算机组成原理是计算机专业的核心基础课。该课程力图以“培养学生现代计算机系统设计能力”为目标,贯彻“强调软/硬件关联与协同、以CPU设计为核心/层次化系统设计的组织思路,有效地增强对学生的计算机系统设计与实现能力的培养”。课程设计是完成该课程并进行了多个单元实验后,综合利用所学的理论知识,并结合在单元实验中所积累的计算机部件设计和调试方法,设计出一台具有一定规模的指令系统的简单计算机系统。

  课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行中央处理器底层电路的实现、故障分析与定位、系统调试等环节的综合锻炼,进一步提高学生分析和解决问题的能力。

1.2 设计任务

  本课程设计的目标总体目标是设计并实现一个满足以下条件的多周期和流水CPU:
  1)若干段流水、可以处理冲突;
  2)三种类型的指令若干条;
  3)MIPS、ARM、RISC-V等类型CPU都可以;
  4)下载到FPGA上进行验证(选)。

1.3 设计要求

  1)根据课程设计指导书的要求,制定出设计方案;
  2)分析指令系统格式,指令系统功能;
  3)根据指令系统构建基本功能部件,主要数据通路;
  4)根据功能部件及数据通路连接,分析所需要的控制信号以及这些控制信号的有效形式;
  5)调试、数据分析、验收检查;
  6)课程设计报告和总结。

1.4 技术指标

  1)支持表1.4.1所示的50条32位MIPS指令;

  2)支持5段流水机制,可处理数据冒险,结构冒险,分支冒险;

  3)能运行由自己所设计的指令系统构成的一段测试程序,测试程序应能涵盖所有指令,程序执行功能正确;

  4)运行测试程序所耗费的时钟周期数以及每种类型指令执行所需时间。

表 1.4.1 MIPS-C3指令集
序号 指令 指令说明 指令格式 OP
31-26
RS
25-21
RT
20-16
RD
15-11
SA
10-6
FUNCT
5-0
指令码
16进制
1 addi 加立即数 addi rt, rs, immediate 001000       00000 100000 20000000
2 addiu 加立即数(无符号) addiu rd, rs, immediate 001001           24000000
3 andi 立即数与 andi rt, rs, immediate 001100           30000000
4 ori 或立即数 ori rt, rs, immediate 001101           34000000
5 sltiu 小于立即数置1(无符号) sltiu rt, rs, immediate 001011           2C000000
6 lui 立即数加载高位 lui rt, immediate 001111 00000         3C000000
7 xori 异或(立即数) xori rt, rs, immediate 001110     00000 00000 000000 38000000
8 slti 小于置 1(立即数) slti rt, rs, immediate 001010     00000 00000 000000 28000000
9 addu 加(无符号) addu rd, rs, rt 000000       00000 100001 00000021
10 and and rd, rs, rt 000000       00000 100100 00000024
11 beq 相等时分支 beq rs, rt, offset 000100           10000000
12 bne 不等时分支 bne rs, rt, offset 000101           14000000
13 j 跳转 j target 000010           08000000
14 jal 跳转并链接 jal target 000011           0C000000
15 jr 跳转至寄存器所指地址 jr rs 000000         001000 00000009
16 lw 取字 lw rt, offset(base) 100011           8C000000
17 xor 异或 xor rd, rs, rt 000000       00000 100110 00000026
18 nor 或非 nor rd, rs, rt 000000       00000 100111 00000027
19 or or rd, rs, rt 000000       00000 100101 00000025
20 sll 逻辑左移 sll rd, rt, sa 000000 00000       000000 00000000
21 sllv 逻辑左移(位数可变) sllv rd, rt, rs 000000       00000 000100 00000004
22 sltu 小于置1(无符号) sltu rd, rs, rt 000000       00000 101011 0000002B
23 sra 算数右移 sra rd, rt, sa 000000 00000       000011 00000003
24 srl 逻辑右移 srl rd, rt, sa 000000 00000       000010 00000002
25 subu 减(无符号) sub rd, rs, rt 000000       00000 100010 00000022
26 sw 存字 sw rt, offset(base) 101011           AC000000
27 add add rd, rs, rt 000000       00000 100000 00000020
28 sub sub rd, rs, rt 000000       00000 100010 00000022
29 slt 小于置 1 slt rd, rs, rt 000000       00000 101010 0000002A
30 srlv 逻辑右移(位数可变) srlv rd, rt, rs 000000       00000 000110 00000006
31 srav 算数右移(位数可变) srav rd, rt, rs 000000       00000 000111 00000007
32 clz 前导零计数 clz rd, rs 011100       00000 100000 70000020
33 divu 除(无符号) divu rs, rt 000000     00000 00000 011011 0000001B
34 eret 异常返回 eret 010000 10000 00000 00000 00000 011000 42000018
35 jalr 跳转至寄存器所指地址,返回地址保存在R31这个寄存器 jalr rs 000000   00000     001001 00000008
36 lb 取字节 lb rt, offset(base) 100000           80000000
37 lbu 取字节(无符号) lbu rt, offset(base) 100100           90000000
38 lhu 取半字(无符号) lhu rt, offset(base) 100101           94000000
39 sb 存字节 sb rt, offset(base) 101000           A0000000
40 sh 存半字 sh rt, offset(base) 101001           A4000000
41 lh 取半字 lh rt, offset(base) 100001           84000000
42 mfhi 读 Hi 寄存器 mfhi rd 000000 00000 00000   00000 010000 00000010
43 mflo 读 Lo 寄存器 mflo rd 000000 00000 00000   00000 010010 00000012
44 mthi 写 Hi 寄存器 mthi rd 000000   00000 00000 00000 010001 00000011
45 mtlo 写 Lo 寄存器 mtlo rd 000000   00000 00000 00000 010011 00000013
46 mul mul rd, rs, rt 011100       00000 000010 70000002
47 mult 字相乘 mult rs, rt 000000   00000 00000   011000 00000018
48 multu 乘(无符号) multu rs, rt 000000     00000 00000 011001 00000019
49 bgez 大于等于 0 时分支 bgez rs, offset 000001   00001       04010000
50 div div rs, rt 000000     00000 00000 011010 0000001A

2 总体方案设计

2.1 MIPS体系结构

  MIPS是RISC处理器中的一种。MIPS即无内部互锁流水线的微处理器(Microprocessor

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值