数字电路运算器分析

文章目录

1. 半加器

2. 加法器

3. 4位加法器 

4. 半减器

5. 减法器

6. 4位减法器


1. 半加器

现在我们来考虑如何用电路来实现1位加法。假如有两个1位二进制数A、B,它们的和为1位二进制数S,那么存在下面几种情况:

  • 如果A=0,B=0,那么S=0;
  • 如果A=1,B=0,那么S=1;
  • 如果A=0,B=1,那么S=1;
  • 如果A=1,B=1,那么S=0,而且产生一个进位C=1。

也就是说,对于加法运算,应该两个输入A和B,两个输出S和C,S表示和,C表示是否产生进位,也就是说真值表如下图所示:但是这个电路不能用于多位复杂的计算。所以叫半加器。

其中A、B与S的关系为异或,与C的关系为与,得到如下电路图:

对于搭建电路,每次都从零开始搭建太耗费时间,所以我们会把这些搭建好的电路封装为一个组件,在软件中将电路另存到 Digital的安装目录的lib中。

在这里新建一个文件夹,把所有封装的组件都保存到这里。保存完成后,就可以在软件中选择组件——库——Code——(选择保存的封装库)

2. 加法器

半加器实现了一位全加器。但是半加器只能处理两个数的运算,但在实际计算中,如果我们做加法的两个位不是最低的位,那就要考虑低位可能产生的进位。也就是说,一个功能完整的1位加法器,应该考虑三个输入,除了A、B两个加数,还要考虑是否存在低位进位Cin。

为了处理三个数相加,我们可以用两个半加器分别处理两个累加过程,同时两个累加器产生的进位C1和C2,不可能同时为1,(因为如果C1位1,那么S1=0,S1=0,C2不可能为1)(前面的是半加器1,后面的是半加器2),且二者只要有一个为1,则输出进位为1,所以关系为或,最终呈现的电路如下:其中的黄色方块为子电路,内容就是刚才封装保存的半加器。

 一位全加器的真值表如下所示:

3. 4位加法器 

多位加法器就是多个加法器的串联,下面以4位加法器为例来展示多位加法器电路:

添加输入Cin,A,B,右键点击A和B,将位数调整为4;

添加两个“组件——导线”中的分裂器,右键点击将其设置如下图所示。

将分裂器输入端与A、B相连,并添加8个“组件——导线”里面的隧道,分别命名为A0、A1、A2、A2、B0、B1、B2、B3,并接在分裂器的输出端,然后添加输出S,并将位数调整为4,并添加分裂器,输入设置为1,1,1,1,输出为4,并将输出端连接到S,输出端连接四个隧道S0、S1、S2、S3,如图示:如图示:

添加四个加法器子电路,并将进位由低到高串联,然后添加12条隧道,分别与A、B、S的隧道对应,连接到加法器的输入端,最后添加输入Cin和输出Cout,最终效果如图所示:

这个电路可以实现16位以下的加法计算。 

和逻辑门电路一样,在搭建计算机时用到多位加法器时,不需要再次绘制该电路,直接使用“组件——运算器”中的加法器,如图所示: 

4. 半减器

 现在来考虑如何用电路来实现1位减法。假如有两个1位二进制数A、B,它们的和为1位二进制数S,那么存在下面几种情况:

  • 如果A=0,B=0,那么S=0;
  • 如果A=1,B=0,那么S=1;
  • 如果A=0,B=1,那么S=1;需要向上一位借1。
  • 如果A=1,B=1,那么S=0。

也就是说,对于减法运算,应该两个输入A和B,两个输出S和C,S表示结果,C表示是否向上一位借1,也就是说真值表如下图所示:同样的这个电路不能用于多位复杂的计算。所以叫半减器。

 其中A、B与S的关系为异或,得到如下电路图:

和半加器一样,为了实现多位计算,将其封装为一个组件用于之后使用。 

5. 减法器

