第四章 组合逻辑模块及其应用
上一章介绍了组合逻辑电路的分析与设计方法。随着微电子技术的发展,现在许多常用的组合逻辑电路都有现成的集成模块,不需要我们用门电路设计。本章将介绍编码器、译码器、数据选择器、数值比较器、加法器等常用组合逻辑集成器件,重点分析这些器件的逻辑功能、实现原理及应用方法。
4.1 编码器
一,编码器的基本概念及工作原理编码——将字母、数字、符号等信息编成一组二进制代码。
例:键控8421BCD码编码器。
左端的十个按键S0~S9代表输入的十个十进制数符号0~9,输入为低电平有效,即某一按键按下,对应的输入信号为0。输出对应的8421码,为4位码,所以有4个输出端A、B、C、D。

图4.1.1 键控8421BCD码编码器由真值表写出各输出的逻辑表达式为:




表4.1.1 键控8421BCD码编码器真值表输 入
输 出
S9 S8 S7 S6 S5 S4 S3 S2 S1 S0
A B C D GS
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1
0 0 0 0 0
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 1
画出逻辑图,如图4.1.1所示。
其中GS为控制使能标志,当按下S0~S9任意一个键时,GS=1,表示有信号输入;当S0~S9均没按下时,GS=0,表示没有信号输入,此时的输出代码0000为无效代码。
二,二进制编码器
用n位二进制代码对2n个信号进行编码的电路称为二进制编码器。
3位二进制编码器有8个输入端3个输出端,所以常称为8线—3线编码器,其功能真值表见表4.1.2,输入为高电平有效。
表4.1.2 编码器真值表输 入
输 出
I0 I1 I2 I3 I4 I5 I6 I7
A2 A1 A0
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
由真值表写出各输出的逻辑表达式为:



用门电路实现逻辑电路。

图4.1.2 3位二进制编码器
三,优先编码器优先编码器——允许同时输入两个以上的编码信号,编码器给所有的输入信号规定了优先顺序,当多个输入信号同时出现时,只对其中优先级最高的一个进行编码。
74148是一种常用的8线-3线优先编码器。其功能如表4.1.3 所示,其中I0~I7为编码输入端,低电平有效。A0~A2为编码输出端,也为低电平有效,即反码输出。其他功能:
(1)EI为使能输入端,低电平有效。
(2)优先顺序为I7→I0,即I7的优先级最高,然后是I6、I5、…、I0。
(3)GS为编码器的工作标志,低电平有效。
(4)EO为使能输出端,高电平有效。
表4.1.3 74148优先编码器真值表输 入
输 出
EI I0 I1 I2 I3 I4 I5 I6 I7
A2 A1 A0 GS EO
1 × × × × × × × ×
0 1 1 1 1 1 1 1 1
0 × × × × × × × 0
0 × × × × × × 0 1
0 × × × × × 0 1 1
0 × × × × 0 1 1 1
0 × × × 0 1 1 1 1
0 × × 0 1 1 1 1 1
0 × 0 1 1 1 1 1 1
0 0 1 1 1 1 1 1 1
1 1 1 1 1
1 1 1 1 0
0 0 0 0 1
0 0 1 0 1
0 1 0 0 1
0 1 1 0 1
1 0 0 0 1
1 0 1 0 1
1 1 0 0 1
1 1 1 0 1
其逻辑图如图所示。

图4.1.3 74148优先编码器的逻辑图
四,编码器的应用
1.编码器的扩展集成编码器的输入输出端的数目都是一定的,利用编码器的输入使能端EI、输出使能端EO和优先编码工作标志GS,可以扩展编码器的输入输出端。
图4.1.4所示为用两片74148优先编码器串行扩展实现的16线—4线优先编码器。

