加法器原理详解

加法器的介绍与原理分析

什么是加法器?

加法器是一种数字电路,用于将两个二进制数相加并输出它们的和。

如何实现加法器

要讨论如何实现加法器就要先从只有一位的数字先进行考虑

一位二进制数相加

不考虑来自低位的进位——半加器

对于一位二进制数相加,由于是二进制有可能要进位也可能不需要进位,根据具体的情况如下图所示:
在这里插入图片描述

没有进位的话,把进位补上0:
在这里插入图片描述

转化为列表如下:

数字A数字B输出S进位CO
1010
0110
0000
1101

对于一位数字的话我们使用A表示第一个数字,B表示第二个数字,S表示加和之后的当前位的和,CO表示向高位的进位,使用逻辑函数式那么
S = A B ′ + A ′ B ( 异或操作 ) C O = A B ( 与操作 ) \begin{align} S &= AB'+A'B\ \ (异或操作)\\ CO &= AB \ \ (与操作)\end{align} SCO=AB+AB  (异或操作)=AB  (与操作)
也就是说对于一位二进制数的加法,我们可以使用异或操作跟与操作求出加法结果。
逻辑电路如图所示:
在这里插入图片描述
这样可以根据灯的亮灭判断到底输出了什么。
这样组成的期间就是半加器,但是半加器并没有考虑来自低位的进位,所以它的功能是不完善的。

考虑来自低位的进位——全加器

如果考虑到来自低位的进位那么输入就会有三个分别是数字A、数字B与进位CI。
相加的过程中我们可以看作先将数字A与数字B相加,相加得到的加和再与进位CI相加,即全加器由两个半加器组成。
真值表为:

数字A数字B进位CI数字S进位CO
00000
00110
01010
01101
10010
10101
11001
11111

根据真值表可以得到以下逻辑函数式
S = A B ′ C I ′ + A ′ B C I ′ + A ′ B ′ C I + A B C I C O = A B C I ′ + A ′ B C I + A B ′ C I + A B C I \begin{align} S &= AB'CI'+A'BCI'+A'B'CI+ABCI\\ CO &= ABCI'+A'BCI+AB'CI+ABCI \end{align} SCO=ABCI+ABCI+ABCI+ABCI=ABCI+ABCI+ABCI+ABCI
将逻辑表达式进行化简得到
S = C I ′ ( A B ′ + A ′ B ) + C I ( A ′ B ′ + A B ) S = C I ′ ( A B ′ + A ′ B ) + C I ( A B ′ + A ′ B ) ′ S = C I ′ ( A ⨁ B ) + C I ( A ⨁ B ) ′ S = C I ⨁ A ⨁ B C O = A B ( C I ′ + C I ) + C I ( A ′ B + A B ′ ) C O = A B + C I ( A ⨁ B ) C O = A B C I ′ + A ′ B C I + A B ′ C I + A B C I \begin{align} S &= CI'(AB'+A'B)+CI(A'B'+AB)\\ S &= CI'(AB'+A'B)+CI(AB'+A'B)'\\ S &= CI'(A\bigoplus B) + CI(A\bigoplus B)'\\ S &= CI\bigoplus A\bigoplus B\\ CO &= AB(CI'+CI)+CI(A'B+AB') \\ CO &= AB + CI(A\bigoplus B)\\ CO &= ABCI'+A'BCI+AB'CI+ABCI\\ \end{align} SSSSCOCOCO=CI(AB+AB)+CI(AB+AB)=CI(AB+AB)+CI(AB+AB)=CI(AB)+CI(AB)=CIAB=AB(CI+CI)+CI(AB+AB)=AB+CI(AB)=ABCI+ABCI+ABCI+ABCI
最终我们得到的逻辑函数式为:
S = C I ⨁ A ⨁ B C O = A B + C I ( A ⨁ B ) \begin{align} S &= CI\bigoplus A\bigoplus B\\ CO &= AB + CI(A\bigoplus B)\\ \end{align} SCO=CIAB=AB+CI(AB)
转化为电路图为:
在这里插入图片描述
这样我们就得到了一个全加器。
有了半加器与全加器,就能着手实现二进制加法了。

