杭电计组实验7-取指令与指令译码实验

合集下载

杭电嵌入式实验报告

杭电嵌入式实验报告

杭电嵌入式实验报告嵌入式系统实验一 Linux的安装、Shell命令以及X 窗口系统的使用一、实验目的:1.掌握Linux的安装2.熟练使用Linux字符界面的常用命令3.熟练运用Linux的在线求助系统4.练习X 窗口系统中常用的应用工具二、实验内容:1.Linux 的安装2.一般用户命令的使用3.vi编辑器的使用4.man 在线帮助系统三、实验指导与步骤:VMWare虚拟机上安装好Linux登录系统:$login: 用户名password: 不回显的密码退出系统:$logout, exit (注销登录)$halt (关机)$reboot (重新启动)$init 0 (以runlevel 0 启动及重新启动)1. 练习Linux的常用命令主要包括:文件处理命令、文件权限管理命令、文件查找命令、磁盘管理命令、程序管理命令、显示文本文件与字符串查找命令、压缩与解压缩命令等;2. 练习vi编辑器的使用,试试X 窗口系统的Gedit文件编辑器。

GNOME gedit 文本编辑器与Windows 的notepad文本编辑器功能相似,快捷键也大部分相同,又有Windows 的wordpad写字板的风格,比之notepad 和wordpad,gedit 功能更全面,操作更便利。

3.熟练掌握man 在线帮助系统,开发和编程离不开在线帮助系统。

man命令可以号称为“命令杀手”。

任何命令或重要文件都可以使用man来查询使用方法,这也是Linux最可爱之处和最完整的在线查询系统。

当遇到任何疑难杂症时,稍微“man”一下就可轻松解决问题。

Redhat Linux的X窗口系统还有更方便的在线帮助系统,只要打开“开始”菜单就能看到Redhat Linux的在线帮助系统。

Redhat Linux 的在线帮助系统与Microsoft Windows的在线帮助系统一样简单易用,甚至更胜一筹。

4.X 窗口系统下的常见应用工具有文件管理器,磁盘管理器(文件系统挂接工具),设备(硬件)管理器,控制中心,网络配置工具,服务器配置工具,软件包安装卸载工具,还有集成开发环境,DDD调试器等,这些工具都容易上手。

实验五_CPU__指令译码器实验

实验五_CPU__指令译码器实验

实验五_CPU__指令译码器实验5 CPU指令译码器实验 ..................................................................... ......................................... 2 5.1实验目的 ..................................................................... .. (2)5.2实验原理 ..................................................................... .. (2)5.3实验要求 ..................................................................... (3)1、实验设计目标 ..................................................................... . (3)2、顶层设计实体的引脚要求 ..................................................................... .................... 4 5.4实验步骤 ..................................................................... .. (4)5.5思考题 ..................................................................... (8)5 CPU指令译码器实验5.1实验目的(1)理解指令译码器的作用和重要性(2)学习设计指令译码器5.2实验原理指令译码器是计算机控制器中最重要的部分。

杭电计算机组成原理寄存器堆设计实验

杭电计算机组成原理寄存器堆设计实验

杭电计算机组成原理寄存器堆设计实验计算机组成原理是计算机科学与技术的基础课程之一,它涉及到计算机的基本组成部分和原理。

在这门课程中,学生通常需要进行一系列的实验来加深对计算机组成原理的理解和应用。

其中之一是关于寄存器堆的设计实验。

寄存器堆是计算机中重要的组成部分之一,它用于存储、读取和写入数据。

在计算机中,数据通常被存储在寄存器中,然后进行各种操作。

因此,设计一个高效可靠的寄存器堆对于计算机的性能至关重要。

根据实验要求,我们需要设计一个8位的寄存器堆,并实现读取、写入和清零等操作。

以下是针对该实验的设计思路和实施步骤。

首先,我们需要确定寄存器堆的结构。

由于该寄存器堆为8位宽度,我们选择使用一个8x8的存储单元阵列。

每个存储单元都可以存储一个8位的数据。

整个寄存器堆由8个存储单元组成,每个存储单元对应一个地址,即0~7接下来,我们需要设计寄存器堆的读写电路。

对于读操作,我们需要通过地址线来选择要读取的存储单元,并将其输出到数据线。

对于写操作,我们同样需要通过地址线来选择要写入的存储单元,并将数据线上的数据写入该存储单元。

