Logisim实践教学平台:单周期MIPS CPU设计与计算机硬件系统设计

 点击此处获取源代码(一码通关).circ

下载链接https://afdian.net/a/fries

本代码为原创首发,创作不易,谢谢支持!

实验成品电路图

MIPS流水CPU设计所有实验见该博客:

博客链接

目录

点击此处获取源代码(一码通关).circ

实验成品电路图

实验目的

实验内容

电路框架

电路引脚

调试技巧与常见故障


实验目的

让学生熟悉中断软硬协同的机制,能够设计支持单级中断的单周期 MIPS CPU。

实验内容

为单周期 MIPS 增加单级中断机制,可支持1、2、3共3个按键中断事件,中断优先级1 < 2 < 3,CPU 执行中断服务程序时不能被其他中断请求中断。

电路框架

cpu24.circ 对应子电路名必须修改为“◇单周期 MIPS+ 单级中断”

为了方便测试中断,这里增加了三个引脚用于输入中断请求信号,请大家更新整个引脚框,包括按键部分。 注意:可以整体平移引脚框到电路任何位置,但由于电路封装与引脚位置和顺序有关系,所以框内引脚一律不许增删改,哪怕是移动位置调整顺序,改变引脚朝向,也不要在电路中增加额外的引脚,否则测试系统无法测试

电路监控引脚
信号 位宽 功能描述
IR1 1 输入测试程序的中断请求 IR1,第 3 条指令时中断寄存器 IR 对应位为 1,第 572 拍还会产生一次
IR2 1 输入测试程序的中断请求 IR2,第 4 条指令时中断寄存器 IR 对应位为1
IR3 1 输入测试程序的中断请求 IR3,第 5 条指令时中断寄存器 IR 对应位为 1
PC 32 当前节拍程序寄存器 PC
IR 32 当前节拍指令字 IR
RegWrite 1 寄存器写使能控制信号
RDin 32 寄存器文件写入端口的数据
MemWrite 1 存储器写使能控制信号
MDin 32 存储器写入端口的数据
LedData 32 LED 显示输出值

待测电路默认封装如下,提交测试前请检查是否一致,如不一致,检查引脚是否修改过,另外可以通过恢复默认封装功能尝试修复。

电路测试

完成设计后,加载 单级中断测试程序.hex 程序,测试功能。确认实验完成正确后,可利用文本编辑工具打开 cpu24.circ,将所有文字信息复制粘贴到 Educoder 平台的 cpu24.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装。

测试输出结果说明
# 信号 功能描述
1 CLKs 时钟计数,表明当前节拍,注意计数为十六进制
2 PCr 当前节拍程序寄存器 PC 的实际值
3 PCs 当前节拍程序寄存器 PC 的期望值
4 IRs 当前节拍当前指令字 IR 的期望值
5 PCerr 2 位指错字:左起第一位为 1 表示 PC 出错,第 2 位出错表示 IR 出错
6 Werr 5 位指错字:从左到右分别表示 LED、RegW、RDin、MemW、MDin 出错的情况,1 表示错误,0 表示正确
7 LED LED 输出的期望值
8 RegW 寄存器写使能控制信号的期望值
9 RDin 寄存器文件写入端口的数据的期望值
10 MemW 存储器写使能控制信号的期望值
11 MDin 存储器写入端口的数据的期望值

由于测试程序节拍周期数过多,所以会输出大量信息,Educoder平台不支持,所以本测试中使用了精简模式,左侧测试用例部分这里仅仅输出表头,如下图所示

右侧实际输出部分仅仅输出表头和错误节拍对应的各监测引脚的标准值,如下图所示

如果未能通过测试,系统会输出待测 CPU 出错的节拍编号,以及当前节拍下各监测引脚的期望值以及出错情况,请根据出错字找出错误,将 CPU 运行到对应节拍下(注意 CLK 值为十六进制)进行比对,并根据指令的功能进行调试。

调试技巧与常见故障

注意单周期 MIPS 中中断隐指令时间开销应该是零,否则无法通过测试。 本地模拟时可以在时钟计数到1时按下1号按键,这样主程序执行3条指令后会进入1号中断服务程序,大概在188拍左右会执行 eret 指令退出,注意退出后的断点是否正确。注意第572拍会产生中断请求,此时主程序是分支指令,断点并不是 PC+4。

