头歌计算机组成原理实验—运算器设计(11)第11关:MIPS运算器设计

news2024/9/28 11:18:51

第11关:MIPS运算器设计

实验目的

学生理解算术逻辑运算单元(ALU)的基本构成,掌握 Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的32位加法器、 Logisim 中的运算组件构造指定规格的 ALU 单元。

视频讲解

实验内容

利用前面实验封装好的32位加法器以及 Logisim 平台中现有运算部件,构建一个32位算术逻辑运算单元(禁用 Logisim 系统自带的加法器,减法器),可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移运算,支持常用程序状态标志(有符号溢出 OF 、无符号溢出 UOF ,结果相等 Equal ),ALU 功能以及输入输出引脚见后表,在主电路中详细测试自己封装的 ALU ,并分析该运算器的优缺点。

电路框架

alu.circ

电路引脚

信号输入/输出位宽说明
X输入32 位操作数 X
Y输入32 位操作数 X
ALU_OP输入4 位运算器功能码,具体功能见下表
Result输出32 位ALU 运算结果
Result2输出32 位ALU 结果第二部分,用于乘法指令结果高位或除法指令的余数位,其它运算时值为零
OF输出1 位有符号加减运算溢出标记,其它运算时值为零
UOF输出1 位无符号加减运算溢出标记,其它运算时值为零,溢出条件(加法和小于加数,减法差大于被减数)
Equal输出1 位Equal=(x==y)?1:0, 对所有运算均有效
ALU_OP十进制运算功能
00000Result = X << Y 逻辑左移 (Y 取低五位) Result2=0
00011Result = X >>>Y 算术右移 (Y 取低五位) Result2=0
00102Result = X >> Y 逻辑右移 (Y 取低五位) Result2=0
00113Result = (X * Y)[31:0]; Result2 = (X * Y)[63:32] 无符号乘法
01004Result = X/Y; Result2 = X%Y 无符号除法
01015Result = X + Y (Set OF/UOF)
01106Result = X - Y (Set OF/UOF)
01117Result = X & Y 按位与
10008Result = X or Y 按位或
10019Result = X⊕Y 按位异或
101010Result = ~(X orY) 按位或非
101111Result = (X < Y) ? 1 : 0 符号比较
110012Result = (X < Y) ? 1 : 0 无符号比较

电路测试

电路框架提供了自动测试子电路,也可以自行评分,具体测试电路如下图所示:

完成实验后,利用文本编辑工具打开 alu.circ ,将所有文字信息复制粘贴到 Educoder 平台的 alu.circ 文件中,再点击评测按钮即可进行本关测试。平台会对你设计的电路进行自动测试,为方便测试,请勿修改子电路封装,本关测试用例如下:

 
  1. CNT X Y AluOp Result Result2 OF UOF EQ
  2. 00 ff00ffff 00000007 0 807fff80 00000000 0 0 0
  3. 01 ff00ffff ff00ffff 0 80000000 00000000 0 0 1
  4. 02 ff000000 00000018 1 ffffffff 00000000 0 0 0
  5. 03 ff00ffff 00000018 2 000000ff 00000000 0 0 0
  6. 04 7fffffff 00000010 3 fffffff0 00000007 0 0 0
  7. 05 fffffffe 00000010 4 0fffffff 0000000e 0 0 0
  8. 06 0000ffff 00000080 5 0001007f 00000000 0 0 0
  9. 07 ffffffff ffffffff 5 fffffffe 00000000 0 1 1
  10. 08 7fffffff 0000000c 5 8000000b 00000000 1 0 0
  11. 09 80000000 80000000 5 00000000 00000000 1 1 1
  12. 0a 7ff00000 0000007c 6 7fefff84 00000000 0 0 0
  13. 0b 0000007c 7ff00000 6 8010007c 00000000 0 1 0
  14. 0c 80000000 00000001 6 7fffffff 00000000 1 0 0
  15. 0d 7fffffff fffffffe 6 80000001 00000000 1 1 0
  16. 0e ff00ffff 00000018 7 00000018 00000000 0 0 0
  17. 0f 7fffffff 00000074 8 7fffffff 00000000 0 0 0

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

参考答案:

直接复制代码,字数太多,发不了,后续会上传文件

参考电路图

如果对你有所帮助,感谢点赞加收藏!