图4.1.4 串行扩展实现的16线—4线优先编码器它共有16个编码输入端,用X0~X15表示;有4个编码输出端,用Y0~Y3表示。片1为低位片,其输入端I0~I7作为总输入端X0~X7;片2为高位片,其输入端I0~I7作为总输入端X8~X15。两片的输出端A0、A1、A2分别相与,作为总输出端Y0、Y1、Y2,片2的GS端作为总输出端Y3。片1的输出使能端EO作为电路总的输出使能端;片2的输入使能端EI作为电路总的输入使能端,在本电路中接0,处于允许编码状态。片2的输出使能端EO接片的输入使能端EI,控制片1工作。两片的工作标志GS相与,作为总的工作标志GS端。
电路的工作原理为:当片2的输入端没有信号输入,即X8~X15全为1时,GS2=1(即Y3=1),EO2=0(即EI1=0),片1处于允许编码状态。设此时X5=0,则片1的输出为A2A1A0=010,由于片2输出A2A1A0=111,所以总输出Y3Y2Y1Y0=1010。
当片2有信号输入,EO2=1(即EI1=1),片1处于禁止编码状态。设此时X12=0(即片2的I4=0),则片2的输出为A2A1A0=011,且GS2=0。由于片1输出A2A1A0=111,所以总输出Y3Y2Y1Y0=0011。
2.组成8421BCD 编码器
图4.1.5所示是用74148和门电路组成的8421BCD编码器,输入仍为低电平有效,输出为8421DCD码。工作原理为:
当I9、I8无输入(即I9、I8均为高平)时,与非门G4的输出Y3=0,同时使74148的EI=0,允许74148工作,74148对输入I0~I7进行编码。如I5=0,则A2A1A0=010,经门G1、G2、G3处理后,Y2Y1Y0=101,所以总输出Y3Y2Y1Y0=0101。这正好是5的842lBCD码。
当I9或I8有输入(低电平)时,与非门G4的输出Y3=1,同时使74148的EI=1,禁止74148工作,使A2A1A0=111。如果此时I9=0,总输出Y3Y2Y1Y0=1001。如果I8=0,总输出Y3Y2Y1Y0=1000。正好是9和8的842lBCD码。

图4.1.5 74148组成8421BCD编码器
4.2 译码器
一,译码器的基本概念及工作原理
译码器——将输入代码转换成特定的输出信号。
假设译码器有n个输入信号和N个输出信号,如果N=2n,就称为全译码器,常见的全译码器有2线—4线译码器、3线—8线译码器、4线—16线译码器等。如果N<2n,称为部分译码器,如二一十进制译码器(也称作4线—10线译码器)等。
下面以2线—4线译码器为例说明译码器的工作原理和电路结构。
2线—4线译码器的功能如表4.2.1 所示。
表4.2.1 2线—4线译码器功能表输 入
输 出
EI A B
Y0 Y1 Y2 Y3
1 × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 1 1 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
由表4.2.1可写出各输出函数表达式:




用门电路实现2线—4线译码器的逻辑电路如图4.2.1所示。

图4.2.1 2线—4线译码器逻辑图
二,集成译码器
1.二进制译码器74138
74138是一种典型的二进制译码器,其逻辑图和引脚图如图4.2.2所示。它有3个输入端A2、A1、A0,8个输出端Y0~Y7,所以常称为3线—8线译码器,属于全译码器。输出为低电平有效,G1、G2A和G2B为使能输入端。

图4.2.2 74138集成译码器逻辑图表4.2.2 3线—8线译码器74138功能表输 入
输 出
G1 G2A G2B
A2 A1 A0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
× 1 ×
× × 1
0 × ×
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
× × ×
× × ×
× × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 0
2.8421BCD译码器7442(自学)
三,译码器的应用
1.译码器的扩展利用译码器的使能端可以方便地扩展译码器的容量。图4.2.4所示是将两片74138扩展为4线—16线译码器。
其工作原理为:当E=1时,两个译码器都禁止工作,输出全1;当E=0时,译码器工作。这时,如果A3=0,高位片禁止,低位片工作,输出Y0~Y7由输入二进制代码A2AlA0决定;如果A3=1,低位片禁止,高位片工作,输出Y8~Y15由输入二进制代码A2AlA0决定。从而实现了4线—16线译码器功能。

图4.2.4 两片74138扩展为4线—16线译码器
2.实现组合逻辑电路
由于译码器的每个输出端分别与一个最小项相对应,因此辅以适当的门电路,便可实现任何组合逻辑函数。
例4.2.1 试用译码器和门电路实现逻辑函数

