实验6 CPU组成与机器指令执行实验
计算机组成原理实验

计算机组成原理实验一、实验目的本实验旨在通过实际操作,加深对计算机组成原理的理解,掌握计算机硬件的基本原理和工作方式。
二、实验设备和材料1. 计算机主机:型号为XXX,配置了XXX处理器、XXX内存、XXX硬盘等。
2. 显示器:型号为XXX,分辨率为XXX。
3. 键盘和鼠标:标准配置。
4. 实验板:包括CPU、内存、存储器、输入输出接口等模块。
5. 逻辑分析仪:用于分析和调试电路信号。
6. 示波器:用于观测电路信号的波形。
三、实验内容1. 实验一:CPU的工作原理a. 将实验板上的CPU模块插入计算机主机的CPU插槽中。
b. 连接逻辑分析仪和示波器,用于观测和分析CPU的工作信号和波形。
c. 打开计算机主机,启动操作系统。
d. 运行一段简单的程序,观察CPU的工作状态和指令执行过程。
e. 通过逻辑分析仪和示波器的数据分析,了解CPU的时钟信号、数据总线、地址总线等工作原理。
2. 实验二:内存的存储和读写a. 将实验板上的内存模块插入计算机主机的内存插槽中。
b. 打开计算机主机,启动操作系统。
c. 编写一个简单的程序,将数据存储到内存中。
d. 通过逻辑分析仪和示波器的数据分析,观察内存的写入和读取过程,了解内存的存储原理和读写速度。
3. 实验三:存储器的工作原理a. 将实验板上的存储器模块插入计算机主机的存储器插槽中。
b. 打开计算机主机,启动操作系统。
c. 编写一个简单的程序,读取存储器中的数据。
d. 通过逻辑分析仪和示波器的数据分析,观察存储器的读取过程,了解存储器的工作原理和数据传输速度。
4. 实验四:输入输出接口的工作原理a. 将实验板上的输入输出接口模块插入计算机主机的扩展插槽中。
b. 打开计算机主机,启动操作系统。
c. 编写一个简单的程序,通过输入输出接口实现数据的输入和输出。
d. 通过逻辑分析仪和示波器的数据分析,观察输入输出接口的工作过程,了解数据的传输和控制原理。
四、实验结果分析1. 实验一:通过观察CPU的工作状态和指令执行过程,可以验证CPU的时钟信号、数据总线、地址总线等工作原理是否正确。
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的工作过程,加深了对计算机原理的理解。
第六节CPU组成与机器指令执行实验