为了实现这些操作,我们需要使用多路选择器和数据解码器。

在设计中,我们还需要考虑到时钟信号的输入,以确保读写操作在时钟的上升沿或下降沿进行。

此外,我们还需要添加清零功能,以便将寄存器堆的值重置为零。

为实现清零功能,我们可以将一个额外的输入线与所有存储单元的清零输入连接。

在实施阶段,我们需要使用Verilog或其他硬件描述语言来实现设计。

在代码中,我们首先声明一个8位宽的存储单元阵列作为寄存器堆的基本组成部分。

然后,我们定义读写电路,包括地址线、数据线、多路选择器和数据解码器。

最后,我们添加时钟信号和清零功能。

在完成设计后,我们可以通过仿真工具进行验证。

通过输入不同的数据和地址,观察输出结果是否符合预期。

如果存在问题,我们可以进行调试并进行必要的修改。

一旦仿真结果正确无误,我们就可以开始进行硬件实验了。

CPU指令译码器

CPU指令译码器

计算机组成原理实验报告题目:CPU 指令译码器实验学院数学与信息科学学院学科门类工学专业 12软件工程学号 2012436138姓名王赛赛指导教师王兵2014年12月28号CPU 指令译码器实验一.实验目的(1)理解指令译码器的作用和重要性(2)学习设计指令译码器二.实验原理指令译码器是计算机控制器中最重要的部分。

所谓组合逻辑控制器就是指令译码器电路是由组合逻辑实现的。

组合逻辑控制器又称硬连线控制器,是设计计算机中的一种方法。

这种控制器中的控制信号直接由各种类型的逻辑门和触发器构成。

这样,一旦控制器部件构成后,除非重新设计和物理上对它重新连线,否则的话,要想增加新的功能是不可能的。

结构上的这种缺陷使得硬连线控制器的设计和调试变得非常复杂而且代价很大。

所以硬连线控制器曾一度被微程序控制器所取代。

但是随着新一代机器及VLSI技术的发展,这种控制器又得到了广泛重视,如RISC机广泛使用这种控制器。

下图是组合逻辑控制器的结构方框图。

逻辑网络的输入信号来源有3个:①指令操作译码器的输出In;②来自时序发生器的节拍电位信号Tk;③来自执行部件的反馈信号Bj。

逻辑网络的输出信号就是微操作控制信号,用来对执行部件进行控制。

组合逻辑控制器的结构方框图显然,组合逻辑控制器的基本原理可描述为:某一微操作信号Cm是指令操作译码器的输出In、时序信号(节拍电位信号Tk)和状态条件信号Bj的逻辑函数。

即 Cm=f(In,Tk,Bj)用这种方法设计控制器,需要根据每条指令的要求,让节拍电位和时序脉冲有步骤地去控制器的各有关部分,一步一步地执行指令所规定的微操作,从而在一个指令周期内完成一条指令所规定的全部操作。

一般来说,组合逻辑控制器的设计步骤如下。

(1)绘制指令流程图为了确定指令执行过程所需的基本步骤,通常是以指令为线索,按指令类型分类,将每条指令归纳成若干微操作,然后根据操作的先后次序画出流程图。

(2)安排指令操作时间表指令流程图的进一步具体化,把每一条指令的微操作序列分配到各个机器周期的各个时序节拍信号上。

杭电单片机实验报告

杭电单片机实验报告

单片机技术与应用实验报告实验名称:单片机技术与应用实验班级: 10062813 学号: 10061314 姓名:陆维俊指导老师:朱胜利实验一 P1口、P3口输入输出实验一.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二.实验代码P1口输出程序ORG 0000HAJMP MAINORG 0100HMAIN: MOV A,#0FEH LOOP1: MOV P1,AACALL DELAYRL ACJNE A,#0FEH,LOOP1AJMP MAIN DELAY: MOV R7,#10H DELAY0: MOV R6,#7FH DELAY1: MOV R5,#7FH DELAY2: DJNZ R5,DELAY2DJNZ R6,DELAY1DJNZ R7,DELAY0RETEND P1口输入程序ORG 0000HAJMP MAINORG 0100HMAIN: MOV P1,#0FFHMOV A,p1MOV DPTR,#0F200HMOVX @DPTR,AAJMP MAINEND三.实验说明1.P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS 管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对于程序 DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知 MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS四.心得体会这次实验让我了解了P1口和P3口作为普通I/O口的使用方法,并通过编程将P1口作为输入输出口进行简单的发光二极管的点亮和开关状态的读取,这在单片机学习中是及为基础的练习。