最终呈现的电路如下:其中的黄色方块为子电路,内容就是刚才封装保存的半减器。

 一位全加器的真值表如下所示:

6. 4位减法器

和多位加法器一样,就是多个减法器的串联,下面以4位减法器为例来展示多位减法器电路:

输入端口(A, B, C_in)

  • A和B是两个4位二进制数,分别用A0-A3和B0-B3表示。
  • C_in是初始进位输入(也可以看作借位输入)。

1位减法器模块

  • 每个1位减法器模块有三个输入:A, B, 和 C_in(上一个减法器的借位输出)。
  • 每个1位减法器模块有两个输出:S(差)和C_out(借位输出)。

输出端口(S, C_out)

  • S是4位差输出,分别用S0-S3表示。
  • C_out是最终的借位输出。

工作原理

  1. 1位减法器的基本逻辑

    • 减法器的工作原理是基于二进制减法和借位的概念。
    • 对于每一位的减法器,它执行的操作是:A - B - C_in。
    • 输出S是当前位的差,输出C_out是借位信号,如果需要从下一位借位,C_out为1。
  2. 链式连接

    • 这些1位减法器是链式连接的,也就是说,一个减法器的借位输出(C_out)连接到下一个减法器的借位输入(C_in)。
    • 这样就实现了多位二进制数的减法运算,借位信号可以从低位传递到高位。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ensp模拟器USG6000V1配置DCHP功能

接着上一篇配置,继续本篇的内容。开启DHCP功能非常简单,只需几个命令即可。实验拓扑图也非常简单,如下: 开启防火墙DHCP功能: [USG6000V1]dhcp enable 选择DHCP接口并设置接口IP地址,这里给g1/0/0配置2网…

【华为免费实战课】基于ENSP实现企业园区网组网项目实战

带你一起走进网工的世界! 2024年G-LAB【华为实战公开课】即将开始啦!华为实战千万别错过! 公开课为期四天,6月18日-6月21日晚20:00开始 关注 工 仲 好:IT运维大本营,私信glab-mary&#xff0…

概率论拾遗

条件期望的性质 1.看成f(Y)即可 条件期望仅限于形式化公式,用于解决多个随机变量存在时的期望问题求解,即 E(?)E(E(?|Y))#直接应用此公式条件住一个随机变量,进行接下来的计算即可 定义随机变量之间的距离为,即均方距离 随机…

Go基础编程 - 09 - 通道(channel)

通道(channel) 1. 声明2. channel的操作3. 无缓冲通道4. 有缓冲通道5. 如何优雅的从通道循环取值6. 单向通道7. 异常总结 上一篇:结构体 Go语言的并发模式:不要通过共享内存来通信,而应该通过通信来共享内存。 Go语言…

cesium ClippingPolygon多边形裁切

1.多边形裁切 1.1 基本流程 cesium117版本添加了多边形裁切功能,本文分析源码,看看是如何处理的。多边形裁切的大概流程分为4部分: 通过经纬度坐标传入多个闭合的边界;将多个边界打包成两张纹理,一张是每个多边形的坐标&#xf…

Spring框架永远滴神之SpringAI玩转大模型