测试程序

  1. v2.0 raw
  2. 201d07d0
  3. 20100001
  4. 00109fc0
  5. 00139fc3
  6. 00008021
  7. 2012000c
  8. 24160008
  9. 26100001
  10. 3210000f
  11. 20080008
  12. 20090001
  13. 00139900
  14. 02709825
  15. 00132020
  16. 20020022
  17. 0000000c
  18. 01094022
  19. 1500fff9
  20. 22100001
  21. 2018000f
  22. 02188024
  23. 00108700
  24. 20080008
  25. 20090001
  26. 00139902
  27. 02709825
  28. 00132021
  29. 20020022
  30. 0000000c
  31. 01094022
  32. 1500fff9
  33. 00108702
  34. 02c9b022
  35. 12c00001
  36. 08000c07
  37. 00004020
  38. 01084027
  39. 00084400
  40. 3508ffff
  41. 00082021
  42. 20020022
  43. 0000000c
  44. 08000c01
  45. afa20000
  46. 23bd0004
  47. afa40000
  48. 23bd0004
  49. afb00000
  50. 23bd0004
  51. afb30000
  52. 23bd0004
  53. afb40000
  54. 23bd0004
  55. afb50000
  56. 23bd0004
  57. afb60000
  58. 23bd0004
  59. 20160001
  60. 20140003
  61. 20150001
  62. 00168020
  63. 00108100
  64. 02149825
  65. 00132020
  66. 20020022
  67. 0000000c
  68. 1600fffa
  69. 0295a022
  70. 1680fff7
  71. 23bdfffc
  72. 8fb60000
  73. 23bdfffc
  74. 8fb50000
  75. 23bdfffc
  76. 8fb40000
  77. 23bdfffc
  78. 8fb30000
  79. 23bdfffc
  80. 8fb00000
  81. 23bdfffc
  82. 8fa40000
  83. 23bdfffc
  84. 8fa20000
  85. 42000018
  86. afa20000
  87. 23bd0004
  88. afa40000
  89. 23bd0004
  90. afb00000
  91. 23bd0004
  92. afb30000
  93. 23bd0004
  94. afb40000
  95. 23bd0004
  96. afb50000
  97. 23bd0004
  98. afb60000
  99. 23bd0004
  100. 20160002
  101. 20140003
  102. 20150001
  103. 00168020
  104. 00108100
  105. 02149825
  106. 00132020
  107. 20020022
  108. 0000000c
  109. 1600fffa
  110. 0295a022
  111. 1680fff7
  112. 23bdfffc
  113. 8fb60000
  114. 23bdfffc
  115. 8fb50000
  116. 23bdfffc
  117. 8fb40000
  118. 23bdfffc
  119. 8fb30000
  120. 23bdfffc
  121. 8fb00000
  122. 23bdfffc
  123. 8fa40000
  124. 23bdfffc
  125. 8fa20000
  126. 42000018
  127. afa20000
  128. 23bd0004
  129. afa40000
  130. 23bd0004
  131. afb00000
  132. 23bd0004
  133. afb30000
  134. 23bd0004
  135. afb40000
  136. 23bd0004
  137. afb50000
  138. 23bd0004
  139. afb60000
  140. 23bd0004
  141. 20160003
  142. 20140003
  143. 20150001
  144. 00168020
  145. 00108100
  146. 02149825
  147. 00132020
  148. 20020022
  149. 0000000c
  150. 1600fffa
  151. 0295a022
  152. 1680fff7
  153. 23bdfffc
  154. 8fb60000
  155. 23bdfffc
  156. 8fb50000
  157. 23bdfffc
  158. 8fb40000
  159. 23bdfffc
  160. 8fb30000
  161. 23bdfffc
  162. 8fb00000
  163. 23bdfffc
  164. 8fa40000
  165. 23bdfffc
  166. 8fa20000
  167. 42000018

开始你的闯关任务吧,升级打怪中….

作者:我想明天去码头整点薯条

物联沃分享整理
物联沃-IOTWORD物联网 » Logisim实践教学平台:单周期MIPS CPU设计与计算机硬件系统设计

发表回复