四位二进制加法器

最低位相加是不需要考虑进位的,所以使用半加器就行,当然使用全加器也可以只不过进位CI要置零。
现在就着手实现四位二进制数加法器:
多位加法器的原理就是,有多个一位加法器组成,每个一位加法器负责多位中的一位的运算,运算的结果需要进位到下一位,然后下一位求出结果,很明显这是一种
电路图如下:
在这里插入图片描述

如图所示,但是此加法器是一种串联的结构,进行运算时高位需要等待低位求出运算结果才能得到高位的结果,也就是花费的时间比较多,有没有办法在进行低位运算的同时进行高位的运算。

超前进位四位加法器

如果我们不再使用先算低位进位,然后再算高位,而是直接根据低位数字直接算出应该到高位的进位,这样就能将串行结构改成并行结构,这样就能够大大减少运算所需的时间。
在这里插入图片描述

这样我们就能够将结构改成下面的样子:
在这里插入图片描述

从图中我们可以看出是根据原始输入计算的进位,而不是一位一位进行计算的进位,这样每一位数字就可以同时计算,这样就可以在一个时钟周期内完成加法运算。
但是这一个明显优缺点,到后面计算进位的电路越来越复杂。
至此关于加法器的原理就讲完了。

注:如果电路图,或者逻辑函数式有写错的,请在评论区@我,我会尽快修改的。
multisim电路仿真图可以在我的GitHub的项目中下载:电路仿真图

如果有什么地方讲的不好或者讲错的地方欢迎大家指出来,如果我所讲的对你们有帮助不要忘了点赞、收藏、关注哦!
我是你们的好伙伴apprentice_eye
一个致力于让知识变的易懂的博主。

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

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

相关文章

【VTK三维重建-体绘制】第四期 VTK中GPU加速

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 上期内容讲到VTK的体绘制技术vtkGPUVolumeRayCastMapper,本文分享VTK中GPU加速的相关内容,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会…

图像分割实战-系列教程7:unet医学细胞分割实战5(医学数据集、图像分割、语义分割、unet网络、代码逐行解读)

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 unet医学细胞分割实战1 unet医学细胞分割实战2 unet医学细胞分割实战3 unet医学细胞分割实战4 unet…

机器学习的分类与经典算法

机器学习算法按照学习方式分类,可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Le…

[NAND Flash 5.1] 闪存芯片物理结构与SLC/MLC/TLC/QLC

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 前言 1 闪存芯片简介 闪存颗粒是固态硬盘中数据的真实存储地,就像机械硬盘的磁盘一样。 闪存颗粒flash memory是一种存储介质,重要的区别于传统机械盘…

bat脚本:将ini文件两行值转json格式

原文件 .ini&#xff1a;目标转换第2行和第三行成下方json [info] listKeykey1^key2^key3 listNameA大^B最小^c最好 ccc1^2^3^ ddd0^1^9目标格式 生成同名json文件&#xff0c;并删除原ini文件 [ { "value":"key1", "text":"A大" …

动态规划 | 最长公共子序列问题

文章目录 最长公共子序列题目描述问题分析程序代码复杂度分析 最短编辑距离题目描述问题分析程序代码复杂度分析 编辑距离题目描述输入格式输出格式 问题分析程序代码 最长公共子序列 题目描述 原题链接 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共…

图文证明 等价无穷小替换

等价无穷小替换 定义 等价无穷小是无穷小之间的一种关系&#xff0c;指的是&#xff1a;在同一自变量的趋向过程中&#xff0c;若两个无穷小之比的极限为1&#xff0c;则称这两个无穷小是等价的。无穷小等价关系刻画的是两个无穷小趋向于零的速度是相等的。 设当 x → x 0 时…

Android 接入第三方数数科技平台

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数数科技平台是什么&#xff1f;二、使用步骤1.集成SDK2. 初始化3. 发送事件和设置账号id4. 验证发送事件是否成功 小结 前言 一个成熟的App必然不可缺少对…