文章目录 一、SpringAI简介1.什么是SpringAI2.SpringAI支持的大模型类型(1)聊天模型(2)文本到图像模型(3)转录(音频到文本)模型(4)嵌入模型(5&…

多标签识别:JoyTag模型的图像标注革命【开源】

公共视觉模型通常会对其训练数据集进行严格过滤,这限制了这些基础模型在广泛概念上的表现,进而限制了表达自由、包容性和多样性。JoyTag通过结合Danbooru 2021数据集和一组手动标记的图像,努力提高模型对不同类型图像的泛化能力。 JoyTag项目…

Python批量保存Excel文件中的图表为图片

Excel工作簿作为一款功能强大的数据处理与分析工具,被广泛应用于各种领域,不仅能够方便地组织和计算数据,还支持用户创建丰富多彩的图表,直观展示数据背后的洞察与趋势。然而,在报告编制、网页内容制作或分享数据分析成…

新办理北京广播电视节目制作许可证需要什么条件

在北京想要从事广播电视节目制作,那就需要企业拥有广播电视节目制作经营许可证。此许可证不仅是企业合法经营的基础,同时也是保障节目制作质量和内容合规的标志。如何办理,详情致电咨询我或者来公司面谈。 北京广播电视节目制作经营许可证申请…

开源项目大合集(热门)

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

【Python】PySide6使用入门和注意事项

文章目录 前言关于PySide和PyQtQt Designerpyside6在vscode中ui文件转换兼容性问题主程序结构蓝牙协议初探(应用层) 前言 最近在开发一个带界面的软件,需要使用蓝牙,然后找到一个开源仓库使用的是Qt里面的Qbluetooth模块&#xff…

「网络原理」IP 协议

🎇个人主页:Ice_Sugar_7 🎇所属专栏:计网 🎇欢迎点赞收藏加关注哦! IP 协议 🍉报头结构🍉地址管理🍌动态分配 IP 地址🍌NAT 机制(网络地址映射&am…

AMD平台,5600X+6650XT,虚拟机安装macOS 14(2024年6月)

AMD平台安装macOS 14的麻烦,要比Intel平台多的多,由于macOS从13开始,对CPU寄存器的读取进行了改变,导致AMD平台只要安装完macOS 13及以后版本,开机后就报五国语言错误,不断重启。改vmx文件,被证…

VR虚拟仿真技术模拟还原给水厂内外部结构

在厂区的外围,我们采用VR全景拍摄加3D开发建模的方式,还原了每一处细节,让你仿佛置身于现场,感受那份宁静与庄重。 当你踏入厂区,我们为你精心策划了一条游览路线,从门口到各个重要场景,一一为…

2025年计算机毕业设计题目参考

今年最新计算机毕业设计题目参考 以下可以参考 springboot洗衣店订单管理系统 springboot美发门店管理系统 springboot课程答疑系统 springboot师生共评的作业管理系统 springboot平台的医疗病历交互系统 springboot购物推荐网站的设计与实现 springboot知识管理系统 springbo…

Pytorch深度解析:Transformer嵌入层源码逐行解读

前言 本部分博客需要先阅读博客: 《Transformer实现以及Pytorch源码解读(一)-数据输入篇》 作为知识储备。 Embedding使用方式 如下面的代码中所示,embedding一般是先实例化nn.Embedding(vocab_size, embedding_dim)。实例化的…

怎么给二维码添加文字或logo?快速美化二维码的使用技巧

怎么给已生成的二维码修改样式呢?目前常规生成的二维码大多是普通黑白色的,没有明显的标识不利于用户辨别。想要提升二维码的辨识度可以通过添加logo、添加文字的方式来改变二维码的样式,让用户看到二维码就知道是否是自己需要的内容&#xf…

智能制造uwb高精度定位系统模块,飞睿智能3厘米定位测距芯片,无人机高速传输

在科技日新月异的今天,定位技术已经渗透到我们生活的方方面面。从手机导航到自动驾驶,再到无人机定位,都离不开精准的定位系统。然而,随着应用场景的不断拓展,传统的定位技术如GPS、WiFi定位等,因其定位精度…

【AI基础】大模型部署工具之ollama的安装部署

ollama是大模型部署方案,对应docker,本质也是基于docker的容器化技术。 从前面的文章可以看到,部署大模型做的准备工作是比较繁琐的,包括各个环节的版本对应。ollama提供了一个很好的解决方案。 ollama主要针对主流的LLaMA架构的…

如何使用xurlfind3r查找目标域名的已知URL地址

关于xurlfind3r xurlfind3r是一款功能强大的URL地址查询工具,该工具本质上是一个CLI命令行工具,可以帮助广大研究人员从多种在线源来查询目标域名的已知URL地址。 功能介绍 1、从被动在线源获取URL地址以实现最大数量结果获取; 2、支持从Way…