首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

计算机组成原理课程设计代码+报告-Project1 VerilogHDL完成单周期处理器开发

硬件开发 1.7MB 30 需要积分: 1
立即下载

资源介绍:

Project1 VerilogHDL完成单周期处理器开发(使用ModelSim仿真软件) 一、设计说明 1.处理器应实现MIPS-Lite1指令集。 a)MIPS-Lite1={MIPS-Lite,addi,addiu, slt,jal,jr}。 b)MIPS-Lite指令集:addu,subu,ori,lw,sw,beq,lui,j。 c)addi应支持溢出,溢出标志写入寄存器$30中第0位。 2.处理器为单周期设计。
计算机组成原
期末大作业报
目录
一、 总体数据通路结构设计 P2
二、 数据通路中模块的详细描述 P2-P9
三、 机器指令描述 P10
四、 测试程序每条机器指令注释(含波形) P11-P19
五、 测试程序相对应的测试波形结果截图 P20
(最终结果与 MARS 中的结果对比)
六、 收获体会 P21
一、总体数据通路结构设计图
二、数据通路中所有模块(包括控制模块)的详细描述
PC 模块
(1) 基本描述
PC,即 Program Counter 程序计数器,传入时钟信号并用来接受从 NPC
传来的下地址,并将地址传送给 IM
同时负责程序的地址复位。
(2) 模块接口
信号名
方向
描述
npc[31:
0]
I
接收 npc 传来的 32 位地址
clk
I
时钟信号
reset
I
复位信号。
1:复位
0:无效
pc[31:0
]
O
产生 32 位下地址,传给 IM NPC
(3) 功能定义
序号
功能名称
功能描述
1
复位
当复位信号有效时,PC 被设置为 0x00003000
2
取地址
根据 PC PC 中取出地址。
3
传地址
将下一条指令地址传给 IM NPC
NPC 模块
1)基本描述
下地址产生模块,通过输入的指令以及
同时负责程序的地址复位。
2)模块接口
信号名
方向
描述
npc[31:
0]
O
将下地址传送到 PC
Pc_4
O
输出 pc+4 的地址
Imm[25:
0]
I
接受来自 IM 26 位立即数
npc_sel
[1:0]
I
传递转移指令的类别
00:非转移类指令
01BEQ
10J
11JR
zero
I
ALU 计算结果为 0 标志。
1:计算结果为 0
0:计算结果非 0
pc[31:0
]
I
接受 pc 传来的地址
Rs[31:0
]
I
输入寄存器 GPR[rs]中存储的地址
3)功能定义
序号
功能名称
功能描述
1
输出 pc+4
非转移类指令时将当前地址下一条送到 PC
2
BEQ 跳转
当前指令符合 BEQ 条件,跳转至指令中地址
3
J 跳转
当前指令符合 J 条件,跳转至指令中地址
4
JR 跳转
当前指令为 JR 时,下一条指令为 GPR[rs]中存储
的地址,否则为 pc+4
GPR 模块
1)基本描述
GPR 包括了 32 32 位寄存器,有两个读端口和一个写端口。寄存器的读输
出总是对应于读寄存器号,不需要其他控制信号。但是写寄存器必须明确写使能
控制信号。写操作是边沿触发的,所有的写操作的输入必须在时钟边沿有效。
器的沿在同
读操作读出以前写入的内容,而写入的内容在下一时钟周期才可读。寄存器号的
输入都是 5 位的,数据线为 32 位。
2)模块接口
信号名
方向
描述
RegWite
I
当前指令是否需要向寄存器中写入标志。
1:需要写入
0:不需写入
clk
I
时钟信号
readreg1[4:0]
I
控制读寄存器 A
readreg1[4:0]
I
控制读寄存器 B
Writereg[4:0]
I
控制写寄存器
writedata[31:0]
I
要写入的数据
Readdata1[31:0]
O
RA 读出的寄存器数据
Readdata2[31:0]
O
RB 读出的寄存器数据
writeEnable
I
写使能
Rst
I
重置使能
upover
I
addi 溢出
3)功能定义
序号
功能名称
功能描述
1
读出寄存
器数据
当输 readreg1/readreg2 时,从对应编号的
存器中取出数并通 readdata1/readdata2
32 位数据
2
写入数据
RegWrite 效时,通过 RW 的输入选择对应
号的寄存器,并将 WD 中输入的数据写入到相应寄
存器中
3
重置
Rst=1 时,清空寄存器组中所有数据
4
溢出处理
溢出信号为 1 时,将 1 存入 30 号寄存器第 0
ALU 模块
1)基本描述
ALU 算数逻辑单元,是计算机的核心,在本次处理器设计中,ALU 可以执行的算
数运算包括加法、减法,可以执行的逻辑运算包括或操作。
本实验中,ALU 由组内组间全并行的 32 位并行加法器,32 位全减器,32-bit
ori 以及一个多路选择器构成。多路选择器根据 ALU 控制信号 ALUop,判 ALU
应该进行哪种运算(加,减,或)
ALU 实现组内组间全并行 32 位并行加法器, 8 个四位并行加法器组
成。 全减器则有两个全加器组合而成
2)模块接口
信号名
方向
描述
Zero
O
ALU 输入是否为零
1:为零
0:不为零
upover
O
输出是否上溢
1:上溢
0:无上溢
out[31:0]
O
计算完后输出的结果数据
a[31:0]
I
A 端输入的器数据,减法时作为被减数
b[31:0]
I
B 端输入的器数据,减法时作为减数
ALUop
I
控制 ALU 进行的算数类型
00add
01:sub
10:or
11:slt
3)功能定义
序号
功能名称
功能描述
1
32 位加法
A 端输入加数 AB 端输入加数 B输出 32 位加完
后的结果
2
32 位减法
A 端输入被减数 AB 端输入减数 B输出 32 位减
完后的结果
3
32 位按位
或运算
32
终结果
4
SLT
输出 A<B 的结果(1a<b 0:a>=b

资源文件列表:

JZP1.zip 大约有108个文件
  1. JZP1/p1-test.asm 829B
  2. JZP1/p1-test.txt 864B
  3. JZP1/Project1 VerilogHDL完成单周期处理器开发.docx 395.59KB
  4. JZP1/Project1/
  5. JZP1/Project1/32add.v.bak 3.71KB
  6. JZP1/Project1/32add_test.v.bak 206B
  7. JZP1/Project1/add32.v 3.31KB
  8. JZP1/Project1/add32.v.bak 3.31KB
  9. JZP1/Project1/add32_test.v 378B
  10. JZP1/Project1/add32_test.v.bak 378B
  11. JZP1/Project1/alu.v 1.08KB
  12. JZP1/Project1/alu.v.bak 1.05KB
  13. JZP1/Project1/CPU.v 3.12KB
  14. JZP1/Project1/CPU.v.bak 3.11KB
  15. JZP1/Project1/CPU_testbench.v 355B
  16. JZP1/Project1/CPU_testbench.v.bak 360B
  17. JZP1/Project1/ctrl.v 2.48KB
  18. JZP1/Project1/ctrl.v.bak 2.48KB
  19. JZP1/Project1/dm.v 576B
  20. JZP1/Project1/dm.v.bak 556B
  21. JZP1/Project1/ext.v 565B
  22. JZP1/Project1/ext.v.bak 576B
  23. JZP1/Project1/gpr.v 1.2KB
  24. JZP1/Project1/gpr.v.bak 1.2KB
  25. JZP1/Project1/im.v 247B
  26. JZP1/Project1/im.v.bak 251B
  27. JZP1/Project1/mux.v 822B
  28. JZP1/Project1/npc.v 859B
  29. JZP1/Project1/npc.v.bak 856B
  30. JZP1/Project1/p1-test.txt 864B
  31. JZP1/Project1/pc.v 311B
  32. JZP1/Project1/pc.v.bak 362B
  33. JZP1/Project1/project1.cr.mti 3.48KB
  34. JZP1/Project1/project1.mpf 107.5KB
  35. JZP1/Project1/sub32.v 317B
  36. JZP1/Project1/sub32.v.bak 330B
  37. JZP1/Project1/tcl_stacktrace.txt 1.42KB
  38. JZP1/Project1/vsim.wlf 64KB
  39. JZP1/Project1/work/
  40. JZP1/Project1/work/@_opt/
  41. JZP1/Project1/work/@_opt/_data/
  42. JZP1/Project1/work/@_opt/_data/exemptck60dv 272B
  43. JZP1/Project1/work/@_opt/_data/exemptt1y841 916B
  44. JZP1/Project1/work/@_opt/_data/exempttem8me 512KB
  45. JZP1/Project1/work/@_opt/_lib.qdb 48KB
  46. JZP1/Project1/work/@_opt/_lib1_0.qdb 32KB
  47. JZP1/Project1/work/@_opt/_lib1_0.qpg 272KB
  48. JZP1/Project1/work/@_opt/_lib1_0.qtl 245.47KB
  49. JZP1/Project1/work/@_opt/_lib2_0.qdb 32KB
  50. JZP1/Project1/work/@_opt/_lib2_0.qpg
  51. JZP1/Project1/work/@_opt/_lib2_0.qtl 65.69KB
  52. JZP1/Project1/work/@_opt/_lib3_0.qdb 32KB
  53. JZP1/Project1/work/@_opt/_lib3_0.qpg
  54. JZP1/Project1/work/@_opt/_lib3_0.qtl 337.9KB
  55. JZP1/Project1/work/@_opt/_lib4_0.qdb 32KB
  56. JZP1/Project1/work/@_opt/_lib4_0.qpg 312KB
  57. JZP1/Project1/work/@_opt/_lib4_0.qtl 82.32KB
  58. JZP1/Project1/work/@_opt/_lib5_0.qdb 32KB
  59. JZP1/Project1/work/@_opt/_lib5_0.qpg 96KB
  60. JZP1/Project1/work/@_opt/_lib5_0.qtl 9.85KB
  61. JZP1/Project1/work/@_opt/_lib6_0.qdb 32KB
  62. JZP1/Project1/work/@_opt/_lib6_0.qpg 224KB
  63. JZP1/Project1/work/@_opt/_lib6_0.qtl 40.86KB
  64. JZP1/Project1/work/@_opt1/
  65. JZP1/Project1/work/@_opt1/_data/
  66. JZP1/Project1/work/@_opt1/_data/exemptjs7ij1 164B
  67. JZP1/Project1/work/@_opt1/_data/exemptt1kccr 916B
  68. JZP1/Project1/work/@_opt1/_data/exempttb0cyy 512KB
  69. JZP1/Project1/work/@_opt1/_lib.qdb 48KB
  70. JZP1/Project1/work/@_opt1/_lib1_0.qdb 32KB
  71. JZP1/Project1/work/@_opt1/_lib1_0.qpg 16KB
  72. JZP1/Project1/work/@_opt1/_lib1_0.qtl 14.81KB
  73. JZP1/Project1/work/@_opt1/_lib2_0.qdb 32KB
  74. JZP1/Project1/work/@_opt1/_lib2_0.qpg
  75. JZP1/Project1/work/@_opt1/_lib2_0.qtl 21.24KB
  76. JZP1/Project1/work/@_opt1/_lib3_0.qdb 32KB
  77. JZP1/Project1/work/@_opt1/_lib3_0.qpg
  78. JZP1/Project1/work/@_opt1/_lib3_0.qtl 21.05KB
  79. JZP1/Project1/work/@_opt1/_lib4_0.qdb 32KB
  80. JZP1/Project1/work/@_opt1/_lib4_0.qpg 304KB
  81. JZP1/Project1/work/@_opt1/_lib4_0.qtl 71.95KB
  82. JZP1/Project1/work/@_opt2/
  83. JZP1/Project1/work/@_opt2/_data/
  84. JZP1/Project1/work/@_opt2/_data/exempt1qt3jk 100B
  85. JZP1/Project1/work/@_opt2/_data/exempte6jb57 868B
  86. JZP1/Project1/work/@_opt2/_data/exemptezwbie 512KB
  87. JZP1/Project1/work/@_opt2/_lib.qdb 48KB
  88. JZP1/Project1/work/@_opt2/_lib1_0.qdb 32KB
  89. JZP1/Project1/work/@_opt2/_lib1_0.qpg 16KB
  90. JZP1/Project1/work/@_opt2/_lib1_0.qtl 11.65KB
  91. JZP1/Project1/work/@_opt2/_lib2_0.qdb 32KB
  92. JZP1/Project1/work/@_opt2/_lib2_0.qpg
  93. JZP1/Project1/work/@_opt2/_lib2_0.qtl 19.08KB
  94. JZP1/Project1/work/@_opt2/_lib3_0.qdb 32KB
  95. JZP1/Project1/work/@_opt2/_lib3_0.qpg
  96. JZP1/Project1/work/@_opt2/_lib3_0.qtl 19.28KB
  97. JZP1/Project1/work/@_opt2/_lib4_0.qdb 32KB
  98. JZP1/Project1/work/@_opt2/_lib4_0.qpg
  99. JZP1/Project1/work/@_opt2/_lib4_0.qtl 14.34KB
  100. JZP1/Project1/work/_info 8.78KB
  101. JZP1/Project1/work/_lib.qdb 48KB
  102. JZP1/Project1/work/_lib1_10.qdb 32KB
  103. JZP1/Project1/work/_lib1_10.qpg
  104. JZP1/Project1/work/_lib1_10.qtl 94.09KB
  105. JZP1/Project1/work/_temp/
  106. JZP1/Project1/work/_tempmsg/
  107. JZP1/Project1/work/_vmake 29B
  108. JZP1/计组期末大作业报告.docx 798.98KB
0评论
提交 加载更多评论
其他资源 免费计算机组成原理课程设计代码+报告-Project2 VerilogHDL 完成多周期处理器开发
Project2 VerilogHDL 完成多周期处理器开发 一、设计说明 1.处理器应实现MIPS-Lite2指令集。 a)MIPS-Lite2={MIPS-Lite1,lb,sb}。 b)MIPS-Lite1={addu,subu,ori,lw,sw,beq,j,lui,addi,addiu,slt,jal,jr }。 c)addi应支持溢出,溢出标志写入寄存器$30中第0位。 2.处理器为多周期设计。
免费计算机组成原理课程设计代码+报告-Project3 VerilogHDL完成MIPS微系统开发(支持设备与中断)
Project3 VerilogHDL完成MIPS微系统开发(支持设备与中断) 一、设计说明 1.MIPS 微系统应包括:MIPS处理器、系统桥和 1 个定时器,32位输入设备、32 位输出设备。 2.MIPS处理器应实现MIPS-Lite3指令集。 a)MIPS-Lite3={MIPS-Lite2,ERET、MFC0、MTC0 }。 b)MIPS-Lite2={addu,subu,ori,lw,sw,beq,lui,addi,addiu,slt, j,jal,jr,lb,sb }。 c)addi应支持溢出,溢出标志写入寄存器$30中第0位。 3.MIPS处理器为多周期设计。 4.MIPS 微系统支持定时器硬件中断。
《自动化Excel数据批量导入MySQL:使用Python与Pandas构建高效数据迁移工具,上亿数据量半小时搞定》
在当今的数据驱动环境中,数据迁移是连接不同数据源、实现数据共享与分析的重要环节。本文介绍了一个使用Python编程语言结合Pandas库和SQLAlchemy库构建的自动化工具,该工具能够高效地将Excel文件中的数据批量导入MySQL数据库。通过本工具,用户可以简化繁琐的数据迁移流程,提高数据处理效率,为数据分析和业务决策提供有力支持。 本文主要可以批量处理Excel文件,将多个文件数据提取到一个数据库表中,并标识每行数据的来源。
《自动化Excel数据批量导入MySQL:使用Python与Pandas构建高效数据迁移工具,上亿数据量半小时搞定》
数学建模之spss学习ppt
内涵通过spss软件学习到spss界面介绍和窗口认识、数据导入方法、描述统计的操作方法、统计图型的制作、线性回归分析的操作方法、相关分析的解释。 数据导入方法:除了ppt上的方法,还有直接从excel上复制粘贴到spss上,相比于matlab而言spss的操作更加简便、快捷。
数学建模之spss学习ppt 数学建模之spss学习ppt 数学建模之spss学习ppt
11111111111111111111111111
11111111111111111111111111
暑期学什么?-关于Pycharm
暑期学什么?-关于Pycharm
一款好看的安全跳转单页html源码
一款好看的安全跳转单页html源码
微信小程序图片加水印-使用新版Canvas实现
微信小程序图片加水印-使用新版Canvas实现 需要在 WXML 中添加 canvas 组件。 指定 id="myCanvas" 唯一标识一个 canvas,用于后续获取 Canvas 对象。 指定 type 用于定义画布类型,本例子使用 type="2d" 示例。 详情可查看相关文章:https://blog.csdn.net/weixin_42270381/article/details/140600106