解:(1)将逻辑函数转换成最小项表达式,再转换成与非—与非形式。
=m3+m5+m6+m7
=
(2)该函数有三个变量,所以选用3线—8线译码器74138。
用一片74138加一个与非门就可实现逻辑函数L,逻辑图如图4.2.5所示。
例4.2.2 某组合逻辑电路的真值表如表4.2.4所示,试用译码器和门电路设计该逻辑电路。
解:(1)写出各输出的最小项表达式,再转换成与非—与非形式。



(2)选用3线—8线译码器74138。设A=A2、B=A1、C=A0。将L、F、G的逻辑表达式与74138的输出表达式相比较,有:



用一片74138加三个与非门就可实现该组合逻辑电路,逻辑图如图4.2.6所示。
表4.2.4 例4.2.2 的真值表输 入
输 出
A B C
L F G
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0 1
1 0 0
1 0 1
0 1 0
1 0 1
0 1 0
0 1 1
1 0 0
可见,用译码器实现多输出逻辑函数时,优点更明显。
3.构成数据分配器
数据分配器——将一路输入数据根据地址选择码分配给多路数据输出中的某一路输出。
它的作用与图4.2.7所示的单刀多掷开关相似。
由于译码器和数据分配器的功能非常接近,所以译码器一个很重要的应用就是构成数据分配器。也正因为如此,市场上没有集成数据分配器产品,只有集成译码器产品。当需要数据分配器时,可以用译码器改接。
例4.2.3 用译码器设计一个“1线-8线”数据分配器。
表4.2.5 数据分配器功能表地址选择信号
输出
A2 A1 A0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
D=D0
D=D1
D=D2
D=D3
D=D4
D=D5
D=D6
D=D7
图4.2.8 用译码器构成数据分配器
四.数字显示译码器在数字系统中,常常需要将数字、字母、符号等直观地显示出来,供人们读取或监视系统的工作情况。能够显示数字、字母或符号的器件称为数字显示器。
在数字电路中,数字量都是以一定的代码形式出现的,所以这些数字量要先经过译码,才能送到数字显示器去显示。这种能把数字量翻译成数字显示器所能识别的信号的译码器称为数字显示译码器。
常用的数字显示器有多种类型。
按显示方式分,有字型重叠式、点阵式、分段式等。
按发光物质分,有半导体显示器,又称发光二极管(LED)显示器、荧光显示器、液晶显示器、气体放电管显示器等。
目前应用最广泛的是由发光二极管构成的七段数字显示器。
1.七段数字显示器原理七段数字显示器就是将七个发光二极管(加小数点为八个)按一定的方式排列起来,七段a、b、c、d、e、f、g(小数点DP)各对应一个发光二极管,利用不同发光段的组合,显示不同的阿拉伯数字。
图4.2.9 七段数字显示器及发光段组合图 (a)显示器 (b)段组合图
按内部连接方式不同,七段数字显示器分为共阴极和共阳极两种。
图4.2.10 半导体数字显示器的内部接法 (a)共阳极接法 (b)共阴极接法
半导体显示器的优点是工作电压较低(1.5~3V)、体积小、寿命长、亮度高、响应速度快、工作可靠性高。缺点是工作电流大,每个字段的工作电流约为10mA左右。
2.七段显示译码器7448
七段显示译码器7448是一种与共阴极数字显示器配合使用的集成译码器,它的功能是将输入的4位二进制代码转换成显示器所需要的七个段信号a~g。
表4.2.6为它的逻辑功能表。 a~g为译码输出端。另外,它还有3个控制端:试灯输入端LT、灭零输入端RBI、特殊控制端BI/RBO。其功能为:
(1)正常译码显示。LT=1,BI/RBO=1时,对输入为十进制数l~15的二进制码(0001~1111)进行译码,产生对应的七段显示码。
(2)灭零。当输入RBI =0,而输入为0的二进制码0000时,则译码器的a~g输出全0,使显示器全灭;只有当RBI =1时,才产生0的七段显示码。所以RBI称为灭零输入端。
(3)试灯。当LT=0时,无论输入怎样,a~g输出全1,数码管七段全亮。由此可以检测显示器七个发光段的好坏。 LT称为试灯输入端。
(4)特殊控制端BI/RBO。BI/RBO可以作输入端,也可以作输出端。
作输入使用时,如果BI=0时,不管其他输入端为何值,a~g均输出0,显示器全灭,。因此BI称为灭灯输入端。
作输出端使用时,受控于RBI。当RBI=0,输入为0的二进制码0000时,RBO=0,用以指示该片正处于灭零状态。所以,RBO 又称为灭零输出端。
将BI/RBO和RBI配合使用,可以实现多位数显示时的“无效0消隐”功能。
在多位十进制数码显示时,整数前和小数后的0是无意义的,称为“无效0”。 在图4.2.12所示的多位数码显示系统中,就可将无效0灭掉。从图中可见,由于整数部分7448除最高位的RBI接0、最低位的RBI接1外,其余各位的RBI均接受高位的RBO
输出信号。所以整数部分只有在高位是0,而且被熄灭时,低位才有灭零输入信号。同理,小数部分除最高位的RBI接1、最低位的RBI接0外,其余各位均接受低位的RBO输出信号。所以小数部分只有在低位是0、而且被熄灭时,高位才有灭零输入信号。从而实现了多位十进制数码显示器的“无效0消隐”功能。
表4.2.6 七段显示译码器7448的逻辑功能表功能
(输入)
输入
输入/输出
输出
显示字形
LT RBI
A3 A2 A1 A0
BI/RBO
a b c d e f g
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
灭灯灭零试灯
1 1
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
× ×
1 0
0 ×
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
× × × ×
0 0 0 0
× × × ×
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1 1 1 1 1 1 0
0 1 1 0 0 0 0
1 1 0 1 1 0 1
1 1 1 1 0 0 1
0 1 1 0 0 1 1
1 0 1 1 0 1 1
0 0 1 1 1 1 1
1 1 1 0 0 0 0
1 1 1 1 1 1 1
1 1 1 0 0 1 1
0 0 0 1 1 0 1
0 0 1 1 0 0 1
0 1 0 0 0 1 1
1 0 0 1 0 1 1
0 0 0 1 1 1 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 1 1 1 1
4.3 数据选择器
4.3.1 数据选择器的基本概念及工作原理数据选择器——根据地址选择码从多路输入数据中选择一路,送到输出。它的作用与图4.3.1所示的单刀多掷开关相似。
常用的数据选择器有4选1、8选1、16选1等多种类型。下面以4选1为例介绍数据选择器的基本功能、工作原理及设计方法。
四选一数据选择器的功能如表4.3.1 所示。
表4.3.1 4选1数据选择器功能表输 入
输 出
G
A1 A0
D3 D2 D1 D0
Y
1
× ×
× × × ×
0
0
0 0
× × × 0
× × × 1
0
1
0 1
× × 0 ×
× × 1 ×
0
1
1 0
× 0 × ×
× 1 × ×
0
1
1 1
0 × × ×
1 × × ×
0
1
根据功能表,可写出输出逻辑表达式

