2.3 复合逻辑门和常用逻辑门

一、复合逻辑运算和复合门

在逻辑代数中,除了与、或、非三种基本运算之外,还会经常使用一些复合逻辑运算。常用的复合逻辑运算有:与非(NAND)运算、或非(NOR)运算、与或非(AND-OR-NOT)运算、异或(XOR)运算和同或(XNOR)运算。

1、与非、或非、与或非逻辑运算

与非逻辑运算是与运算和非运算的组合,逻辑表达式为F=A⋅B‾F=\overline{A\cdot B}F=A⋅B或非逻辑运算是或运算和非运算的组合,逻辑表达式为F=A+B‾F=\overline{A+B}F=A+B与或非逻辑运算是与、或、非三种运算的组合,逻辑表达式为F=AB+CD‾F=\overline{AB+CD}F=AB+CD复合逻辑运算由相应的复合门来实现。与非门、或非们和与或非门的 IEEE/ANSI 标准逻辑符号分别如图 2.3.1(a)、(b)、(c)2.3.1(a)、(b)、(c)2.3.1(a)、(b)、(c) 所示。图中第一行均为特定外形符号,第二行均为矩形轮廓符号。

(1)与非门

NAND(与非)是 NOT-AND 的缩写,它是具有反向输出的与函数。除了输出反向外,与非门和与门是一样的。

与非门运算: 只有当所有输入都是高电平的时候,与非门才会产生低电平输出;当输入中有一个是低电平,则输出一定时高电平。对于一个二输入的与非门,输入变量分别用 AAA 和 BBB 表示,输出变量用 XXX 来表示,则运算的描述如下:
只有当输入 AAA 和 BBB 都是高电平时,输出 XXX 才是低电平;当 AAA 与 BBB 有一个是低电平或者两个都是低电平时,输出 XXX 为高电平。

与非门的输出电平,恰好和与门的输出电平相反。在与非门中,低电平 (0)(0)(0) 是有效的输出状态,输出上的小圆圈就表示这个,是非门的简化。FIGURE 41 给出了二输入与非门的所有 444 种输入情况下的运算,当输出用 XXX 表示时,其真值表如 TABLE 11.



具有脉冲波形输入的运算: 如下图所示的二输入与非门,其输入 AAA 和 BBB 的波形如图所示。根据与非门的真值表,只要在 444 个时间间隔内,输入 AAA 和 BBB 都是高电平,因此这 444 个时间间隔内与非门的输出是低电平,其余时间均为高电平,输入结果如下图所示。


与非门的逻辑表达式: 二输入的与非门逻辑表达式为X=AB‾X=\overline {AB}X=AB从这个表达式我们知道,与非逻辑运算是先将两个输入变量 AAA 和 BBB 相与,然后再反相。对于二输入变量所有可能的取值,求表达式得到的结果如 TABLE 12 所示。

一旦给定了逻辑函数的表达式,对于变量所有可能的组合值,都可以通过表达式求出函数的值,求得的结果可以精确的给出在每组输入条件下逻辑电路的输出结果,因此可以给出电路的逻辑运算的完整描述。与非门表达式也可以通过增加用来表示变量的字母来进行扩展。

(2)或非门

NOR(或非) 是 NOT-OR 的缩写,指的是具有反相输入的或运算。除了输出反相外,其它与或门一样。

或非门运算: 对于或非门,任意一个输入为高电平时,输出就为低电平;只有当所有的输入都为低电平时,输出才为高电平。对于一个二输入的或非门,输入分别用 AAA 和 BBB 表示,输出用 XXX 来表示,其运算可描述如下:
对于二输入的或非门,如果输入 AAA 与 BBB 有一个为高电平,或者两个都为高电平,则输出就为低电平;只有当两个输入 AAA 和 BBB 都为低电平时,输出才为高电平。

这个运算结果的输出电平与或门运算的结果恰好相反,它们的区别只是输出相反。在或非门中,低电平输出是有效电平,用输出端上的小圆圈来表示。FIGURE 49 给出了二输入或非门运算所有的四种可能输入及其输出,TABLE 13 是二输入或非门的真值表。


