计算机组成原理实验报告 单周期CPU的设计与实现

合集下载

计算机组成原理实验报告 单周期CPU的设计与实现

计算机组成原理实验报告 单周期CPU的设计与实现

1个时钟周期 Clock 电子科技大学计算机科学与工程学院标 准 实 验 报 告(实验)课程名称: 计算机组成原理实验 电子科技大学教务处制表电 子 科 技 大 学 实 验 报 告学生姓名: 郫县尼克杨 学 号: 2014 指导教师:陈虹 实验地点: 主楼A2-411 实验时间:12周-15周一、 实验室名称:主楼A2-411二、 实验项目名称:单周期CPU 的设计与实现。

三、 实验学时:8学时四、 实验原理:(一) 概述单周期(Single Cycle )CPU 是指CPU 从取出1条指令到执行完该指令只需1个时钟周期。

一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保存结果。

对于单周期CPU 来说,这些执行步骤均在一个时钟周期内完成。

(二) 单周期cpu 总体电路本实验所设计的单周期CPU 的总体电路结构如下。

(三) MIPS 指令格式化MIPS 指令系统结构有MIPS-32和MIPS-64两种。

本实验的MIPS 指令选用MIPS-32。

以下所说的MIPS 指令均指MIPS-32。

MIPS 的指令格式为32位。

下图给出MIPS 指令的3种格式。

本实验只选取了9条典型的MIPS 指令来描述CPU 逻辑电路的设计方法。

下图列出了本实验的所涉及到的9条MIPS 指令。

五、 实验目的1、掌握单周期CPU 的工作原理、实现方法及其组成部件的原理和设计方法,如控制器、运算器等。

?2、认识和掌握指令与CPU 的关系、指令的执行过程。

?3、熟练使用硬件描述语言Verilog 、EDA 工具软件进行软件设计与仿真,以培养学生的分析和设计CPU 的能力。

六、 实验内容(一)拟定本实验的指令系统,指令应包含R 型指令、I 型指令和J 型指令,指令数为9条。

(二)CPU 各功能模块的设计与实现。

(三)对设计的各个模块的仿真测试。

(四)整个CPU 的封装与测试。

七、 实验器材(设备、元器件):(一)安装了Xilinx ISE Design Suite 13.4的PC 机一台(二)FPGA 开发板:Anvyl Spartan6/XC6SLX45(三)计算机与FPGA 开发板通过JTAG (Joint Test Action Group )接口连接,其连接方式如图所示。

单周期CPU实验报告

单周期CPU实验报告

MIPS-CPU设计实验报告实验名称:32位单周期MIPS-CPU设计姓名学号:刘高斯11072205实验日期:2014年12月19日目录前言MIPS简介------------------------------------------------------------- 3 实验目的------------------------------------------------------------- 3第一部分VERILOG HDL 语言实现部分实验内容------------------------------------------------------------- 4 试验环境------------------------------------------------------------- 4 模块简介------------------------------------------------------------- 4 实验截图------------------------------------------------------------- 5 实验感想------------------------------------------------------------- 5 实验代码------------------------------------------------------------- 6第二部分LOGISIM 语言实现部分实验内容------------------------------------------------------------- 16 实验环境------------------------------------------------------------- 16模块设计------------------------------------------------------------- 16 试验感想------------------------------------------------------------- 23前言一、MIPS简介MIPS是世界上很流行的一种RISC处理器。

MIPS单周期CPU实验报告材料

MIPS单周期CPU实验报告材料

《计算机组成原理实验》实验报告(实验二)学院名称:专业(班级):学生姓名:学号:时间:2017 年11 月25 日成绩 :实验二:单周期CPU设计与实现一.实验目的(1) 掌握单周期CPU数据通路图的构成、原理及其设计方法;(2) 掌握单周期CPU的实现方法,代码实现方法;(3) 认识和掌握指令与CPU的关系;(4) 掌握测试单周期CPU的方法;(5) 掌握单周期CPU的实现方法。

二.实验内容设计一个单周期的MIPSCPU,使其能实现下列指令:==> 算术运算指令说明:以助记符表示,是汇编指令;以代码表示,是机器指令功能:rd←rs + rt。

reserved为预留部分,即未用,一般填“0”。

符号扩展再参加“加”运算。

