杭电计组实验8-实现R型指令地CPU设计实验
计组课设-微指令的设计实验
计算机组成原理课程设计报告
班级:计算机/物联网班姓名:学号:
完成时间:2016.1.14
一、课程设计目的
1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;
2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;
3.培养综合实践及独立分析、解决问题的能力。
二、课程设计的任务
针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。
三、课程设计使用的设备(环境)
1.硬件
●COP2000实验仪
●PC机
2.软件
●COP2000仿真软件
四、课程设计的具体内容(步骤)
1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点:
从指令字长来看该模型机指令系统包含单字长和双字长两种格式的指令,字长为8位,对于需要访问内存的指令都是双字长的,指令系统中大多数指令是单字长;从指令操作码是定长和变长来看,这里认为,虽然ADD A, R?和ADD A, @R?都是执行加法操作,但他们是不同的指令,将指令格式中寻址寄存器的两位也认为是操作码的一部分,这两条指令的操作码不同。因此,指令系统的指令格式是定长操作码的,操作码为6位。
1)双字长的指令格式如下:
2)单字长的指令格式如下:
举例:
该模型机微指令系统的特点(包括其微指令格式的说明等):
计算机组成原理实验CPU设计与指令集仿真
计算机组成原理实验CPU设计与指令集仿真在计算机组成原理实验中,CPU的设计和指令集仿真是非常重要的一部分。本文将以一种适合科技类文章的格式,详细介绍CPU设计和指令集仿真的过程和原理。
一、CPU设计
CPU设计是计算机组成原理的核心内容之一。在CPU设计中,需要考虑的主要有以下几个方面:
1.1 指令集架构
指令集架构是CPU设计的基础。它定义了CPU能够执行的指令集合,包括指令的格式、指令的操作码以及指令的操作类型等。常见的指令集架构有精简指令集(RISC)和复杂指令集(CISC)等。
1.2 数据通路设计
数据通路是指CPU中用于执行指令的路径。它包括寄存器、算术逻辑单元(ALU)、控制单元等组成部分。在数据通路设计中,需要考虑指令的执行顺序、数据的传输等关键问题。
1.3 控制单元设计
控制单元是CPU中负责控制指令执行的部分。它根据指令的操作码和操作数,产生控制信号,控制数据通路的工作。在控制单元设计中,需要充分考虑指令的并行性、误差检测等因素。
1.4 存储器设计
存储器是CPU与外部设备交换数据的接口。在CPU设计中,需要
选择适合的存储器结构,包括寄存器、缓存、主存等。存储器的设计
不仅关系到CPU的性能,还关系到整个计算机系统的性能。
二、指令集仿真
指令集仿真是一种通过软件模拟CPU的工作过程,实现对指令集
的测试和验证的方法。指令集仿真主要分为以下几个步骤:
2.1 定义指令集
首先,需要根据CPU设计的指令集架构,定义仿真所需的指令集。包括指令的格式、操作码和操作数等。
2.2 编写仿真程序
杭电计算机组成原理取指令与指令译码实验7
杭州电子科技大学计算机学院
实验报告
课程名称:计算机组成原理
实验项目:取指令与指令译码实验指导教师:
实验位置:姓名班级学号:日期:
(接上)实验内容(算法、程序、步骤和方法)3.管脚配置
NET "C[0]" LOC = V8;
NET "C[1]" LOC = T5;
NET "LED[0]" LOC = U16;
NET "LED[1]" LOC = V16;
NET "LED[2]" LOC = U15;
NET "LED[3]" LOC = V15;
NET "LED[4]" LOC = M11;
NET "LED[5]" LOC = N11;
NET "LED[6]" LOC = R11;
NET "LED[7]" LOC = T11;
NET "clk" LOC = C9;
NET "rst" LOC = B8;
数据
记录
和计
算
实验仿真波形:
结论(结果)实验的结果正确,,本实验比较之前的实验,增加了一些东西,进行了一些的限制,只能读,指令自动的增加其自身的地址.都能正确的显示在LED灯上显示出来.
计组实验报告(共10篇)
计组实验报告(共10篇)
计组实验报告
计算机组成原理实验报告一
一、算术逻辑运算器
1. 实验目的与要求:
目的:①掌握算术逻辑运算器单元ALU(74LS181)的工作原理。
②掌握简单运算器的数据传输通道。
③验算由74LS181等组合逻辑电路组成的运输功能发生器运输功能。
④能够按给定数据,完成实验指定的算术/逻辑运算。
要求:完成实验接线和所有练习题操作。
实验前,要求做好实验预习,掌握运算器的数据传送通道和ALU 的特性,并熟悉本实验中所用的模拟开关的作用和使用方法。
实验过程中,要认真进行实验操作,仔细思考实验有关的内容,把自己想得不太明白的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期的实验教学目的。实验完成后,要求每个学生写出实验报告。
2. 实验方案:
1.两片74LS181(每片4位)以并/串联形式构成字长为8为的运算器。
2.8为运算器的输出经过一个输入双向三态门(74LS245)与数
据总线相连,运算器的两个数据输入端分别与两个8位寄存器(74LS273)DR1和DR2的输出端相连,DR1和DR2寄存器是用于保存参加运算的数据和运算的结果。寄存器的输入端于数据总线相连。
3.8位数据D7~D0(在“INPUT DEVICE”中)用来产生参与运算的数据,并经过一个输出三态门(74LS245)与数据总线相连。数据显示灯(BUS UNIT)已与数据总线相连,用来显示数据总线上所内容。
4.S3、S2、S1、S0是运算选择控制端,由它们决定运算器执行哪一种运算(16种算术运算或16种逻辑运算)。
计组实验报告
计算机组成原理实验报告
课程名称计算机组成原理
学院计算机学院
专业班级
学号
学生
指导教师
2016 年 6 月 8 日
实验一、根底汇编语言程序设计
一、实验目的:
1、学习和了解TEC-XP+教学实验系统监控命令的用法;
2、学习和了解TEC-XP+教学实验系统的指令系统;
3、学习和了解TEC-XP+教学实验系统汇编程序设计。
......
二、实验设备与器材:
TEC-XP+教学实验系统和仿真终端软件PCEC;
PC机
三、实验容:
1.学习联机使用TEC-XP+教学实验系统和仿真终端软件PCEC;
2.学习使用WINDOWS界面的串口通讯软件。
3.使用监控程序的R命令显示/修改存放器容、D命令显示存储器容、E命令修改存储器容;
4.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;
四、实验步骤:
1、准备一台串口工作良好的PC机;
2、将TEC-XP放在实验台上,翻开实验箱的盖子,确定电源处于断开状态;
3、将黑色电源线一端接220V交流电源,另一端插在TEC--XP试验箱电源插座上;
4、取出通讯线,将通信线的9芯插头接在试验箱的串口“COM1〞或“COM2〞上,另一端接到PC机的串口上;
5、将TEC-XP实验系统左下方的6个黑色控制器开关置为001100,,控制开关的功能在开关上、下方有标识;开关拨向上方表示“1〞,拨向下方表示“0〞,“x〞表示任意,其他实验一样;
6、翻开电源,船形开关和5v电源指示灯亮。
7、在PC机上运行PCEC16.EXE文件,直接回车。
杭电单片机实验报告
单片机技术与应用
实验报告
实验名称:单片机技术与应用实验
班级: 10062813 学号: 10061314 姓名:陆维俊
指导老师:朱胜利
实验一 P1口、P3口输入输出实验
一.实验目的
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二.实验代码
P1口输出程序
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV A,#0FEH LOOP1: MOV P1,A
ACALL DELAY
RL A
CJNE A,#0FEH,LOOP1
AJMP MAIN DELAY: MOV R7,#10H DELAY0: MOV R6,#7FH DELAY1: MOV R5,#7FH DELAY2: DJNZ R5,DELAY2
DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
END P1口输入程序
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV P1,#0FFH
MOV A,p1
MOV DPTR,#0F200H
MOVX @DPTR,A
AJMP MAIN
END
三.实验说明
1.P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS 管导通,读入的数据是不正确的。
2.延时子程序的延时计算问题
对于程序 DELAY:
MOV R0,#00H
DELAY1:
MOV R1,#0B3H
杭电计组实验5-存储器设计实验
实验报告
2018 年 5 月 5 日成绩:
顶层电路内部结构:
四、引脚配置(约束文件)
NET "Clk" LOC = C9;
NET "LED[4]" LOC = M11;
NET "LED[3]" LOC = V15;
NET "LED[2]" LOC = U15;
NET "LED[1]" LOC = V16;
NET "LED[0]" LOC = U16;
NET "Mem_Addr[7]" LOC = U8;
NET "Mem_Addr[6]" LOC = N8;
NET "Mem_Addr[5]" LOC = M8;
NET "Mem_Addr[4]" LOC = V9;
杭电计算机组成作业答案
《指令系统》
12、
地址指令
0019H
001AH
第一条转移指令:
0019H
001AH
(PC)=001AH,执行该JMP
第二条转移指令:
0019H
001AH
(PC)=001AH,执行该JMP指令后(PC)=001AH+0025H=003FH
13、
寄存器-存储器型指令就是指一个操作数来自寄存器,另一个操作数来自存储器。
直接寻址时EA=ADDR,因此主存最大存储空间为2字。(假设存储器按字编址)
间接寻址时EA=(ADDR),因此操作数地址存放在主存地址为0~219-1的单元内,假设存储器按字编址,则EA应该就是32位的地址,则主存最大存储空间为232字。
(2)其实用32位通用寄存器做基址寄存器,类似于80X86机器上存储器分段管理。
EA=32位基地址+偏移地址,所以EA就是32位,则主存最大存储空间为232字。
16、设某机寄存器字长16位,用16进制表示,已知:变址寄存器内容为0004H,PC的内容为0003H,内存中部分单元内容如下:
地址:内容地址:内容
0002H:000AH 0007H:000AH
0003H:0002H 0008H:0002H
0004H:0007H 0009H:0003H
0005H:0004H 000AH:0009H
0006H:0005H 000BH:0008H
若
某机器字长16位,采用单字长指令,每个地址码6位。试采用操作码扩展技术,设计14条二地址指令,80条一地址指令,60条零地址指令。请给出指令编码示意图。
双操作数指令格式:
其中,
假设:PC 的内容为22H;变址寄存器R3的内容
杭电计组实验10-实现R-I-J型指令的CPU设计实验精编版
实验报告
2018 年 6 月9 日成绩:
3'b100:begin {C32,F}=A+B;OF=A[31]^B[31]^F[31]^C32;end 3'b101:begin {C32,F}=A-B;OF=A[31]^B[31]^F[31]^C32;end 3'b110:
if(A
F=1;
else
F=0;
3'b111:F=B<
endcase
if(F==0)
ZF=1;
else
ZF=0;
end
endmodule
二、仿真波形
三、电路图
顶层电路模块
顶层电路内部结构:
四、引脚配置(约束文件)
NET "LED[7]" LOC = T11;
NET "LED[6]" LOC = R11;
NET "LED[5]" LOC = N11;
NET "LED[4]" LOC = M11;
NET "LED[3]" LOC = V15;
NET "LED[2]" LOC = U15;
NET "LED[1]" LOC = V16;
NET "LED[0]" LOC = U16;
NET "SW[3]" LOC = M8;
NET "SW[1]" LOC = T9;
NET "SW[0]" LOC = T10;
杭电2018计组期末Test chapter 7 CPU Controller
#左移: (rt << shamt)→rd #算术加,得A[i]的地址 #取数: mem(rs +offset)→rt #不相等转移:if (rs≠rt) then PC+4+offset×4→PC # $s0加1,i+1 #无条件跳转:{(PC+4)高4位,addr,0,0}→PC
TEST Chapter 7
Test 1
某高级语言源程序中的语句:
while ( A[i] == k ) i+ = 1
若对其编译时,编译器将i和k分别分配在寄存器$s3和 $s5中,数组A的基址存放在$s6中,则生成的MIPS汇 编代码段如下:
add $s3, $zero, $zero loop: sll $t1, $s3, 2 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, exit addi $s3, $s3, 1 j loop exit: … #左移: R[$t1]=R[$s3]<<2, 即R[$t1]=i×4 #算术加:R[$t1]=R[$t1]+ R[$s6],即R[$t1]=address of A[i] #取数: R[$t0]=M[R[$t1]+ 0], 即R[$t0]=A[i] #不相等转移:R[$t0]≠R[$s5] then goto exit #算术加: R[$s3]=R[$s3]+ 1,即i=i+1 #无条件转移:goto loop
杭电计组实验6-MIPS汇编器与模拟器实验
杭州电子科技大学计算机学院
实验报告
实验项目:
课程名称:计算机组成原理与系统结构课程设计
姓名: 学号:同组姓名:学号:
实验位置(机号):
实验日期: 指导教师:
杭电计组实验7-取指令与指令译码实验
杭州电子科技大学计算机学院
实验报告
实验项目:
课程名称:计算机组成原理与系统结构课程设计
姓名:学号:同组姓名:学号:实验位置(机号):
实验日期:指导教师:
input [7:2]addr;
output [31:0]douta;
rom_d your_instance_name (
.clka(clk), // input clka
.addra(addr[7:2]), // input [5 : 0] addra .douta(douta) // output [31 : 0] douta );
Endmodule
RTL图
二、结果
思考题:
计组实验-CPU组成与机器指令执行
计组实验-CPU组成与机器指令执行
对机器指令系统组成的简单程序进行译码
接线
本实验接线比较多,需仔细
接线表
只要把上表同列的信号用线连接即可,一共接线33条.
接好线后,将编程开关拨到"正常位置",合上电源,按CLR#按钮,使TEC-5实验系统处于初始状态.
(3)存程序代码,设置通用寄存器R0,R1,R2,R3的第一组值及存储器相关单元的数据
本组的寄存器数据是R0=35H, R1=43H, R2=10H, R3=07H.存储器10H 单元的内容为55H.选择这组数据的目的
是执行ADD R1,R0指令时不产生进位C,从而在执行JC R3指令时
不产生跳转,而是顺序执行.
●设置通用寄存器R0,R1,R2,R3的值.
本操作中我们使R0=35H, R1=43H, R2=10H, R3=07H.
1.令DP=0,DB=0,使系统处于连续运行状态.令SWC=0, SWB=1, SWA=1,使系统处于写寄存器状态WRF.按CLR#,使实验
系统处于初始状态.
2.在SW7-SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用.(该存储器地址最好是不常用的一个地
址,以免设置通用寄存器操作破坏重要的存储器单元的内容.)这里我们将该地址设置为0FFH.按一次QD按钮,将
0FFH写入左端口地址寄存器AR.
3.在SW7-SW0上设置00H,作为通用寄存器R0的寄存器号.按一次QD按钮,将00H写入指令寄存器IR.
4.在SW7-SW0上设置35H.按一次QD按钮,将35H写入IR指定的R0寄存器.
5.在SW7-SW0上设置01H,作为通用寄存器R1的寄存器号.按一次QD按钮,将01H写入指令寄存器IR.
综合实验:8位CPU设计与实现
即控制信号共有10个:
◦ ◦ ◦ ◦ ◦ ◦ ALU_IN_SEL、 AluFunc SCI、SST SR、DR、Reg_EN REC /wr PC_EN
表中的I7对应pc_en,I6对应reg_en,I5I4I3对应alu_in_sel, I2I1I0对应alu_func_sel,SR和DR由指令给出
根据指令的执行步骤不同,可以把全部指令分为A、 B两组
◦ A组指令完成的是通用寄存器之间的数据运算或传送,或 其他一些特殊操作,在取指之后可一步完成 ◦ B组指令完成的是一次内存读写操作,在取指之后可两步 完成
A和B组指令节拍控制
以状态机方式实现
本综合实验,拟设计的是无cache无流水的CPU 因此,采用常规的CPU结构,即主要包含 ◦ 运算器 ◦ 控制器
ALU
地址
5 6 7
地址码
R0,R1 R1,6 R1,R2 R2,(R3) 101 R1,R3
R0
10 … 30 31
R1
R2 R3 AR
数据
数据缓冲寄存器
地址总线
PC
指令
地址总线
地址寄存器
程序计数器
状态字寄存器
C1 C2 C3 Cn
C2
时序发生器 操作控制器 OC
指令译码器
控制信号
IR
计组实验报告基础汇编语言程序设计实验
基础汇编语言程序设计实验
【实验目的】
1.了解教学计算机的指令格式、指令编码、选择的寻址方式和每一条指令的具体功能,为
进一步学习运算器组成和控制器设计打好基础。
2.了解汇编语言的语句与机器语言的指令之间的对应关系,了解伪指令在汇编过程中的作
用。
3.学习教学机监控程序的功能、监控命令的使用方法,体会软件系统在计算机组成中的地
位和作用。
【实验内容】
1.学习联机使用TH-UNION+教学实验系统和仿真终端软件PCEC.
2.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储
器内容。
3.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,
用T、P命令单步运行并观察程序单步执行情况;
【实验内容】
1.用R命令查看寄存器内容或修改寄存器的内容
1)在命令行提示符状态下输入:
R↙;显示寄存器的内容
注:寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:
R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空
格,也可有一个或数个空格
2.用D命令显示存储器内容
在命令行提示符状态下输入:
D 2000↙
3. 用E命令修改存储器内容
在命令行提示符状态下输入:
E 2000↙
4.用D命令显示这几个单元的内容
D 2000↙
可以看到这六个地址单元的内容变为0000 1111 2222 3333 4444 5555。
5. 用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程
序并观察运行结果。
1)在命令行提示符状态下输入:
计组实验报告
计算机组成原理实验报告
实验一寄存器组成实验
一、实验目的
(1)熟悉D触发器的功能及使用方法。
(2)掌握寄存器文件的逻辑组成及使用方法。
二、实验内容
(1)掌握Quartus II的使用方法,能够进行数字电路的设计及仿真。
(2)验证Quartus II所提供D触发器的功能及使用方法。
(3)设计具有1个读端口、1个写端口的寄存器文件,并进行存取操作仿真/验证。
三、实验原理及方案
Quartus II提供了多种类型的触发器模块,如D触发器、T触发器等。固定特性的触发器模块有不同的型号,参数化的触发器模块有lpm_ff、lpm_dff、lpm_tff等。D触发器常来构建寄存器。本次实验我们用Quartus II中提供的8为D触发器模块,实现了一个8×8bits 的寄存器组,因此,操作地址均为3位,数据均为8位。由于要求读写端口分离,因此,读操作的相关引脚有地址raddr[2..0]、数据输出q[7..0],写操作的相关引脚有地址waddr[2..0]、数据输入data[7..0]、写使能wen。其中,省略读使能信号可以简化控制,即数据输出不受限制。
寄存器文件通过写地址waddr[2..0]、写使能wen信号来实现触发器的写入控制,通过读地址raddr[2..0]信号来控制触发器的数据输出选择。其连接电路原理如图所示。
寄存器文件的组成
则由此,可在Quartus II中连接原理图:
四、实验结果
仿真波形如下:
五、小结
通过此次实验,我们学会了Quartus II的原理图的构造方法,以及仿真方法,并且使用lpm_dff作为三态门,控制数据的输入,并且在输出时,用lpm_mux选择每个寄存器的数据输出。