具有脉冲波形输入的运算: 下图中,一个二输入的或非门的输入波形分别是 AAA 和 BBB,我们只要根据真值表就可以得到输出波形。

只要或非门的输入中有高电平,那么输出就一定是低电平,只有两个输入同时为低电平时,输出才为高电平。据此我们可以得到其输出波形 XXX.


或非门的逻辑表达式: 二输入或非门的逻辑表达式为:X=A+B‾X=\overline{A+B}X=A+B这个等式说明两个输入变量先进行或运算,然后再取反。我们对这个表达式进行计算,可以得到 TABLE 14 所示的结果。或非门运算表达式只需要增加额外的一些字母来表示更多的输入变量,就能过扩展成多变量的运算表达式。

2、异或和同或逻辑运算

异或(exclusive-OR,简记为:XOR )逻辑表示的是:当两个输入变量相异时,输出为 111,相同时输出为 000 . 其逻辑符号为 ⊕\oplus⊕. 异或运算也称为模 222 加运算,其真值表如表 2.3.12.3.12.3.1 所示,逻辑表达式为F=A⊕B=AB‾+A‾BF=A\oplus B=A\overline B+\overline ABF=A⊕B=AB+AB

同或(exclusive-NOR,简记为:XNOR )逻辑与异或逻辑相反,就是异或非运算,它表示的是:当输入变量相同时输出为 111,相异时输出为 000 . 其逻辑符号为 ⊙\odot⊙,真值表如表 2.3.22.3.22.3.2 所示,同或的逻辑表达式为F=A⊙B=A‾  B‾+ABF=A\odot B=\overline A\,\,\overline B+ABF=A⊙B=AB+AB实现异或逻辑的单元电路称为异或门,逻辑符号如图 2.3.2(a)2.3.2(a)2.3.2(a) 所示。实现同或逻辑的单元电路称为同或门,其逻辑符号如图 2.3.2(b)2.3.2(b)2.3.2(b) 所示,输出端的小圆圈说明了输出结果与异或门相反。图中第一行均为特定外形符号,第二行均为矩形轮廓符号。

从它们的定义以及真值表为可以知道,异或逻辑与同或逻辑互为反函数,即 A⊕B‾=A⊙B,A⊙B‾=A⊕B\overline{A\oplus B}=A\odot B,\kern 15pt\overline{A\odot B}=A\oplus BA⊕B=A⊙B,A⊙B=A⊕B利用对偶规则还可以证明,它们互为对偶式。如果 F=A⊕BF=A\oplus BF=A⊕B,G=A⊙BG=A\odot BG=A⊙B,则可以得到 Fd=G, Gd=FF_d=G,\,G_d=FFd=G,Gd=F,因此可以将 ⊕\oplus⊕ 作为 ⊙\odot⊙ 的对偶符合,反之亦然。因此,两变量的异或函数和同或函数既互补又对偶,这是一对特殊函数。
异或门和同或门只有两个输入端,而与门、与非门、或门、或非门和与或非门都可以有多个输入端。

具有脉冲波形输入的运算: FIGURE 60 中所示的异或门,给出了其两个输入端 AAA 和 BBB 的脉冲输入波形及其输出端 XXX 的脉冲输出波形。我们只需要在不同的时间间隔上应用真值表就可以得出输出波形。在 FIGURE 60 中,时间段 t2t_2t2 和 t4t_4t4 内 AAA 和 BBB 的输入电平是不同的,因此,输出电平为高电平;时间段 t1t_1t1 和 t3t_3t3 内,输入 AAA 和 BBB 是相同的电平,因此输出低电平。

如下图所示,给定了输入波形 AAA 和 BBB,将其分别作为异或门和同或门的两端,得到它们的输出波形。对于异或门,仅当两个输入电平相反时,输出才为高电平;对于同或门,仅当两个输入相同时,输出才为高电平。观察异或门和同或门的输出波形,它们是相反的,表明它们互为反函数。