杭电自动化专业计算机控制系统实验报告

杭电自动化专业计算机控制系统实验报告

实验一、常规PID控制算法仿真仿真框图如下实验参数:shiyanpid Ts=0.1s,b为班号1~5,x为学号后2位,1~45实验要求:(1)画Simulinnk框图(2)设计或凑试PID三个参数,进行仿真(3)使稳态误差为0,且动态性能较满意仿真框图:实验分析:b=1,x=15。

比例系数Kp增大时系统动作灵敏,响应速度加快,过大会使振荡次数增加,系统趋向不稳定,这里取120。

积分环节可以消除稳态误差,Ti减小,系统振荡次数增加,这里取Ki为150。

微分环节可以改善系统动态性能,减小超调和调节时间,这里取Kd为10。

系统在2秒内达到稳态。

实验二、积分分离PID控制算法仿真实验参数:shiyanpidjffl Ts=0.1s,b为班号1~5,x为学号后2位,1~45实验要求:(1)画Simulinnk框图(2)使稳态误差为0,且动态性能较满意(3)尝试不同的积分分离的阈值(比如ε=0,0.1,0.2,……,0.9,1),观察阶跃响应,并确定最佳的阈值实验框图:翻译后Switch模块的说明:如果2输入满足规则,则1通道通过,否则3输入通过。

输入被标号。

1输入通过规则是输入2(偏差e)大于或等于阀值。

第一三输入为数据输入,第二输入为控制输入。

原理:|e(k)|<=ε,ki起作用|e(k)|>ε,ki不起作用,由于阶跃输入,(treshhold )ε=0.1,0.2,……,0.9,1。

由于参数原因去kp=50,ki=kd=0时,曲线最好为了体现ε的作用,积分值不取0,改为Ki=10取不同ε后的曲线ε=0.1ε=0.5ε=1分析:ε=0.1时曲线最好,ε过大起不到积分分离的作用,比如ε=1,总会存在积分作用,ε过小可能是控制不能跳出积分分离的区域,从而只存在PD作用,长时间存在静差。

实验三、不完全微分PID控制算法仿真1、不完全微分PID控制器的阶跃响应实验参数:Shiyanpidbwqwfstep Ts=0.1s,仿真时间设为10s,5s,3s P=1 I=1 D=1滤波器参数a=0.1,0.2,……,0.8,1.2,实验框图:框图1:积分输出:微分输出:可见微分只在第一个单位时间有相应,而且较大框图2:a=0.1时a=0.5时:a=1时:分析:引入惯性环节后,对微分环节对阶跃响应有明显的改善作用。

杭电计算机组成原理多功能ALU设计实验

杭电计算机组成原理多功能ALU设计实验
指导教师
评议
成绩评定: 指导教师签名:
(7)记录测试结果。
(接上)
实验内容(算法、程序、步骤和方法)
(1)ALU模块代码,利用三八译码器,将我们将要操作的对象,进行分别的处理。
module ALU_TOP(A,B,F,ZF,OF,ALU_OP);
input [31:0] A,B;
input [2:0] ALU_OP;
output ZF,OF;
3'b010:begin CF=A^B; end
3'b011:begin CF=A~^B; end
3'b100:begin CF=A+B; end
3'b101:begin CF=A-B; end
3'b110:begin CF=(A<B); end
3'b111:begin CF=B<<A; end
endcase
end
endmodule
(3)输出数据选择模块代码,根据实验指导书上的对于32位数据的处理方式。
module CLED(F_LED_SW,LED,F,ZF,OF);
input [31:0] F;
input ZF,OF;
input [2:0] F_LED_SW;
output [7:0] LED;
reg [7:0] LED;
output [31:0] F;
reg [31:0] F;
reg ZF,OF;
reg [5:0] i;
reg C;
reg [32:0] CF;
always @ (ALU_OP or A or B)
begin
case(ALU_OP)

杭电计算机组成原理A卷

