已开源在GitHub上,欢迎各位大佬给Star

仓库地址

实验内容

1. 学习使用Verilog HDL 进行时序电路的设计方法
2. 掌握灵活运用Verilog HDL进行各种描述与建模的技巧和方法
3. 学习寄存器堆的数据传送与读/写工作原理,掌握寄存器堆的设计方法

解决方法

1. 分析一个32x32位的寄存器堆,即含有32个寄存器,每个寄存器32位。该寄存器堆有2个读端口、1个写端口,即能够同时读出2个寄存器的值,写入1个寄存器
2. 首先,分析出两个端口读入是5位的地址,读出的数据是32位的两个,该寄存器堆只有一个写端口,还要配合控制信号Write_Reg,且写操作是边沿触发的,所有写入操作的输入信号必须在时钟边沿来临时已经有效
3. 寄存器堆的读操作和写操作的地址译码,只需引用寄存器地址作为数组的下标即可;读只需要组合逻辑,给出寄存器地址,读出数据
4. 代码展示:
顶层模块(需要数据输入在板子上操作):

module RegisterFile(Addr,Write_Reg,Opt,Clk,Reset,A_B,LED);
input [1:0]Opt;
input [4:0]Addr;
input Write_Reg,Clk,Reset,A_B;
output reg [7:0]LED;
wire [31:0]R_Data_A,R_Data_B;
reg [4:0]R_Addr_A,R_Addr_B;
reg [31:0]W_Data;
initialLED <= 0;
Fourth_experiment_first F1(R_Addr_A,R_Addr_B,Write_Reg,R_Data_A,R_Data_B,Reset,Clk,Addr,W_Data);
always@(Addr or Write_Reg or Opt or A_B or R_Data_A or R_Data_B)beginif(Write_Reg)begincase(Opt)2'b00: begin W_Data=32'h000f_000f;  end2'b01: begin W_Data=32'h0f0f_0f00;  end2'b10: begin W_Data=32'hf0f0_f0f0;  end 2'b11: begin W_Data=32'hffff_ffff;  endendcaseendelseif(A_B)beginR_Addr_A=Addr;case(Opt)2'b00: LED=R_Data_A[7:0];2'b01: LED=R_Data_A[15:8];2'b10: LED=R_Data_A[23:16];2'b11: LED=R_Data_A[31:24];endcaseendelsebeginR_Addr_B=Addr;case(Opt)2'b00: LED=R_Data_B[7:0];2'b01: LED=R_Data_B[15:8];2'b10: LED=R_Data_B[23:16];2'b11: LED=R_Data_B[31:24];endcaseendend
endmodule

寄存器堆实现的Fourth_experiment_first模块

module Fourth_experiment_first(R_Addr_A,R_Addr_B,Write_Reg,R_Data_A,R_Data_B,Reset,Clk,W_Addr,W_Data);
input [4:0]R_Addr_A,R_Addr_B,W_Addr;
input Write_Reg,Reset,Clk;
input[31:0] W_Data;
output [31:0] R_Data_A,R_Data_B;
reg [31:0] REG_Files[0:31];
integer i=0;
always @ (posedge Clk or posedge Reset)beginif(Reset)beginfor(i=0;i<=31;i=i+1)REG_Files[i]<=0;endelsebeginif(Write_Reg)REG_Files[W_Addr]<=W_Data;endendassign R_Data_A = REG_Files[R_Addr_A];assign R_Data_B = REG_Files[R_Addr_B];endmodule

测试模块

module Fourth_experiment_test;// Inputsreg [4:0] Addr;reg Write_Reg;reg [1:0] Opt;reg Clk;reg Reset;reg A_B;// Outputswire [7:0] LED;RegisterFile uut (.Addr(Addr), .Write_Reg(Write_Reg), .Opt(Opt), .Clk(Clk), .Reset(Reset), .A_B(A_B), .LED(LED));always #20 Clk = ~Clk;initial beginAddr = 5'b00001;Write_Reg = 1;Opt = 0;Clk = 1;Reset = 0;A_B = 0;#100;Addr = 5'b00001;Write_Reg = 0;Opt = 0;A_B = 0; end
endmodule