(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;逻辑与运算。

功能: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符号扩展再相加。

即将rt寄存器的内容保存到rs寄存器内容和立即数符号扩展后的数相加作为地址的内存单元中。

(10) lw rt , immediate(rs) 读存储器功能:rt ← memory[rs + (sign-extend)immediate];immediate符号扩展再相加。

CPU计算机组成原理实验报告

CPU计算机组成原理实验报告

计算机组成与系统结构实验报告CPU设计与实现院(系):专业班级:计算机科学与技术组员:指导教师:实验目的:设计实现CPU部件。

实验仪器:PC机(安装Altebra 公司的开发软件QuartusII,Modelsim)两台TEC-CA计算机组成原理试验箱实验过程:一、理论设计1.1、设计指令集设计CPU第一步,就是根据需求,确定功能,并且设计出指令集。

指令集包括每一条指令的编码方式,操作码以及每一条指令实现的功能。

考虑到第一次设计CPU,在指令集设计过程中难免会出现考虑不周全或者指令集设计不科学的问题,我们借鉴了经典的31条MIPS指令集。

在对指令集每一条指令进行解读、分析后,我们确定:31条MIPS指令可以满足我们的CPU的基本功能。

下面将31条MIPS指令的编码格式、对应的操作类型以表格的形式列举出来:经典的MIPS指令有三种格式:R-TYPE、I-TYPE、J-TYPE。

其编码格式各不相同,分别代表寄存器操作指令、立即数操作指令、跳转指令。

寄存器操作主要是将寄存器中的树取出进行运算并存回寄存器;立即数操作为一个寄存器数与指令中的扩展后的立即数进行运算得到结果再存回寄存器;跳转我们后面的设计都是对这31条指令进行具体实现,所有的容紧密围绕这31条指令。

1.2、画数据通路图在设计完指令后,要做的就是根据指令描述的功能确定CPU有哪些部件,并且确定各部件之间的连线方式。

首先,一个CPU最重要的部件一定是控制器。

控制器就像人的大脑,控制其他各个部件的工作。

其次,由于是基于MIPS指令集的CPU,大多数操作基于寄存器,因此必须设计一个寄存器堆。

此外,ALU 运算部件对于CPU来说也是必不可少的。

由于有六条指令涉及比较操作,并且给有效位置位。

考虑到本CPU设计初衷是四级流水控制,若一条指令多个节拍使用ALU部件会造成部件冲突,后期控制会比较复杂。

因此,在本CPU中额外设计了一个比较部件。

此外,还有其他部件,如PC部件、立即数扩展部件、数据寄存器、地址寄存器等。

单周期CPU设计实验报告

单周期CPU设计实验报告

单周期CPU设计实验报告一、引言计算机是现代信息社会必不可少的工具,而CPU作为计算机的核心部件,承担着执行指令、进行运算和控制系统资源的任务。

随着科技的进步和计算能力的需求,CPU的设计也趋于复杂和高效。

本次实验旨在设计一种单周期CPU,探究其设计原理和实现过程,并通过实验验证其正确性和性能。

二、理论基础1.单周期CPU概述单周期CPU即每个时钟周期内只完成一条指令的处理,它包括指令取址阶段(IF)、指令译码阶段(ID)、执行阶段(EX)、访存阶段(MEM)和写回阶段(WB)等多个阶段。

每条指令都顺序地在这些阶段中执行,而不同的指令所需的时钟周期可能不同。

2.控制信号单周期CPU需要根据不同的指令类型产生不同的控制信号来控制各个阶段的工作。

常见的控制信号包括时钟信号(clk)、使能信号(En)、写使能信号(WE)和数据选择信号(MUX)等。

这些信号的产生需要通过译码器、控制逻辑电路和时序逻辑电路等来实现。

三、实验设计本次实验采用的单周期CPU包括以下五个阶段:指令取址阶段、指令译码阶段、执行阶段、访存阶段和写回阶段。

每个阶段的具体操作如下:1.指令取址阶段(IF)在IF阶段,通过计数器实现程序计数器(PC)的自增功能,并从存储器中读取指令存储地址所对应的指令码。

同时,设置PC使能信号,使其可以更新到下一个地址。

2.指令译码阶段(ID)在ID阶段,对从存储器中读取的指令码进行解码,确定指令的操作类型和操作数。

同时,根据操作类型产生相应的控制信号,如使能信号、写使能信号和数据选择信号等。

3.执行阶段(EX)在EX阶段,根据ID阶段产生的控制信号和操作数,进行相应的算术逻辑运算。

这里可以包括加法器、乘法器、逻辑运算器等。

4.访存阶段(MEM)在MEM阶段,根据EX阶段的结果,进行数据存储器的读写操作。

同时,将读取的数据传递给下一个阶段。

5.写回阶段(WB)在WB阶段,根据MEM阶段的结果,将数据传递给寄存器文件,并将其写入指定的寄存器。

计算机系统结构实验-单周期CPU

计算机系统结构实验-单周期CPU

CPU的指令集、指令译码 示例和控制信号产生示 例
1. CPU的指令集。
2. 需要符号扩展/零扩展的指令意义及说明(全部指令 的说明参见文档)
对于addi/subi rd,rs1,imme 指令 //rdrs1+imme(符号拓展) rd是目的寄存器号,立即数要做符号拓展到 32位。 符号扩展:取imme的最高位的值,用其填充 imme的左边所有位至imme成为32位二进制 数为止(imme为16位,所以需填充16位)。
7. 指令存储器IP_ROM的实现。
8. 数据存储器IP_RAM的实现。
7.可以在此设置输入输出接口,然 后点next。
8.添加文件后的工程。
9.在代码编辑区域输入代码并保存(图中代码只是示意 用),图中的代码调用了一个cu模块,文件名为sccu。
10.添加sccu文件,选择如图的文件类型,输入文 件名称,点next
11.添加sccu文件后的工程,sccu成为sccpu调用的一 个模块。
4.点击“FINISH”,就生成一个如下图所示的Verilog测试 模块。
5. ISE能自动生成测试平台的完整构架,包括所需信号、 端口声明以及模块调用的实现。所需要完成的工作就是 initial….end模块中的“//Add stimulus here”后面添加测 试向量生成代码。。
6.这里给出示例代码及注释,代码填写完成后点击保存。
7.在工程管理区上部点击“Simulation”;选择要仿真的 文件名,过程管理区就会显示“Isim simlator”;。
8.下拉“Isim simlator”,选择“Simulate Behavioral Model”,单击鼠标右键,选择“Process Properties”可 修改仿真运行时间等。

计算机组成原理实验报告1-单周期

计算机组成原理实验报告1-单周期

计算机组成原理实验报告单周期处理器开发Q:10649503642015.05.12文档目录:1、功能设计说明2、模块化和层次化设计说明3、具体模块定义4、测试代码及结果5、实验完成时间安排6、心得体会1、功能设计说明1.完成的指令集:a) add,sub,and,or,slt,lw,sw,beq 和J 指令。

b) 不支持溢出。

2. 处理器为单周期设计。

3. 功能模块统一采用书上201页的图4-24设计,信号控制采用书上的193页图4-12和200页图4-22的真值表进行化简。

2、模块化和层次化设计说明3、具体模块定义数据通路:1)PC模块定义:(1) 基本描述PC 主要功能是完成输出当前指令地址。

复位后,PC指向0x0000_0000,此处为第一条指令的地址。

(2) 模块接口(3)功能定义2)NPC模块定义:(1) 基本描述NPC 主要功能是根据当前指令是否为beq指令,输出下一条指令的地址。

