计算机组成原理 取指令过程,杭电计算机组成原理取指令与指令译码实验7.doc

杭州电子科技大学计算机学院

实验报告

课程名称:计算机组成原理

实验项目:取指令与指令译码实验

指导教师:

实验位置:

姓 名

班 级

学 号:

日 期:

实验目的

学习指令存储器的设计

掌握CPU取指令与指令译码的方法和过程

实验环境

ISE Design Suite 14.6

Digilent Adept

Nexys3实验板

实验内容(算法、程序、步骤和方法)

本实验的目的,设计一个只读储存器作为指令储存器,用来单独储存程序.包括

指令存储器

程序计数器PC

PC自增加法器

指令译码器

本实验,取指令操作:根据PC内容到指令储存器中取出指令,然后PC自增,必须在下一个周期开始时赋值给PC,指定的一个中间PC_new,除此之外还有个rest重新开始的信号.存储器的设计和实验五的类似的按照方法设计.

顶层模块

module Test_Fetch_Inst(

input rst,

input clk,

input [1:0]C,

output reg [7:0]LED

);

wire [31:0]Inst_code;

Fetch_Inst test(rst,clk,Inst_code);

always@(*)

begin

case(C)

2'b00:LED=Inst_code[7:0];

2'b01:LED=Inst_code[15:8];

2'b10:LED=Inst_code[23:16];

2'b11:LED=Inst_code[31:24];

endcase

end

endmodule

指令的提取模块

module Fetch_Inst(

input rst,

input clk,

output [31:0]Inst_code

);

wire [31:0]PC_new;

reg [31:0]PC;

initial

PC=32'

Inst_addr Inst_mem(

.clka(clk),

.addra(PC[7:2]),

.douta(Inst_code)

);

assign PC_new=PC+4;

always@(posedge rst or negedge clk)

begin

if(rst)

PC=32'

else

PC={24'h000000,PC_new[7:0]};

end

endmodule

(接上)

实验内容(算法、程序、步骤和方法)

管脚配置

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灯上显示出来.

试验心得与小结

本实验,对于寄存器的限制,增加了一些功能,基本上和之前的实验差别不大,能够很快的理解.比如Memory IP核的知识都是直接可以利用前面实验类似的操作的,直接使用其创造的模板就好了。这些都是前面的知识。

指导教师

评议

成绩评定: 指导教师签名:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值