华科组成原理课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、课程设计概述 (3)
1 课设目的 (3)
2 实验环境 (3)
3 设计任务与要求 (3)
二、设计原理 (3)
1 MIPS概述 (3)
2 MIPS指令简介 (3)
3 经典5段RSIC流水线结构 (4)
三、设计内容 (5)
1 指令选取 (5)
2 非流水5段CPU模型 (6)
3 流水5段CPU模型 (8)
四、实现内容与测试结果 (12)
1 各模块功能 (12)
2控制信号 (12)
3指令操作流程 (13)
4指令执行状态转换图 (14)
5引脚绑定 (15)
6测试程序 (15)
7测试结果与仿真图 (16)
五、课设总结 (17)
1课设中遇到的问题 (17)
2课设经历 (17)
3课设感想 (18)
4小组分工 (18)
参考文献 (18)
一、课程设计概述
1.课设目的
①掌握硬件描述语言与开发环境,了解硬件开发地基本过程。
②掌握流水线CPU设计方法。
③锻炼学生简单计算机系统的设计能力,并通过进行主机系统低层电路的实现、故障
分析与定位、系统调试等环节的锻炼,进一步提高了学生分析和解决问题的能力。
2.实验环境
①Xilinx ISE 14.2
②Spartan3E实验板一块
3.设计任务与要求
课程设计的主要任务是设计一台支持流水线的简单计算机系统并调试通过。要求所设计的计算机系统能正确地执行存放在指令cache中的程序的功能。
本设计基于MIPS的32位流水线架构,设计过程中力图尽可能的遵循原有的MIPS的功能和指令集。基本做到与MIPS指令集的兼容。
具体要求包括:
①支持算术运算,逻辑运算,存储器读写,寄存器间数据传送等几类指令。
②支持立即数寻址,直接寻址,寄存器寻址等几种基本的数据寻址方式和顺序寻址、
跳跃寻址两种指令的寻址方式。
③支持10条或以上的指令。
④能运行由自己所设计的指令系统构成的一段程序,程序执行功能正确。
⑤具有完整的五级流水线架构。采用独立的32位的数据总线和地址总线。
二、设计原理
1.MIPS概述
MIPS是高效的RISC体系结构中最优雅的一种体系结构。其中文意思为“无内部互锁流水级的微处理器”,其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。
本设计将参考MIPS的CPU设计以实现自己的五段流水线CPU设计,并部分实现MIPS32指令集
2.MIPS指令简介
2.1 MIPS指令集特点
MIPS指令集具有以下特点:
①简单的LOAD/STORE结构。所有计算类型指令均从寄存器组中读取数据并把
结果写入寄存器组中。只有LOAD和STORE指令访问存储器(数据cache)。
②易于流水线CPU的设计。MIPS指令集的指令格式非常规整,所有的指令均为
32位,而且指令操作码在固定的位置上。
③易于编译器的开发。一般情况下,编译器在编译高级语言程序时,很难用到复
杂的指令。MIPS 指令的寻址方式与操作非常简单,便于编译器的开发。
2.2 MIPS 指令格式
在本次课程设计中,在数据类型上只支持整数类型,在指令格式上直接R 、I 和J 型指令。以下是对三型指令的简介[1]:
① R (register )类型的指令从寄存器组中读取两个源操作数,计算结果写回寄存
器组。
② I (immediate )类型的指令使用一个16位的立即数作为一个源操作数。 ③ J (jump )类型的指令使用一个26位立即数作为跳转的目标地址。 三型指令的格式如图1所示,其中: ① op 表示指令操作码。
② rs 为源操作数的寄存器号。
③ rd 为目的寄存器号,RT 既可为源寄存器号,也可为目的寄存器号。 ④ funct 可认为是扩展的操作码。
⑤ shamte 由移位指令使用,定义移位位数。
⑥ Immediate 是16位立即数,根据指令需求进行无符号或有符号扩展。 ⑦ Address 是26位立即数,由J 型指令使用,用于产生跳转的目的地址。
6551665555662631
26 25
21 20
16 150
31
26 25
21 20
16 150
11 10
6 5
31
26 25
(a)I 类指令
(b)R 类指令
(c)J 类指令
图1. MIPS 的指令格式
3. 经典5段RSIC 流水线结构
经典的5段RISC 流水线如图2。
IF 段
ID 段
EX 段
MEM 段
WB 段
图2. 经典5段RISC 流水线
在该结构中一条指令的执行过程分为以下5个时钟周期:
①取指令周期(IF):以程序计数器PC中的内容作为地址,从存储器中取出指令并放
入指令寄存器IR;同时PC值加4(假设每条指令占4个字节),指向顺序的下一条指令。
②指令译码/读寄存器周期(ID):对指令进行译码,并用IR中的寄存器地址去访问
通用寄存器组,读出所需的操作数。
③执行/有效地址计算周期(EX):在这个周期,ALU对在上一个周期准备好的操作
数进行运算或处理。不同指令所进行的操作不同。
④存储器访问/分支完成周期(MEM):load指令用上一个周期计算出的有效地址从存
储器中读出相应的数据;store指令把指定的数据写入这个有效地址所指出的存储器单元;分支指令若分支成功就把钱一个周期中计算好的转移目标地址送入PC,否则不进行任何操作;其他类型的指令在该周期不做任何操作。
⑤写回周期(WB):把结果写入通用寄存器组。
本设计基于该经典5端流水线结构完成了MIPS的一种简单实现,并在此基础上加入了对流水线冲突(数据冲突,控制冲突)的处理,以及对中断的处理。
三、设计内容
1.指令选取
本系统能执行16条MIPS指令,指令基本情况如表1所示。
表1. 系统支持的MIPS指令集
从指令类型来讲,这16条指令覆盖了算逻运算、访存、无条件跳转和有条件跳转,已