该模块调用了MUX模块。

(2) 模块接口(3)功能定义3)ALU模块定义:(1) 基本描述实现加、减、与、或、小于则赋1五种计算。

(2) 模块接口(3)功能定义4)MUX模块定义:(1) 基本描述实现32位和5位二选一数据选择器(2) 模块接口(3)功能定义5)EXT模块定义:(1) 基本描述将输入的16位地址按符号位扩展为32位。

(2) 模块接口(3)功能定义6)regfile模块定义:(1) 基本描述根据输入的两个寄存器地址,输出相应寄存器的值,根据寄存器写信号和寄存器地址,将输入的数据选择写入寄存器。

(2) 模块接口(3)功能定义7)im_4k模块定义:(1) 基本描述指令内存大小为4K,初始化从code.txt载入指令。

根据输入的指令地址,输出当前位置存储的指令。

(2) 模块接口(3)功能定义8)dm_4k模块定义:(1) 基本描述“数据内存”大小为4K,根据输入的地址读出“数据内存”中的数据,并根据数据写信号,将输入的数据选择写入“数据内存”中。

MIPS单周期CPU实验报告

MIPS单周期CPU实验报告

MIPS单周期CPU实验报告一、实验目的本实验旨在设计一个基于MIPS指令集架构的单周期CPU,具体包括CPU的指令集设计、流水线的划分与控制信号设计等。

通过本实验,可以深入理解计算机组成原理中的CPU设计原理,加深对计算机体系结构的理解。

二、实验原理MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集(RISC)架构的处理器设计,大大简化了指令系统的复杂性,有利于提高执行效率。

MIPS指令集由R、I、J三种格式的指令组成,主要包括算术逻辑运算指令、存储器访问指令、分支跳转指令等。

在单周期CPU设计中,每个指令的执行时间相同,每个时钟周期只执行一个指令。

单周期CPU的主要部件包括指令内存(IM)、数据存储器(DM)、寄存器文件(RF)、运算单元(ALU)、控制器等。

指令执行过程主要分为取指、译码、执行、访存、写回等阶段。

三、实验步骤1.设计CPU指令集:根据MIPS指令集的格式和功能,设计符合需求的指令集,包括算术逻辑运算指令、存储器访问指令、分支跳转指令等。

2.划分CPU流水线:将CPU的执行过程划分为取指、译码、执行、访存、写回等阶段,确定每个阶段的功能和控制信号。

3.设计控制器:根据CPU的流水线划分和指令集设计,设计控制器实现各个阶段的控制信号生成和时序控制。

4.集成测试:进行集成测试,验证CPU的指令执行功能和正确性,调试并优化设计。

5.性能评估:通过性能评估指标,如CPI(平均时钟周期数)、吞吐量等,评估CPU的性能优劣,进一步优化设计。

四、实验结果在实验中,成功设计了一个基于MIPS指令集架构的单周期CPU。

通过集成测试,验证了CPU的指令执行功能和正确性,实现了取指、译码、执行、访存、写回等阶段的正常工作。

同时,通过性能评估指标的测量,得到了CPU的性能参数,如CPI、吞吐量等。

通过性能评估,发现了CPU的性能瓶颈,并进行了相应的优化,提高了CPU的性能表现。

CPU实验报告范文

CPU实验报告范文

CPU实验报告范文一、实验目的本次实验的目的是设计和实现一个简单的中央处理器(CPU),通过实践掌握CPU的基本工作原理和实现方法。

二、实验原理1.CPU的基本概念中央处理器(CPU)是计算机的核心部件,负责执行计算机指令和控制计算机的操作。

它由运算器、控制器和寄存器组成。

运算器负责执行算术和逻辑运算,包括加法、减法、乘法、除法等。

控制器负责指挥CPU的工作,通过控制总线实现对内存和其他外部设备的访问。

寄存器是CPU内部的存储器,用于暂时存放指令、数据和中间结果。

2.CPU的实现方法CPU的实现采用组合逻辑电路和时序逻辑电路相结合的方法。

组合逻辑电路是由逻辑门构成的电路,它的输入只依赖于当前时刻的输入信号,输出也只与当前时刻的输入信号有关。

而时序逻辑电路则包含存储元件,其输出不仅与当前时刻的输入信号有关,还与之前的输入信号有关。

CPU的实现过程主要包括以下步骤:(1)设计指令集:确定CPU支持的指令集,包括指令的格式和操作码。

(2)设计控制器:根据指令集设计控制器,确定各个指令的执行过程和控制信号。

(3)设计运算器:根据指令集设计运算器,确定支持的算术和逻辑运算。

(4)设计寄存器:确定需要的寄存器数量和位数,设计寄存器的输入输出和工作方式。

3.实验环境和工具本次实验使用的环境和工具如下:(1)硬件环境:计算机、开发板、示波器等。

(2)软件环境:Win10操作系统、Vivado开发工具等。

三、实验步骤1.设计指令集根据实验要求,我们设计了一个简单的指令集,包括加法、减法、逻辑与、逻辑或和移位指令。

每个指令有特定的操作码和操作数。

2.设计控制器根据指令集设计了一个控制器。

控制器根据指令的操作码产生相应的控制信号,控制CPU内部寄存器、运算器和总线的操作。

3.设计运算器根据指令集设计了一个运算器。

运算器包括加法器、减法器、与门和或门等。

它通过输入的操作数和控制信号完成相应的运算操作。

4.设计寄存器根据实验需求确定了所需的寄存器数量和位数。

计算机组成原理CPU设计实验报告

计算机组成原理CPU设计实验报告