异或门作为加法器: 使用异或门可以作为 222 位模 222 加法器。二进制加法的运算规则为:0+0=0, 0+1=1, 1+0=1, 1+1=100+0=0, \,0+1=1,\,1+0=1,\,1+1=100+0=0,0+1=1,1+0=1,1+1=10. 观察异或门的真值表发现,异或门的输出是两个输入位的二进制和,如果输入都为 111,则输出为 000,此时舍去了进位 111. TABLE 17 给出了说明。

3、异或、同或运算的常用公式

异或和同或运算的常用公式如表 2.3.32.3.32.3.3 所示。

异或门和同或门在实际运算中十分有用。例如,可以将异或门用作可控反相器,其电路如图 2.3.32.3.32.3.3 所示。图中,当 X=0X=0X=0 时,F=A⊕X=A⊕0=AF=A\oplus X=A\oplus 0=AF=A⊕X=A⊕0=A,当 X=1X=1X=1 时,F=A⊕X=A⊕1=A‾F=A\oplus X=A\oplus1=\overline AF=A⊕X=A⊕1=A,这是利用一个输入端的信号去控制另一个输入端信号的同相或反向输出。还有,利用异或运算的奇偶律可以判断输入信息中 "1""1""1" 的个数是奇数还是偶数,因此常用若干个异或门来实现奇偶校验电路。在进行逻辑函数化简时,可能会遇到异或运算或同或运算,这是采用异或门或者同或门来实现电路比较方便。

二、常用逻辑门及逻辑函数表达式的常用形式

1、逻辑运算符的完备性

在逻辑代数中,与、或、非是三种最基本的逻辑函数,用与、或、非三种运算符和逻辑变量可以构成任何逻辑函数,因此称与、或、非逻辑运算符是一组完备集

但是与、或、非三种运算符并不是最好的完备集,因为用它实现一个函数要使用三种不同规格的逻辑门。实际上由德·摩根定律可见,有了 "与" 和 "非" 就可以得到 "或",有了 "或" 和 "非" 就可以得到 "与",因此用 "与非"、"或非"、"与或非" 运算中的任何一种都能够单独实现 "与"、"或"、"非" 运算,这三种复合运算每种都是完备集,而且实现函数只需要一种规格的逻辑门,这样就给设计带来了许多方便。

与非门作为通用逻辑元件: 与非门是一种通用门(universal gate),因为它可以用来产生与、或、非和或非门,即它可以用来产生任何逻辑函数。

非门(反相器)可以通过将与非门的所有输入端连接在一起来实现,如 FIGURE 15(a) 所示的与非门,它的效果相当于一个反相器。

将一个与非门的输出取反,就可以形成与门,如 FIGURE 15(b) 所示,函数形式为:F=AB‾‾=ABF=\overline{\overline{AB}}=ABF=AB=ABFIGURE 15(c)所示,与非门 G1G_1G1 和 G2G_2G2 用于在两个变量输入与非门 G3G_3G3 之前取反,最后利用德·摩根定律就可以得到或输出,其推导过程如下:F=A‾⋅B‾‾=A+BF=\overline{\overline A\cdot\overline B}=A+BF=A⋅B=A+BFIGURE 15(d) 中,与非门 G4G_4G4 作为反相器,连接到 FIGURE 15(c)后面,就得到了或非运算 A+B‾\overline{A+B}A+B.


或非门作为通用逻辑元件: 或非门和与非门一样,它也可以用来产生反相、与、或和与非函数,即它可以用来产生任何逻辑函数。

将或非门的所有输入端连接到一起,就得到了一个反相器,如 FIGURE 16 (a) 所示,它的效果相当于一个反相器。

同样的,在或非门的输出加上一个反相器,就得到了或门,如 FIGURE 16 (b) 所示。

与门同样可以通过或非门构造出来,如 FIGURE 16(c)所示,其中或非门 G1G_1G1 和 G2G_2G2 用作反相器,最后的与输出可以使用德·摩根定律来推导出来,函数形式如下:F=A‾+B‾‾=ABF=\overline{\overline A+\overline B}=ABF=A+B=ABFIGURE 16(d) 中使用或非门产生了与非门。

