《计算机组成原理》实验报告-程序计数器

《计算机组成原理》实验报告-程序计数器


2024年3月13日发(作者:)

南通大学信息科学技术学院

《计算机组成实验》

实验报告

实验名称

班级

学生姓名

指导教师

日 期

谢焘

程序计数器的设计与实现

物联网工程192

学号

**********

实验1 程序计数器的设计

一、实验目的

1.熟悉Vivado软件的使用方法。

2.熟悉寄程序计数器的功能。

3.掌握自顶而下的硬件模块设计方法。

4.掌握电路仿真测试方法,掌握仿真激励文件的编写,掌握仿真输出的分析方法。

二、实验任务

设计一个程序计数器,能够给出指令在指令储存器中的地址。

三、实验预习

(1)实验电路原理及信号说明

程序计数器用于给出指令在指令储存器中的地址。

实现思路:

为实现稳定输出,在时钟信号的上升沿更新,而且需要一个控制信号,在控制信号为0的时候

初始化PC寄存器,即全部置零。

引脚及控制信号

Clk:时钟周期,输入信号

Reset:控制信号,输入信号

Result目标地址,可能是跳转地址或者是下一条指令的地址,输入信号

Addr:指令地址,输出信号

(2)实验电路设计

利用

Verilog HDL描述该电路,设计代码如下:

module PC(Clk,Reset,Result,Address);

input Clk;//时钟

input Reset;//是否重置地址。0-初始化PC,否则接受新地址

input[31:0] Result;

output reg[31:0] Address;

initial begin

Address <= 0;

end

always @(posedge Clk or negedge Reset)

begin

if (Reset==0) //如果为0则初始化PC,否则接受新地址

begin

Address <= 0;

end

else

begin

Address = Result;

end

end

endmodule

RTL视图如下:

四、实验过程、数据记录与结果分析

1.仿真测试文件:

module PC_Sim();

// PC Inputs

reg Clk = 0 ;

reg Reset = 0 ;

reg [31:0] Result = 0 ;

// PC Outputs

wire [31:0] Address ;

PC inst_PC (

.Clk (Clk),

.Reset (Reset),

.Result (Result),

.Address (Address)

);

initial

begin

Result=0;

Reset=0;

#50;

end

always

#10 Clk=~Clk;

always

#20 Reset=~Reset;

always #10 Result=Result+4;

endmodule

2.仿真测试波形:

3.仿真测试结果分析

Clk作为时钟信号,每10ns跳变一次。

Reset作为控制信号,只有为1才会根据Result给出指令地址,为0时初始化,输出为0;

Result每次+4,即为指令的长度。

五、实验体会与小结

本次实验设计并实现了程序计数器,本实验所设计的程序计数器是利用Vivado软件进行设计的,

电路经仿真测试,验证通过。通过分析验证结果,可知该实验电路的功能完全满足设计要求。

通过本次实验,使我熟悉了Vivado软件的使用方法,掌握了利用Vivado这样的EDA工具进行硬

件系统设计的基本方法和操作步骤,为今后的学习打下了良好的基础。实验中,用到了理论课上学到

的波形图分析的知识,使我进一步理解了这一理论知识,并在实践过程中得以运用。


发布者:admin,转转请注明出处:http://www.yc00.com/news/1710296071a1732699.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信