华科组成原理课程设计-MIPS流水线CPU
- 格式:doc
- 大小:42.00 KB
- 文档页数:22
类MIPS单周期微处理器设计实验报告专业:班级:学号:姓名:一、微处理器各模块设计各模块的框图结构如上图所示。
由图可知,该处理器包含指令存储器、数据存储器、寄存器组、ALU单元、符号数扩张、控制器、ALU控制译码以及多路复用器等。
图中还忽略了一个单元:时钟信号产生器,而且以上各个部件必须在时钟信号的控制下协调工作。
1.指令存储器的设计指令寄存器为ROM类型的存储器,为单一输出指令的存储器。
因此其对外的接口为clk、存储器地址输入信号(指令指针)以及数据输出信号(指令)。
(1)在IP wizard 中配置ROM,分配128个字的存储空间,字长为32位宽。
(2)选择输入具有地址寄存功能,只有当时钟上升沿有效时,才进行数据的输出。
(3)配置ROM内存空间的初始化COE文件。
最后单击Generate按钮生成IROM模块。
2.数据存储器的设计数据存储器为RAM类型的存储器,并且需要独立的读写控制信号。
因此其对外的接口输入信号为clk、we、datain、addr;输出信号为dataout。
数据存储器基本建立过程同ROM的建立。
3.寄存器组设计寄存器组是指令操作的主要对象,MIPS中一共有32个32位寄存器。
在指令的操作过程中需要区分Rs、Rt、Rd的地址和数据,并且Rd的数据只有在寄存器写信号有效时才能写入,因此该模块的输入为clk、RegWriteAddr、RegWriteData、RegWriteEn、RsAddr、RtAddr、reset;输出信号为RsData、RtData。
由于$0一直输出0,因此当RsAddr、RtAddr为0时,RsData以及RtData 必须输出0,否则输出相应地址寄存器的值。
另外,当RegWriteEn有效时,数据应该写入RegWriteAddr寄存器。
并且每次复位时所有寄存器都清零。
代码如下:module regFile(input clk,input reset,input [31:0] regWriteData,input [4:0] regWriteAddr,input regWriteEn,output [31:0] RsData,output [31:0] RtData,input [4:0] RsAddr,input [4:0] RtAddr);reg[31:0] regs[0:31];assign RsData = (RsAddr == 5'b0)?32'b0:regs[RsAddr];assign RtData = (RtAddr == 5'b0)?32'b0:regs[RtAddr];integer i;always @(posedge clk)beginif(!reset)beginif(regWriteEn==1)beginregs[regWriteAddr]=regWriteData;endendelsebeginfor(i=0;i<31;i=i+1)regs[i]=0;regs[31]=32'hffffffff;endendendmodule4.ALU设计在这个简单的MIPS指令集中,微处理器支持add、sub、and、or、slt运算指令,需要利用ALU单元实现运算,同时数据存储指令sw、lw也需要ALU单元计算存储器地址,条件跳转指令beq需要ALU来比较两个寄存器是否相等。
(完整版)M I P S处理器设计说明西安邮电大学实践课程报告书课程名称:计算机组成与实践院(系)名:电子工程学院称专业班级:**学号/姓名:**实习时间:2015年3月6日至2015年6月19日1 课程主要目的本课程是在上学期《计算机组成与设计》课程学习的基础上,通过实践课的方式,依照集成电路设计流程,完成一个简单独立硬件功能电路模块的设计,从而到达对《计算机组成与设计》课程的深入理解和提高电路设计的实践能力,从理论和实验的结合中巩固计算机基本知识,熟练掌握电路设计的基本流程和原理,同时,加深对MIPS系统的组成部件及其电路结构,原理和功能的理解,掌握利用硬件描述语言和EDA工具进行MIPS设计的一般方法。
2 课程的主要内容和任务MIPS是典型的32位定长指令字RISC处理器,要求深入理解MIPS处理器的内部结构及工作原理。
采用verilogHDL设计一个兼容MIPS指令格式,具有10条以上指令功能的单周期CPU硬件电路,该32位MIPS设计内容主要包括系统中的基本组成部件(存储器,指令寄存器,寄存器堆,算术逻辑运算器,程序计数器,多路选择器,符号扩展等)的设计,仿真及硬件下载的方法和过程。
设计过程中使用ISE仿真工具完成设计电路的仿真验证。
3总体设计方案3.1指令及其功能表:(1)R型指令:(2)I型指令:(3)J型指令:3.2总体结构设计:该MIPS主要由8个模块组成,各个子模块分别设计其特定的功能,最终利用一个总的模块进行子模块间连接,使得整个CPU能连贯执行指令,在仿真结果中观察设计结果,最终进行硬件下载,验证设计。
其中各个模块简单功能如下:(1)存储器模块:具备基本的读写功能,用于存放数据和指令。
(2)寄存器堆模块:由32个32位的寄存器组成,提供较大的存储空间,用于存放暂存数据和指令。
(3)算术逻辑运算器模块:执行加减法等算术运算,与非或等逻辑运算,以及比较移位传送等操作的功能部件,是该CPU的设计核心部分,存在不同的运算处理功能,是体现实验设计结果正确性的模块。
摘要CPU是计算机系统的核心部件,在各类信息终端中得到了广泛的应用。
处理器的设计及制造技术也是计算机技术的核心之一。
而MIPS 是世界上很流行的一种RISC处理器。
MIPS的意思是“无内部互锁流水级的微处理器〞〔Microprocessor without interlocked piped stages〕,其机制是尽量利用软件方法防止流水线中的数据相关问题。
本文围绕着指令执行过程中需经历的五个阶段,详细描述了处理器中各阶段的逻辑设计及其相关功能模块的设计。
这五个阶段包括:取指令阶段IF,指令译码阶段ID,指令执行阶段EXE,存储器读写阶段MEM,存放器写回阶段WB。
相关模块包括:程序存储器imem,控制单元controller,存放器堆regfile,算术逻辑单元alu,数据存储器dmem。
在完成了CPU的整体逻辑设计后,通过Modelsim仿真软件在所设计的CPU上运行了测试程序,测试输出波形说明了处理器逻辑设计的正确性。
关键词:MIPS;处理器;流水线AbstractThe Central Processing Unit (CPU) is the key part of a computer, which has been widely used in various information terminals.Also, the design and manufacturing technology of the processor is one of the cores of the computer technology. And, as a RISC processor, MIPS is very popular in the world. MIPS means “microprocessor without interlocked piped stages〞, the mechanism of it is to avoid the data-related problems in the pipeline as much as possible by software.Around the five stages of the instruction execution, the article describes the logic designs of the processor and it’s related functional modules in detail.The five stages include: the instruction fetch stage IF, the instruction decode stage ID, the instruction execution stage EXE, the memory read/write stage MEM, and the register write back stage WB. The related modules include: the instruction memory imem, the control unit controller, the register file regfile, the arithmetic logic unit alu, and the data memory dmem.Upon the completion of the whole logic designs, running the test programs by the Modelsim, the correctness of the logic designs is proved by the output waveform.Keywords: MIPS, CPU, Pipeline目录摘要IAbstractII目录III第1章MIPS体系构造概述11.1 流水线技术11.2 RISC技术21.3 MIPS简介41.4 MIPS指令集51.5 本章小结10第2章MIPS处理器的实现112.1 MIPS CPU顶层构造112.2 IF级132.3 ID级142.4 EXE级162.5 MEM级172.6 WB级192.7 外部数据输入中断192.8 本章小结20第3章流水线CPU的仿真213.1 流水线CPU的指令仿真213.2 本章小结37第4章总结和展望38参考文献39致谢40附录1 英文文献41附录2 中文译文48附录3 主要模块代码54第1章MIPS体系构造概述1.1 流水线技术在任一条指令的执行过程中,各个功能部件都会随着指令执行的进程而呈现出时忙时闲的现象。
摘要CPU是计算机系统的核心部件,在各类信息终端中得到了广泛的应用。
处理器的设计及制造技术也是计算机技术的核心之一。
而MIPS 是世界上很流行的一种RISC处理器。
MIPS的意思是“无部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。
本文围绕着指令执行过程中需经历的五个阶段,详细描述了处理器中各阶段的逻辑设计及其相关功能模块的设计。
这五个阶段包括:取指令阶段IF,指令译码阶段ID,指令执行阶段EXE,存储器读写阶段MEM,寄存器写回阶段WB。
相关模块包括:程序存储器imem,控制单元controller,寄存器堆regfile,算术逻辑单元alu,数据存储器dmem。
在完成了CPU的整体逻辑设计后,通过Modelsim仿真软件在所设计的CPU上运行了测试程序,测试输出波形表明了处理器逻辑设计的正确性。
关键词:MIPS;处理器;流水线AbstractThe Central Processing Unit (CPU) is the key part of a computer, which has been widely used in various information terminals.Also, the design and manufacturing technology of the processor is one of the cores of the computer technology. And, as a RISC processor, MIPS is very popular in the world. MIPS means “microprocessor without interlocked piped stages”, the mechanism of it is to avoid the data-related problems in the pipeline as much as possible by software.Around the five stages of the instruction execution, the article describes the logic designs of the processor and it’s related functional modules in detail. The five stages include: the instruction fetch stage IF, the instruction decode stage ID, the instruction execution stage EXE, the memory read/write stage MEM, and the register write back stage WB. The related modules include: the instruction memory imem, the control unit controller, the register file regfile, the arithmetic logic unit alu, and the data memory dmem.Upon the completion of the whole logic designs, running the test programs by the Modelsim, the correctness of the logic designs is proved by the output waveform.Keywords: MIPS, CPU, Pipeline目录摘要 (I)Abstract (II)目录 (III)第1章 MIPS体系结构概述 (1)1.1 流水线技术 (1)1.2 RISC技术 (2)1.3 MIPS简介 (4)1.4 MIPS指令集 (5)1.5 本章小结 (10)第2章 MIPS处理器的实现 (11)2.1 MIPS CPU顶层结构 (11)2.2 IF级 (13)2.3 ID级 (14)2.4 EXE级 (16)2.5 MEM级 (17)2.6 WB级 (19)2.7 外部数据输入中断 (19)2.8 本章小结 (20)第3章流水线CPU的仿真 (21)3.1 流水线CPU的指令仿真 (21)3.2 本章小结 (37)第4章总结和展望 (38)参考文献 (39)致 (40)附录1 英文文献 (41)附录2 中文译文 (48)附录3 主要模块代码 (54)第1章 MIPS体系结构概述1.1 流水线技术在任一条指令的执行过程中,各个功能部件都会随着指令执行的进程而呈现出时忙时闲的现象。
《计算机组成原理实验》实验报告(实验二)学院名称:专业(班级):学生姓名:学号:时间:2017 年11 月25 日成绩:实验二:单周期CPU设计与实现一.实验目的(1) 掌握单周期CPU数据通路图的构成、原理及其设计方法;(2) 掌握单周期CPU的实现方法,代码实现方法;(3) 认识和掌握指令与CPU的关系;(4) 掌握测试单周期CPU的方法;(5) 掌握单周期CPU的实现方法。
二.实验内容设计一个单周期的MIPSCPU,使其能实现下列指令:==> 算术运算指令(1)add rd , rs, rt(说明:以助记符表示,是汇编指令;以代码表示,是机器指令)功能:rd←rs + rt。
reserved为预留部分,即未用,一般填“0”。
(2)addi rt , rs ,immediate功能:rt←rs + (sign-extend)immediate;immediate符号扩展再参加“加”运算。
(3)sub rd , rs , rt功能:rd←rs - rt==> 逻辑运算指令(4)ori rt , rs ,immediate功能:rt←rs | (zero-extend)immediate;immediate做“0”扩展再参加“或”运算。
(5)and rd , rs , rt功能:rd←rs & rt;逻辑与运算。
(6)or rd , rs , rt功能:rd←rs | rt;逻辑或运算。
==>移位指令(7)sll rd, rt,sa功能:rd<-rt<<(zero-extend)sa,左移sa位,(zero-extend)sa==>比较指令(8)slt rd, rs, rt 带符号数功能:if (rs<rt) rd =1 else rd=0, 具体请看表2 ALU运算功能表,带符号==> 存储器读/写指令(9)sw rt ,immediate(rs) 写存储器功能:memory[rs+ (sign-extend)immediate]←rt;immediate符号扩展再相加。
MIPS流水线处理器模拟仿真实验程序的设计与实现发布时间:2023-02-22T03:00:21.764Z 来源:《中国科技信息》2022年第33卷17期作者:孟海涛[导读] 流水CPU工作原理是计算机系统组成原理教学中的难点孟海涛32090219710901****摘要:流水CPU工作原理是计算机系统组成原理教学中的难点,大多教材都是基于MIPS的经典流水线处理器架构。
为了更好地深入理解指令流水线的工作原理,本文结合C++面向对象程序设计技术,设计并实现了MIPS流水线模拟仿真实验程序。
模拟仿真程序可以按周期模式和指令模式运行,输出显现每个机器周期的各个寄存器与存储单元的数据变化结果,并能统计不同机器指令程序的各个阶段执行效率。
?关键字:MIPS;流水线;模拟计算机组成原理是计算机科学与技术专业的核心基础课程,同时也是一门公认的难学难教的课程[1],具有理论性强、难度大、内容抽象、实践性强等特点[2],特别是微处理器流水线指令执行过程学生难以理解。
目前市场上的大部分计算机组成原理实验设备也缺乏相关实验项目,少部分也是采用FPGA平台,采用HDL语言实现,不适合学时有限且未开设FPGA课程的地方院校计算机专业[3]。
因此,使用C++设计一个MIPS微处理器五级流水线模拟器,可以执行MIPS简单指令集汇编程序,输出每个周期流水线各个功能单元的寄存器内容、利用率和程序执行的总周期数,用于计算机系统结构的本科生和研究生教学[5]。
1 MIPS微处理器流水线技术及指令系统1.2 MIPS指令系统MIPS指令集合一共31条指令,指令长度为固定的32位二进制编码,分为三种类型:R型格式(Register format)、I型格式(Immediate format)、J型格式(Jump format)。
格式中Op是描述基本操作功能的指令操作码编码,长为6bits;Rs是第一源操作数寄存器,长为5bits;Rt是第二源操作数寄存器,长为5bits;Rd是目的操作数寄存器,长为5bits;Shamt是位移次数立即数,长为5bits;Function是功能码,长为6bits;Address是跳转目标地址,长为26bits,与PC高四位与其拼接成32bits内存转移地址。
mips单周期cpu课程设计一、课程目标知识目标:1. 掌握MIPS单周期CPU的基本结构和工作原理;2. 了解指令集、指令执行过程和指令周期;3. 学会分析并设计简单的MIPS指令;4. 理解CPU性能指标,如时钟频率、吞吐率等。
技能目标:1. 能够运用硬件描述语言(如Verilog)进行单周期CPU的设计与仿真;2. 能够独立编写简单的MIPS汇编程序,并在单周期CPU上运行;3. 能够分析单周期CPU的性能,并进行优化;4. 培养学生的团队合作能力和问题解决能力。
情感态度价值观目标:1. 培养学生对计算机组成原理和硬件设计的兴趣,激发学生的创新意识;2. 增强学生的工程素养,使其认识到工程实践在计算机科学领域的重要性;3. 培养学生严谨、细致、负责任的科学态度,提高学生的自主学习能力。
本课程针对高中年级学生,课程性质为实践性较强的硬件课程。
结合学生特点,课程目标注重理论与实践相结合,通过设计单周期CPU,使学生深入理解计算机硬件原理,提高实践能力。
在教学要求上,注重培养学生的团队合作精神,提高学生分析和解决问题的能力,为后续计算机组成原理及相关课程打下坚实基础。
通过本课程的学习,学生将能够独立完成单周期CPU的设计与仿真,具备一定的硬件编程能力。
二、教学内容1. 引言:介绍CPU在计算机系统中的作用,引出MIPS单周期CPU的概念及其重要性。
相关教材章节:第一章 计算机系统概述2. MIPS单周期CPU基本结构:讲解CPU的基本组成部分,包括寄存器组、控制单元、算术逻辑单元(ALU)、数据通路等。
相关教材章节:第二章 计算机组成原理3. 指令集与指令执行:分析MIPS指令集特点,讲解指令执行过程和指令周期。
相关教材章节:第三章 指令系统4. 硬件描述语言与单周期CPU设计:介绍Verilog硬件描述语言,通过实例讲解如何使用Verilog设计单周期CPU。
相关教材章节:第四章 硬件描述语言与数字电路设计5. 单周期CPU仿真与优化:指导学生进行单周期CPU的仿真,分析性能瓶颈,探讨优化方案。
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42MIPS 流水线实验指导书2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42目录1. O VERVIEW ....................................................................................................................................3 1.1 实验名称............................................................................................................................... 3 1.2 实验目的............................................................................................................................... 3 1.3 实验范围............................................................................................................................... 3 1.4 实验预计时间....................................................................................................................... 3 1.5 实验报告与验收办法........................................................................................................... 3 2. 单周期MIPS 流水线 ...................................................................................................................4 2.1 模块描述............................................................................................................................... 4 2.1.1 总体结构........................................................................................................................ 4 2.1.2 主控制单元模块CTR ................................................................................................... 5 2.1.3 ALU 控制单元模块AluCtr .......................................................................................... 8 2.1.4 ALU ............................................................................................................................. 10 2.1.5 寄存器regFile ............................................................................................................. 12 2.1.6 内存单元模块MEMORY........................................................................................... 15 2.1.7 带符号扩展.................................................................................................................. 16 2.2 顶层模块top ...................................................................................................................... 17 2.2.1 模块描述...................................................................................................................... 17 2.3 流水线仿真......................................................................................................................... 19 3. 多周期MIPS 流水线 .................................................................................................................23 3.1 实验描述............................................................................................................................. 23 3.1.1 模块描述...................................................................................................................... 23 3.1.2 新建模块源文件top ................................................................................................... 25 3.1.3 编写功能...................................................................................................................... 25 3.1.4 仿真测试...................................................................................................................... 26 4. 附录 M ODELSIM 使用说明 .. (28)1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142 1. O VERVIEW1.1 实验名称类MIPS单周期/多周期处理器实现1.2 实验目的1.用Verilog实现单周期的类mips处理器2.在单周期mips处理器基础上完成多周期的类mips处理器,多周期处理器有以下功能:1)实现多周期、单发射流水线2)实现forwarding和相关性停顿3)实现指令包括lw,sw,add,sub,or,and,beq(optional),j(optional)4)可以从modelsim中看到仿真波形1.3 实验范围本次实验将覆盖以下范围1.Modelsim的使用2.使用VerilogHDL进行逻辑设计(本实验默认会使用verilog)1.4 实验预计时间1周1.5 实验报告与验收办法提交实验报告;报告内容做成PPT进行答辩。
华科组成原理课程设计-MIPS流水线CPU目录一、课程设计概述............................................................................................................... .. (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四、实现内容与测试结果.............................................................................................................121 各模块功能............................................................................................................... . (12)2控制信号............................................................................................................... (12)3指令操作流程............................................................................................................... . (13)4指令执行状态转换图..............................................................................................................145引脚绑定............................................................................................................... (15)6测试程序............................................................................................................... (15)7测试结果与仿真图..................................................................................................................16五、课设总结............................................................................................................... .. (17)1课设中遇到的问题..................................................................................................................172课设经历............................................................................................................... (17)3课设感想............................................................................................................... (18)4小组分工............................................................................................................... (18)参考文献............................................................................................................... . (18)2一、课程设计概述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位,而且指令操作码在固定的位置上。
③易于编译器的开发。
一般情况下,编译器在编译高级语言程序时,很难用到复3杂的指令。
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型指令使用,用于产生跳转的目的地址。
63126 25521 20516 15(a)I类指令63163126 25(c)J类指令26 25521 20516 15(b)R类指令260511 1056 56016图1. MIPS的指令格式3. 经典5段RSIC流水线结构经典的5段RISC流水线如图2。