第六节CPU组成与机器指令执行实验CPU组成与机器指令执行实验一、实验目的(1)将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机;(2)用微程序控制器控制模型机数据通路;(3)通过CPU运行九条机器指令(排除中断指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。
二、实验电路本次实验用到前面四个实验中的所有电路,包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。
因此,在基本实验中,这是最复杂的一个实验,也是最能得到收获的一个实验。
在前面的实验中,实验者本身作为“控制器”,完成数据通路的控制。
而在本次实验中,数据通路的控制将由微程序控制器来完成。
CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是由微指令组成的序列来完成的,即一条机器指令对应一个微程序。
三、实验设备(1)TEC-4计算机组成原理实验系统一台(2)双踪示波器一台(3)直流万用表一只(4)逻辑测试笔一支四、实验任务(1)对机器指令系统组成的简单程序进行译码。
将下表的程序按指令格式手工汇编成十六进制机器代码,此项任务应在预习时完成。
(2)按照下面框图,参考前面实验的电路图完成连线,控制器是控制部件,数据通路(包括上面各模块)是执行部件,时序产生器是时序部件。
连线包括控制台、时序部分、数据通路和微程序控制器之间的连接。
其中,为把操作数传送给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别与IR3至IR0连接,WR1、WR0也应接到IR1、IR0上。
开关控制控制台时序发生器开关控制指示灯信号控制信号时序信号控制信号微程序控制器数据通路指令代码、条件信号模型计算机连线示意图(3)将上述任务(1)中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7―SW0设置通用寄存器R2、R3及内存相关单元的数据。
CPU计算机组成原理实验报告

计算机组成与系统结构实验报告CPU设计与实现院(系):专业班级:计算机科学与技术组员:指导教师:实验目得:设计实现CPU部件。
实验仪器:PC机(安装Altebra 公司得开发软件QuartusII,Modelsim)两台TEC—CA计算机组成原理试验箱实验过程:一、理论设计1、1、设计指令集设计CPU第一步,就就是根据需求,确定功能,并且设计出指令集。
指令集包括每一条指令得编码方式,操作码以及每一条指令实现得功能。
考虑到第一次设计CPU,在指令集设计过程中难免会出现考虑不周全或者指令集设计不科学得问题,我们借鉴了经典得31条MIPS指令集。
在对指令集每一条指令进行解读、分析后,我们确定:31条MIPS指令可以满足我们得CPU得基本功能。
下面将31条MIPS指令得编码格式、对应得操作类型以表格得形式列举出来:10$1=1else$1=0rt=1 else rt=0 ;ﻫ其中rs=$2,rt=$1J-typeopaddressj000010addressj 10000goto 10000PC 〈—(PC+4)[31、、28],address,0,0 ;address=10000/4jal000011addressjal 10000$31<-PC+4;ﻫ goto 10000$31<—PC+4;PC<- (PC+4)[31、、28],address,0,0ﻫ ;address=10000/4经典得MIPS指令有三种格式:R—TYPE、I—TYPE、J—TYPE。
其编码格式各不相同,分别代表寄存器操作指令、立即数操作指令、跳转指令。
寄存器操作主要就是将寄存器中得树取出进行运算并存回寄存器;立即数操作为一个寄存器数与指令中得扩展后得立即数进行运算得到结果再存回寄存器;跳转我们后面得设计都就是对这31条指令进行具体实现,所有得内容紧密围绕这31条指令。
1、2、画数据通路图在设计完指令后,要做得就就是根据指令描述得功能确定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指令部件 (2)

计算机组成原理实验(六)实验项目名: CPU指令部件实验实验要求:了解CPU重要组成部件-程序计数器、指令寄存器的构造原理,理解CPU是如何按照程序计数器的值依次取指令进行分析执行的过程。
实验内容:(1)预习。
回顾课堂中学习的关于CPU的功能、控制寄存器以及指令处理过程中数据流的相关知识。
本次试验中,将通过实验台模拟CPU顺序取指令进行处理的过程。
(2)了解实验原理,完成硬件电路的连接。
本次实验需要使用地址模块、存储器模块、程序计数器模块、指令寄存器模块和时序启停模块。
按照详细说明中关于实验电路原理的说明,理解并连接好实验电路。
(3)了解各功能模块的控制信号及使用方法,根据实验题目的要求,确定控制动作的发生顺序,设计相应的控制信号序列。
(4)通过实验台的微控制输入开关,逐条的输入微控制信号,在控制信号和时序信号的作用下,利用单步工作模式,观察指令的逐条处理过程。
实验详细说明:(1)实验逻辑框图本次实验的逻辑电路原理如上图所示,需要完成的实验连线包括:①地址锁存器模块扁缆:D0~D7;A0~A7控制信号:LDAR②存储器模块扁缆:D0~D7控制信号:CE,WE③程序计数器模块扁缆: D0~D7控制信号:PC-B, LDPC,LOAD④指令寄存器模块控制信号: LDIR⑤时序启停部件时序信号输入:程序计数器PC在上电复位后初始化为00H,PC中存放的永远是下一条将要执行的指令的地址,将PC的值作为地址访问存储器,获得指令,而后通过总线存储到指令寄存器IR中,等待分析执行,与此同时,控制PC增量。
这样,就完成了CPU一次取指令的过程。
要完成上述过程,需要通过控制信号控制数据通路及部件的操作,下面介绍本次实验涉及的各控制信号。
(2)控制信号说明(注意参考上图)①存储器操作控制信号✶LDAR,将总线上的内容锁存到存储器的地址寄存器中。
✶CE,存储器的片选使能信号。
✶WE,存储器的读/写控制信号。
Eg. 完成一次存储器读操作的控制过程。
实验六,,CPU组成与机器指令执行周期实验讲义

实验六,,CPU组成与机器指令执行周期实验讲义实验六UCPU组成与指令周期实验一、实验目的1.用微程序控制器控制数据通路,将相应的信号线连接,构成一台能运行测试程序的CPU。
2.执行一个简单的程序,掌握机器指令与微指令的关系。
3.理解计算机如何取出指令、如何执行指令、如何在一条指令执行结束后自动取出下一条指令并执行,牢固建立的计算机整机概念。
二、预习要求1.回顾前面五个实验内容(实验一至实验五),认真阅读本实验的实验目的和实验内容等,了解CPU组成与指令周期。
2.按照附录二实验报告格式写好预习报告。
最主要的是理论数据要写上,以便与实验数据作比较。
三、实验环境软件:WINXP、串口调试助手软件硬件:1.微机1台2.TEC-8实验系统1台3.逻辑测试笔1支4.编程器公用四、实验内容及说明1.实验电路及说明硬连线控制器控制信号切换电路ALUA端口B端口CZR0R1R2R3IRPCAR双端口RAMDBUSS0S1S2S3MLDCLDZ控制信号控制信号MEMWMBUSA7LA0LD7LD0LABUSLPCPCINCCLR#CLR#LIRA组控制信号组控制信号B组控制信号组控制信号CZCLR#SBUS控制转换2选1选择器IR3IR0CLR#QDMFDPPC7PC0AR7AR0A7A0B7B0T3T3T3T3T2T3SWDRD0RD1RS0RS1LR0T3T 3T3LR1LR2LR3CINA7RA0RD7RD0RPCADDLARARINCIARLIARIABUST3SELCTLT3SWCSWA 微程序控制器CZCLR#T3SEL3SEL0IR3IR0IR7IR4W3W1STOPINTENINTDIINTPSHORTLONG时序发生器T1T2T3W1W2W3INTQDBUSDBUS数据开关数据开关SD7SD0PC7PC0IR7IR4DRWDRWDRWDRW4选1选择器A4选1选择器B24译码器RD1RD0LR0LR1LR2LR3IRBUSIRBUSRD0RD1RS1RS0INS7INS0数据总线数据总线独立K15-K0图6.1TEC-8模型计算机框图本实验将前面几个实验中的所有电路,包括时序发生器、通用寄存器组、算术逻辑运算部件、存储器、微程序控制器等模块组合在一起,构成一台能够运行程序的简单处理机。
cpu组成与机器指令执行实验报告

CPU组成与机器指令执行实验报告1. 引言本实验旨在探究中央处理器(CPU)的组成以及机器指令的执行过程。
通过深入理解CPU的工作原理和机器指令的执行流程,我们可以更好地理解计算机的数据处理过程。
2. CPU的组成CPU是计算机的核心组件之一,它负责执行计算机上的所有任务。
一个典型的CPU由以下几个重要组成部分构成:2.1 控制单元(Control Unit)控制单元是CPU的核心组件之一,负责协调和控制整个CPU的操作。
它从存储器中读取指令,并解码这些指令以确定下一步的操作。
2.2 算术逻辑单元(Arithmetic Logic Unit,ALU)算术逻辑单元是CPU的另一个重要组成部分,负责执行各种算术和逻辑运算,如加法、减法、乘法、除法等。
ALU能够执行基本的数学计算和布尔逻辑运算。
2.3 寄存器(Registers)寄存器是CPU内部的临时存储器,用于存储指令和数据。
CPU拥有多个寄存器,每个寄存器都有特定的功能,如程序计数器(Program Counter,PC)用于存储下一条指令的地址,累加器(Accumulator)用于存储运算结果等。
3. 机器指令的执行过程机器指令是计算机能够理解和执行的指令,它们以二进制的形式表示。
机器指令的执行过程可以分为以下几个步骤:3.1 取指令(Fetch)控制单元从存储器中读取下一条指令,并将其存储在指令寄存器(Instruction Register,IR)中。
3.2 解码指令(Decode)控制单元解码指令寄存器中的指令,确定需要执行的操作类型和操作数。
3.3 执行指令(Execute)根据解码的结果,CPU执行指令中指定的操作。
这可能涉及到从寄存器中读取数据、进行算术运算、修改寄存器的值等。
3.4 存储结果(Store)执行指令后,结果可能需要存储在寄存器或存储器中,以备后续操作使用。
4. 实验步骤在本次实验中,我们将使用一个简单的汇编语言程序来演示机器指令的执行过程。
计算机组成原理实验(接线、实验步骤)方案

实验一运算器[实验目的]1.掌握算术逻辑运算加、减、乘、与的工作原理;2.熟悉简单运算器的数据传送通路;3.验证实验台运算器的8位加、减、与、直通功能;4.验证实验台4位乘4位功能。
[接线]功能开关:DB=0 DZ=0 DP=1 IR/DBUS=DBUS接线:LRW:GND(接地)IAR-BUS# 、M1、M2、RS-BUS#:接+5V控制开关:K0:SW-BUS# K1:ALU-BUSK2:S0 K3:S1 K4:S2K5:LDDR1 K6:LDDR2[实验步骤]一、(81)H与(82)H运算1.K0=0:SW开关与数据总线接通K1=0:ALU输出与数据总线断开2.开电源,按CLR#复位3.置数(81)H:在SW7—SW0输入10000001→LDDR2=1,LDDR1=0→按QD:数据送DR2置数(82)H:在SW7—SW0输入10000010→LDDR2=0,LDDR1=1→按QD:数据送DR1 4.K0=1:SW开关与数据总线断开K1=1:ALU输出与数据总线接通5. S2S1S0=010:运算器做加法(观察结果在显示灯的显示与进位结果C的显示)6.改变S2S1S0的值,对同一组数做不同的运算,观察显示灯的结果。
二、乘法、减法、直通等运算1.K0K1=002.按CLR#复位3.分别给DR1和DR2置数4.K0K1=115. S2S1S0取不同的值,执行不同的运算[思考]M1、M2控制信号的作用是什么?运算器运算类型选择表选择操作S2 S1 S00 0 0 A&B0 0 1 A&A(直通)0 1 0 A+B0 1 1 A-B1 0 0 A(低位)ΧB(低位)完成以下表格ALU-BUS SW-BUS# 存储器内容S2S1S0 DBUS C输入时:计算时:DR1:01100011DR2:10110100(与)DR1:10110100DR2:01100011(直通)DR1:01100011DR2:01100011(加)DR1:01001100DR2:10110011(减)DR1:11111111DR2:11111111(乘)实验二双端口存储器[实验目的]1.了解双端口存储器的读写;2.了解双端口存储器的读写并行读写及产生冲突的情况。
中央处理器实验报告

中央处理器实验报告计算机组成与系统结构中央处理器试验报告姓名:试验时间:2012年6月一、实验名称:中央处理器的设计二、实验原理:将之前设计的数据存储器,寄存器组,多路选择器,运算器,指令译码器以及取指令部件通过数据通路构成一个整体,从而实现中央处理器从取用户输入的指令开始,到给出运算结果,并存入指定寄存器或者存储器的整个过程,由于前期准备较为充足,各个部件指令都已完善,所以需要编写一段主程序调用各个部件的子程序,从而组装成为一个完整的中央处理器。
三、试验目的:编写主函数调用各个部件子程序来实现中央处理器的功能。
四、 Verilog源代码:用于调用子程序的主程序:moduledzqcpu(clk,I,run,busA,busB,AluB,AluF,busW,Datain,Dataout);parameter n=32;input clk,run;output [n-1:0] I,busA,busB,AluB,AluF,busW,Datain,Dataout;wireRegWr,Branch,Jump,ExtOp,AluSrc,MemWr,MemtoReg,RegDst;wire [2:0] ALUctr;wire [5:0] op,func;dataroaddataroadbj(clk,RegWr,Branch,Jump,ExtOp,AluSrc,ALUctr,Me mWr,MemtoReg,RegDst,I,run,busA,busB,AluB,AluF,busW,Datain,Dataout);assign op=I[31:26];assign func=I[5:0];zlymqkzbj(op,func,RegWr,Branch,Jump,ExtOp,AluSrc,ALUctr,Mem Wr,MemtoReg,RegDst);Endmodule取指令部件子程序:module qzl(clk,Branch,Jump,Zero,instruction,run);input clk,Zero,Branch,Jump,run;output [31:0] instruction;wire [4:0] addmem;reg [29:0] PC=25;wire [29:0] Newpc,PC_1,imm30,PC_2,PC_3,PC_12;wire Branch_zero;reg reset=1;//fetch instruction from memory,only 32*32b,so PC[2:0]assign addmem={PC[2:0],2'b00};instrumem InsMem(addmem,instruction);//PCalways @(negedge clk)if (run==1)beginif (reset==1)beginPC <=0;reset<=0;endelsebeginPC <= Newpc;endend//Newpcassign PC_1=PC+1;assign imm30={{14{instruction[15]}},instruction[15:0]}; assign PC_2=PC_1+imm30;assign PC_3={PC[29:26],instruction[25:0]};assign Branch_zero=Branch & Zero;defparam mux4.k = 30 ;mux2to1 mux4(PC_1,PC_2,Branch_zero,PC_12);defparam mux5.k= 30 ;mux2to1 mux5(PC_12,PC_3,Jump,Newpc);endmodule// instruction memorymodule instrumem(addr,instruout);parameter n=32;input [4:0] addr;output [n-1:0] instruout;reg [n-1:0] instruout;// Declare the RAM variablereg [n-1:0] Mem [31:0];// write instruction: add 3<=(1)+(2),sub 6<=(4)-(5),jump 0 always @(*)beginMem[0]<={6'b000100,5'b00001,5'b00010,5'b00000,5'b0000 0,6'b000001};Mem[8]<={6'b000010,5'b00000,5'b00000,5'b00000,5'b00000,6' b000010};end// readalways @(addr)begininstruout <= Mem[addr];endEndmodule多路选择器部件子程序:二选一:module mux2to1 (V, W, Sel, F); parameter k = 32;input [k-1:0] V, W;input Sel;output [k-1:0] F;reg [k-1:0] F;always @(V or W or Sel)if (Sel == 0)F <= V;elseF <= W;Endmodule三选一:module mux3to1 (U,V, W, Sel, F); parameter k = 32;input [k-1:0] U,V, W;input [1:0] Sel;output [k-1:0] F;reg [k-1:0] F;always @(U or V or W or Sel) case (Sel)2'b00:F<=U;2'b01:F<=V;2'b10:F<=W;endcaseEndmodule数据存储器部件子程序:module datamem( datain,addr,WE, clk,dataout);parameter n=32;input [n-1:0] datain;input [5:0] addr;input WE, clk;output [n-1:0] dataout;// Declare the RAM variablereg [n-1:0] Mem [63:0];// Writealways @ (negedge clk)beginif (WE)Mem[addr] <= datain;end// readassign dataout = Mem[addr];Endmodule寄存器组部件子程序:module jcqz(clk,wre,wd,data,s1,s2,out1,out2,run); input clk,wre,run;input [4:0] wd;input [31:0] data;input [4:0]s1,s2;output [31:0] out1,out2;reg [31:0] out1,out2;reg [31:0] mem [31:0];//writealways @ (negedge clk)if (run==1)beginif(wre == 1 )beginmem[wd] <= data;endendelsebeginmem[1] <= 10;mem[2] <= 10;mem[3] <=40;mem[4] <=50;end//readalways @ (s1 or s2 or run ) if (run==1)beginout1 <= mem[s1];out2 <= mem[s2];endelsebeginout1 <= mem[3];out2 <= mem[4];endEndmodule运算器部件子程序:module ysq (A, B, ALUctr, Zero, Result, Overflow);parameter n = 32;input [n-1:0] A, B;input [2:0] ALUctr;output [n-1:0] Result;output Overflow,Zero;wire Add_carry,Add_overflow,Add_sign,Zero;wire [n-1:0] Add_result;wire SUBctr,OVctr,SIGctr;wire [1:0] OPctr;wire AC,SO,Cin;wire [n-1:0] AB,SUBctr32,B2;wire less;wire [n-1:0] ZO;// Define ALU control signalassign SUBctr=ALUctr[2];assign OVctr=~ALUctr[1]& ALUctr[0];assign SIGctr=ALUctr[0];assign OPctr={ALUctr[2] & ALUctr[1], ~ALUctr[2] & ALUctr[1] & ~ALUctr[0]}; //B2assign SUBctr32={n{SUBctr}};assign B2=B^SUBctr32;//adder: Overflow,Zeroassign Cin=SUBctr;adderkadder(A,B2,Cin,Add_carry,Zero,Add_overflow,Add_sign,Add_resu lt);assign SO=Add_overflow ^ Add_sign;assign AC=Cin ^ Add_carry;assign Overflow=Add_overflow & OVctr;//Resultassign AB=A | B;mux2to1 mux1(AC,SO,SIGctr,less);mux2to1 mux2(8'h00000000,8'h00000001,less,ZO);mux3to1 mux3(Add_result,AB,ZO,OPctr,Result);endmodule// k-bit addermodule adderk (X,Y,Cin,Cout, zero, overflow, sign, result);parameter k = 32;input Cin;input [k-1:0] X, Y;output [k-1:0] result;output Cout,zero,overflow,sign;reg [k-1:0] result;reg Cout,zero,overflow,sign;always @(X or Y or Cin)begin{Cout, result} <= X + Y + Cin;overflow <= (X[k-1] & Y[k-1] & ~result[k-1])|(~X[k-1] & ~Y[k-1] & result[k-1]);if (result==0)zero<=1;elsezero<=0;sign<=result[k-1];endendmodule指令译码器部件子程序:modulezlymq(op,func,RegWr,Branch,Jump,ExtOp,AluSrc,ALUctr,Me mWr,MemtoReg,RegDst);input [5:0] op,func;outputRegWr,Branch,Jump,ExtOp,AluSrc,MemWr,MemtoReg,RegDst;output [2:0] ALUctr;regRegWr,Branch,Jump,ExtOp,AluSrc,MemWr,MemtoReg,RegDst;reg [2:0] ALUctr;always @(op)case (op)6'b000000:begin{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr}=7' b0010010;case (func)6'b100000:ALUctr=3'b001;6'b100010:ALUctr=3'b101;6'b100011:ALUctr=3'b100;6'b101010:ALUctr=3'b111;6'b101011:ALUctr=3'b110;endcaseend6'b001101:begin{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr,Ext Op}=8'b00010100; ALUctr=3'b010;end6'b001001:begin{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr,Ext Op}=8'b00010101; ALUctr=3'b000;end6'b100011:begin{Branch,Jump,RegDst,AluSrc,MemtoReg,RegWr,MemWr,Ext Op}=8'b00011101; ALUctr=3'b000;end6'b101011:begin{Branch,Jump,AluSrc,RegWr,MemWr,ExtOp}=6'b001011;ALUctr=3'b000;end6'b000100:begin{Branch,Jump,AluSrc,RegWr,MemWr}=5'b10000;ALUctr=3'b100;end6'b000010:{Branch,Jump,RegWr,MemWr}=4'b0100;endcaseendmodule数据通路部件子程序:moduledataroad(clk,RegWr,Branch,Jump,ExtOp,AluSrc,ALUctr,Mem Wr,MemtoReg,RegDst,instruction,run,busA,busB,AluB,AluF,busW,Datain,Dataout); parameter n=32;inputclk,RegWr,Branch,Jump,ExtOp,AluSrc,MemWr,MemtoReg,RegDst ,run;input [2:0] ALUctr;output [n-1:0] instruction;output [n-1:0] busA,busB,AluB,AluF,busW,Datain,Dataout; wire [5:0] op,func;wire [4:0] Rs,Rt,Rd;wire [15:0] imm16;wire [4:0] Rw,Ra,Rb;wire [n-1:0] imm32,B2;wire Zero,Overflow,We;//instructionqzl qzlbj(clk,Branch,Jump,Zero,instruction,run);assign op=instruction[31:26];assign Rs=instruction[25:21];assign Rt=instruction[20:16];assign Rd=instruction[15:11];assign func=instruction[5:0];assign imm16=instruction[15:0];//registersmux2to1 mux6(Rt,Rd,RegDst,Rw);assign Ra=Rs;assign Rb=Rt;assign We=RegWr & ~Overflow;jcqz jcqzbj(clk,We,Rw,busW,Ra,Rb,busA,busB,run);//ALUassign imm32={{16{imm16[15] & ExtOp}},imm16[15:0]}; mux2to1 mux7(busB,imm32,AluSrc,AluB);ysq ysqbj(busA,AluB, ALUctr, Zero, AluF, Overflow);//data memoryassign Datain=busB;datamem datamembj(Datain,AluF,MemWr, clk,Dataout);mux2to1 mux8(AluF,Dataout,MemtoReg,busW);endmodule五、试验心得:本次实验通过一个主调函数调用其他各个子函数的程序,构建了一个完整的中央处理器,需要对中央处理器有非常细致的了解,了解整个过程才能很好的设计整个通路,本次实验过程中遇到了很多问题,例如:函数参数调用不正确,指令字长不统一等等,但都得到了解决,最后成功的仿真出了中央处理器的运行过程。
计算机组成大型实验报告—机器指令设计实验

机器指令设计实验-实验报告一、实验目的与要求(1)通过实验分析简单模型机结构,了解计算机工作原理。
(2)掌握计算机微程序控制器的控制方法,掌握计算机指令执行过程。
(3)简单模型计算机部件构架、微程序控制器中微程序代码功能实现、微程序流程、指令系统定义和简单模型计算机汇编语言程序进行验证。
(4)在简单模型计算机基础上设计新的技巧指令,在第二章实验八的基础上实施,使用的实验部件和接线不变,增加5条新机器指令,目的是提高学生对计算机机器指令的理解,锻炼学生自己动手设计模型计算机机器指令的能力。
二、实验原理1.简单模型计算机构架简单模型计算机逻辑结构如图1所示,构成简单模型计算机的实验部件以总线为基本连接通道,主要有以下7个:(1)算术逻辑运算部件ALU UNIT进行算术逻辑运算操作。
(2)存储器部件MEM UNIT,存储模型计算机汇编语言程序和操作数据。
(3)地址寄存器部件ADDRESS UNIT,包含两部分电路,地址寄存器AR:接收存储器程序中的指令地址和指令中的数据地址;指令地址计数器PC:用于指示程序中的指令地址并通过地址缓冲器送往地址寄存器AR。
(4)指令寄存器部件INS UNIT,寄存器当前正在执行的机器指令,此指令的指令码通过指令译码器向微程序控制器指示相应的微程序入口地址;此指令的地址码指示的操作数地址,送往地址寄存器AR。
(5)输入/输出部件INPUT/OUTPUT,操作数据的输入与输出显示。
(7)通用寄存器部件REG UNIT,暂存运算的中间数据。
(7)微程序控制器部件MAIN CONTROL UNIT,控制各部件完成指令的功能。
2.简单模型计算机指令系统此简单模型计算机的指令系统包括控制台指令与机器指令。
共三条控制台指令,由手动控制单元(MANUAL UNIT)的KB,KA开关设定。
控制台指令只能由手工操作一条条指令,不能编写在汇编程序中。
实验八已经给出5条机器指令。
分别是输入指令IN R0,PORTAR,算术加指令ADD R0,[ADDR],寄存器内容送存储器指令STA [ADDR],R0,输出指令OUT [PORTAR],[ADDR],转移指令JMP PORTAR。
简单实验计算机组成与程序运行实验

简单实验计算机组成与程序运行实验一、实验目的1.组成一个简单的计算机整机系统—模型机,输入程序并运行2.了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程3.定义五条机器指令,编写相应微程序并具体上机调试二、预习要求:1.复习计算机组成的基本原理;2.预习本实验的相关知识和内容三、实验设备:EL_JY_II8型计算机组成原理实验系统一套,排线若干。
四、模型机结构:模型机结构框图见图6—1.五、工作原理:前几个实验中,控制信号是由实验者用逻辑开关来模拟的,而这次实验,是在微程序控制下自动产生各部分的控制信号,实现特定指令的功能。
CPU从内存取出一条机器指令到执行结束的一个指令周期,是由微指令组成的序列来完成,一条机器指令对应一个微程序。
1.本实验采用五条机器指令:其指令格式如下(前4位为操作码):其中IN为单字长(8位),其余为双字长指令,xxxxxxxx为addr为对应的二进制地址码。
2.为了向RAM中装入程序和数据,检查斜土是否正确,并能启动程序执行,还必须设计三个控制操作微程序。
存储器读操作(MRD):拨动总清开关CLR后,控制开关CA1、CA2为“00”时,按“启动”微动开关,可对RAM连续手动读操作。
存储器写操作(MWE):拨动总清开关CLR后,控制开关CA1、CA2为“10”时。
按“启动”微动开关,可对RAM连续手动写入。
启动程序(RUN):拨动总清开关CLR后,控制开关CA1、CA2为“11”时按“启动”微动开关,即可转入到第01号“取址”微指令,启动程序运行。
数据LED-G控制信号3.微指令字长共24位,其控制位顺序如下:其中Ua5_uA0为6位的后续微地址,F1、F2、F3为三个译码字段,分别由三个控制位译码出多位。
F3字段中的P(1)_P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。
计算机组成原理TEC-4实验手册(含实验步骤)完整6个实验-三个程序设计

地址寄存器AR1(U37)和AR2(U27、U28)提供双端口存储器的地址。AR1是1片GAL22V10,具有加1功能,提供双端口存储器左端口的地址。AR1从数据总线DBUS接收数据。AR1的控制信号是LDAR1和AR1_INC。当AR1_INC = 1时,在T4的上升沿,AR1的值加1;当LDAR1 = 1时,在T4的上升沿,将数据总线DBUS的数据打入地址寄存器AR1。AR2由2片74HC298组成,有两个数据输入端,一个来自程序计数器PC,另一个来自数据总线DBUS。AR2的控制信号是LDAR2和M3。M3选择数据来源,当M3 = 1时,选中数据总线DBUS;当M3 = 0时,选中程序计数器PC。LDAR2控制何时接收地址,当LDAR2 = 1时,在T2的下降沿将选中的数据源上的数据打入AR2。
一、TEC—4计算机组成原理实验系统特点
1.计算机模型简单、实用,运算器数据通路、控制器、控制台各部分划分清晰。
2.计算机模型采用了数据总线和指令总线双总线体制,能够实现流水控制。
3.控制器有微程序控制器或者硬布线控制器两种类型,每种类型又有流水和非流水两种方案。
4.寄存器堆由1片ispLSI1016组成,运算器由1片ispLSI1024组成,设计新颖。
1.运算器ALU
运算器ALU由一片ispLSI1024(U47)组成,在选择端S2、S1、S0控制下,对数据A和B进行加、减、与、直通、乘五种运算,功能如下:
表1运算器功能表
选择
操作
S2
S1
S0
0
0
0
A & B
0
0
1
A & A(直通)
0
1
0
A + B
计算机组成实验报告

一、实验目的1. 理解计算机组成原理的基本概念和结构。
2. 掌握计算机各主要部件(如CPU、存储器、总线等)的工作原理。
3. 熟悉计算机指令系统的基本知识。
4. 通过实验加深对计算机组成原理的理解。
二、实验环境1. 实验平台:EL-JY-II型计算机组成原理实验系统2. 实验软件:计算机组成原理实验软件3. 实验设备:计算机组成原理实验箱三、实验内容1. CPU数据通路实验(1)实验目的:了解CPU的数据通路结构,掌握各逻辑部件的功能及数据流动方向。
(2)实验步骤:1. 组装CPU数据通路,包括ALU、程序计数器PC、主存M、主存数据寄存器MDR、主存地址寄存器MAR、指令寄存器IR、通用寄存器R0-R3、暂存器C和D等。
2. 指示数据流动方向,确保各部件正确连接。
3. 验证数据通路功能,观察数据流动过程。
(3)实验结果:成功组装CPU数据通路,实现数据正确流动。
2. 指令周期实验(1)实验目的:掌握典型指令的指令周期,了解指令执行过程。
(2)实验步骤:1. 画出“MOV R0, R1”、“LAD R1, (R2)”、“ADD R1, R2”、“STO R2,(R3)”等指令的指令周期方框图。
2. 分析指令执行过程,理解各阶段功能。
(3)实验结果:成功画出指令周期方框图,并理解指令执行过程。
3. 硬布线控制器与微程序控制器实验(1)实验目的:了解硬布线控制器和微程序控制器的工作原理及区别。
(2)实验步骤:1. 比较硬布线控制器和微程序控制器的结构及工作原理。
2. 分析两种控制器的优缺点。
(3)实验结果:理解硬布线控制器和微程序控制器的工作原理及区别。
4. 流水线CPU实验(1)实验目的:掌握流水线CPU的工作原理,分析流水线各过程段。
(2)实验步骤:1. 分析指令流水线的取值、译码、执行、访存、写回寄存器五个过程段。
2. 画出流水处理的时空图,计算流水线的实际吞吐率和加速比。
(3)实验结果:成功分析指令流水线各过程段,并计算流水线性能指标。
计算机设计与实践 CPU 实验报告(内含详细代码)

CPU实验报告一.设计概况本次试验要完成的工作主要包括:指令系统的设计,CPU的整体结构设计及其细化,逻辑设计的具体实现,软件模拟,硬件调试。
试验的主要流程如下图所示:二.指令设计1.指令格式设计①单操作数指令OPCODE 000 X包括:JMP,JZ,JC②寄存器-寄存器指令OPCODE REG1 00000 REG2 包括:MOV,ADC,SBB,OR,AND③寄存器-立即数(地址)指令OPCODE REG DA TA包括:LDA,STA,MOV, ADC,SBB,OR,AND④其他类型指令OPCODE 00000000000包括:CLC,STC2.指令编码三.CPU逻辑设计1.CPU整体框图2.节拍设计一个周期采用四个节拍。
一个节拍完成取指。
第二个节拍完成运算。
第三个节拍访存。
第四个节拍回写。
3.数据流说明第一个节拍内,取指模块向访存控制发出访存信号,得到指令后,将指令保存在指令寄存器IR中,并将指令送往后面的运算模块,存储管理模块,回写模块。
同时将PC送入运算模块和回写模块。
第二个节拍内,运算管理模块将指令译码。
如果是存数指令,则将地址存入ADDR寄存器,数据存入DATA存储器,等待下一个节拍访存。
如果是取数指令,则将地址存入ADDR寄存器,等待下一个节拍访存。
如果是其他非访存指令,则将计算结果存入ALUOUT寄存器,送往存储管理模块的Rtemp寄存器。
第三个节拍内,存储管理模块将指令译码。
如果是存数指令,则向访存控制模块发出访存信号,则将第二个节拍内存好的ADDR寄存器的内容作为地址,把DATA寄存器里面的数据存入存储器对应的位置。
如果是取数指令,则将第二个节拍内存好的ADDR寄存器的内容作为地址,从存储器对应的位置取出数据,存入Rtemp存储器,并送往回写模块。
如果是其他非访存指令,则将Rtemp寄存器里的内容直接送往回写模块。
第四个节拍内,回写模块先将指令译码。
根据指令将需要回写的数据回写近响应的寄存器,并将PC+1后回写至取指模块的PC寄存器。
电子科大_实验报告

一、实验名称计算机组成原理实验二、实验目的1. 理解计算机的基本组成和结构。
2. 掌握计算机硬件各模块的功能和作用。
3. 熟悉计算机指令的执行过程。
4. 通过实验验证计算机组成原理的相关知识。
三、实验内容1. 计算机硬件各模块功能实验2. 指令执行过程实验3. 算术逻辑单元(ALU)实验4. 控制单元实验5. 存储器实验四、实验原理计算机是由硬件和软件两部分组成的。
硬件主要包括中央处理器(CPU)、存储器、输入输出设备等。
软件则是指计算机运行的各种程序和数据。
1. 计算机硬件各模块功能实验计算机硬件各模块功能实验主要是验证计算机硬件各模块的功能和作用。
通过实验,了解计算机硬件的基本组成和工作原理。
2. 指令执行过程实验指令执行过程实验是验证计算机指令的执行过程。
通过实验,掌握计算机指令的执行步骤,理解计算机指令的执行原理。
3. 算术逻辑单元(ALU)实验算术逻辑单元(ALU)实验是验证ALU的功能和作用。
通过实验,了解ALU在计算机中的作用,掌握ALU的运算原理。
控制单元实验是验证控制单元的功能和作用。
通过实验,了解控制单元在计算机中的作用,掌握控制单元的控制原理。
5. 存储器实验存储器实验是验证存储器的功能和作用。
通过实验,了解存储器在计算机中的作用,掌握存储器的存储原理。
五、实验设备及器材1. 计算机组成原理实验箱2. 指示灯3. 连接线4. 信号发生器5. 示波器6. 万用表六、实验过程及数据记录1. 计算机硬件各模块功能实验(1)观察实验箱中各个模块的连接情况,记录各个模块的名称和功能。
(2)按照实验指导书的要求,进行各个模块的实验操作,观察各个模块的工作情况,记录实验结果。
2. 指令执行过程实验(1)按照实验指导书的要求,设置实验参数,观察指令执行过程中的各个阶段。
(2)记录指令执行过程中的各个阶段的时间,分析指令执行过程。
3. 算术逻辑单元(ALU)实验(1)观察实验箱中ALU的连接情况,了解ALU的输入输出端口。
cpu组成与机器指令执行实验实验报告

cpu组成与机器指令执行实验实验报告
CPU组成与机器指令执行实验实验报告
摘要:本实验旨在通过对CPU组成与机器指令执行的实验,深入了解CPU的
结构和工作原理,以及机器指令的执行过程。
实验结果表明,CPU由控制单元、运算单元和寄存器组成,通过时钟信号控制各个部件协调工作,而机器指令的
执行则是通过取指、译码、执行和写回四个阶段完成的。
1. 实验目的
通过实验,深入了解CPU的组成和机器指令的执行过程,加深对计算机硬件的
理解。
2. 实验内容
(1)CPU组成实验:通过拆解一台计算机,了解CPU的组成结构,包括控制
单元、运算单元和寄存器等部件。
(2)机器指令执行实验:通过搭建一个简单的计算机模型,模拟机器指令的执行过程,包括取指、译码、执行和写回四个阶段。
3. 实验步骤
(1)CPU组成实验:拆解计算机,观察CPU的各个部件,了解其结构和功能。
(2)机器指令执行实验:搭建计算机模型,编写简单的机器指令,模拟指令的执行过程。
4. 实验结果
(1)CPU组成实验:观察到CPU由控制单元、运算单元和寄存器组成,通过
时钟信号控制各个部件协调工作。
(2)机器指令执行实验:模拟了机器指令的执行过程,包括取指、译码、执行
和写回四个阶段,加深了对机器指令执行过程的理解。
5. 实验结论
通过本次实验,深入了解了CPU的组成和机器指令的执行过程,加深了对计算机硬件的理解,为进一步学习计算机原理打下了良好的基础。
综上所述,本次实验对于加深对CPU组成和机器指令执行过程的理解起到了积极的作用,为进一步学习计算机原理提供了良好的基础。
组成原理实验报告

一、实验目的1. 理解计算机组成原理的基本概念和原理。
2. 掌握计算机硬件各模块的功能和相互关系。
3. 培养动手实践能力,提高对计算机硬件的认识。
二、实验内容1. 计算机硬件系统组成2. 中央处理器(CPU)的结构与功能3. 存储器系统组成与工作原理4. 输入/输出系统组成与工作原理5. 总线系统组成与工作原理三、实验步骤1. 计算机硬件系统组成(1)观察计算机硬件系统,了解各模块的名称和功能。
(2)分析各模块之间的相互关系,理解计算机硬件系统的整体结构。
2. 中央处理器(CPU)的结构与功能(1)观察CPU模块,了解其内部结构。
(2)分析CPU的各个部件,如寄存器、控制器、算术逻辑单元(ALU)等的功能。
(3)理解CPU的工作原理,包括指令的获取、译码、执行和存储等过程。
3. 存储器系统组成与工作原理(1)观察存储器模块,了解其内部结构。
(2)分析存储器的基本单元,如RAM、ROM等的功能和特点。
(3)理解存储器的工作原理,包括地址译码、数据读/写等过程。
4. 输入/输出系统组成与工作原理(1)观察输入/输出模块,了解其内部结构。
(2)分析输入/输出设备的类型和功能,如键盘、鼠标、显示器等。
(3)理解输入/输出系统的工作原理,包括数据传输、控制信号等过程。
5. 总线系统组成与工作原理(1)观察总线模块,了解其内部结构。
(2)分析总线的类型和功能,如地址总线、数据总线、控制总线等。
(3)理解总线系统的工作原理,包括数据传输、同步信号等过程。
四、实验结果与分析1. 计算机硬件系统组成实验结果显示,计算机硬件系统由CPU、存储器、输入/输出设备和总线等模块组成,各模块之间相互配合,共同完成计算机的运行。
2. 中央处理器(CPU)的结构与功能实验结果显示,CPU由寄存器、控制器和ALU等部件组成,负责指令的获取、译码、执行和存储等过程。
3. 存储器系统组成与工作原理实验结果显示,存储器由RAM、ROM等基本单元组成,负责数据的存储和读取。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
肇庆学院计算机学院/软件学院实验报告专业计算机学院班级姓名学号课程名称:CPU组成与机器指令执行实验学年2014—2015 学期1□/ 2□课程类别专业必修 限选□任选□实践□评分:批阅老师:2016年月日●实验目的(1)将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机;(2)用微程序控制器控制模型机数据通路;(3)通过CPU运行九条机器指令(排除中断指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。
●实验电路本次实验用到前面四个实验中的所有电路,包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。
因此,在基本实验中,这是最复杂的一个实验,也是最能得到收获的一个实验。
在前面的实验中,实验者本身作为“控制器”,完成数据通路的控制。
而在本次实验中,数据通路的控制将由微程序控制器来完成。
CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是由微指令组成的序列来完成的,即一条机器指令对应一个微程序。
●实验设备(1)TEC-9计算机组成原理实验系统一台(2)双踪示波器一台(3)直流万用表一只(4)逻辑测试笔一支●实验任务(1)对机器指令系统组成的简单程序进行译码。
将下表的程序按指令格式手工汇编成十六进制机器代码,此项任务应在预习时完成。
地址指令机器代码00H LDA R0,[R2] 58H01H LDA R1,[R3] 5DH02H ADD R0,R1 04H03H JC +4 94H04H AND R2,R3 3EH05H SUB R3,R2 1BH06H STA R3,[R2] 4BH07H STP 60H08H JMP [R1] 84H(2)按照下面框图,参考前面实验的电路图完成连线,控制器是控制部件,数据通路(包括上面各模块)是执行部件,时序产生器是时序部件。
连线包括控制台、时序部分、数据通路和微程序控制器之间的连接。
其中,为把操作数传送给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别与IR3至IR0连接,WR1、WR0也应接到IR1、IR0上。
开关控制控制台时序发生器时序信号开关控制指示灯信号控制信号时序信号控制信号微程序控制器数据通路指令代码、条件信号图13 模型计算机连线示意图(3)将上述任务(1)中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7—SW0设置通用寄存器R2、R3及内存相关单元的数据。
注意:由于设置通用寄存器时会破坏内存单元的数据,因此一般应先设置寄存器的数据,再设置内存数据。
也可以使用上端软件或实验台监控系统用PS2键盘写入内容。
(4)用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中四个寄存器的数据,以及由STA指令存入RAM中的数据(程序结束后从RAM的相应单元中读出),与理论分析值作对比。
单拍方式执行时注意观察微地址指示灯、IRBUS指示灯、DBUS指示灯、AR2指示灯、AR1指示灯和判断字段指示灯的值,以跟踪程序中取指令和执行指令的详细过程(可观察到每一条微指令)。
(5)以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示灯、AR2/AR1指示灯的值(可观察到每一条机器指令)。
执行结束后,记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。
注意:单指方式执行程序时,四个通用寄存器和RAM中的原始数据与第一遍执行程序的结果有关。
(6)以连续方式(DB、DP、DZ都设为0)再次执行程序。
这种情况相当于计算机正常运行程序。
由于程序中有停机指令STP,程序执行到该指令时自动停机。
执行结束后,记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。
同理,程序执行前的原始数据与第二遍执行结果有关。
实验步骤和实验结果1、对机器指令系统组成的简单程序进行译码。
地址指令机器代码00H LDA R0,[R2] 58H01H LDA R1,[R3] 5DH02H ADD R0,R1 04H03H JC +4 94H04H AND R2,R3 3EH05H SUB R3,R2 1BH06H STA R3,[R2] 4BH07H STP 60H08H JMP [R1] 84H2、接线微程序控制器与数据通路之间的线可以通过选择开关直接选择。
将开关设置为“微程序”。
只需连接数据通路部分的线。
a、数据通路的LDIR接CER、LDPC接LDR4、LDDR1接LDDR2、M1接M2、LDAR1接LDAR2。
b、指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。
信号1 LDIR LDPC LDDR1 M1 LDAR1 IR0 IR0 IR1 IR1 IR2 IR3信号2 CER LDR4 LDDR2 M2 LDAR2 RD0 WR0 RD1 WR1 RS0 RS1选择模式开关拔=“微程序”3、实验步骤(1)、设置通用寄存器R2、R3的值。
在本操作中,使R2 = 60H,R3 = 61H。
令DP = 0,DB = 0,DZ =0,使实验系统处于连续运行状态。
令SWC = 0、SWB = 1、SWA = 1,使实验系统处1)、于寄存器加载工作方式KLD。
按CLR#按钮,使实验系统处于初始状态。
2)、在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。
该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容。
例如可将该地址设置为0FFH。
3)、按一次QD按钮,将0FFH写入AR0和AR1。
4)、在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号。
按一次QD按钮,则将02H写入IR。
5)、在SW7—SW0设置60H,作为R2的值。
按一次QD按钮,将60H写入IR指定的R2寄存器。
6)、在SW7—SW0上设置03H,作为通用寄存器R3的寄存器号。
按一次QD按钮,将03H写入IR。
7)、在SW7—SW0设置61H,作为R3的值。
按一次QD按钮,将61H写入R3。
设置R2、R3结束,按CLR#按钮,使实验系统恢复到初始状态。
或用实验台监控系统或系统上端软件直接写入内容(2)、存程序机器代码。
本操作中,我们从00地址开始依次存10个机器代码:58H,5DH,04H,94H,3EH,1BH,4BH, 60H,84H。
在60H存入24H,用于给R0置初值;在61H存入83H,用于给R0置初值。
令DP = 0,DB = 0,DZ =0,使实验系统处于连续运行状态。
令SWC = 0、SWB = 1、SWA = 0,使实验系统处于写双端口存储器工作方式KWE。
按CLR#按钮,使实验系统处于初始状态。
1)、置SW7—SW0为00H,按QD按钮,将00H写入AR1。
2)、置SW7—SW0 为58H,按QD按钮,将58H写入存储器00H单元。
AR1自动加1,变为01H。
3)、置SW7—SW0为5DH,按QD按钮,将5DH写入存储器01H单元。
AR1自动加1,变为02H。
重复进行下去,一直到将84H写入存储器09H单元。
按CLR#按钮,使实验系统恢复到初始状态。
4)、置SW7—SW0为60H,按QD按钮,将60H写入AR1。
5)、置SW7—SW0 为24H,按QD按钮,将24H写入存储器60H单元。
AR1自动加1,变为61H。
6)、置SW7—SW0为83H,按QD按钮,将83H写入存储器61H单元。
按CLR#按钮,使实验系统恢复到初始状态。
或用实验台监控系统或系统上端软件直接写入内容(3)用单拍(DP)方式执行一遍程序。
(SWC=0,SWB=0,SWA==0;DP=1,DZ=0,DB=0)在单拍执行过程中,首先要随时监测AR2的值和IR的值,以判定程序执行到何处,正在执行哪条指令。
监测微地址指示灯和判断字段指示灯,对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。
程序执行的结果如下:初值:R0未定,R1未定,R2 = 60H,R3 = 61H。
存储器60H单元的内容是24H,61H单元的内容是83H。
地址指令机器代码R0 R1 R2 R3 察看AR2即PC地址00H LDA R0,[R2] 58H 24H XXH 60H 61H 0000000001H LDA R1,[R3] 5DH 24H 83H 60H 61H 0000000102H ADD R0,R1 04H A7H 83H 60H 61H 0000001003H JC +4 94H A7H 83H 60H 61H 0000001104H AND R2,R3 3EH A7H 83H 60H 61H 0000010005H SUB R3,R2 1BH A7H 83H 60H 01H 0000010106H STA R3,[R2] 4BH A7H 83H 60H 01H 0000011007H STP 60H A7H 83H 60H 01H 0000011108H JMP [R1] 84H A7H 83H 60H 01H 00001111(4)、用单指(DZ=1)方式执行程序。
1)、按步骤(1)写寄存器内容。
使R2 = 60H,R3 = 61H。
2)、按步骤(2)写存储器内容。
从00地址开始依次存10个机器代码:58H,5DH,04H,95H,3EH,1BH,4BH,60H,84H。
在60H存入24H,用于给R0置初值;在61H存入83H,用于给R0置初值。
3)、单指执行程序(SWC=0,SWB=0,SWA==0;DP=0,DZ=1,DB=0)初值:R0未定,R1未定,R2 = 60H,R3 = 61H。
存储器60H单元的内容是24H,61H单元的内容是83H。
地址指令机器代码R0 R1 R2 R3 察看AR2即PC地址00H LDA R0,[R2] 58H 24H XXH 60H 61H 0000000001H LDA R1,[R3] 5DH 24H 83H 60H 61H 0000000102H ADD R0,R1 04H A7H 83H 60H 61H 0000001003H JC +4 94H A7H 83H 60H 61H 0000001104H AND R2,R3 3EH A7H 83H 60H 61H 0000010005H SUB R3,R2 1BH A7H 83H 60H 01H 0000010106H STA R3,[R2] 4BH A7H 83H 60H 01H 0000011007H STP 60H A7H 83H 60H 01H 0000011108H JMP [R1] 84H A7H 83H 60H 01H 00001111(5)、用连续方式执行程序。