算法学习系列(十四):并查集

目录 引言一、并查集概念二、并查集模板三、例题1.合并集合2.连通块中点的数量 引言 这个并查集以代码短小并且精悍的特点&#xff0c;在算法竞赛和面试中特别容易出&#xff0c;对于面试而言&#xff0c;肯定不会让你去写一两百行的代码&#xff0c;一般出的都是那种比较短的…

服务器的TCP连接限制:如何优化并提高服务器的并发连接数?

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff09;&#xff0c;发送【资料】可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列…

mysql基础-表操作

环境&#xff1a; 管理工具&#xff1a;Navicat 数据库版本&#xff1a;5.7.37 mysql的版本&#xff0c;我们可以通过函数&#xff0c;version()进行查看&#xff0c;本次使用的版本如下&#xff1a; 目录 1.管理工具 1.1创建表 1.2.修改表名 1.3.复制表 1.4.删除表 2…

python开发的app有哪些,python如何开发小软件

这篇文章主要介绍了python开发的app有哪些&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Python 无处不在&#xff0c;可以说是现代的 C 编程语言&#xff0c;你可以在任何地…

寄存器的相关知识

CPU原理和结构详解 一、CPU概述 中央处理器&#xff08;CPU&#xff09;&#xff0c;是计算机的核心部件&#xff0c;负责执行计算机程序中的指令&#xff0c;控制计算机的运算和逻辑判断。CPU的性能直接决定了计算机的运行速度和效率。 二、CPU工作原理 CPU的工作原理可以概括…

【记录】开始学习网络安全

本文持续更新学习进度 背景 在私企干了5年虚拟化、云原生相关的运维&#xff0c;学到了很多&#xff0c;但不成体系。老板是清华毕业法国留学在德勤干过&#xff0c;最后回国创业的野路子。我工作是为了更好的生活&#xff0c;我挺担心老板因为家庭变故或者炒个原油宝&#x…

【Vue3】请求参数

1. x-www-form-urlencoded 请求方式&#xff1a;POST nameJohn&age25export const userRegisterService (registerData) > {// 直接传入会是 json 格式// URLSearchParams 将 json 格式转为 x-www-form-urlencoded 格式const params new URLSearchParams();for (let…

54.网游逆向分析与插件开发-游戏增加自动化助手接口-项目需求与需求拆解

内容来源于&#xff1a;易道云信息技术研究院VIP课 项目需求&#xff1a; 为游戏增加VIP功能-自动化助手。自动化助手做的是首先要说一下背景&#xff0c;对于授权游戏来讲它往往年限都比较老&#xff0c;老游戏和新游戏设计理念是不同的&#xff0c;比如说老游戏基本上在10年…

<软考高项备考>《论文专题 - 40采购管理(4) 》

4 过程3-控制采购 4.1 问题 4W1H过程做什么管理采购关系、监督合同绩效、实施必要的变更和纠偏&#xff0c;以及关闭合同的过程作用&#xff1a;确保买卖双方履行法律协议&#xff0c;满足项目需求为什么做为保证采购活动顺利进行&#xff0c;采购物品符合项目要求谁来做组织…

easyx的窗口函数

文章目录 前言一、EasyX的颜色二、EasyX的坐标和设备1&#xff0c;EasyX的坐标2&#xff0c;EasyX的设备 三、窗口函数1&#xff0c;初始化窗口函数2&#xff0c;关闭绘图窗口3&#xff0c;设置窗口背景板颜色4&#xff0c;清空绘图设备 前言 easyx是针对c的图形库&#xff0c;…

360高级java面试真题

今年IT寒冬&#xff0c;大厂都裁员或者准备裁员&#xff0c;作为开猿节流主要目标之一&#xff0c;我们更应该时刻保持竞争力。为了抱团取暖&#xff0c;林老师开通了《知识星球》&#xff0c;并邀请我阿里、快手、腾讯等的朋友加入&#xff0c;分享八股文、项目经验、管理经验…