由逻辑表达式画出逻辑图如图4.3.2所示。

图4.3.2 4选1数据选择器的逻辑图二.集成数据选择器
74151是一种典型集成8选1数据选择器,其逻辑图和引脚图如图4.3.3所示。它有8个数据输入端D0~D7,3个地址输入端A2、A1、A0,2个互补的输出端Y和,1个使能输入端G,使能端G仍为低电平有效。74151的功能表如表4.3.2所示。
三.数据选择器的应用
1.数据选择器的通道扩展
作为一种集成器件,最大规模的数据选择器是16选1。如果需要更大规模的数据选择器,可进行通道扩展。
用两片74151和3个门电路组成的16选1的数据选择器电路如图4.3.4所示。

图4.3.4 用两片74151组成的16选1数据选择器的逻辑图
2.实现组合逻辑函数
(1)当逻辑函数的变量个数和数据选择器的地址输入变量个数相同时,可直接用数据选择器来实现逻辑函数。
例4.3.1 试用8选1数据选择器74151实现逻辑函数

解法1:①将逻辑函数转换成最小项表达式
=m3+m5+m6+m7
②将输入变量接至数据选择器的地址输入端,即A=A2,B=A1,C=A0。输出变量接至数据选择器的输出端,即L=Y。将逻辑函数L的最小项表达式与74151的功能表相比较,显然,L式中出现的最小项,对应的数据输入端应接1,L式中没出现的最小项,对应的数据输入端应接0。即D3=D5=D6=D7=1;D0=D1=D2=D4=0。
③画出连线图如图4.3.5所示。
解法2:①作出逻辑函数L的真值表如表4.3.3所示。
②将输入变量接至数据选择器的地址输入端,即A=A2,B=A1,C=A0。输出变量接至数据选择器的输出端,即L=Y。将真值表中L取值为1的最小项所对应的数据输入端接1,L取值为0的最小项,对应的数据输入端接0。即D3=D5=D6=D7=1;D0=D1=D2=D4=0。
③画出连线图如图4.3.5所示。

