数字电路基础(五)算术运算电路

数字电路基础(五)算术运算电路

一、二进制加法电路

1.半加器和全加器

(1)半加器

半加器是一个只考虑两个一位二进制数相加,而不考虑低位进位的运算电路。如下图所示是半加器的逻辑图:
在这里插入图片描述

A A A B B B端的输入不同时, S S S输出的和为1;相同时,S输出的是0,符合二进制的加法运算规则。但当 A A A B B B都为1时,向高位会产生一个进位,此时 C C C的输出为1。

(2)全加器

在半加器的基础上,考虑本位数来自低位的进位,构成了全加器。根据二进制加法的规则,我们首先给出全加器的真值表,如下图所示:
在这里插入图片描述

根据真值表我们可以写出逻辑表达式:
S i = A i ⊕ B i ⊕ C i , C i + 1 = A i B i + C i ( A I ⊕ B i ) S_i=A_i\oplus B_i \oplus C_i,C_{i+1}=A_iB_i+C_i(A_I\oplus B_i) Si=AiBiCi,Ci+1=AiBi+Ci(AIBi)
故可以画出它的逻辑图如下图所示:
在这里插入图片描述

全加器是计算机中最基础的算术逻辑单元。

2.加法器

这里只介绍行波进位加法器,这种加法器由于是从最低位开始做加法,逐步进位到最高位,随着位数的增多,其运算速度也会减慢。在连接电路时,加法器的个数等于被加数和加数的位数,尽管运算速度并不是很快,但它的连接是相对简单的。
如图所示是一个四位行波进位加法器的连接图:
在这里插入图片描述

二、二进制减法电路

虽然我们可以通过真值表列逻辑表达式的方式设计出半减器和全减器,但是我们一般使用加法器实现减法的功能。

1.二进制正负数的表示方法

(1)原码

原码是指在二进制数的最前面加一个符号位,正数的符号位为0,负数的符号位为1,其余各位表示的是数的绝对值,比如:+10110的原码是010110,而-10110的原码是110110.

(2)补码

正数的补码和它本身是相同的。
负数的补码是它本身的反码再加1,而它的反码则是出了符号位之外的所有数位全部取反得到的。例如:11101的反码是10010,再加1得到它的补码即:10011.

2.减法电路

由于减去一个数等于加上一个数的负数,减去一个负数等于加上一个正数,故我们可以用加法实现减法。我们在钟表中有这样的循环:
比如现在时间是13:00,我想要到达12:00,那么就有两种方式可以,一种是等待到11小时;一种是时间倒流1小时;再比如现在是20:00, 我想要到达15:00,那么也有两种方式,第一种是等待7小时(此时指针指向3),一种是时间倒流5小时。我们把等待的时间看做是加上一个数,把时间倒流看做是减去一个数,我们发现,加和减两个不同的数,得到的结果都是一样的,而且我们发现这两个数绝对值的和为12,是一个定值。因为时钟本身是一个循环,补码做减法的原理也是一样,补码和它本身的和始终是0,故相当于减去一个数相当于加上这个数的补码。
等我们需要实现这样的效果,使用之前所学到的加法器即可,只需要把加数转换为补码的形式再做加法即可。

实验一 算术逻辑单元 1. 实验目的 (1) 掌握运算器的工作原理。 (2) 验证运算器的功能 2. 实验要求 (1)基本要求 设计一个4位的算术逻辑单元,满足以下要求。 ①4位算术逻辑单元能够进行下列运算:加法、减法、加1、减1、与、或、非和传递。用3位操作码进行运算,控制方式如下表所示。 运算操作码     运   算 对标识位Z和C的影响 000 result ←A+B 影响标志位Z和C 001 result ←A+1 影响标志位Z和C 010 result ←A-B 影响标志位Z和C 011 result ←A-1 影响标志位Z和C 100 result←A and B 影响标志位Z 101 result←A or B 影响标志位Z 110 result← not B 影响标志位Z 111 result←B 不影响标志位Z和C ②设立两个标志触发器Z和C。当复位信号reset为低电平时,将这两个标志触发器清零。当运算结束后,在时钟clk的上升沿改变标志触发器Z和C的值。运算结果改变标志触发器C、Z的情况如下:加法、减法、加1、减1运算改变Z、C;与、或、非运算改变Z,C保持不变;传送操作保持Z、C不变。因此在运算结束时Z、C需要两个D触发器保持。 ③为了保存操作数A和B,设计两个4位寄存器A和B。当寄存器选择信号sel=0时,如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入A寄存器;当sel=1时,如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入B。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值