2、逻辑函数表达式的常用形式

几种常用逻辑门的实际器件及引脚图如图 2.3.42.3.42.3.4 所示。从图中可以看出,每个集成芯片都包含了若干个相同的逻辑门,如 740074007400 为四个二输入的与非门,740274027402 为四个二输入的或非门,740474047404 为 666 个反相器,740874087408 是四个二输入的与门,743274327432 是四个二输入的或门等。当逻辑门实现某一逻辑函数时,如果选择实际器件的功能、型号不同,则逻辑函数表达式的形式也不同,因此必须将逻辑函数式变换成相应的形式。

任何一个逻辑函数都可以由多种逻辑表达式,最常用的形式有五种:与或式、或与式、与非-与非式、或非-或非式、与或非式。

与或式和或与式是函数表达式的两种基本形式。

单个逻辑变量(或反变量)进行与运算构成的项称为 "与项 " 或 "乘积项 ",由 "与项" 相 "或" 构成的表达式称为 "与或" 表达式或 "积之和" 表达式。

单个逻辑变量(或反变量)进行或运算构成的项称为 "或项 " 或 "和项 ",由 "或项" 相 "与" 构成的表达式称为 "或与" 表达式或 "和之积" 表达式。

与或式和或与式的互换可以通过两次求反(第一次求反后展开并化简)或两次求对偶得到。

将与或式两次求反后,运用一次德·摩根定理可以得到与非-与非式;将或与式两次求反,运用一次德·摩根定律可以得到或非-或非式,进一步可转换为与或非式。例如,某逻辑函数通过上述的变换可以得到以下五种形式:F=AB+A‾C与或式=(A‾+B)(A+C)或与式=AB‾⋅A‾C‾‾与非−与非式=(A‾+B)‾+(A+C)‾‾或非−或非式=A⋅B‾+A‾⋅C‾‾与或非式\begin{array}{llll}F&=AB+\overline AC&&与或式\\&=(\overline A+B)(A+C)&&或与式\\&=\overline{\overline{AB}\cdot\overline{\overline AC}}&&与非-与非式\\&=\overline{\overline{(\overline A+B)}+\overline{(A+C)}}&&或非-或非式\\&=\overline{A\cdot\overline B+\overline A\cdot\overline C}&&与或非式\end{array}F=AB+AC=(A+B)(A+C)=AB⋅AC=(A+B)+(A+C)=A⋅B+A⋅C与或式或与式与非−与非式或非−或非式与或非式以上逻辑函数表达式可以使用图 2.3.52.3.52.3.5 所示的五种逻辑电路来实现。其中图(c)全部用与非门实现,只需用一片 740074007400 就够了;图(d)全部用或非门来实现,只需要用一片 740274027402 就够了;图 (e) 只需用一片 745174517451 中的一个与或非门来实现。显然,采用复合门实现电路更加经济。

3、常用逻辑门的等效符号及有效电平

实际应用中,基本逻辑门(与、或、非、与非、或非)除了使用标准符号外,还经常使用与其逻辑功能相同的等效逻辑符号,这样对分析电路输入、输出状态的有效逻辑电平更加方便。

(1)德·摩根定理与逻辑门的等效符号

德·摩根定理提供了一种变换逻辑运算符号的方法,利用该定理可以将任何与(AND)形式的逻辑门和或(OR)形式的逻辑门互换。

一个 222 输入与非门的逻辑符号如图 2.3.6(a)2.3.6(a)2.3.6(a) 所示,根据德·摩根定律 F=A⋅B‾=A‾+B‾F=\overline{A\cdot B}=\overline A+\overline BF=A⋅B=A+B 可以画出图 (b) 所示的等效电路,它意味着每个输入端接有反相器的或门等效于一个与非门。将图 (b) 中的非门用小圆圈表示,就可以画出与非门的等效符号,如图 (c)所示,其中输入端的小圆圈表示的为非运算。与非门可以称为负或(negative-OR)运算,术语中的 "负" 指的是输入定义的有效状态为低电平。

