实验九 单周期MIPS CPU设计实验(基于Logisim)

news2024/9/22 13:39:35

一、实验目的
学生掌握控制器设计的基本原理,能利用硬布线控制器的设计原理在Logisim平台中设计实现MIPS单周期CPU。

二、实验内容
利用运算器实验,存储系统实验中构建的运算器、寄存器文件、存储系统等部件以及Logisim中其它功能部件构建一个32位MIPS CPU单周期处理器。数据通路如下图所示:
,

要求支持8条MIPS核心指令,最终设计实现的MIPS处理器能运行实验包中的冒泡排序测试程序sort.asm,该程序自动在数据存储器0~15号字单元中写入16个数据,然后利用冒泡排序将数据升序排序,要求统计指令条数并与MARS中的指令统计数目进行对比。
,

####电路引脚

信号输入/输出位宽功能描述
CLK输入1时钟信号
PC输出32程序寄存器的值
IR输出32当前指令字
RegWrite输出1寄存器文件写使能控制信号
RDin输出32寄存器文件写入端口的数据
MemWrite输出1存储器写使能控制信号
MDin输出32存储器写入端口的数据

三、方案设计
1)单周期MIPS控制器设计
,

2)单周期MIPS数据通路:
,

3)单周期MIPS(硬布线)总体电路
,

4)单周期硬布线控制器
1、指令译码逻辑的设计,该实验只涉及8条核心的MIPS指令。而这8条MIPS指令的指令字段已经在附件中给出,并且电路底部文字也给出了关于SYSCALL的提示,因此,这部分只需根据相应的OP和FUNC字段进行简单地逻辑比较就可实现。
2、ALU控制逻辑的设计,由于该MIPS CPU设计中有关的8条核心MIPS指令中,对于ALU运算逻辑单元中只涉及到加法和比较,因此这一部分可以大大简化。只有运行STL指令时,需要选择比较运算,其余都是加法运算。
3、对于控制器输出信号的设计,则要根据硬布线控制器中所包含的9中控制信号进行分析,如下图。主要考虑每种控制信号的产生条件。这里更高的要求是掌握8条核心指令集在执行时全部周期中所设计的控制信号,已经使用相应控制信号的作用
,

四、测试结果
,

五、故障与调试
问题:在平台提交的时候提示 cannot find Jar library cs3410.jar。
,

出现以上故障可能有两种原因:
一是没有在中国大学mocc上下载cs3410.jar扩展包。
二是本地 cs3410.jar 和测试平台中的 cs3410.jar 路径不一样。一般建议本地的 jar 文件和 cpu.circ 文件在同一目录下,如果出现这个问题,可以调整将本地 cs3410.jar 先移动到 cpu.circ 同目录下后,打开 cpu.circ,logisim 会提示找不到 cs3410.jar,重新指向同目录 cs3410.jar,存盘退出,再重新上传电路文本内容,即可解决这个问题。

六、实验总结与心得体会
本次实验主要完成了以下工作:设计实现了单周期MIPS CPU
数据通路、单周期MIPS CPU 硬布线控制器指令译码逻辑、单周期MIPS CPU硬布线控制器ALU控制逻辑、单周期MIPS CPU 硬布线控制器控制信号逻辑。并且最终设计实现的MIPS处理器能运行实验包中的冒泡排序测试程序sort.asm。本次实验我学会了单周期MIPS CPU的设计方法,感到收获颇丰、受益匪浅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基本数据类型转换

自动类型转换 当Java程序在进行赋值或运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。 int a 3; double d a; // 类型转换 int --> double自动类型转换使用和细节: 有多种类型的数据混合运算时,系统…

基于Java养老院老人健康监护平台设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

element-ui组件中的Tooltip 文字提示:el-tooltip中content是变量怎么写

<el-tooltip content"Top center" placement"top"><el-button>Dark</el-button> </el-tooltip> 这样的效果是&#xff1a; 可以看出&#xff0c;content是提示内容。如果是文字提示可以直接写在content里面。 content是变量应该…

飒智智能机器人核心技术与应用论坛暨一体化控制器发布会成功举办

7月6日&#xff0c;智能机器人核心技术与应用论坛暨移动操作复合机器人一体化智能控制器发布会在上海举行。本次活动由上海飒智智能科技有限公司主办&#xff0c;得到上海市经信委、闵行区科委、闵行区经委、“大零号湾”属地单位南滨江公司、江川路街道办事处的支持&#xff0…

给大模型持久记忆!GitHub 2万星向量数据库云服务升级,国内云产品下周上线

一个在GitHub上标星超2万的数据库&#xff0c;究竟是什么来头&#xff1f; 原来&#xff0c;这正是最近大火的向量数据库之一、首个在这一赛道开源产品Milvus。 自大模型爆火以来&#xff0c;它的关注度也一路飙升&#xff0c;官方显示&#xff0c;目前Milvus已经拥有超过1000企…

数据结构中队列的操作方式,一目了然

队列的概念 首先我们联想一下链表&#xff0c;在单链表中&#xff0c;我们只能对他的链表表尾进行插入&#xff0c;对链表的表头进行结点的删除&#xff0c;这样强限制性的链表&#xff0c;就是我们所说的队列。 也就是说&#xff0c;队列&#xff08;queue&#xff09;是限定…

云盘选择攻略:寻找易用且高效的同步云盘服务