计算机组成原理CPU设计实验报告课程设计题目:16位CPU设计学院: 信息学院班级:电子A班学号:1115102015姓名:方茹1目录1 实验方法 ..................................................................... . (4)2 总体说明 ..................................................................... ................................................. 5 2.1指令系统: .................................................................... .......................... 5 2.1.1指令格式分类(按指令字长和操作数不同): ...................................................... 5 2.1.2具体指令汇总表: .................................................................... .......................... 6 2.1.3相关指令流程图: .................................................................... .......................... 6 2.1.4指令数据通路的构建: .................................................................... ................... 8 2.1.5指令的分组及节拍: .................................................................... ..................... 12 2.1.6指令执行状态图:(见下页)..................................................................... ........... 13 2.1.7具体微指令: .................................................................... ............................... 13 2.2 系统整体介绍 ..................................................................... .................. 16 2.2.1系统基本模块划分 ..................................................................... ....................... 16 2.2.2总体结构图:(见下页)..................................................................... (17)3 CPU的控制逻辑与具体数据通道设计 ..................................................................... ......18 3.1取指令逻辑的设计 ..................................................................... .. (19)3.1.1指令地址的保存 ..................................................................... (19)3.1.2指令存储器 ..................................................................... .................................. 20 3.1.3下一条指令地址的计算 ..................................................................... ................ 20 3.2指令译码逻辑的设计...................................................................... ...................... 21 3.3指令执行逻辑的设计...................................................................... ...................... 22 3.4存储器访问逻辑的设计 ..................................................................... ................... 23 3.5结果写回逻辑的设计...................................................................... ...................... 24 3.6单周期CPU的总成...................................................................... (25)4各部分说明 ..................................................................... .............................................26 4.1ALU .................................................................................................................... 26 4.2数据选择器BUS_MUX ................................................................ ........................ 28 4.3器件T1 ..................................................................... .......................................... 30 4.4标志寄存器FLAG_REG ............................................................... ........................ 31 4.5T2: .................................................................... ................................................ 33 4.6程序计数器PC ..................................................................... ............................... 33 4.7地址寄存器AR和指令寄存器IR: .................................................................... .. 34 4.8寄存器、寄存器组和寄存器的选择.......................................................................36 4.9一位控制信号/WR .................................................................... ........................... 37 4.10 节拍发生器 ..................................................................... .................................. 37 4.11控制逻辑 ..................................................................... ...................................... 39 4.12T3...................................................................... ................................................ 42 4.13REG_OUT ......................................................................................................... 43 4.14存储器 ..................................................................... .......................................... 44 4.15总线选择器 ..................................................................... .. (45)24.16REG_TEST ............................................................... .. (46)5附录: .................................................................... .. (47)附录A:组员分工: .................................................................... .. (47)附录B:组员设计总结: .................................................................... . (47)31 实验方法实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言程序的编写),软件模拟,以及硬件调试。

计算机组成原理实验报告

计算机组成原理实验报告

计算机组成原理实验报告引言计算机组成原理是计算机科学与技术的基础课程之一,通过实验可以更好地理解和掌握计算机的组成和工作原理。

本文将结合实验的过程和结果,详细论述计算机组成原理的一些关键概念和实际应用。

一、实验目的本次实验的目的是通过搭建一个简单的计算机系统,深入了解计算机的各个组成模块,如中央处理器(CPU)、存储器、输入输出设备等,并验证计算机的基本工作原理。

二、实验内容本次实验分为两个部分,第一部分是计算机系统的搭建,包括CPU的设计与实现、存储器的设计与实现等;第二部分是对已搭建的系统进行功能测试,包括寄存器的读写、指令的执行等。

1. CPU的设计与实现CPU是计算机的核心处理单元,它负责执行各种指令,并控制计算机的运行状态。

在本次实验中,我们采用了冯·诺依曼结构的单周期CPU设计,包括指令寄存器、算术逻辑单元、控制单元等组成部分。

通过在实验中的操作和执行,我们深入理解了指令的编码方式、运算的过程等。

2. 存储器的设计与实现存储器是计算机系统中的主要组成部分,用于存放指令和数据。

在本次实验中,我们设计了一个简单的存储器,采用了随机存取存储器(RAM)的结构。

通过实验中的存储器读写操作,我们了解了存储器的寻址方式、数据的存取过程等。

三、实验结果与分析经过实验的搭建和测试,我们成功完成了计算机系统的建设,并验证了其基本功能。

在测试过程中,我们发现了一些问题和改进之处,例如CPU的时钟频率过低导致指令执行速度较慢,存储器的容量不足等。

通过对这些问题的研究和分析,我们能够进一步优化和改进计算机系统的性能。

四、实验心得体会通过本次实验,我进一步加深了对计算机组成原理的理解和掌握。

实验中我不仅学到了理论知识,还通过动手搭建和操作实际的计算机系统,加深了对计算机组成原理的实际应用的理解。

同时,我也意识到计算机的设计和实现是一个综合性强的工程,需要考虑多方面的问题,如硬件的选择与优化、指令的设计与调度等。

中山大学计算机组成原理实验 单周期CPU设计

中山大学计算机组成原理实验 单周期CPU设计

《计算机组成原理实验》实验报告(实验三)学院名称:数据科学与计算机学院专业(班级):学生姓名:学号:时间:2019 年11 月8 日成绩:实验三:单周期CPU设计与实现一.实验目的(1) 掌握单周期CPU数据通路图的构成、原理及其设计方法;(2) 掌握单周期CPU的实现方法,代码实现方法;(3) 认识和掌握指令与CPU的关系;(4) 掌握测试单周期CPU的方法。

二.实验内容设计一个单周期CPU,该CPU至少能实现以下指令功能操作。

指令与格式如下:==> 算术运算指令加“加”运算。

加“加”运算。

==> 逻辑运算指令加“与”运算。

功能:GPR[rt] ←GPR[rs] or zero_extend(immediate)。

==>移位指令==>比较指令==> 存储器读/写指令==> 分支指令else pc ←pc + 4特别说明:offset是从PC+4地址开始和转移到的指令之间指令条数。

offset符号扩展之后左移2位再相加。

