计算机设计与实践给定指令系统的 处理器设计实验报告
Reset 测试 ................................................................. 15 SUB 测试 ................................................................... 15 ADD 测试 ................................................................... 15 STA 和 LDA 测试 ............................................................. 16 MVI 测试 ................................................................... 16 MOV 测试 ................................................................... 17 IN 和 OUT 测试 .............................................................. 17 JMP 测试 ................................................................... 18 JZ 测试 .................................................................... 18 管脚定义与测试程序 ............................................................ 18 实验感悟与思考 ................................................................ 24 关于 PC 更新的问题 ............................................................ 24 关于数据总线与传输数据长度不匹配的问题 ....................................... 24 实验感悟 ..................................................................... 24
4
寄存器传送指令 MOV Ri, Rj Reg(Ad2(IR)) → Reg(Ad1(IR))
立即数传送指令 MVI Ri, X X → Reg(Ad1(IR))
2) 访存指令 存数指令 STA Ri, X Reg(R7)//Ad(IR)→MAR;1→W; Reg(Ad1(IR))→MDR; MDR→M(MAR) 取数指令 LDA Ri, X Reg(R7)//Ad(IR)→MAR;1→R; M(MAR)→MDR; MDR→Reg(Ad1(IR))
非 访 存 ADD 加法指令
00110 XXX 00000 XXX Ri + Rj → Ri
指令
MVI 立即数传送指 01000 XXX XXXXXXXX X → Ri
令
MOV 寄存器传送指 01010 XXX 00000 XXX Rj → Ri
令
STA 存数指令
01100 XXX XXXXXXXX Ri →[R7//IR(7 downto
访存指
0)]
令
LDA 取数指令
01110 XXX XXXXXXXX [R7//IR(7 downto 0)]
→RiIN 输入指令Fra bibliotek10000 XXX 000000 XX [PORT] → Ri
I/O 指令 OUT 输出指令
10010 XXX 000000 XX Ri → [PORT]
2. 微操作的定义 取指阶段 PC→MAR;1→R; M(MAR)→MDR; MDR→IR; PC+1→PC; 执行阶段 1) 非访存指令 加法指令 ADD Ri, Rj Reg(Ad1(IR)) + Reg(Ad2(IR)) → Reg(Ad1(IR)) 减法指令 SUB Ri, Rj Reg(Ad1(IR)) - Reg(Ad2(IR)) → Reg(Ad1(IR))
3
一、 实验目的
1. 掌握 Xilinx ISE 集成开发环境使用方法 2. 掌握 VHDL 语言 3. 掌握 FPGA 编程方法及硬件调试手段 4. 深刻理解处理器结构和计算机系统的整体工作原理
二、 实验环境
Xilinx ISE 集成开发环境,ISim 仿真工具,SD2100 实验平台
三、 设计思想
指令格式的设计 ................................................................ 4 微操作的定义 .................................................................. 4 节拍的划分 .................................................................... 5 处理器结构设计框图及功能描述 ................................................. 6 各功能模块结构设计框图及功能描述 .............................................. 6
时钟管理模块 ................................................................ 6 取指模块 .................................................................... 7 运算管理模块 ................................................................ 7 存储管理模块 ................................................................ 7 回写模块 .................................................................... 8 访存控制模块 ................................................................ 8 各模块接口信号定义 ............................................................ 8 时钟管理模块 ................................................................ 8 取指模块 .................................................................... 8 运算管理模块 ................................................................ 9 存储管理模块 ................................................................ 9 回写模块 .................................................................... 9 访存控制模块 ............................................................... 10 控制器 ..................................................................... 10 实验测试与结果分析 ............................................................ 11 时钟管理模块 ................................................................. 11 取指模块 ..................................................................... 11 运算管理模块 ................................................................. 11 存储管理模块 ................................................................. 13 回写模块 ..................................................................... 13 访存控制模块 ................................................................. 14 综合测试 ..................................................................... 14
3) 转移类指令 条件转移(零则转)指令 JZ Ri, X [Zero(Reg(Ad1(IR)))·Reg(R7)//Ad(IR) +Nzero(Reg(Ad1(IR)))]+PC→PC 无条件转移指令 JMP X Reg(R7)//Ad(IR)+PC→PC
4) I/O 指令 输入指令 IN Ri,PORT [PORT] → Reg(Ad1(IR)) 输出指令 OUT Ri,PORT Reg(Ad1(IR)) → [PORT]
1. 指令格式的设计
JMP 无条件跳转指 00000 XXX XXXXXXXX [R7//IR(7 downto 0]→
计算机组成原理实验报告 单周期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程序设计实验报告
【指令系统汇总】
指令名称助记符功能指令格式
【检测程序】
【实验心得】
我从这次的试验中收获良多,动手能力得到了大大的提升,以前总是光说不练,而这次从设计到烧芯片,再到调试,纠错都要由自己来完成,其中遇到许多了问题,解决它们使我受益颇多。
首先写再填代码表的时候,由于表格过密,一不小心就有填串的危险,即使我很注意这点,但还是犯了这个错误,填完后我又查了2遍才将错误全部改正,只是对耐心巨大的考验,我从中学到了踏实做事不要心急。
在调试的时候,我遇到了几个比较棘手的问题,当时死活解决不了,静下心后,我发现我填的表本身就是错的,然后我从新翻书改正了它,所当一条路走不通的时候,静下心来从另外一个角度尝试是一个很好的选择。
单周期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部件。
实验仪器:PC机(安装Altebra 公司的开发软件 QuartusII,Modelsim)两台TEC-CA计算机组成原理试验箱实验过程:一、理论设计、设计指令集设计CPU第一步,就是根据需求,确定功能,并且设计出指令集。
指令集包括每一条指令的编码方式,操作码以及每一条指令实现的功能。
考虑到第一次设计CPU,在指令集设计过程中难免会出现考虑不周全或者指令集设计不科学的问题,我们借鉴了经典的31条MIPS指令集。
在对指令集每一条指令进行解读、分析后,我们确定:31条MIPS指令可以满足我们的CPU的基本功能。
下面将31条MIPS指令的编码格式、对应的操作类型以表格的形式列举出来:经典的MIPS指令有三种格式:R-TYPE、I-TYPE、J-TYPE。
其编码格式各不相同,分别代表寄存器操作指令、立即数操作指令、跳转指令。
寄存器操作主要是将寄存器中的树取出进行运算并存回寄存器;立即数操作为一个寄存器数与指令中的扩展后的立即数进行运算得到结果再存回寄存器;跳转我们后面的设计都是对这31条指令进行具体实现,所有的内容紧密围绕这31条指令。
、画数据通路图在设计完指令后,要做的就是根据指令描述的功能确定CPU有哪些部件,并且确定各部件之间的连线方式。
首先,一个CPU最重要的部件一定是控制器。
控制器就像人的大脑,控制其他各个部件的工作。
其次,由于是基于MIPS指令集的CPU,大多数操作基于寄存器,因此必须设计一个寄存器堆。
此外,ALU 运算部件对于CPU来说也是必不可少的。
由于有六条指令涉及比较操作,并且给有效位置位。
考虑到本CPU设计初衷是四级流水控制,若一条指令多个节拍使用ALU部件会造成部件冲突,后期控制会比较复杂。
因此,在本CPU中额外设计了一个比较部件。
此外,还有其他部件,如PC部件、立即数扩展部件、数据寄存器、地址寄存器等。
计算机设计与实践给定指令系统的 处理器设计实验报告
Reset 测试 ................................................................. 15 SUB 测试 ................................................................... 15 ADD 测试 ................................................................... 15 STA 和 LDA 测试 ............................................................. 16 MVI 测试 ................................................................... 16 MOV 测试 ................................................................... 17 IN 和 OUT 测试 .............................................................. 17 JMP 测试 ................................................................... 18 JZ 测试 .................................................................... 18 管脚定义与测试程序 ............................................................ 18 实验感悟与思考 ................................................................ 24 关于 PC 更新的问题 ............................................................ 24 关于数据总线与传输数据长度不匹配的问题 ....................................... 24 实验感悟 ..................................................................... 24
cpu组成与机器指令执行实验实验报告
cpu组成与机器指令执行实验实验报告CPU组成与机器指令执行实验实验报告一、引言计算机是现代社会不可或缺的工具,而中央处理器(CPU)则是计算机的核心组成部分。
理解CPU的组成和机器指令的执行过程对于深入理解计算机的工作原理至关重要。
本实验旨在通过搭建一个简单的CPU模型,探究CPU的组成结构和机器指令的执行过程。
二、实验原理1. CPU的组成结构CPU主要由运算器、控制器和寄存器组成。
运算器负责进行各种算术和逻辑运算,控制器则负责指挥各个部件的工作,寄存器用于存储数据和指令。
2. 机器指令的执行过程机器指令的执行包括取指令、译码、执行和访存四个阶段。
取指令阶段从内存中读取指令,译码阶段将指令翻译成对应的操作,执行阶段进行运算或逻辑操作,访存阶段用于读取或写入数据。
三、实验过程1. 搭建CPU模型根据实验要求,我们搭建了一个简单的CPU模型,包括运算器、控制器和寄存器。
通过将这些部件连接起来,我们可以模拟CPU的工作过程。
2. 编写指令为了测试CPU的功能,我们编写了一些简单的指令,包括加法、减法和逻辑运算等。
这些指令将被存储在内存中,CPU在执行过程中会逐条读取并执行。
3. 执行指令我们按照预定的顺序执行指令,观察CPU的工作状态和输出结果。
通过这个过程,我们可以更好地理解指令的执行过程和CPU的工作原理。
四、实验结果在实验过程中,我们成功搭建了一个简单的CPU模型,并编写了一些指令进行测试。
通过执行这些指令,我们观察到CPU按照预期工作,并得到了正确的输出结果。
五、实验分析通过本次实验,我们深入了解了CPU的组成结构和机器指令的执行过程。
我们发现,CPU的运算器、控制器和寄存器相互配合,完成了复杂的运算和逻辑操作。
同时,我们也注意到指令的执行过程需要经过多个阶段,每个阶段都起到了重要的作用。
六、实验总结本次实验让我们对CPU的组成与机器指令的执行有了更深入的理解。
通过搭建CPU模型并执行指令,我们亲身体验了CPU的工作过程,加深了对计算机原理的理解。
计算机原理实验报告
实验名称:计算机原理实验实验日期:2023年X月X日实验地点:计算机实验室实验目的:1. 理解计算机的基本工作原理和组成结构。
2. 掌握计算机各部件的功能和相互关系。
3. 熟悉计算机指令系统和工作流程。
4. 培养动手能力和实验技能。
实验内容:一、计算机硬件组成实验1. 实验目的:了解计算机硬件的组成和各部件的功能。
2. 实验步骤:(1)观察计算机主机,识别各硬件部件,如CPU、内存、硬盘、显卡等。
(2)了解各硬件部件的功能和相互关系。
(3)拆装计算机,练习硬件组装和维修。
二、计算机指令系统实验1. 实验目的:熟悉计算机指令系统,掌握指令的格式和功能。
2. 实验步骤:(1)学习计算机指令系统的基础知识,了解指令的分类和功能。
(2)分析指令的格式,掌握指令的编码方式。
(3)编写简单的程序,实现指令的功能。
三、计算机工作流程实验1. 实验目的:理解计算机的工作流程,掌握程序执行的过程。
2. 实验步骤:(1)学习计算机工作流程的基本知识,了解程序的加载、执行和存储过程。
(2)观察计算机运行程序的过程,分析程序执行过程中的指令执行顺序。
(3)编写程序,验证程序执行的正确性。
实验结果与分析:一、计算机硬件组成实验实验结果:通过观察和拆装计算机,掌握了计算机硬件的组成和各部件的功能,熟悉了计算机的硬件结构。
分析:计算机硬件是计算机系统的基础,了解硬件组成有助于更好地理解计算机的工作原理。
二、计算机指令系统实验实验结果:学习了计算机指令系统的基础知识,掌握了指令的格式和功能,能够编写简单的程序实现指令的功能。
分析:计算机指令系统是计算机执行程序的基础,熟悉指令系统对于程序设计和开发具有重要意义。
三、计算机工作流程实验实验结果:理解了计算机的工作流程,掌握了程序执行的过程,能够分析程序执行过程中的指令执行顺序。
分析:计算机工作流程是计算机执行程序的关键,了解工作流程有助于优化程序设计和提高程序执行效率。
实验总结:本次计算机原理实验使我对计算机的基本工作原理和组成结构有了更深入的了解。
计算机设计与实践CPU设计报告(内含详细说明及各模块源码)
Sbb Ri,Rj
10010
Reg(Ad1(IR))-Reg(Ad2(IR))-Reg(cy)->Reg(Ad1(IR))
9
And Ri,X
11000
Reg(Ad1(IR)) and Reg(Ad(IR))->Reg(Ad1(IR))
10
And Ri,Rj
10011
Reg(Ad1(IR)) and Reg(Ad2(IR))->Reg(Ad1(IR))
Reg(R0)//1->Reg(cy)
15
Jmp add
00000
Reg(R7)//Ad(IR)->PC
16
Jz sign
00001
Zero(Reg(Ad1(IR)))·Reg(R7)//Ad(IR)+NZero(Reg(Ad1(IR)))·PC->PC
17
Jc sign
00010
C=1:PC+1+sign->PC
5 访存控制模块
5.1结构框图:
pc_r ir_out
pc_in nMREQ
mem_signal nRD
mem_rw nWR
addr_in data_out
nBHE
data_in nBLE
DBUS
ABUS
5.2功能描述:当取址模块发出取址请求时,根据PC取出指令送给取址模块;根据存储管理模块给的读写请求对存储器进行读写操作。
计算机设计与实践
CPU设计报告
学号:1110310506
姓名:刘秋如
一、指令格式设计
■指令是由操作码和地址码两部分组成的.
■指令系统中指定所有的指令都是二地址指令.
cpu设计实验报告
cpu设计实验报告CPU设计实验报告1. 引言计算机是现代社会不可或缺的工具,而中央处理器(CPU)则是计算机的核心组件之一。
本实验旨在设计和实现一个简单的CPU,以加深对计算机组成原理的理解,并通过实践掌握CPU的基本工作原理。
2. CPU设计概述我们的CPU设计基于冯·诺依曼结构,包括指令寄存器(IR)、程序计数器(PC)、算术逻辑单元(ALU)和寄存器文件等关键组件。
CPU的指令集采用RISC(精简指令集计算机)风格,指令长度为32位。
3. 指令集设计我们设计了一套简单的指令集,包括算术运算指令(加法、减法、乘法、除法)、逻辑运算指令(与、或、非)以及数据传输指令(加载、存储)。
指令的格式包括操作码、源操作数和目标操作数。
4. 寄存器文件设计寄存器文件是CPU中用于存储数据的重要组件。
我们设计了一个包含8个通用寄存器的寄存器文件,每个寄存器的宽度为32位。
通过寄存器文件,CPU能够高效地进行数据的读取和存储。
5. 控制单元设计控制单元是CPU中的重要模块,负责解析指令并控制各个组件的操作。
我们设计了一个简单的控制单元,使用有限状态机(FSM)来实现指令的解析和控制信号的生成。
控制单元根据指令的操作码,决定对应的操作,并将操作所需的控制信号发送给其他组件。
6. 数据通路设计数据通路是CPU中各个组件之间的数据传输路径。
我们设计了一个简单的数据通路,包括指令寄存器、程序计数器、寄存器文件、算术逻辑单元等。
数据通路能够将指令中的操作数从寄存器文件中读取出来,并将运算结果写回到寄存器文件。
7. CPU实现与验证我们使用硬件描述语言(HDL)对CPU进行实现,并通过仿真和测试验证其正确性。
通过编写测试程序,我们能够对CPU的各个指令进行测试,并检查其运行结果是否符合预期。
8. 结果与分析经过测试,我们的CPU能够正确执行设计的指令集,并产生正确的运算结果。
通过性能测试,我们还评估了CPU的运行速度和效率,并与其他现有的CPU进行了比较。
CPU设计实验报告Word版
实验中央处理器的设计与实现一、实验目的1、理解中央处理器的原理图设计方法。
2、能够设计实现典型MIPS的11条指令。
二、实验要求1、使用Logisim完成数据通路、控制器的设计与实现。
2、完成整个处理器的集成与验证。
3、撰写实验报告,并提交电路源文件。
三、实验环境VMware Workstations Pro + Windows XP + Logisim-win-2.7.1四、操作方法与实验步骤1、数据通路的设计与实现数据通路主要由NPC、指令存储器、32位寄存器文件、立即数扩展部件、ALU、数据存储器构成。
其中指令存储器和数据存储器可直接调用软件库中的ROM和RAM元件直接完成,其余部件的设计如图所示:图1.1 NPC图1.2 32位寄存器图1.3 立即数扩展部件图1.4 ALU2、控制器的设计与实现控制器的主要设计思想如图所示图2.1 控制器设计思想输入000000001101100011101011000100000010输出R-type ORI LW SW BEQ JUMP RegDst100x x x ALUSrc01110x MemtoReg001x x x RegWrite111000 MemWrite000100 Branch000010 Jump000001 Extop x0111x ALUop210000x ALUop1x100x x ALUop0x0001xALUop[2:0]Funct[3:0]指令ALUctr[2:0] 1110000add0101110010sub1101110100and0001110101or0011111010slt111010xxxx ori001000xxxx Lw/sw010011xxxx beq110表2.1 控制器设计真值表图2.2 控制器3、处理器的集成与验证集成:将各个部件按要求链接,具体方式如图所示:图3.1 CPU验证:将指令的16进制表示输入指令存储器,运行后记录寄存器中的数据与标准值进行对照:图3.2 寄存器对照值图3.3 寄存器实际运行值由上两图对照可得CPU的功能实现成功。