同理,在其它逻辑门标准符号的基础上,利用德·摩根定理改变其运算符号(或变与、与变或、反相器除外),并用小圆圈表示非运算,就可以得到相应的等效符号。图 2.3.72.3.72.3.7 列出了各种逻辑门的标准符号和等效符号。或非门等效符号也称为负与运算。

逻辑门的等效符号可以用来对逻辑电路进行变换或化简。

需要注意的是,上述逻辑门的标准符号和等效符号都是在正逻辑体制下,用不同的符号形式描述同一逻辑功能的函数。这里的等效符号并不是负逻辑的表示方法。

对于正逻辑体制,高电平用逻辑 111 表示,低电平用逻辑 000 表示;负逻辑体制正好相反,高电平用逻辑 000 表示,低电平用逻辑 111 表示。同一电路的输入、输出关系既可以用正逻辑描述,也可以用负逻辑描述。选择逻辑体制不同,则同一逻辑电路的逻辑功能也不同。通常两种逻辑体制的互换如下:正与非⇔负或非,正或非⇔负与非,正与⇔负或,正或⇔负与正与非\Leftrightarrow负或非,正或非\Leftrightarrow负与非,正与\Leftrightarrow负或,正或\Leftrightarrow负与正与非⇔负或非,正或非⇔负与非,正与⇔负或,正或⇔负与实际应用中很少采用负逻辑,因此没有特殊说明的情况下,采用的都是正逻辑体制。

(2)有效电平的概念

有效电平 规定:当逻辑符号的输入或输出引脚上没有小圆圈时,表示该引脚是高电平有效;当逻辑符号的输入或输出引脚上有小圆圈时,表示该引脚是低电平有效。

例如,与非门的标注符号如图 2.3.8(a)2.3.8(a)2.3.8(a) 所示,其输入端没有小圆圈,而输出端有小圆圈,因此它是输入高电平有效,输出低电平有效。该符号的逻辑功能可描述为:仅当全部输入为高电平时,输出才为低电平。与非门的等效符号如图 2.3.8(b)2.3.8(b)2.3.8(b) 所示,它是输入低电平有效,输出高电平有效。其逻辑功能可描述为:当任何一个输入为低电平时,输出为高电平。虽然这两种符号的描述方式不同,但逻辑功能是相同的。

有效电平的概念对于分析电路的工作状态十分重要,特别是中、大规模集成芯片,其输入、输出引脚都有可能是高电平有效或低电平有效,即信号为高电平或低电平芯片(或电路)才能完成规定的功能,因此输入信号的电平必须与芯片(或电路)所要求的有效电平相匹配才能正常工作。

相关推荐
passxgx1 个月前
1.2 数制
数字电路
passxgx2 个月前
1.1 数字逻辑电路概述
数字电路
FPGA-ADDA2 个月前
第一篇:软件无线电(SDR)基础与FPGA的角色
fpga开发·fpga·数字电路·dsp·软件无线电
渡我白衣4 个月前
从线性到非线性——神经网络的原理、训练与可解释性探索
开发语言·javascript·人工智能·深度学习·神经网络·机器学习·数字电路
551只玄猫4 个月前
数电实验3【译码器设计实验报告】数字电路 逻辑与计算机设计 logisim
数字电路·计算机组成原理·数电·实验报告·译码器·logisim
渡我白衣4 个月前
计算机组成原理(13):多路选择器与三态门
开发语言·javascript·ecmascript·数字电路·计算机组成原理·三态门·多路选择器
brave and determined5 个月前
传感器学习(day15):无人超市:从技术狂欢到理性回归,RFID的发展
单片机·嵌入式硬件·rfid·数字电路·nfc·嵌入式设计·近场通讯
brave and determined6 个月前
可编程逻辑器件学习(day30):数字电路设计中的流水线技术:原理、实现与优化
学习·fpga开发·verilog·fpga·数字电路·硬件设计·嵌入式设计
Alaso_shuang9 个月前
verilog的学习
学习·fpga开发·数字逻辑·数字电路