[Logisim 头歌实践教学平台]理想流水线设计 MIPS流水CPU设计---HUST(计算机组成原理课程设计)

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

下载链接icon-default.png?t=N7T8https://afdian.net/a/fries

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

实验成品电路图

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

博客链接

目录

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

实验成品电路图

实验目的

实验内容

电路框架

电路引脚

调试技巧与常见故障


实验目的

学生掌握流水接口设计的基本原理,能够将单周期的CPU改造成可以运行无任何冲突冒险程序的理想流水线。

实验内容

将单周期CPU修改为理想流水线。设计流水接口子电路IF/ID、ID/EX、EX/MEM、MEM/WB,并测试联调理想流水线测试.asm程序,Ctrl+k自动仿真,运行17条指令后停机,时钟周期应该是21,由于最后一拍没有计数,周期数显示应该是20。实验基本原理图如下所示:

电路框架

cpu24.circ 理想流水线子电路

注意:可以整体平移引脚框到电路任何位置,但由于电路封装与引脚位置和顺序有关系,所以框内引脚一律不许增删改,哪怕是移动位置调整顺序,改变引脚朝向,也不要在电路中增加额外的引脚,否则测试系统无法测试

电路引脚
信号位宽功能描述
IF.PC32IF阶段PC值
ID.PC32ID阶段PC值
EX.PC32EX阶段PC值
MEM.PC32MEM阶段PC值
WB.PC32WB阶段PC值
RegWrite1寄存器堆写使能控制信号,直接连寄存器堆WE端口
RDin32寄存器堆写入端口的数据,直接连寄存器堆Din端口
MemWrite1存储器写使能控制信号,接MEM段的RAM上的Str端口
MDin32存储器写入端口的数据,接MEM段的RAM上的Din端口
LedData32LED显示输出值,连数码管输入数据LedData标签

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

电路测试

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

测试输出结果说明
#信号功能描述
1CLKs时钟计数,表明当前节拍,注意计数为十六进制
2IFPC当前节拍IF段PC的期望值
3IDPC当前节拍ID段PC的期望值
4EXPC当前节拍EX段PC的期望值
5MEMPC当前节拍Mem段PC的期望值
6WBPC当前节拍WB段PC的期望值
7PCerr5位指错字:从左到右分别表示IF、ID、EX、MEM、WB段PC出错的情况,1表示错误,0表示正确
8Werr4位指错字:从左到右分别表示RegW、RDin、MemW、MDin出错的情况,1表示错误,0表示正确
9LEDLED显示输出期望值
10RegW寄存器写使能控制信号的期望值
11RDin寄存器文件写入端口的数据的期望值
12MemW存储器写使能控制信号的期望值
13MDin存储器写入端口的数据的期望值

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

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

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

调试技巧与常见故障

私自调整引脚,看下图,很隐蔽的调整

第0拍就出错了,我机器上运行好好的啊,最有可能就是你封装不对,查看下电路封装,恢复为默认封装即可!

Werr=01000,RegW=0,表示RegWrite信号不对,预期为0,但是你的信号为1,造成这个的原因是RegWrite信号连接的位置不对,应该连接写回段的RegWrite信号,也就是直接连接寄存器堆的WE使能端,不要连ID段控制器的RegWrite输出。

出现以上故障,是因为本地 cs3410.jar 和测试平台中的 cs3410.jar 路径不一样导致的。一般建议本地的 jar 文件和 cpu.circ 文件在同一目录下,如果出现这个问题,可以将本地 cs3410.jar 先移动到 cpu.circ 同目录下后,打开 cpu.circ,logisim 会提示找不到 cs3410.jar,重新指向同目录 cs3410.jar,存盘退出,再重新上传电路文本内容,即可解决这个问题。

也可以直接修改平台代码,搜索 cs3410,如下所示:



  1. <lib desc="jar#6.CPU设计实验/cs3410.jar#edu.cornell.cs3410.Components" name="7">

将上面的绝对路径删除,改成如下形式即可:



  1. <lib desc="jar#cs3410.jar#edu.cornell.cs3410.Components" name="7">

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

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 实践教学平台是华中科技大学推出的一款在线教育平台,其中包括了MIPS流水CPU设计课程。该课程主要介绍了MIPS流水线CPU设计原理和实现方法,通过实践操作,帮助学生深入理解CPU的工作原理计算机体系结构。这门课程对于计算机专业的学生来说非常有价值,可以提高他们的实践能力和编程水平。 ### 回答2: 实践教学平台是华中科技大学自主研发的一个在线教学平台,主要面向全球的计算机及电子工程学习者和爱好者,为用户提供高质量的教育资源和实验环境。其课程覆盖了计算机体系结构、操作系统、编译原理计算机网络、嵌入式系统等多个方向,每一门课程都有课堂视频、实验内容和动手实验的环节,使学习者能够从学习理论知识到动手实践的全面体验中深度学习,掌握更加综合的知识。 其中,MIPS流水CPU设计实践教学平台的一门重要课程,该课程的主要目的是通过讲解高性能CPU的结构和原理,让学习者深入了解计算机的工作原理。本课程采用的MIPS指令集架构已被广泛应用于各种处理器的设计中,学生能够深入学习数据通路、流水线、异常处理、高速缓存等CPU设计的核心概念。通过这门课程的学习,学习者将能够掌握硬件描述语言Verilog HDL的基本语法,了解流水线CPU设计的思路和方法,实现一个简单的MIPS流水线CPU,并使用仿真软件ModelSim对其进行测试和验证。 MIPS流水CPU设计课程实践教学平台上的教学模式独特,有着丰富的课件内容和实验环节。学生可以通过在线课件了解各个子系统的设计和数据通路,使用实验环节完成流水线CPU设计,并在实验的基础上进行仿真和性能分析。同时,课程中提供了许多的实际应用案例,让学习者能够了解CPU在各种计算机系统中的应用。通过这种独特的教学方式和丰富的课程内容,学生能够获得更加深刻的学习体验和知识积累,为未来的学习和职业发展打下坚实的基础。 ### 回答3: 实践教学平台 Mips流水CPU设计是华中科技大学(HUST)计算机科学与技术专业的一门课程。该课程是一门与硬件相关的高级计算机组成原理课程,着重于教学生如何设计流水线MIPS处理器。 设计MIPS处理器需要学生掌握MIPS指令集架构、计算机组成原理、数字电路设计等知识。学生需要了解MIPS指令的类型、运算机制以及内存和寄存器等部件的操作,以及数电设计中的时序逻辑和组合逻辑等核心知识。 MIPS流水线设计是将指令处理过程分解成多个阶段,并对每个阶段采用不同的硬件进行处理。这种设计可以加快指令的执行,并且可以同时运行多条指令,提高CPU的效率。在学习流水线设计时,学生需要深入了解流水线各个阶段的功能和互连关系,并学习如何解决流水线冒险(数据相关和控制相关)问题。 实践教学平台为学生提供了一个全面的教学环境,包括了教学视频、课程资料、作业等,帮助学生深入学习和理解课程内容。通过参与设计MIPS流水CPU项目,学生将会掌握计算机系统的核心知识,并且获得实践操作能力。同时,该平台为学生提供了与导师和同学互动的机会,促进了学术交流和团队合作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值