【计算机组成与体系结构Ⅰ】实验0 Logisim 入门实验

news2024/11/15 3:29:37

一、实验目的

1:掌握加减法器工作原理。

2:能够设计出一个n位加减法器。

3:熟悉Logisim软件使用。

二、实验环境

(1)Logisim 2.7.1

(2)Microsoft Windows 10

三、实验内容

1:设计一个1位的全加法器FA

(1)利用与门、或门、异或门等组件,设计加法电路。

2:设计一个用4个FA4构成一个4位的加减法器

(1)可以在引脚输出结果,并显示在LED上。输入采用手动设置引脚。

(2)将减法器的手动输入,改为计数器C1,C2的4位输出值,并显示在LED上。

四、实验步骤

实验1:1位全加器

(1)实验设计分析

首先,通过逻辑抽象为真值表。通过分析全加器的逻辑功能后,我们容易得到全加器有三个输入端,即加数、被加数和低一级的进位,同时其有两个输出端,即当前位置的进位和当前位置的加法运算结果。

令加数为A,被加数为B,低一级的进位为Ci,当前位置的加法运算结果为S,当前位置的进位为Co,我们可以得到五个变量的真值表,结果如下所示:

A

B

Ci

S

Co

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

其次,通过真值表写表达式。通过结果列S和Co,我们可以得到S和Co的原始逻辑表达式和化简逻辑表达式(通过卡诺图)为:

S = A’B’Ci + A’BCi’ + AB’Ci’ + ABCi = ABCi

Co = A’BCi + AB’Ci + ABCi’ + ABCi = AB + ACi + BCi

因此,在电路图的设计中,S端的处理应该将A和B先通过一次异或门得到A异或B,将A异或B的结果和Ci再通过一次异或门得到A异或B异或Ci。同时,Co端的处理应该将A和B、A和Ci、B和Ci先通过一次与门得到AB、ACi、BCi,再将AB和ACi和BCi再通过一次或门得到AB + ACi + BCi。

综上所述,本实验可以利用与门、或门、异或门组件,设计一套完整的加法电路。

 

(2)实验连线图


    最终实验的模拟电路图存在于0-1.circ中的add组件,电路图如下所示:

(3)实验结果图

基于(1)中的真值表,我们可以进行相关的模拟测验,最终的测验结果及其截图如下所示:

 

输入测试ABCi

实验结果S

实验结果Co

000

0

0

001

1

0

010

1

0

011

0

1

100

1

0

101

0

1

110

0

1

111

1

1

 
000


001

  

010


011

 
100

 
101

 ​​​​​​​
110

 ​​​​​​​
111

 

 

实验2:4位加减法器

(1)实验设计分析

首先,通过逻辑抽象为真值表。由于实验1已经实现了加法器的功能,因此实验2只需在加法器的基础上实现减法器的功能。通过分析全减器的逻辑功能后,我们容易得到全减器有三个输入端,即减数、被减数和高一级的借位,同时其有两个输出端,即当前位置的借位和当前位置的减法运算结果。

令被减数为A,减数为B,高一级的借位为Ci,当前位置的加减法运算结果为D,当前位置的借位为Co,我们可以得到五个变量的真值表,结果如下所示:

Ci

A

B

D

Co

0

0

0

0

0

0

0

1

1

1

0

1

0

1

0

0

1

1

0

0

1

0

0

1

1

1

0

1

0

1

1

1

0

0

0

1

1

1

1

1

其次,通过真值表写表达式。通过结果列D和Co,我们可以得到D和Co的原始逻辑表达式和化简逻辑表达式(通过卡诺图)为:

D = Ci’A’B + Ci’AB’ + CiA’B’ + CiAB = = ABCi

Co = Ci’A’B + CiA’B’+ CiA’B + CiAB = A’B + CiA’ + CiB

而实验1中的S和Co的表达式为:

S = A’B’Ci’ + A’BCi’ + AB’Ci’ + ABCi = ABCi

Co = A’BCi + AB’Ci + ABCi’ + ABCi = AB + ACi + BCi

通过对比实验1的结果我们可以发现:S的结果和D的结果完全相同,加法器Co的结果中将A取反之后与减法器中的结果完全相同。因此,在电路图的设计中,我们可以设置一个sub检测器,通过sub的值来决定运算器是做加法还是做减法。当sub=1时,运算器做减法;当sub=0时,运算器做加法。在上述分析中,当A取原本值时,运算器做加法;当A取负值时,运算器做减法。

A

Sub

理论的运行结果

0

0

加法,输入为0

0

1

减法,输入为1

1

0

加法,输入为1

1

1

减法,输入为0

通过上面的真值表,我们发现可以将A和sub取异或值,输入到运算器中的A端,即将sub和A通过异或门后的结果作为输入。通过这种方法,我们可以得到完整的一位加减法器,且减法运算时采用了补码。

由于实验2需要得到4位加减法器,因此需要对4个1位加减法器进行串联连接,将当前运算器的Ci端连接上一位运算器的Co端,并将当前运算器的Co端连接下一位运算器的Ci端,实现进位的连续性。

