加/减法电路

基本门电路

1.与门

在这里插入图片描述
门形状
在这里插入图片描述
在这里插入图片描述
真值表
在这里插入图片描述

2.或门

在这里插入图片描述
门形状
在这里插入图片描述
在这里插入图片描述
大于等于1 可以理解为:当 A + B >= 1 时,Y输出高电平。
真值表
在这里插入图片描述

3.非门

在这里插入图片描述
门形状
在这里插入图片描述
在这里插入图片描述

真值表
在这里插入图片描述

4.异或门

在这里插入图片描述
门形状
在这里插入图片描述

在这里插入图片描述

等于1 可以理解为: 当 A + B = 1时,Y输出高电平。

真值表
在这里插入图片描述
异或逻辑运算规则和加法规则很接近,可以用异或逻辑电路构成加法电路(没有进位的半加器)

典型逻辑元件

半加器

我的第一堂数电课-芯片内部是如何实现加法运算的?模拟信号和数字信号有什么区别?李永乐老师讲解门电路(2018最新)
在这里插入图片描述
真值表
在这里插入图片描述

一位全加器

在这里插入图片描述
A为被加数
B为加数
Cin为相邻低位来的进位数
S为相加后输出本位
Cout为向相邻高位进位数

S = A ^ B ^ Cin
Cout = (A ^ B) & Cin + A & B

四位串行加法器

元件少成本低,可用于某些低速的专用运算器
在这里插入图片描述
串行进位链
C1 = A1B1 + (A1 ^ B1)C0 = G1 + P1C0
C2 = A2B2 + (A2 ^ B2)C1 = G2 + P2C1
C3 = A3B3 + (A3 ^ B3)C2 = G3 + P3C2
...
Cn-1 = An-1Bn-1 + (An-1 ^ Bn-1)Cn-2 = Gn-1 + Pn-1Cn-2
Cn = AnBn + (An ^ Bn)Cn-1 = Gn + PnCn-1
某位的进位信号的产生依赖于低位进位信号的产生。

四位串行加/减法器

在这里插入图片描述
减法模式时,减数通过异或门按位取反,再相加。

带溢出检测功能的串行加/减法器

1.检测同符号数之间相加是否溢出电路
在这里插入图片描述
2.检测最高有效数据位和符号位进位位是否同步
在这里插入图片描述

带无符号数溢出检测功能的串行加/减法器

在这里插入图片描述

四位并行加法器

将串行进位链改写:
C1 = G1 + P1C0
C2 = G2 + P2C1= G2 + P2( G1 + P1C0) = G2 + P2G1 + P2P1C0
C3 = G3 + P3C2= G3 + P3( G2 + P2G1 + P2P1C0 ) = G3 + P3G2 + P3P2G1 + P3P2P1C0
...
Cn = Gn + PnGn-1 + PnPn-1Gn-2 + ... + PnPn-1Pn-2…P4P3P2P1G1 + PnPn-1Pn-2…P4P3P2P1G0
改写后,各进位信号的产生不再与相邻低位的进位信号有关,只与参加运算的数和C0有关。
按这组表达式的要求用逻辑电路形成各位的进位信号,则称形成这种进位信号的逻辑网络为并行进位链。
工程上对这组逻辑表达式的逻辑实现有一定困难。例如,表达式Cn的最后一项,在n = 16的情况下,就要求“与”门电路有17个输入端,逻辑电路的扇入系数不允许采用这种全并行方式。解决这个矛盾的基本方法,是根据元器件的特征将加法器分成若干个小组,对小组内的进位逻辑和小组间的进位逻辑作不同选择。

1. 组内并行,组间串行

每小组4位,每组内部采用并行进位结构,组间采用串行进位传递结构
C1 = G1 + P1C0
C2 = G2 + P2G1 + P2P1C0
C3 = G3 + P3G2 + P3P2G1 + P3P2P1C0
G4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1G0
来自低位的进位信号只有C0,送到高位小组的进位信号只有C4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 组内并行,组间并行
仿照分析每一位进位信号的方法,将每个小组最高位进位分成进位传送函数和进位生成函数两个部分:
G4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1G0

  • 只有最后一项 P4P3P2P1G0 依赖低位小组的进位信号,称为第一组的传送进位,其中P4P3P2P1为小组的传送函数,记作P1*
  • 前面4项与C0无关,只与本小组内的Gi,Pi有关,称为第一小组的进位生成函数,记为G1*
    G1* = G4 + P4G3 + P4P3G2 + P4P3P2G1

因此 C4 = G1* + P1*C0
同理

  • C4 = G1* + P1*C0
  • C8 = G2* + P2*C4
  • C12 = G3* + P3*C8
  • C16 = G4* + P4*C12

继续展开得到:

  • C4 = G1* + P1*C0
  • C8 = G2* + P2*G1 *+ P2*P1*C0
  • C12 = G3* + P3*G2* + P3*P2*G1*+ P3*P2*P1*C0
  • C16 = G4* + P4*G3* + P4*P3*G2*+ P4*P3*P2*G1* + P4*P3*P2*P1*C0
  1. 第一小组产生G1*,P1*,C1,C2,C3,不在组内产生C4
  2. 第二小组产生G2*,P2*,C5,C6,C7,不在组内产生C8
  3. 第三小组产生G3*,P3*,C9,C10,C11,不在组内产生C12
  4. 第一小组产生G4*,P4*,C13,C14,C15,不在组内产生C16

各小组的进位生成函数和进位传送函数的逻辑表达式为:

  1. G1* = G4 + P4G3 + P4P3G2 + P4P3P2G1
  2. G2* = G8 + P8G7 + P8P7G6 + P8P7P6G5
  3. G3* = G12 + P12G11 + P12P11G10 + P12P11P10G9
  4. G4* = G16 + P16G15 + P16P15G14 + P16P15P14G13
  5. P1* = P4P3P2P1
  6. P2* = P8P7P6P5
  7. P3* = P12P11P10P9
  8. P4* = P16P15P14P13
    在这里插入图片描述
    进位产生次序如下:
    _1. 产生第一小组的C1,C2,C3及所有Gi*,Pi*
    _2. 随后产生组间进位信号C4,C8,C12,C16
    _3. 然后再产生第二,三,四小组的C5到C15
    在这里插入图片描述
posted @ 2020-03-29 16:13  LanceHansen  阅读(661)  评论(0编辑  收藏  举报