当前位置:文档之家› 杭电计组实验7-取指令与指令译码实验

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

杭州电子科技大学计算机学院
实验报告
实验项目:
课程名称:计算机组成原理与系统结构课程设计
姓名:学号:同组姓名:学号:
实验位置(机号):
实验日期:指导教师:
实验内容(算法、程序、步骤和方法)
一、实验目的
(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图
二、结果
思考题:
相关主题