完整的代码可以到【WRITE-BUG数字空间】我的个人学习圈查看。

附上链接:

https://www.writebug.com/article/740506cc-f628-11ed-a553-0242ac1a0006icon-default.png?t=N4HBhttps://www.writebug.com/article/740506cc-f628-11ed-a553-0242ac1a0006

关于接下来的实验内容,我也会在【WRITE-BUG数字空间】更新,也可以为大家带来更好的观感,带来更多的分享,欢迎大家前来浏览。

 

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

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

相关文章

基于Freertos的ESP-IDF开发——5.使用按键[不带消抖、带消抖、长按短按识别]

基于Freertos的ESP-IDF开发——5.使用按键[不带消抖、带消抖、长按短按识别] 0. 前言1. 确定GPIO引脚2. 触发函数(不带消抖)3. 触发函数(带消抖)4. 长按和短按识别5.其他FreeRtos文章 0. 前言 这一节我们来学习使用按键操作。包括带消抖和不带消抖。 由于之前已经学习过FreeR…

chatgpt赋能Python-python3_run

Python3 Run&#xff1a;学习Python必须掌握的运行方式 如果你在学习Python编程&#xff0c;那么Python3 Run是你必须掌握的运行方式之一。Python3 Run可以让你在本地环境中运行Python代码并查看运行结果。在本文中&#xff0c;我们将介绍Python3 Run的基本概念、使用方法和注…

概论_第4章__协方差Cov(X)的定义和性质___相关系数的定义和性质

前面讨论的方差是 一维随机变量X, 对于二维随机变量&#xff0c; 怎样计算方差呢&#xff1f; 这就引出了 协方差&#xff1a; 讨论X与Y之间相互关系的数字特征。 一 协方差的定义 协方差通俗的理解&#xff1a; 两个随机变量X, Y协作产生的方差。 计算协方差的公式有…

SSM框架学习-Spring事务

1. 数据库中事务与Spring中的事务 数据库事务和Spring中的事务是两个不同的概念&#xff0c;但Spring中的事务是建立在数据库事务之上的。 数据库事务是指一组数据库操作&#xff0c;要么全部成功执行&#xff0c;要么全部回滚&#xff08;撤销&#xff09;。这么做是为了保证数…

【Markdown】笔记

设置-通用-开启调试模式 普通文本编辑器编写的轻量级标记语言 标题 # ~ ###### 文本 _斜体_ *斜体* **粗体** ***粗斜体*** 列表 无序 * - 有序 1. 2. 3. Tab控制层级 链接 [链接名](链接地址) <链接地址> 引用 > 嵌套 > >> >>&…

hadoop零碎知识点总结

系列文章目录 ubuntu虚拟机下搭建zookeeper集群&#xff0c;安装jdk压缩包&#xff0c;搭建Hadoop集群与spark集群的搭建 虚拟机VMware里面安装Windows sever 2003版本详细教程_vmware安装win2003 centos7配置静态网络常见问题归纳_centos7网络问题 文章目录 系列文章目录…

chatgpt赋能Python-python3_排序

Python3 排序指南&#xff1a;介绍、说明和实践 Python3是当今最受欢迎的编程语言之一&#xff0c;拥有许多可用于各种任务的库和框架。其中之一是它自带的排序函数&#xff0c;在数据分析和机器学习等领域中非常有用。 在本篇文章中&#xff0c;我们将简要介绍Python3的排序和…

Baumer工业相机堡盟工业相机IO介绍与配置(二)

Baumer工业相机堡盟工业相机IO介绍与配置&#xff08;二&#xff09; Baumer工业相机Baumer工业相机IO的功能Baumer工业相机IO的作用Baumer工业相机IO上点连线方法 Baumer工业相机 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机&#xff0c;可用于各种应用场景&#…

Linux下基于TCP协议的Socket套接字编程(客户端服务端)入门详解

写在前面&#xff1a; 本篇博客探讨&实践环境如下&#xff1a; 1.操作系统&#xff1a; Linux 2.版本(可以通过命令 cat /etc/os-release 查看版本信息)&#xff1a;PRETTY_NAME“CentOS Linux 7 (Core)” 编程语言:C 一、socket 是什么&#xff1f; 常常说socket 、套接字…

chatgpt赋能Python-python3加密解密