杭电计算机组成原理A卷
二、计算填空题(20分,每空1分)
1、在CPU执行的一段时间内,Cache完成存取的次数为3900次,主存完成的存取次数为100次,已知Cache的存储周期为15ns,主存的存储周期为75ns。则Cache的命中率为(1),Cache/主存系统的平均访问时间为(2)ns,Cache/主存系统的效率为(3)。
RD(2位)
ADDR/ DATA / DISP
其中,RD为源/目的寄存器号,MOD为寻址方式码字段,指令第二字为地址、数据或偏移量;源操作数由MOD字段和指令第二字共同确定。除了HALT指令为单字指令外,其他指令均为双字指令;操作码字段解释见表1-1,MOD字段解释见表1-2,RD字段解释见表1-3。
表1-1
指令助记符
操作码
指令助记符
操作码
MOV
0000
SBB
0100
ADD
0001
JMP
1000
SUB
0010
……
……
AND
0011
HALT
1111
表1-2表1-3
MOD
寻址方式
RD
寄存器
00
立即寻址
00
R0
01
直接寻址
01
R1
10
变址寻址(SI)
10
R2
11
间接寻址
11
R3
1指令ADDR1,((40H))的功能:R1 = ((40H))+R1;指令使用间接寻址,则该指令机器码第一字节为(9)H,第二字节为(10)H。
杭州电子科技大学学生考试卷(A)卷
考试课程
计算机组成原理(甲)
考试日期
成 绩
课程号
教师号
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
杭州电子科技大学计算机学院
实验报告
实验项目:
课程名称:计算机组成原理与系统结构课程设计
姓名:学号:同组姓名:学号:
实验位置(机号):
实验日期:指导教师:
实验内容(算法、程序、步骤和方法)
一、实验目的
(1)学习指令存储器的设计
(2)掌握CPU取指令操作与译码的方法和过程
二、实验仪器
ISE工具
三、步骤、方法
01075822
01075822
00000030h
012c6824
012c6824
00000034h
012c7025
012c7025
00000038h
00c77825
078027
取出的指令代码和指令存储器关联文件中的指令代码一致。
(2)
复位后第一次按动clk按钮读出的是第0号单元指令。
begin
if(reset) begin PC<=32'H00000000;end
else begin PC<=PC_new;end
end
endmodule
2、ROM模块的调用代码
module rom(clk,addr,douta);
input clk;
input [7:2]addr;
output [31:0]douta;
input clk;
output wire [31:0]inst_code;
input reset;
output reg[31:0]PC;
output [31:0]PC_new;
assign PC_new=PC+4;
rom FA0(clk,PC[7:2],inst_code);
always@(posedge clk or posedge reset)
成绩:指导教师签名:
实验体会
学习了指令存储器的设计。
通过Memory IP核生成一个只读存储器作为指令存储器并给去指令模块调用,设计实现了一个能够依次读出指令存储器指令代码的去指令模块。能够将实验正确地仿真以及下到板上验证,正确显示。
掌握CPU去指令操作与指令译码的方法和过程。。
指导教师评议
实验步骤写的时候,最好自己按照所做步骤写,二人不要一模一样。
4、综上所述,在本实验中,取指令操作是:根据PC的内容到指令存储器中取指令,然后PC+4=PC。在执行指令期间,因为要保持从指令存储器中取出的指令不变,那么也就要求PC的内容不变,因此PC+4的值必须在下个指令周期开始时赋值给PC。
操作过程及结果
一,操作过程
实验过程和描述:
1、PC模块的代码
module pc(inst_code,clk,reset,PC,PC_new);
实验过程和描述:
1、指令存储器:是只读存储器,只提供读权限,数据通路不能改写指令。在任意时刻,指令存储器都是依据指令的地址来啊读取其中的指令代码,不需要读控制信号。
2、程序计数器PC:是CPU的重要寄存器,存放32位的指令地址,提供存储器来执行取指令的操作。
3、PC自增加法器:用于完成PC的自增操作。CPU每次根据PC从指令存储器取出一条指令后,就应该将PC指向下一条指令。
00a33020
00a33020
00000018h
00463804
00463804
0000001Ch
00a64820
00a64820
00000020h
01264004
01264004
00000024h
00284826
00284826
00000028h
01215020
01215020
0000002Ch
(1)
PC地址
读出指令代码
关联文件中指令代码
00000000h
00000827
00000827
00000004h
0001102b
0001102b
00000008h
00421820
00421820
0000000Ch
00622020
00622020
00000010h
00832820
00832820
00000014h
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图
二、结果
思考题:
相关文档
最新文档