计算机组成实验寄存器堆设计,杭电计组实验4-寄存器堆设计实验

《杭电计组实验4-寄存器堆设计实验》由会员分享,可在线阅读,更多相关《杭电计组实验4-寄存器堆设计实验(9页珍藏版)》请在人人文库网上搜索。

1、实验报告2018 年 5 月 12 日 成绩: 姓名阳光男学号班级专业计算机科学与技术课程名称计算机组成原理与系统结构试验任课老师张翔老师指导老师张翔老师机位号默认实验序号4实验名称实验四 寄存器堆设计实验时间2018/5/12实验地点1教211实验设备号个人电脑、Nexys3开发板一、实验程序源代码1.寄存器堆模块代码:module Register_file(R_Addr_A,R_Addr_B,W_Addr,Write_Reg,W_Data,Clk,Reset,R_Data_A,R_Data_B);input 4:0R_Addr_A;input 4:0R_Addr_B;input 4:0W。

2、_Addr;input Write_Reg;input 31:0W_Data;input Clk;input Reset;output 31:0R_Data_A;output 31:0R_Data_B;reg 31:0REG_Files0:31;reg 5:0i;initial/仿真过程中的初始化beginfor(i=0;i=31;i=i+1)REG_Filesi=0;endassign R_Data_A=REG_FilesR_Addr_A;assign R_Data_B=REG_FilesR_Addr_B;always(posedge Clk or posedge Reset)beginif。

3、(Reset)for(i=0;i=31;i=i+1)REG_Filesi=0;else if(Write_Reg&W_Addr!=0)REG_FilesW_Addr=W_Data;endendmodule2.顶层电路模块代码:module Top_Register_file(Addr,Write_Reg,C1,C2,Clk,Reset,LED);input 4:0Addr;input 1:0C1;/C1选择32位数据输出哪八位字节input Write_Reg,C2,Clk,Reset;/C2选择读A/B端口的数据output reg 7:0LED;wire 31:0R_Data_A,R_Da。

4、ta_B;reg 31:0W_Data;reg4:0 A,B;Register_file reg1(A,B,Addr,Write_Reg,W_Data,Clk,Reset,R_Data_A,R_Data_B);always(Addr or Write_Reg or C1 or C2 or R_Data_A or R_Data_B)beginA=0;B=0;LED=0;W_Data=0;if(!Write_Reg)/读操作Write_Reg=0beginif(!C2)beginA=Addr;case(C1)2b00:LED=R_Data_A7:0;2b01:LED=R_Data_A15:8;2b。

5、10:LED=R_Data_A23:16;2b11:LED=R_Data_A31:24;endcaseendelsebeginB=Addr;case(C1)2b00:LED=R_Data_B7:0;2b01:LED=R_Data_B15:8;2b10:LED=R_Data_B23:16;2b11:LED=R_Data_B31:24;endcaseendendelse/写操作begincase(C1)2b00:W_Data=32h0000_0003;2b01:W_Data=32h0000_0607;2b10:W_Data=32hFFFF_FFFF;2b11:W_Data=32h1111_1234。

6、;endcaseendendendmodule3.测试代码module test;/ Inputsreg 4:0 R_Addr_A;reg 4:0 R_Addr_B;reg 4:0 W_Addr;reg Write_Reg;reg 31:0 W_Data;reg Clk;reg Reset;/ Outputswire 31:0 R_Data_A;wire 31:0 R_Data_B;/ Instantiate the Unit Under Test (UUT)Register_file uut (.R_Addr_A(R_Addr_A), .R_Addr_B(R_Addr_B), .W_Addr。

7、(W_Addr), .Write_Reg(Write_Reg), .W_Data(W_Data), .Clk(Clk), .Reset(Reset), .R_Data_A(R_Data_A), .R_Data_B(R_Data_B);initial begin/ Initialize InputsR_Addr_A = 0;R_Addr_B = 0;W_Addr = 0;Write_Reg = 0;W_Data = 0;Clk = 0;Reset = 0;/ Wait 100 ns for global reset to finish#100;/ Add stimulus here#100;R_。

8、Addr_A = 0;R_Addr_B = 0;W_Addr = 5b00001;Write_Reg = 1;W_Data = 32h1111_1111;Clk = 1;Reset = 0;#100;R_Addr_A = 0;R_Addr_B = 0;W_Addr = 5b00001;Write_Reg = 1;W_Data = 32h1111_1111;Clk = 0;Reset = 0;#100;R_Addr_A = 0;R_Addr_B = 0;W_Addr = 5b00010;Write_Reg = 1;W_Data = 32h2222_2222;Clk = 1;Reset = 0;#。

9、100;R_Addr_A = 5b00001;R_Addr_B = 5b00010;W_Addr = 0;Write_Reg = 0;W_Data = 0;Clk = 0;Reset = 0;#100;R_Addr_A = 5b00001;R_Addr_B = 5b00010;W_Addr = 0;Write_Reg = 0;W_Data = 0;Clk = 0;Reset = 1;endendmodule二、仿真波形三、电路图顶层电路模块顶层电路内部结构:四、引脚配置(约束文件)NET Clk LOC = C9;NET Reset LOC = D9;NET Write_Reg LOC = T。

10、5;NET C2 LOC = C4;# PlanAhead Generated physical constraints NET LED7 LOC = T11;NET LED6 LOC = R11;NET LED4 LOC = M11;NET LED3 LOC = V15;NET LED1 LOC = V16;NET LED0 LOC = U16;NET LED2 LOC = U15;NET LED5 LOC = N11;NET Addr0 LOC = T10;NET Addr2 LOC = V9;NET Addr3 LOC = M8;NET Addr4 LOC = N8;NET C10 LO。

11、C = U8;NET C11 LOC = V8;NET Addr1 LOC = T9;五、思考与探索(1)实验四实验结果记录表寄存器地址 写入数据 读出数据$1 32h0000_0003 32h0000_0003$2 32h0000_0607 32h0000_0607$3 32hFFFF_FFFF 32hFFFF_FFFF$4 32h1111_1234 32h1111_1234$5 32h0000_0003 32h0000_0003$6 32h0000_0607 32h0000_0607$7 32hFFFF_FFFF 32hFFFF_FFFF$8 32h1111_1234 32h1111_1234。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值