《数字逻辑设计与计算机组成》一 3.4 减法器

简介: 本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第3章,第3.4节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 减法器

减法器用图3-9所示[2]的一种方法生成两个4位输入X和Y的差值D。在方法a中,每次xi < yi时,如果xi + 1 > 0,需要向xi + 1(下一高位)借1,然后在xi上加2。如果xi + 1 = 0,那么当xi + 2 > 0时,就向xi + 2借1,并把2加到xi + 1上。如果xi + 2 = 0,那么就向xi + 3借1,把2加到xi + 2上,等等。这个过程递归一直到xi≥yi,且di = xi - yi为0或1。在图中,x0 = 0小于y0 = 1;这样,需要从x1上借1。然而,因为x1 = 0,需要从x2借1。剩下的比特位也将进行相同的处理。此例不会产生借位输出,因为X = 12 = (1100)2大于Y = 3 = (0011)2,这样D = 12 - 3 = 9 = (1001)2。

image

在方法b中,每一次xi < yi时,都会把抵扣1加到yi + 1(下一高位)上,然后在xi上加2生成di = xi - yi为0或者1。在例子中,x0 = 0小于y0 = 1;这样,需要在y1上加上1,让y1 = 2且2加到x0上,使得x0 = 2。这样d0 = x0 - y0为1(2 - 1 = 1)。下一步,x1 = 0,小于y1 = 2;这样,再次需要把1加到y2上,使其为1,且2加到x1上,使其为2。结果为d1 =
2 - 2 = 0。剩下的比特位也按照相同的方法最终得到D = 9 = (1001)2。
n位的借位传播减法器(BPS)类似于n位的CPA,用n个1位减法器片组合而成。每一片都从X输入一位数,从Y输入一位数,然后一个借位/抵扣位(0或1)和输出一位差值和下一借位/抵扣位,如下第i位所示。n位BSP如图3-10所示。
image

对于第i位的借位和抵扣位加法器算法将在后续讨论。除了圆括号用于强制优先,所以展示了方法a的借位法和方法b的抵扣法概念,差值为d[i]的算式在两种算法中都是一样的。
减法算法
方法a:借位算法(圆括号展示如何进行借位)
image

image

表3-1和公式(3-13)展示了1位减法器片的真值表和逻辑表达式。真值表简单地决定了之前讨论两种减法算法中的一种。考虑到差值和借位(抵扣位)表达式与FA的和值和进位表达式相似。或者,先行借位减法器(BLA)可以用CLA的方法设计。
image

相关文章
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
1057 0
【笔记】PCIe LTSSM 状态转移
【笔记】PCIe LTSSM 状态转移
3963 0
【笔记】PCIe LTSSM 状态转移
|
存储 编解码 监控
G-Code 详解
玩过一段时间3D打印机的朋友,都会接触到G-code文件。所谓G-code文件, 指的是3D模型在进入3D打印机实际打印之前,必须要经过切片器处理而成的一种中间格式文件。
6808 0
|
7月前
|
网络协议 编译器 C语言
C语言深度解析:内存对齐与结构体填充的底层逻辑
C语言中,内存对齐是CPU硬件强制要求的底层规则,直接影响结构体大小、访问性能与硬件兼容性。合理排列成员可减少填充、节省内存;滥用`#pragma pack`则易致崩溃或性能暴跌。嵌入式、网络协议与跨平台开发必备核心知识。(239字)
703 14
spring3 springfox报错Type javax.servlet.http.HttpServletRequest not present
spring3 springfox报错Type javax.servlet.http.HttpServletRequest not present
1801 0
|
IDE Shell 网络安全
Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
1155 0
Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
|
8月前
|
人工智能 安全 应用服务中间件
OpenClaw(Clawdbot)一键部署,打造滴滴出行助手,一键打车+实时查司机位置全攻略
OpenClaw(曾用名Clawdbot、Moltbot)的强大之处在于其高度可扩展的Skill(技能插件)系统,不仅能处理工作中的文档、代码需求,还能深度整合生活服务场景。其中,滴滴出行Skill就是极具实用价值的拓展——通过简单配置,就能让OpenClaw变身专属出行助手,实现查询可用车型、一键下单打车、实时追踪司机位置、取消订单等全流程操作,无需反复打开滴滴APP,在聊天窗口就能完成所有出行安排。
1762 15
|
Linux 开发工具
如何在 Linux 中编辑配置文件?
如何在 Linux 中编辑配置文件?
1022 2
如何在 Linux 中编辑配置文件?
|
存储 缓存 安全
阿里云服务器经济型、通用算力型、计算型、通用型、内存型实例区别及选择参考
阿里云服务器的实例规格有经济型、通用型、计算型、内存型、通用算力型、大数据型、本地SSD型、高主频型、突发型、共享型等不同种类的实例规格,在阿里云的活动中,主要以经济型、通用算力型、计算型、通用型、内存型实例为主,相同配置的云服务器往往有多个不同的实例可选,而且价格差别也比较大,这会是因为不同实例规格的由于采用的处理器不同,底层架构也有所不同(例如X86 计算架构与Arm 计算架构),因此不同实例的云服务器其性能与适用场景是有所不同。本文为大家详细介绍阿里云的经济型、通用算力型、计算型、通用型和内存型实例的性能特点及适用场景,以供大家选择参考。
阿里云服务器经济型、通用算力型、计算型、通用型、内存型实例区别及选择参考