杭电计组实验四

上传人:飞****9 文档编号:127671024 上传时间:2020-04-04 格式:DOC 页数:8 大小:174KB
返回 下载 相关 举报
杭电计组实验四_第1页
第1页 / 共8页
杭电计组实验四_第2页
第2页 / 共8页
杭电计组实验四_第3页
第3页 / 共8页
杭电计组实验四_第4页
第4页 / 共8页
杭电计组实验四_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《杭电计组实验四》由会员分享,可在线阅读,更多相关《杭电计组实验四(8页珍藏版)》请在金锄头文库上搜索。

1、实验报告 2016 年 4 月 22 日 成绩: 姓名学号班级14083612专业信息安全课程名称计算机组成原理课程设计任课老师曾虹指导老师曾虹机位号实验序号实验名称寄存器堆实验时间2016.4.22实验地点1教南实验设备号一、实验程序源代码module Reg(LED,RW_SW,AB,Reg_Addr_A,Reg_Addr_B,Write_Reg,clk,rst); input4:0 Reg_Addr_A,Reg_Addr_B;input Write_Reg;input1:0 RW_SW;input clk;input rst;output7:0 LED;input AB;reg31:0R

2、EG_File0:31; reg7:0 LED;wire31:0 W_Data1 = 32h00000001; wire31:0 W_Data2 = 32h0000000A; wire31:0 W_Data3 = 32h00000006; wire31:0 W_Data4 = 32h00000003; wire31:0 A = REG_FileReg_Addr_A;wire31:0 B = REG_FileReg_Addr_B;integer i; always (posedge clk or posedge rst)begin if(AB) case(RW_SW) 2b00 : LED=A7

3、:0; 2b01 : LED=A15:8; 2b10 : LED=A23:16; 2b11 : LED=A31:24; default : LED=A7:0; endcaseelse case(RW_SW) 2b00 : LED = B7:0; 2b01 : LED = B15:8; 2b10 : LED = B23:16; 2b11 : LED = B31:24; default : LED = B7:0; endcase if(rst) for(i = 0; i 32; i = i + 1) REG_Filei = 0; else begin if(Write_Reg) begin if(

4、AB) case(RW_SW) 2b00 : REG_FileReg_Addr_A=W_Data1; 2b01 : REG_FileReg_Addr_A=W_Data2; 2b10 : REG_FileReg_Addr_A=W_Data3; 2b11 : REG_FileReg_Addr_A=W_Data4; endcase else case(RW_SW) 2b00 : REG_FileReg_Addr_B=W_Data1; 2b01 : REG_FileReg_Addr_B=W_Data2; 2b10 : REG_FileReg_Addr_B=W_Data3; 2b11 : REG_Fil

5、eReg_Addr_B=W_Data4; endcase end end end endmodule二、仿真波形三、电路图四、引脚配置(约束文件)NET Add4 LOC = T5;NET Add3 LOC = V8;NET Add2 LOC = U8;NET Add1 LOC = N8;NET Add0 LOC = M8;NET WR LOC = V9;NET C1 LOC = T9;NET C0 LOC = T10;NET clk LOC = C9;NET RS LOC = D9;NET AB LOC = A8;NET LED7 LOC = T11;NET LED6 LOC = R11;N

6、ET LED5 LOC = N11;NET LED4 LOC = M11;NET LED3 LOC = V15;NET LED2 LOC = U15;NET LED1 LOC = V16;NET LED0 LOC = U16;五、思考与探索寄存器地址写入数据读出数据$000000000_00000000_0000$000010000_00030000_0003$000117FFF_FFFF7FFF_FFFF$001117FFF_FFFF7FFF_FFFF$011110000_00000000_0000$111110000_00030000_0003$100007FFF_FFFF7FFF_FFF

7、F$110007FFF_FFFF7FFF_FFFF修改后的寄存器模块:time scale 1ns/1psMoudle Register(R_Addr_A,R_Addr_B,R_Data_A,R_Data_B,W_Addr,W_Data,Write_Reg,Clk,Reset);input 4:0 R_Addr_A;input 4:0 R_Addr_B;input 4:0 W_Addr;input 31:0 W_Data;input Write_Reg;input Clk;input Reset;output 31:0 R_Data_A;output 31:0 R_Data_B;integer

8、 i;reg31:0 REG_Files31:0;/定义寄存器assign R_Data_A=REG_FilesR_Addr_A;assign R_Data_B=REG_FilesR_Addr_B;always (posedge Clk or posedge Reset)beginif(Reset)/清零beginfor(i=0;i32;i+)REG_Filesi=0;endelsebeginif(Write_Reg&(W_Addr!=0)beginREG_FilesW_Addr=W_Data;endendendEndmoudle(3)、读操作是时钟的下降沿时候执行的,写操作是时钟上升沿执行的(4)、通过实验深入理解了寄存器的工作过程,32位数据的显示,参考上次实验的分组显示法,将32位分为4组,每组8位。这次在写配置文件时,特意关注了引脚顺序。清零信号与clk时钟信号在需要清零时,同时按住才会将清零信号输入进去。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 中学实验

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号