(2)当逻辑函数的变量个数大于数据选择器的地址输入变量个数时,不能用前述的简单办法。应分离出多余的变量,把它们加到适当的数据输入端。
例4.3.2 试用4选1数据选择器实现逻辑函数:

解:①由于函数L有三个输入信号A、B、C,
而4选1仅有两个地址端A1和A0,所以选A、B接到地址输入端,且A=A1,B=A0。
②将C加到适当的数据输入端。
③画出连线图如图4.3.6所示。
4.4 数值比较器
一,数值比较器的基本概念及工作原理数值比较器——对两个位数相同的二进制整数进行数值比较并判定其大小关系。
1.1位数值比较器
1位数值比较器的功能是比较两个1位二进制数A和B的大小,比较结果有三种情况,即:A>B、A<B、A=B。其真值表如表4.4.1所示。
由真值表写出逻辑表达式:
FA>B =
FA<B =
FA=B =
由以上逻辑表达式可画出逻辑图如图4.4.1所示。
表4.4.1 1位数值比较器真值表输 入
输出
A B
FA>B FA<B FA=B
0 0
0 1
1 0
1 1
0 0 1
0 1 0
1 0 0
0 0 1
2.考虑低位比较结果的多位比较器
1位数值比较器只能对两个1位二进制数进行比较。而实用的比较器一般是多位的,而且考虑低位的比较结果。下面以2位为例讨论这种数值比较器的结构及工作原理。
2位数值比较器的真值表如表4.4.2所示。其中A1、B1、A0、B0为数值输入端,IA>B、IA<B,IA=B为级联输入端,是为了实现2位以上数码比较时,输入低位片比较结果而设置的。FA>B、FA<B,FA=B为本位片三种不同比较结果输出端。
表4.4.2 2位数值比较器的真值表数值输入
级联输入
输 出
A1 B1
A0 B0
IA>B IA<B IA=B
FA>B FA<B FA=B
A1>B1
A1<B1
A1=B1
A1=B1
A1=B1
A1=B1
A1=B1
× ×
× ×
A0>B0
A0<B0
A0=B0
A0=B0
A0=B0
× × ×
× × ×
× × ×
× × ×
1 0 0
0 1 0
0 0 1
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
0 0 1
由此可写出如下逻辑表达式:
FA>B =(A1>B1)+(A1=B1)(A0>B0)+(A1=B1)(A0=B0)IA>B
FA<B =(A1<B1=+(A1=B1)(A0<B0=+(A1=B1)(A0=B0)IA<B
FA=B =(A1=B1)(A0=B0)IA=B
根据表达式画出逻辑图如图4.4.2所示。图中用了两个l位数值比较器,分别比较(A1、B1)和(A0、B0),并将比较结果作为中间变量,这样逻辑关系比较明确。

图4.4.2 2位数值比较器逻辑图
三,集成数值比较器及其应用
1.集成数值比较器7485
7485是典型的集成4位二进制数比较器。其真值表如表4.4.3所示,电路原理与图4.4.2所示的2位二进制数比较器完全一样。
2.集成数值比较器的应用
(1)单片应用。
一片7485可以对两个4位二进制数进行比较,此时级联输入端IA>B,IA<B,IA=B应分别接0、0、1。当参与比较的二进制数少于4位时,高位多余输入端可同时接0或1。
(2)数值比较器的位数扩展。
(a)串联扩展方式,如图4.4.4所示。

图4.4.4 采用串联方式组成的8位数值比较器
原则上讲,按照上述级联方式可以扩展成任何位数的二进制数比较器。但是,由于这种级联方式中比较结果是逐级进位的,工作速度较慢。级联芯片数越多,传递时间越长,工作速度越慢。因此,当扩展位数较多时,常采用并联方式。
(b)并联扩展方式。
图4.4.5所示是采用并联方式用5片7485组成的16位二进制数比较器。将16位按高低位次序分成4组,每组用1片7485进行比较,各组的比较是并行的。将每组的比较结果再经1片7485进行比较后得出比较结果。这样总的传递时间为两倍的7485的延迟时间。若用串联方式,则需要4倍的7485的延迟时间。

图4.4.5 采用并联方式组成的16位数值比较器
4.5 加法器
一.加法器的基本概念及工作原理
1.半加器半加器的真值表如表4.5.1所示。表中的A和B分别表示被加数和加数输入,S为本位和输出,C为向相邻高位的进位输出。由真值表可直接写出输出逻辑函数表达式:


可见,可用一个异或门和一个与门组成半加器,如图4.5.1所示。
如果想用与非门组成半加器,则将上式用代数法变换成与非形式:



由此画出用与非门组成的半加器。
表4.5.1 半加器的真值表输 入
输出
被加数A 加数 B
和数S 进位数C
0 0
0 1
1 0
1 1
0 0
1 0
1 0
0 1

图4.5.2 与非门组成的半加器 图4.5.3 半加器的符号
2.全加器在多位数加法运算时,除最低位外,其他各位都需要考虑低位送来的进位。全加器就具有这种功能。全加器的真值表如表4.5.2所示。表中的Ai和Bi分别表示被加数和加数输入,Ci-1表示来自相邻低位的进位输入。Si为本位和输出,Ci为向相邻高位的进位输出。
表4.5.2 全加器的真值表输 入
输 出
Ai Bi CI-1
Si Ci
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1
由真值表直接写出Si和Ci的输出逻辑函数表达式,再经代数法化简和转换得:




根据(4.5.5)和(4.5.6)式画出全加器的逻辑电路如图4.5.4(a)所示。图4.5.4(b)所示为全加器的代表符号。

图4.5.4 全加器 (a)逻辑图 (b)符号
二,多位数加法器要进行多位数相加,最简单的方法是将多个全加器进行级联,称为串行进位加法器。图4.5.5所示是4位串行进位加法器,从图中可见,两个4位相加数A3A2A1A0和B3B2B1B0的各位同时送到相应全加器的输入端,进位数串行传送。全加器的个数等于相加数的位数。最低位全加器的Ci-1端应接0。

图4.5.5 4位串行进位加法器
串行进位加法器的优点是电路比较简单,缺点是速度比较慢。因为进位信号是串行传递,图4.5.5中最后一位的进位输出C3要经过四位全加器传递之后才能形成。如果位数增加,传输延迟时间将更长,工作速度更慢。
为了提高速度,人们又设计了一种多位数快速进位(又称超前进位)的加法器。所谓快速进位,是指加法运算过程中,各级进位信号同时送到各位全加器的进位输入端。现在的集成加法器,大多采用这种方法。
三.快速进位集成4位加法器74283
74283是一种典型的快速进位的集成加法器。首先介绍快速进位的概念及实现快速进位的思路。
重新写出全加器Si和Ci的输出逻辑表达式:
 (4.5.5)
 (4.5.6)
考察进位信号Ci的表达式,可见:
当Ai=Bi=1时,AiBi=1,得Ci=1,即产生进位。所以定义Gi=AiBi,Gi称为产生变量。
当,则AiBi=0,得Ci=Ci-1,即低位的进位信号能传送到高位的进位输出端。所以定义,Pi称为传输变量。
Gi和Pi都只与被加数Ai和加数Bi有关,而与进位信号无关。
将Gi和Pi代入式(4.5.5)和式(4.5.6),得:
 (4.5.7)
 (4.5.8)
由式(4.5.8)得各位进位信号的逻辑表达式如下:
 (4.5.9a)
 (4.5.9b)
 (4.5.9c)
 (4.5.9d)
由式(4.5.9)可以看出:各位的进位信号都只与Gi、Pi和C-1有关,而C-1是向最低位的进位信号,其值为0,所以各位的进位信号都只与被加数Ai和加数Bi有关,它们是可以并行产生的,从而可实现快速进位。
根据以上思路构成的快速进位的集成4位加法器74283的逻辑图如图4.5.6所示。

图4.5.6 集成4位加法器74283 (a)逻辑图 (b)引脚图
四.集成加法器的应用
1.加法器级联实现多位二进制数加法运算一片74283只能进行4位二进制数的加法运算,将多片74283进行级联,就可扩展加法运算的位数。用2片74283组成的8位二进制数加法电路如图4.5.7所示。
2.用74283实现余3码到8421BCD码的转换由表1.3.1知,对同一个十进制数符,余3码比8421BCD码多3。因此实现余3码到8421BCD码的变换,只需从余3码中减去3(即0011)。利用二进制补码的概念,很容易实现上述减法。由于0011的补码为1101,减0011与加1101等效。所以,从74283的A3~A0输入余3码的四位代码,B3~B0接固定代码1101,就能实现相应的转换,其逻辑图如图4.5.8所示。
图4.5.7 2片74283组成的8位二进制数加法电路图 4.5.8 将余3码转换成8421BCD码
3.用74283构成一位8421BCD码加法器。
当两个用8421BCD码表示的一位十进制数相加时,每个数都不会大于9(1001),考虑到低位来的进位,最大的和为9+9+1=19。
当用4位二进制数加法器74283完成这个加法运算时,加法器输出的是4位二进制数表示的和,而不是BCD码。因此,必须想办法将4位二进制数表示的和转换成8421BCD码。将0~19的二进制数和用8421BCD码表示的数进行比较发现,当数<1001(9)时,二进制码与8421BCD码相同;当数>1001时,只要在二进制码上加0110(6)就可以把二进制码转换为8421BCD码,同时产生进位输出。这一转换可以由一个修正电路来完成。设C为修正信号,则
C=C3+CS>9
其中,C3为74283最高位的进位输出信号,CS>9表示和数大于9的情况。上式的意思是,当两个一位8421BCD码相加时,若和数超过9,或者有进位时都应该对和数进行加6(即0110)修正。
CS>9的卡诺图如图4.5.9所示。化简得
CS>9= S3S2+S3S1
所以有:
C=C3+S3S2+S3S1
当C=1时,把0110加到二进制加法器输出端即可,同时C作为一位8421BCD码加法器的进位信号。
因此,可用一片74283加法器进行求和运算,用门电路产生修正信号,再用一片74283实现加6修正,即得一位8421BCD码加法器,如图4.5.10所示。
本章小结
1.常用的中规模组合逻辑器件包括编码器、译码器、数据选择器、数值比较器、加法器等。为了增加使用的灵活性和便于功能扩展,在多数中规模组合逻辑器件中都设置了输入、输出使能端或输入、输出扩展端。它们既可控制器件的工作状态,又便于构成较复杂的逻辑系统。
2.上述组合逻辑器件除了具有其基本功能外,还可用来设计组合逻辑电路。应用中规模组合逻辑器件进行组合逻辑电路设计的一般原则是:使用MSI芯片的个数和品种型号最少,芯片之间的连线最少
3.用MSI芯片设计组合逻辑电路最简单和最常用的方法是,用数据选择器设计多输入、单输出的逻辑函数;用二进制译码器设计多输入、多输出的逻辑函数。
数据选择器的功能是根据地址选择码从多路输入数据中选择一路,送到输出。在输入数据都为1时,它的输出表达式为地址变量的全部最小项之和,所以它很适合用于实现单输出组合逻辑函数。而二进制译码器的每个输出端分别与一个最小项相对应,因此辅以适当的门电路,便可实现多输出的组合逻辑函数。