为什么要左移2位?由于跳转到的指令地址肯定是4的倍数(每条指令占4个字节),最低两位是“00”,因此将offset放进指令码中的时候,是右移了2位的,也就是以上说的“指令之间指令条数”。

else pc ←pc + 4(16)bltz rs, offsetelse pc ←pc + 4。

==>跳转指令(17)j addr说明:由于MIPS32的指令代码长度占4个字节,所以指令地址二进制数最低2位均为0,将指令地址放进指令代码中时,可省掉!这样,除了最高6位操作码外,还有26位可用于存放地址,事实上,可存放28位地址,剩下最高4位由pc+4最高4位拼接上。

==> 停机指令功能:停机;不改变PC的值,PC保持不变。

三.实验原理单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个时钟周期完成。

电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。

MIPS单周期CPU实验报告材料

MIPS单周期CPU实验报告材料

《计算机组成原理实验》实验报告(实验二)学院名称:专业(班级):学生姓名:学号:时间: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符号扩展再相加。

CPU计算机组成原理实验报告

CPU计算机组成原理实验报告

CPU计算机组成原理实验报告实验名称:CPU计算机组成原理实验一、实验目的:1.了解计算机硬件的基本组成原理,特别是CPU的工作原理;2.掌握计算机的组装和调试技能;3.熟悉计算机操作系统的安装和配置方法;4.学习使用计算机进行基本的应用程序开发。

二、实验设备和材料:1.CPU主机:包括主板、CPU、内存、硬盘等;2.显示设备:显示器、键盘、鼠标等;3.软件:操作系统、开发工具等。

三、实验步骤:1.将主板、CPU、内存、硬盘等硬件组件组装到主机箱中,连接电源、显示器、键盘、鼠标等外设;2.打开电源,按照BIOS界面提示进行主板和硬件设置;3.插入操作系统安装光盘,根据安装界面提示进行操作系统的安装;4.安装完成后,进入操作系统,根据提示进行相应驱动程序的安装和配置;5.打开开发工具,进行编程实践。

四、实验结果与分析:通过以上步骤,成功组装了一台计算机并安装了操作系统。

在操作系统中,能够正常运行各种应用程序,并且能够进行编程开发。

通过实验,可以清楚地了解到计算机硬件的组成原理,特别是CPU的工作原理。

CPU 作为计算机的核心部件,负责指令的执行和数据的处理。

通过对CPU的组装和调试,可以更深入地了解其工作原理和操作方法。

五、实验心得与体会:通过实验,我对计算机硬件的组装和设置有了更深入的理解。

计算机硬件的组成非常复杂,需要我们仔细阅读说明书,按照步骤进行操作。

在实验过程中,我们学会了解决一些常见的硬件问题,如硬件不兼容、连接错误等。

此外,操作系统的安装和配置也是非常重要的一步,只有正确地安装和配置操作系统,才能保证计算机的正常运行。

通过这个实验,我不仅学到了理论知识,还锻炼了实际操作的能力。

计算机的组装和调试需要我们仔细、耐心地进行,一丝不苟地对待每一步操作。

只有掌握了计算机组成原理,才能更好地理解和应用计算机技术。

通过实验,我深刻地认识到计算机是一台高度复杂的机器,它可以帮助我们解决各种问题,提高工作效率。

单周期设计实验报告

单周期设计实验报告

一、实验目的1. 了解单周期CPU的基本原理和设计方法。

2. 掌握单周期CPU的数据通路结构及其实现过程。

3. 熟悉单周期CPU的指令集和指令格式。

4. 通过实验验证单周期CPU的功能和性能。

二、实验内容1. 单周期CPU的数据通路结构单周期CPU的数据通路主要由以下几个部分组成:(1)指令寄存器(IR):存储从内存中取出的指令。

(2)程序计数器(PC):存储下一条指令的地址。

(3)寄存器文件(RF):用于存储操作数和中间结果。

(4)算术逻辑单元(ALU):执行指令中的算术运算和逻辑运算。

(5)数据内存(DM):存储数据和指令。

(6)控制单元:根据指令操作码生成相应的控制信号。

2. 单周期CPU的指令集和指令格式本实验所采用的指令集包括以下几种:(1)算术运算指令:如加法、减法、乘法、除法等。

(2)逻辑运算指令:如与、或、非等。

(3)数据传输指令:如将寄存器中的数据传送到内存或寄存器中。

(4)跳转指令:改变程序计数器的值,实现程序跳转。

指令格式如下:| 操作码 | 操作数1 | 操作数2 | 目标寄存器 ||--------|--------|--------|------------|| 5位 | 5位 | 5位 | 5位 |3. 单周期CPU的设计与实现(1)硬件设计根据实验要求,设计单周期CPU的硬件结构,包括各个模块的连接和功能实现。

(2)软件设计编写指令译码程序,根据指令操作码生成相应的控制信号,控制各个模块执行指令。

4. 实验验证(1)编译测试程序将测试程序编译成机器码,存入数据内存。

(2)运行测试程序通过程序计数器逐条取出指令,执行指令,观察结果。

(3)分析实验结果根据实验结果,分析单周期CPU的功能和性能。

三、实验结果与分析1. 单周期CPU能够正确执行指令,实现算术运算、逻辑运算、数据传输和跳转等功能。

2. 单周期CPU的数据通路结构简单,指令执行速度快,但资源利用率较低。

3. 实验结果表明,单周期CPU具有较高的性能,但在实际应用中,需要根据具体需求进行优化设计。

MIPS单周期CPU实验报告

MIPS单周期CPU实验报告

MIPS单周期CPU实验报告一、实验目标本次实验的主要目标是设计并实现一个基于MIPS单周期CPU的计算机系统。

具体要求如下:1.能够识别并执行MIPS指令集中的常见指令,包括算术逻辑运算、分支跳转和存取指令等。

2.实现基本的流水线结构,包括指令译码阶段、执行阶段、访存阶段和写回阶段。

3.能够在基本结构的基础上添加异常处理和浮点数运算支持。