Python3加密解密——确保你的数据安全 在今天的数字化时代&#xff0c;数据已经成为最重要的财产之一。然而&#xff0c;随着互联网的流行&#xff0c;数据泄露和非法访问变得越来越普遍。因此&#xff0c;确保数据的安全性变得非常重要。加密解密是目前最受欢迎的数据安全措施…

chatgpt赋能Python-python3_8如何下载

Python 3.8如何下载 Python 3.8是一种高级编程语言&#xff0c;具有简单易于学习和高度可读性的特点。这篇文章旨在为您提供Python 3.8的下载方法。 什么是Python 3.8 Python 3.8是Python编程语言的最新版本&#xff0c;于2019年10月发布。它引入了许多新特性和功能&#xf…

分布式消息中间件RocketMQ的安装与启动

RocketMQ 安装与启动 基本概念 消息(Message)&#xff1a;消息是指&#xff0c;消息系统所传输信息的物理载体&#xff0c;生产和消费数据的最小单位&#xff0c;每条消息必须属于一个主题。主体(Topic)&#xff1a; Topic表示一类消息的集合&#xff0c;每个主题包含若干条消…

免接管余压探测器的优势是什么?

余压传感器&#xff08;探测器&#xff09;是什么&#xff1f; 余压传感器&#xff08;探测器&#xff09;主要用于测量两个位置之间的压差。 余压传感器&#xff08;探测器&#xff09;的作用&#xff1f; 流量测量&#xff1a;在管道中&#xff0c;通过测量两点之间的压差&…

头歌计算机组成原理实验—运算器设计(5) 第5关:32位快速加法器设计

第5关&#xff1a;32位快速加法器设计 实验目的 帮助学生理解成组进位产生函数&#xff0c;成组进位传递函数的概念&#xff0c;熟悉 Logisim 平台子电路的概念&#xff0c;能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器&a…

Day42【动态规划】背包问题详解、416.分割等和子集

0-1背包问题详解&#xff1a;二维数组 文章讲解 视频讲解 0-1 背包问题&#xff1a;有 n 件物品和一个最多能背重量为 w 的背包。第 i 件物品的重量是 weight[i]&#xff0c;价值是 value[i]&#xff0c;每件物品只能用一次&#xff0c;求解将物品装入背包里物品价值总和最大…

深入理解 Go sync.Map

前言 Go 语言原生 map 并不是线程安全的&#xff0c;要对它进行并发读写操作时&#xff0c;一般有两种选择&#xff1a; 原生map搭配Mutex或RWMutex使用sync.Map 和原生map搭配Mutex或RWMutex相比&#xff0c;sync.Map在以下场景更有优势&#xff1a; 读多写少 修改&#x…

Golang 1.18 新特性模糊测试

一、Go 1.18新特性一览 0.官方博客&#xff1a;跳转 1.支持泛型 2.模糊测试 3.工作空间 4.性能提升 二、模糊测试介绍 模糊测试 &#xff08;fuzz testing, fuzzing&#xff09;是一种软件测试技术。其核心思想是將自动或半自动生成的随机数据输入到一个程序中&#xff0…

chatgpt赋能Python-python3怎么保存

Python 3如何高效地保存数据 Python是一门广泛使用的编程语言之一&#xff0c;其强大的工具和库使其成为从数据分析到机器学习等领域的首选语言。在处理大量数据时&#xff0c;数据的存储和访问变得非常关键。在这篇文章中&#xff0c;我们将讨论Python 3中如何保存数据以提高…

delphi6安装手册

DELPHI6安装手册 安装delphi6软件&#xff1a; 运行&#xff1a;\\dev2000 选择&#xff1a;set up→语言及开发工具→DELPHI6→双击图标install.exe 先后安装Delphi6和TeamSource 安装delphi6时会出现的要填序列号的情况 delphi6的安装序列号&#xff1a;在同一路径下双击ke…

chatgpt赋能Python-python3_9怎么调成黑色背景

Python是一种高级编程语言&#xff0c;它的版本不断发展和改进。最新发布的Python 3.9版本为用户提供了更多的新特性和改进&#xff0c;其中包括能够自定义代码编辑器背景颜色的新功能。本篇文章将介绍如何在Python 3.9中调整编辑器背景颜色为黑色&#xff0c;并探讨这个功能的…