数字电路基础那些事2——组合逻辑:从异或门到半加器与全加器+比较器

一、异或门

1. 功能叙述

两个输入信号为相反电平时,输出才为高电平

2. 符号

  • 计算机符号:XOR

3. 组成基本逻辑

4. 逻辑表达式

※   X=AB'+A'B=A⊕B

5. 真值表

A B X
0 0 0
1 0 1
0 1 1
1 1 0

 

6. 实例应用

  • 功能叙述:并行工作的两个相同电路,只要这两个电路工作正常,则输出总是相同的,则异或门输出为低电平,只要有其中一个出了问题,则输出为高电平。用于指示其中一个电路出现了异常
  • 局限性:如果两个电路同时出现故障,但出现的故障相同,产生的错误输出相同,则异或门无法检测出电路错误

7. 引申到同或门

与异或门相反,两个输入信号为相同电平时,输出才为高电平

 X=AB+A'B'=(A⊕B)'


二、 用异或门组成半加器

1. 半加器构造:

A:输入端1

B:输入端2

S:求和原位(∑)

C:进位

举例 :

  • 1+1=10,(A=1,B=1,S=0,C=1)
  • 1+0=01,  (A=1,B=0,S=0,C=0)
  • 0+0=00,  (A=0,B=0,S=0,C=0)

2. 真值表

A B S(∑) C
1 1 0 1
1 0 1 0
0 1 1 0
0 0 0 0

3. 内部原理叙述

由真值表我们分类讨论

S(∑)=A⊕B

C=A+B

则我们可以画出内部构造:


三、 用异或门组成全加器

1. 全加器构造

 

2. 进阶与区分

  • 与半加器的区别:半加器只能处理1位二进制数,而全加器不仅能处理本位的进位,还可以处理地一位的进位。请带着这个结论看下列的真值表找寻规律

 

3. 真值表

输入
输出
Ci-1
Ai
Bi
Si
Ci
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1

 

4. 原理解释(规律解释)

  • 全加器必须将两个输入位和一个进位输入位相加

(1)详细说明

 (╯3╰)以真值表倒数第3行为例子,输入为B=1,A=0,本位输出按照半加器应该是为1,但是Ci-1=1意味着本位的上一位(低一位)进位了一个1上来,所以

(高一位进位0)(本位1)+(低一位进位1)=(高一位进位1)(本位0)(低一位)

(        0                    10  )+ (       010       )=             1                    0               0

简单来说:即(010+000)+(001+001)=100

                     (  B  + A  )+ (低位进1) =100

(╯3╰)以真值表倒数第1行为例子,输入为B=1,A=1,本位输出按照半加器应该是为0,向前一位进位1,但是Ci-1=1意味着本位的上一位(低一位)进位了一个1上来,所以

(高一位进位1)(本位0)+(低一位进位1)=(高一位进位1)(本位0)(低一位)

(        1                    00  )+  (       10       )=             1                    1               0

简单来说:即(010+010)+(001+001)=100

                     (  B  + A  )+ (低位进1) =110

(2)进一步剖析逻辑门:关于输出Si

A, B, Cin进位相加

∑(Si) = ( A ⊕ B ) ⊕ C

   (3)进一步剖析逻辑门:关于输出Ci

Cout=AB+(A⊕B)Cin

Ci即为Cout, Ci-1即为Cin. ( i 指的是当前位数 

5. 两个半加器组成全加器


 四、 并行加法器

  • 将加法器组合在一起 形成并行二进制加法器

1. 二位并行加法器

  • 下图中,用A1、B1表示两个数字得到最低有效位(LSB)。A2、B2来表示相邻的高位,∑1、∑2、∑3表示三个和位,注意,最左边全加器的进位输出变为和中的最高有效位(MSB)∑3
  •  

2. 四位并行加法器(类推)

  • 将四位作为一组称为半字节

 3. 串行进位与超前进位加法器

(1)串行进位

  • 每一个全加器的进位输出连接到下一个高一级的全加器的输入(一级对应一个全加器)
  • 任何一级的输出和及进位必须在上一级的进位到来后才能产生,这将出现时间延迟

 这样进位输出,像波浪一样,依次从低位到高位传递, 最终产生结果的加法器,也因此得名为行波进位加法器(Ripple-Carry Adder,RCA)

  •  延迟时间计算:

对于最低位的全加器,它在A、B和Cin都已经准备好。其实,输入信号进入到这块电路之后,在连接线上传递需要花时间。 称为线延迟,而经过这样的门,也需要花时间,称为门延迟。 在进行设计原理分析时,我们主要关注门延迟。

从第一个全加器的A-S这条通路来看,产生第一个S输出,需要通过两个门的延迟。 所以它显然不是最长的路径,当然,从A出发或着从B出发都是一样的, 所以对于第一个全加器,它的最长路径,是红色线标记的那条,后面的全加器关键路径同理可得。那么,假设经过一个门电路的延迟时间为T,那么经过4个全加器所需要的总延迟时间就是:2T x 4 + T(第一个全加器产生3个T) = 9T。所以推出,经过n个全加器所产生的总延迟时间为2T x n + T = (2n+1)T。

(2)超前进位加法器

第一种超前进位加法器推导方法

产生进位信号:出现在全加器内部加法运算产生的进位输出的时刻。当且仅当两个输入为1时,生成一个产生进位信号。产生进位函数Cg用两个输入位A和B的与运算表示。Cg=AB

传送进位信号:出现在输入进位串行传送到输出进位的时刻。当全加器额的输入位只要有一个位为1时,输入进位便可通过全加器进行传送。传送进位函数Cp用两个输入位的或运算表示Cp=A+B

(当Ai,Bi,Ci有任意两个输入为1时,Ci+1就为1)

当Ai和Bi都为1时,Gi = 1,产生进位Ci+1 = 1

当Ai和Bi有一个为1时,Pi = 1,传递进位Ci+1 = Ci

因此Gi 定义为进位产生信号,Pi定义为进位传递信号。Gi的优先级比Pi高,也就是说:当Gi = 1时(当然此时也有 Pi = 1 ),无条件产生进位,而不管Ci是多少;

当Gi=0而Pi=1时,进位输出为Ci, 跟Ci之前的逻辑有关。

由此来表示4个全加器的进位输出为:

 根据上面的优化算法,我们重新绘制了CLA的布线方式:

 

 延迟计算:

最后四位超前进位加法运算器的逻辑图如下:

 

 第二种超前加法进位器推导方法(下面这个链接讲的很清楚)

 https://zhuanlan.zhihu.com/p/101332501


五. 比较器(以同或门为核心)

(1)基本功能

比较两个二进制数的大小以确定这两个量的关系

(2)相等比较器

由于串行进位加法器的速度受到进位信号的限制,人们又设计了一种多位数超前进位加法逻辑电路,使每位的进位只由被加数和加数决定,而与低位的进位无关

(3)不等比较器

 略

原文地址:https://www.cnblogs.com/Wilson-hhx/p/12503029.html