同步云盘是集备份、同步、共享于一体的软件&#xff0c;备受用户青睐。在这个信息化的时代&#xff0c;我们经常需要在不同的设备之间共享文件&#xff0c;而同步云盘正可以帮助我们在多台设备之间同步文件。不过目前市面上同步云盘众多&#xff0c;我们该如何选择同步云盘呢&a…

数据结构【考研笔记】

数据结构【考研笔记】 第一章 绪论一、数据结构的基本概念1、基本概念1&#xff09;数据2&#xff09;数据元素、数据项3&#xff09;数据对象、数据结构4&#xff09;数据类型、抽象数据类型&#xff08;ADT&#xff09; 2、三要素1&#xff09;逻辑结构2&#xff09;存储结构…

C++学习 指针

目录 指针 指针的定义和使用 指针所占用的内存空间 空指针与野指针 const修饰指针 指针和数组 指针和函数 指针 指针是一个变量&#xff0c;其值为另一个变量的地址&#xff0c;即内存位置的直接地址。就像其他变量或常量一样&#xff0c;您必须在使用指针存储其他变量地…

动态规划:背包问题

01背包&#xff1a;物品只能选一个 完全背包&#xff1a;物品可以选无数个 注&#xff1a;01背包与完全背包&#xff0c;不论是求背包装的最多物品的价值&#xff0c;还是求装满容量为bag的背包最多有几种方法&#xff0c;区别都在里层遍历背包时&#xff0c;01背包使用倒序…

three.jsgsap滚动交互网页实现 1-模糊背景线条

实现 模型只有其中的一根线条 加载完模型后 将其圆形排列一周 要实现圆形排列一周可以自己计算sin和cos实现&#xff0c;更简单的可以使用vector3的setFromCylindricalCoords方法实现 该方法计算返回圆柱上的点&#xff0c;圆柱上的点由参数决定 使用方法&#xff1a; for (let…

监听DOM尺寸变化 - ResizeObserver

一、与 MutationObserver Api的区别 MutationObserver 主要用来监听 DOM 元素的属性和节点变化的&#xff0c;非 DOM 样式尺寸&#xff0c;可查看之前一篇 blog - DOM规范 - MutationObserver接口观察DOM元素的属性和节点变化ResizeObserver 主要用来监听 DOM 元素的 内容区域…

Stable Diffusion WebUI 不同采样方法的效果、耗时对比记录

测试方法 所有测试除了采样方法调整&#xff0c;其他均保持一致。主要参数信息如下 1girl, 3d, architecture, blurry, blurry background, blurry foreground, breasts, brown hair, building, cherry blossoms, city, cityscape, cosplay photo, cowboy shot, day, depth o…

hive2.3.7安装部署-问题:show databases;没反应

目录 一、安装包准备 二、安装mysql 三、hive安装 四、hive启动 五、问题 环境&#xff1a;CentOS7.2.xx、hadoop2.6.4、jdk1.8.0xx、mysql-5.7.38 hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射成一张表&#xff0c;并提供类SQL查询功能。…

【计算机组成原理期末课设作业】16位微型计算机实现——MOVS串传送扩展指令设计

16位微型计算机实现——MOVS串传送扩展指令设计&#x1f60e; 前言&#x1f64c;教学目的&#xff1a;1、数据**加粗样式**通路分析2、微程序控制器分析3、指令系统分析4、微程序控制器指令周期流程图5、微指令编码6、测试程序和运行结果&#xff08;1&#xff09;首先先在内存…

asp.net core 框架搭建2-搭建MVC后台管理系统

文章目录 系列文章1.项目搭建1.1 新建Asp.net core MVC项目1.2 ASP.NET Core MVC目录结构1.3 创建一个控制器&#xff0c;与页面数据交互1.4 实现一个登录页面1.5 实现后台管理主界面 2.过程中知识点和涉及到的问题2.1 session的使用2.2 EF Core连接mysql 源码下载 作者&#x…

机器学习29:《推荐系统-II》协同过滤

在《机器学习28&#xff1a;《推荐系统-I》概述》一文中&#xff0c;笔者介绍了“基于内容过滤&#xff08;content-based filtering&#xff09;”和“协同过滤&#xff08;Collaborative Filtering&#xff09;”两种常见的【候选 Item 池】生成方法。其中&#xff0c;基于内…

android studio使用Flutter Inspector调试布局

1、点击anroid studio右侧的Flutter Inspector按钮 2、点击展开布局右上角的‘Select Widget Mode’&#xff0c;即可实现点击相关节点&#xff0c;真机上可以看到相关的方框 如下图

月薪65k的大厂项目经理,是种什么体验

早上好&#xff0c;我是老原。 之前给大家更新了几期关于项目管理行业的面试题&#xff0c;又值一年毕业季&#xff0c;想入行的新手小白&#xff0c;或者想跳槽的行业大佬可以码起来了。 有很多粉丝朋友都在后台给我留言&#xff0c;想看云计算行业的岗位分析&#xff0c;今…

前端开发:JS中常用事件汇总

前言 在前端开发中&#xff0c;关于事件相关的操作是非常常见的操作&#xff0c;尤其是实际业务场景中涉及复杂交互的需求。在JS中比较常用的事件有很多&#xff0c;而且涉及不同方式不同类型的点击事件&#xff0c;一般情况下事件会和函数结合使用&#xff0c;这就是事件和函数…