综上所述,本实验可以利用实验1的add集成、异或门组件,设计一套完整的4位加减法电路。

(2)实验连线图


1位全加器:

 


基于全加器的1位加减法器:

 

基于1位加减法器的4位加减法器:

手动调整X和Y的数值版本


时钟自动设定X和Y的数值,并用LED显示计算结果

 

(3)实验结果图

手动调整X和Y的数值版本:

基于(1)中的真值表,我们可以进行相关的模拟测验,最终的测验结果及其截图如下所示:

加法情况【由于Y和X同时变化时,X+Y状态较多,因此此处仅以Y为1000不变,X从0000依次变换到1111为例,列出实验的各项指标的结果】:

输入测试Y

输入测试X

实验运算结果

实验结果最终进位

实验结果截图

1000

0000

1000

0

 

1000

0001

1001

0

 

1000

0010

1010

0

 

1000

0011

1011

0

 

1000

0100

1100

0

 

1000

0101

1101

0

 

1000

0110

1110

0

 

1000

0111

1111

0

 

 

1000

1000

0000

1

 

1000

1001

0001

1

 

1000

1010

0010

1

 

1000

1011

0011

1

 

1000

1100

0100

1

 

1000

1101

0101

1

 

1000

1110

0110

1

 

1000

1111

0111

1

 

 

减法情况【由于Y和X同时变化时,X-Y状态较多,因此此处仅以X为1000不变,Y从0000依次变换到1111为例,列出实验的各项指标的结果】:

输入测试Y

输入测试X

实验运算结果

实验结果最终借位

实验结果截图

0000

1000

1000

1

 

0001

1000

0111

1

 

0010

1000

0110

1

 

0011

1000

0101

1

 

0100

1000

0100

1

 

0101

1000

0011

1

 

0110

1000

0010

1

 

0111

1000

0001

1

 

1000

1000

0000

1

 

1001

1000

1111

0

 

1010

1000

1110

0

 

1011

1000

1101

0

 

1100

1000

1100

0

 

1101

1000

1011

0

 

1110

1000

1010

0

 

1111

1000

1001

0

 

时钟自动设定X和Y的数值,并用LED显示计算结果:

    该电路图的实验情况类似上述情况,此处不再赘述。

 

五、实验课后内容

实验3:完成一个32位加减法器

具体要求:

(1)计数器C1,C2输入X、Y。

(2)利用Logisim 库中的加法器实现。

实验步骤:

(1)实验设计分析

    本实验的设计思路与实验2的设计思路基本一致。可以通过时钟来控制C1和C2,通过数据选择器控制当前运算执行加法还是减法。如果选择加法,则将C1以原码输入系统的集成加法器;如果选择减法,则将C1取补码后输入系统的集成加法器,最后通过显示器显示运算结果。


(2)实验连线图

(3)实验结果图

相关案例如附件中video.mkv所示。

 

六、实验中遇到的问题和解决办法

无。

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

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

相关文章

FastAPI中如何正确理解和使用:async和await

1 缘起 项目需要, 技术选型使用FastAPI。 开发过程中,遇到需要异步操作的场景, 查阅相关FastAPI异步信息的过程中,发现了async和await组合技, 通过阅读官方文档和实际测试,发现,async和await并不是传统意义上的异步(如线程池异步执行任务), async和await的融合技是应…

SEGA: Semantic Guided Attention on Visual Prototype for Few-Shot Learning

方法比较简单,利用语义改进prototype,能促进性提升

如何系统学习分布式?

关键词:想要走存储/数据库方向的话,具体路线是啥?重点需要掌握精通哪些知识? 回答 那我简单说一下走存储/数据库这块的学习路线吧。 目前做存储比较热门的是分布式存储方向,有NoSQL的也有关系型数据库的&#xff0c…

21.DAC数模转换

1.STM32 DAC介绍: DAC(Digital to analog converter)即数字模拟转换器,它可以将数字信号转换为模拟信号。 DAC主要特性: 2个DAC转换器,每个转换器对应1个输出通道;8位或者12位单调输出;12位模式下数据左…

Coggle 30 Days of ML(23年7月)任务五:XGBoost训练与预测

Coggle 30 Days of ML(23年7月)任务五:XGBoost训练与预测 任务五:使用TFIDF特征和XGBoost完成训练和预测 说明:在这个任务中,你需要使用TFIDF特征和XGBoost算法完成训练和预测,进一步提升文本…

Matlab数学建模实战——(Lokta-Volterra掠食者-猎物方程)