二、实验环境三、实验过程1.确定CPU的基本组成部分,包括指令存储器、数据存储器、寄存器、ALU和控制单元等,并进行电路设计。

2.编写MIPS汇编程序,并使用MARS进行仿真调试,验证指令的正确性和计算结果的准确性。

3.将MIPS汇编程序烧录到指令存储器中,并将数据存储器中的初始数据加载进去。

4.运行程序,观察CPU的工作状态,并进行时序仿真,验证CPU设计的正确性。

5.对CPU进行性能测试,包括执行时间、指令吞吐量和时钟周期等指标的测量。

四、实验结果经过实验和测试,我们成功地设计并实现了一个基于MIPS单周期CPU的计算机系统。

该系统能够正确执行MIPS指令集中的常见指令,并支持流水线结构、异常处理和浮点数运算。

1.指令执行的正确性:通过在MARS中进行调试和仿真,我们发现CPU能够正确地执行各种指令,包括算术逻辑运算、分支跳转和存取指令等。

并且,在时序仿真中,CPU的各个组件的信号波形也符合预期。

2.流水线结构的实现:我们根据MIPS指令的特点和处理流程,设计了基本的流水线结构,并在MARS中进行了时序仿真。

仿真结果表明,各个流水线级的操作都能够正确无误地进行,并且能够顺利地在一个时钟周期内完成。

3.异常处理和浮点数运算的支持:通过在MIPS汇编程序中加入异常处理和浮点数运算的指令,我们验证了CPU对这些功能的支持。

在异常处理时,CPU能够正确地转入异常处理程序,并根据异常类型进行相应的处理。

在浮点数运算时,CPU能够正确地进行浮点数的加减乘除等运算,并将结果正确地写回寄存器。

单周期CPU实验报告

单周期CPU实验报告

计算机组成实验报告实验名称:单周期CPUVerilog实现实验日期:2011.4.12-2011.4.19实验人员:同组者:一、主要实验内容将已做好的各个模块进行模块合并,实现单周期CPU的各项指令,(注:由于此次设计只是利用verilog硬件编程语言实现具体功能,因此数据寄存器和存储器部件内的内容需由程序设计者自己给出,并不能从计算机中直接读取),下面对各个子模块进行简单的介绍。

二、各个子模块的简单介绍此程序将数据通路(SingleDataLoad)设定为顶层模块,下面的模块包括:算术逻辑运算单元(ALU)、数据存储器(DataStore)、数据寄存器(Registers)、取指令部件(GetCode)、总控制器(Control),通过顶层模块对各个子模块的调用从而实现了整个单周期CPU。

1)数据通路(SingleDataLoad):进行数据的运算、读取以及存储功能,通过总控制器产生的各个控制信号,进而实现对数据的各项操作。

2)算术逻辑运算单元(ALU):数据通路调用此模块,根据得到的控制信号对输入数据进行处理,处理功能有:addu、add、or、subu、sub、sltu、slt等。

3)数据存储器(DataStore):当WrEn控制信号为1时,此时就将输入数据存储到此存储器中,当WrEn为0时,则根据输入的地址,找到地址对应的单元将单元中的数据输出。

4)数据寄存器(Registers):在此程序中功能和实现基本和数据存储器相同,但在实际CPU当中使用的逻辑器件及获取数据的方式还是有所区别的。

5)取指令部件(GetCode):指根据PC所提供的地址从指令寄存器中取出要执行的指令,再根据各控制信号,得出下一次要执行的指令的地址。

(注:指令寄存器中存放的就是一个程序或一段代码所需要执行的指令,这里也是程序设计者自己给出的一些指令的值。

)6)总控制器(Control):总控制器通过从取指令部件获得的指令,进而产生各个控制信号,并将控制信号返回个数据通路,就此实现各项功能。

计算机组成原理实验文档

计算机组成原理实验文档

计算机组成原理实验报告——实验六Logisim实现单周期CPU专业:计算机科学与技术〔师〕姓名:玉佳学号:1131000016指导教师:王晶完成日期:2015.6.15一、实验目的1、掌握硬布线控制器的设计思想及工作原理2、理解数据通路的搭建过程、控制信号的生成过程3、培养熟练应用相关软件实现系统设计的能力二、实验容设计一款支持add,addi,and,beq,j,lw,sw,7条指令的基于MIPS的32位CPU:1.存放器文件包括32个32位的存放器2.指令存储器空间256X32;数据存储空间256X32三、实验过程Step1确定数据通路控制信号:RegDst: 控制RF写存放器编号,0:rd 1:rt;RegWrite:控制RF写使能;0:不能写,1:可以写;ALUSrc: 控制ALU的B输入,0:来自RF的rd2 1:来自符号位扩展后的立即数ALU Control:控制ALU功能MemtoReg:控制RF写入数据;0:ALU运算结果;1:数据NPCControl: 控制Npc逻辑 00:PC+4;10:BEQ指令;01:J指令 MemWrite:控制Dm写使能;0:不能写;1:可以写MemWrite:控制DM写使能;0不能写,1可以写Step2确定控制信号及器件设计原扩展元件新扩展元件EP〔扩展〕:可以实现0扩展以及符号扩展。

我是通过多路选择器连接了一个输入端进展选择,解决了原有了扩展不能实现符号的弊端。

通过数据总线将高16位置0。

NPC:通过NPCControl和ALU计算结果的零标志来选择下一条指令的地址。

RF〔存放器堆〕:获取指令后,通过译码器和控制信号控制选择将数据存入哪个存放器,用数据选择器控制用哪个存放器输出数据DM〔数据存储器〕:上端时钟输入是指令地址,运行哪一条指令。

下端为输入值,由输出端显示结果。

将最上端写使能信号置1便可进展输入,可通过最下端clr清零,clk时钟信号控制指令的运行。

MIPS单周期CPU实验报告

MIPS单周期CPU实验报告