杭电计算机组成实验4(四)寄存器堆设计实验相关推荐

  1. 杭电 2016 计算机组成原理,杭电计算机组成原理寄存器堆设计实验4.doc

    杭州电子科技大学计算机学院 实验报告 课程名称:计算机组成原理 实验项目:寄存器堆设计实验 指导教师 实验位置: 姓 班 级: 学 号: 日 期:2015年5月7日 实验目的学习和使用Verlilog ...

  2. 2015年杭电计算机存储器扩展,杭电计算机组成原理存储器设计实验5

    <杭电计算机组成原理存储器设计实验5>由会员分享,可在线阅读,更多相关<杭电计算机组成原理存储器设计实验5(4页珍藏版)>请在人人文库网上搜索. 1.杭州电子科技大学计算机学院 ...

  3. 杭电 2016 计算机组成原理,杭电计算机组成原理多功能ALU设计实验

    <杭电计算机组成原理多功能ALU设计实验>由会员分享,可在线阅读,更多相关<杭电计算机组成原理多功能ALU设计实验(6页珍藏版)>请在人人文库网上搜索. 1.杭州电子科技大学计 ...

  4. 杭电计算机考研(初试+复试)经验分享

    GitHub: KolinHuang 个人博客:KolHuang Blog 欢迎交流- 写在前头 离复试结束已经快半个月了,现在才想起来写这么一篇经验贴,供广大考研人参考参考- 本人报考的是杭州电子科 ...

  5. 2011---2013年杭电计算机历年研究生复试---笔试编程

    1.输入三个正整数A.B.C(0<A.B.C<1000),判断这三个数能不能构成一个三角形. 转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/a ...

  6. 2019杭电计算机考研经验贴(初试+复试)

    为期一年的杭电考研之旅结束啦!一年的付出总算没有白费,顺利上岸,进入杭电脑机交互实验室.今天和导师签了双选表,现在在回学校的高铁上,想着写一份经验贴,为下一届考研的学弟学妹们留下点东西. 一.初试 杭 ...

  7. 杭电计算机考研失败,2020杭电计算机考研感想

    初试 本科是普通二本电子专业,因为本科期间做过几个比赛,拿过几个奖所以考研前一直对自己很有信心,非211不读,不是985往后考虑.但是!我从3月份开始准备的,随着学习越来越发现考研其实和自己平时比赛实 ...

  8. 杭电计算机考研初试经验

    杭电计算机考研初试经验 初试成绩 21届考研 政治:65 英语一:66 数学一:123 专业课:108 本人基础 浙江省杭州市某二本渣渣学生,高中没好好学习,里一本线差几分(事实上过了一本线也上不了一 ...

  9. 杭电考研计算机专业课_2019杭电计算机考研初试科目、参考书目、报录比汇总...

    原标题:2019杭电计算机考研初试科目.参考书目.报录比汇总 本文将由新祥旭徐老师全方位的对杭电计算机.软件工程专业考研进行解析,主要有以下几个板块:学院介绍,专业情况介绍,2019录取情况分析,考研 ...

最新文章

  1. PCB的EMC设计之PCB叠层结构
  2. js、jquery、h5、css等简记
  3. 需求用例分析之四:业务规则
  4. docker镜像为什么要采用分层结构
  5. flinksql获取系统当前时间搓_FlinkSQL 动态加载 UDF 实现思路
  6. U-Boot提供的指令
  7. 在Kibana上查看tomcat日志
  8. rman备份mysql_rman备份与还原
  9. 【转载】怎样编写CSS?
  10. 电荷泵负电源芯片SGM3207
  11. 徐思201771010132《面向对象程序设计(java)》第十六周学习总结
  12. QQ VS 360 大战开始
  13. MHL技术剖析,比HDMI更强的东东
  14. 标签类目体系(面向业务的数据资产设计方法论)-读书笔记4
  15. 部署测试fabric1.0及源码解析
  16. php qq远程桌面共享,新手学堂:用VNC实现远程桌面共享的方法
  17. 如何用 CSS 实现三角形
  18. C# 调用 C++生成的Dll
  19. Elastic 武汉 Meetup- 11月13日 13:30
  20. 泥石流与滑坡的遥感解译特征

热门文章

  1. 橘子学Arthas01之概念和安装
  2. elementUI中DateTimePicker 日期时间选择器自定义开发,固定时间段,修改时间后取当前输入作为时间段起始
  3. javascript(JS)获得电脑、手机屏幕的DPI
  4. 商业世界的革新,数字化转型的“顶层设计”
  5. 变频器+三相异步电机实现升功率/超频运行
  6. Flink Connectors
  7. [转]《如果让我重新读次研究生》——王泛森院士
  8. 爬虫进阶:电脑软件手机APP常用的爬虫抓包工具
  9. android background大全,Background安卓版-Background壁纸预约 _5577安卓网
  10. 大数据信息资料采集:漫画数据信息资料采集