1.题目 问题1 该数学建模的第一问和第二问主要是用Matlab求解微分方程组,直接编程即可。 求解 Step1改写 y(1)ry(2)f Step2得y的导数 y(1).2y(1)-ay(1)*y(2)y(2).-y(2)a*y(1)*y(2) Step3编程 clear; a0.01; F(t,y)[2*y(1)-a*y(1)*y(2);-y(2)a*y(1)*y(2)]; […

【Mac】Mac 通过路径找到对应的文件夹

mac 的快捷键 复制文件夹或文件全路径 命令:command Option C 跳转文件夹或文件 命令:command shift G 其他待补充

hexo #02 基本操作

本篇主要步骤 1、创建博客 1、创建博客 使用 $ hexo new [layout] <title>命令创建一篇新的博客。 PS hexo> npx hexo new post "test" Debugger attached. Debugger attached. INFO Validating config INFO Created: D:\hexo\source\_posts\test.md Wa…

MySQL表单查询以及多表查询

1.单表查询 CREATE TABLE emp ( empno int(4) NOT NULL, ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, mgr int(4) NULL DEFAULT NULL, hi…

基于51单片机的羽毛球计分器设计

功能&#xff1a; 本实例是基于51单片机的羽毛球计分器&#xff0c;主要硬件由51单片机最小系统&#xff0c;LCD1602液晶屏电路&#xff0c;按键电路构成。 1.本设计选用LCD1602液晶屏作为显示器件&#xff0c;用于记录两队的分数。 2.按照设计的功能模块共选用8个按键&#xf…

【软件测试】Git查看commit的提交历史(详细)一点即通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 查看提交历史 在提…

【MATLAB第53期】基于MATLAB的TSK模糊神经网络时间序列预测模型,含短期预测未来功能

【MATLAB第53期】基于MATLAB的TSK模糊神经网络时间序列预测模型&#xff0c;含短期预测未来功能 一、效果展示 二、数据设置 数据采用一列数据滑动窗口设置为5 &#xff0c;可自行设置70%训练30%测试预测未来值为10 &#xff0c;可自行设置&#xff0c;控制10以内 三、模型…

zabbix proxy的配置及zabbix实现高可用(监控 windows,java应用,SNMP等)

目录 zabbix proxy 分布式代理服务器部署zabbix proxy 代理服务器部署 Zabbix 高可用集群Zabbix 监控 Windows 系统Zabbix 监控 java 应用Zabbix 监控 SNMP zabbix proxy 分布式代理服务器 zabbix 分布式代理服务器&#xff0c;可以代替zabbix server 采集性能和可用性数据。z…

C++的范围for语句详解 附易错实例

&#x1f4af; 博客内容&#xff1a;C读取一行内个数不定的整数的方式 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准前端&#xff0c;专注基础和实战分享 &#xff0c;欢迎私信&#xff01; &#x1f496; 欢迎大家&…

匿名管道的使用示例

目录 整体框架 通信步骤 创建管道 ​编辑创建子进程&关闭相应的fd ​编辑 进程间通信 父子进程通信之间四种场景 实现父亲读&#xff0c;孩子写的进程间通信 管道通信的使用场景样例实现 整体框架 通信步骤 创建管道 pipe的参数为输出型参数&#xff0c;返回读写端…

从小白到大神之路之学习运维第55天--------shell脚本实例应用

第三阶段基础 时 间&#xff1a;2023年7月7日 参加人&#xff1a;全班人员 内 容&#xff1a; shell实例 目录 shell脚本应用&#xff1a; 一、shell脚本 二、环境变量的基本使用 三、条件测试 shell脚本应用&#xff1a; 一、shell脚本 1、shell脚本的作用shell解…

MySql索引结构介绍

文章目录 1.索引概述2. 索引结构2.1 二叉树与红黑树索引结构2.2 B-Tree索引结构2.3 BTree介绍2.4 Hash索引介绍 1.索引概述 索引的概念 索引的演示 索引的优缺点 2. 索引结构 索引结构在不同的存储引擎中的支持情况&#xff0c;我们平时所说的索引&#xff0c;如果没有特殊的…

深度学习各类优化器大总结

一、优化算法设计原理 深度学习中的优化算法采用的原理是梯度下降法&#xff0c;即最小化目标函数 J ( θ ) J(\theta) J(θ)&#xff0c;最优化的求解过程&#xff0c;首先求解目标函数的梯度 ∇ J ( θ ) \nabla J(\theta) ∇J(θ)&#xff0c;然后将参数 θ \theta θ 向…

Java代码风格统一

Java代码风格统一 IDEA快捷键失效IDEA配置代码风格 IDEA快捷键失效 Ctr Shift F 这里是搜狗输入法影响的。 Ctr Shift L 这个是因为网易云的问题。 IDEA配置代码风格 统一代码风格是必须的&#xff0c;因为我们需要时不时的格式化代码&#xff0c; 如果每个人的开发风格…

程序员到公务员:从入门到上岸

有句话叫做&#xff0c;“打不过就加入”。尽管当下我们国家的体制还存在种种的问题&#xff0c;不过&#xff0c;大家还都是挤破脑袋想进体制。毕竟&#xff0c;某种程度上来说&#xff0c;体制内还真是香~ 我记得读大学那会&#xff0c;教我们C语言的老师&#xff0c;就和我…