《计算机组成原理实验》实验报告(实验二)学院名称:专业(班级):学生姓名:学号:时间:2017 年11 月25 日成绩: 实验二:单周期CPU设计与实现一.实验目的(1) 掌握单周期CPU数据通路图的构成、原理及其设计方法;(2) 掌握单周期CPU的实现方法,代码实现方法;(3) 认识和掌握指令与CPU的关系;(4) 掌握测试单周期CPU的方法;(5) 掌握单周期CPU的实现方法。

二.实验内容设计一个单周期的MIPSCPU,使其能实现下列指令:==> 算术运算指令==> 逻辑运算指令功能:rd←rs | rt;逻辑或运算。

==>移位指令==>比较指令==> 存储器读/写指令将rt寄存器的内容保存到rs寄存器内容和立即数符号扩展后的数相加作为地址的内存单元中。

即读取rs寄存器内容和立即数符号扩展后的数相加作为地址的内存单元中的数,然后保存到rt寄存器中。

==> 分支指令功能:if(rs=rt) pc←pc + 4 + (sign-extend)immediate <<2 else pc ←pc + 4特别说明:immediate是从PC+4地址开始和转移到的指令之间指令条数。

immediate 符号扩展之后左移2位再相加。

为什么要左移2位?由于跳转到的指令地址肯定是4的倍数(每条指令占4个字节),最低两位是“00”,因此将immediate放进指令码中的时候,是右移了2位的,也就是以上说的“指令之间指令条数”。

12特别说明:与beq不同点是,不等时转移,相等时顺序执行。

功能:if(rs>0) pc←pc + 4 + (sign-extend)immediate <<2 else pc ←pc + 4==>跳转指令==> 停机指令三.实验原理1.时间周期:单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个时钟周期完成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1个时钟周期 Clock 电子科技大学计算机科学与工程学院标 准 实 验 报 告(实验)课程名称: 计算机组成原理实验 电子科技大学教务处制表电 子 科 技 大 学 实 验 报 告学生姓名: 郫县尼克杨 学 号: 2014 指导教师:陈虹 实验地点: 主楼A2-411 实验时间:12周-15周一、 实验室名称:主楼A2-411二、 实验项目名称:单周期CPU 的设计与实现。

三、 实验学时:8学时四、 实验原理:(一) 概述单周期(Single Cycle )CPU 是指CPU 从取出1条指令到执行完该指令只需1个时钟周期。

一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保存结果。

对于单周期CPU 来说,这些执行步骤均在一个时钟周期内完成。

(二) 单周期cpu 总体电路本实验所设计的单周期CPU 的总体电路结构如下。

(三) MIPS 指令格式化MIPS 指令系统结构有MIPS-32和MIPS-64两种。

本实验的MIPS 指令选用MIPS-32。

以下所说的MIPS 指令均指MIPS-32。

MIPS 的指令格式为32位。

下图给出MIPS 指令的3种格式。

本实验只选取了9条典型的MIPS 指令来描述CPU 逻辑电路的设计方法。

下图列出了本实验的所涉及到的9条MIPS 指令。

五、 实验目的1、掌握单周期CPU 的工作原理、实现方法及其组成部件的原理和设计方法,如控制器、运算器等。

?2、认识和掌握指令与CPU 的关系、指令的执行过程。

?3、熟练使用硬件描述语言Verilog 、EDA 工具软件进行软件设计与仿真,以培养学生的分析和设计CPU 的能力。

六、 实验内容(一)拟定本实验的指令系统,指令应包含R 型指令、I 型指令和J 型指令,指令数为9条。

(二)CPU 各功能模块的设计与实现。

(三)对设计的各个模块的仿真测试。

(四)整个CPU 的封装与测试。

七、 实验器材(设备、元器件):(一)安装了Xilinx ISE Design Suite 13.4的PC 机一台(二)FPGA 开发板:Anvyl Spartan6/XC6SLX45(三)计算机与FPGA 开发板通过JTAG (Joint Test Action Group )接口连接,其连接方式如图所示。

八、 实验步骤一个CPU 主要由ALU (运算器)、控制器、寄存器堆、取指部件及其它基本功能部件等构成。

?在本实验中基本功能部件主要有:32位2选1多路选择器、5位2选1多路选择器、32位寄存器堆、ALU 等。

(一)新建工程(New Project )启动ISE Design Suite 13.4软件,然后选择菜单File →New Project ,弹出New 26 31 25 21 20 16 15 11 10 6 5 0op rs rt rd sa func R 型指令26 31 25 21 20 16 15 0op rs rt immediate I 型指令26 31 25 0op addressJ 型指令Project Wizard对话框,在对话框中输入工程名CPU,并指定工作路径D:\Single_Cycle_CPU。

(二)基本功能器件的设计与实现(1)多路选择器的设计与实现a.5位2选1多路选择器(MUX5_2_1)的设计与实现在ISE集成开发环境中,在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,创建一个Verilog Module模块,名称为:MUX5_2_1,然后输入其实现代码:MODULE MUX5_2_1(INPUT [4:0]A,INPUT [4:0]B,INPUT S EL,OUTPUT [4:0]O);ASSIGN O=S EL ?B:A;ENDMODULE在ISE集成开发环境中,对模块MUX5_2_1进行综合(Synthesize),综合结果如图所示:在ISE集成开发环境中,对模块MUX5_2_1进行仿真(Simulation)。

输入如下测式代码:MODULE MUX5_2_1_T;//I NPUTSREG [4:0]A;REG [4:0]B;REG SEL;//O UTPUTSWIRE [4:0]C;//I NSTANTIATE THE U NIT U NDER T EST (UUT)MUX5_2_1 UUT (.A(A),.B(B),.SEL(SEL),.C(C));INITIAL BEGIN//I NITIALIZE I NPUTSA=0;B=0;SEL =0;//W AIT 100 NS FOR GLOBAL RESET TO FINISH #100;A=5'B10100;B=0;SEL =1;//W AIT 100 NS FOR GLOBAL RESET TO FINISH #100;A=1;B=5'B10000;SEL =0;//W AIT 100 NS FOR GLOBAL RESET TO FINISH #100;A=5'B00000;B=5'B11000;SEL =1;//A DD STIMULUS HEREENDENDMODULE然后进行仿真,仿真结果如图所示:b.32位2选1多路选择器的设计与实现在ISE集成开发环境中,在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,创建一个Verilog Module模块,名称为:MUX32_2_1,然后输入其实现代码:MODULE MUX32_2_1(INPUT [31:0]A,INPUT [31:0]B,INPUT SEL,OUTPUT [31:0]O);ASSIGN O= SEL?B:A;ENDMODULE在ISE集成开发环境中,对模块MUX32_2_1进行综合(Synthesize),综合结果如图所示:在ISE集成开发环境中,对模块MUX32_2_1进行仿真(Simulation)。

首先输入如下测式代码:MODULE MUX32_2_1_T;//I NPUTSREG [31:0]A;REG [31:0]B;REG SEL;//O UTPUTSWIRE [31:0]O;//I NSTANTIATE THE U NIT U NDER T EST (UUT) MUX32_2_1 UUT (.A(A),.B(B),.SEL(SEL),.O(O));INITIAL BEGINA=0;B=0;SEL=0;//W AIT 100 NS FOR GLOBAL RESET TO FINISH #100;A=32'H00000001;B=32'H00000000;SEL=1;#100;A=32'H00000101;B=32'H00000010;SEL =0;//A DD STIMULUS HEREENDENDMODULE然后进行仿真,仿真结果如图所示:(2)符号扩展(Sign_Extender)的设计与实现在ISE集成开发环境中,在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,创建一个Verilog Module模块,名称为:Sign_Extender,然后输入其实现代码:MODULE S IGN_E XTENDER(INPUT [15:0] D,OUTPUT [31:0] O);ASSIGN O =(D[15:15]==1'B0)?{16'B0,D[15:0]}:{16'B1, D[15:0]};ENDMODULE在ISE集成开发环境中,对模块Sign_Extender进行综合(Synthesize),综合结果如图所示。

在ISE集成开发环境中,对模块MUX32_2_1进行仿真(Simulation)。

首先输入如下测式代码:MODULE S IGN_E XTENDER_T;//I NPUTSREG [15:0] D;//O UTPUTSWIRE [31:0] O;//I NSTANTIATE THE U NIT U NDER T EST (UUT)S IGN_E XTENDER UUT (.D(D),.O(O));INITIAL BEGIN//I NITIALIZE I NPUTSD =0;//W AIT 100 NS FOR GLOBAL RESET TO FINISH#100;//A DD STIMULUS HERED =16'H0011;#100;D =16'H1011;ENDENDMODULE然后进行仿真,仿真结果如图所示:(3)32位寄存器堆(RegFile)的设计与实现在ISE集成开发环境中,在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,创建一个Verilog Module模块,名称为:RegFile,然后输入其实现代码:MODULE R EG F ILE(INPUT [4:0]R N1,R N2,W N,INPUT W RITE,INPUT [31:0]W D,OUTPUT [31:0]A,B,INPUT C LOCK);REG [31:0]R EGISTER[1:31];ASSIGN A=(R N1==0)?0:R EGISTER[R N1];ASSIGN B=(R N2==0)?0:R EGISTER[R N2];ALWAYS @(POSEDGE C LOCK) BEGINIF (W RITE &&W N !=0)R EGISTER[W N]<=W D;ENDENDMODULE在ISE集成开发环境中,对模块RegFile进行综合(Synthesize),综合结果如图所示。

在ISE集成开发环境中,对模块RegFile进行仿真(Simulation)。

输入如下测式代码:MODULE R EGFILE_T;//I NPUTSREG [4:0]R N1;REG [4:0]R N2;REG [4:0]W N;REG W RITE;REG [31:0]W D;REG C LOCK;//O UTPUTSWIRE [31:0]A;WIRE [31:0]B;//I NSTANTIATE THE U NIT U NDER T EST (UUT)R EG F ILE UUT (.R N1(R N1),.R N2(R N2),.W N(W N),.W RITE(W RITE),.W D(W D),.A(A),.B(B),.C LOCK(C LOCK));INITIAL BEGIN//I NITIALIZE I NPUTSR N1=0;R N2=0;W N =0;W RITE =0;W D =0;C LOCK =0;//W AIT 100 NS FOR GLOBAL RESET TO FINISH #100;R N1=5'B00001;R N2=5'B00001;W N =5'B00001;W RITE =1;W D =0;C LOCK =0;#100;C LOCK =1;#50;W D =32'H BBBBBBBB;#50;C LOCK =0;#100;C LOCK =1;#100C LOCK =0;//A DD STIMULUS HEREENDENDMODULE然后进行仿真,仿真结果如图所示:(4)运算器(ALU)设计与实现在ISE集成开发环境中,在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,创建一个Verilog Module模块,名称为:ALU,然后输入其实现代码:MODULE ALU(INPUT [31:0]A,B,INPUT [2:0]ALU_OPERATION,OUTPUT [31:0]R ESULT,OUTPUT Z ERO);ASSIGN R ESULT =(ALU_OPERATION ==3'B000)?A+B:(ALU_OPERATION ==3'B100)?A-B:(ALU_OPERATION ==3'B001)?A&B:(ALU_OPERATION ==3'B101)?A|B:(ALU_OPERATION ==3'B010)?A^B:(ALU_OPERATION ==3'B110)?{B[15:0],16'H0}:32'HXXXXXXXX;ASSIGN Z ERO =~|R ESULT;ENDMODULE在ISE集成开发环境中,对模块ALU进行综合(Synthesize),综合结果如图所示: 在ISE集成开发环境中,对模块ALU进行仿真(Simulation)。

相关文档
最新文档