1、第1章 数字逻辑基础1.1 绪论绪论1.2 数制与代码数制与代码1.3 逻辑代数基础逻辑代数基础1.4 逻辑函数的描述方法逻辑函数的描述方法1.5 逻辑函数的化简逻辑函数的化简1.1 绪绪 论论1.1.1 数字电路的基本概念数字电路的基本概念 1.数字量与数字信号数字量与数字信号 在自然界中,存在着两类物理量:一类称为模拟量(Analog Quantity),它具有时间上连续变化、值域内任意取值的特点,例如温度、压力、交流电压等就是典型的模拟量;另一类称为数字量(Digital Quantity),它具有时间上离散变化(离散也就是不连续)、值域内只能取某些特定值的特点,例如训练场上运动员的人数
2、、车间仓库里元器件的个数等就是典型的数字量。在电子设备中,无论是数字量还是模拟量都是以电信号形式出现的。人们常常将表示模拟量的电信号叫作模拟信号Analog Signal),将表示数字量的电信号叫作数字信号(Digital Signal)。正弦波信号、话音信号就是典型的模拟信号,矩形波、方波信号就是典型的数字信号。数字信号是一种脉冲信号(Pulse Signal)。脉冲信号具有边沿陡峭、持续时间短的特点。广义讲,凡是非正弦信号都称为脉冲信号。数字信号有两种传输波形,一种称为电平型,另一种称为脉冲型。电平型数字信号是以一个时间节拍内信号是高电平还是低电平来表示“1”或“0”,而脉冲型数字信号是以
3、一个时间节拍内有无脉冲来表示“1”或“0”,如图1-1所示。图 1-1 数字信号的传输波形(a)电平型信号;(b)脉冲型信号 2.数字电路及其优点数字电路及其优点 在电子电路中,人们将产生、变换、传送、处理模拟信号的电子电路叫做模拟电路(Analog Circuit),将产生、存储、变换、处理、传送数字信号的电子电路叫做数字电路(Digital Circuit)。“电子电路基础”课程中介绍的各种放大电路就是典型的模拟电路,而数字表、数字钟的定时电路就是典型的数字电路。与模拟电路相比,数字电路主要具有以下优点:电路结构简单,制造容易,便于集成和系列化生产,成本低,使用方便。数字电路不仅能够完成算
4、术运算,而且能够完成逻辑运算,具有逻辑推理和逻辑判断的能力,因此被称为数字逻辑电路或逻辑电路。计算机也因为这种逻辑思维能力而被称为电脑。由数字电路组成的数字系统,抗干扰能力强,可靠性高,精确性和稳定性好,便于使用、维护和进行故障诊断。图 1-2 数字电路对接收信号整形(a)发送信号波形;(b)接收信号波形;(c)整形信号波形1.1.2 数字集成电路的发展趋势数字集成电路的发展趋势 1.大规模大规模2.低功耗低功耗3.高速度高速度4.可编程可编程5.可测试可测试 6.多值化多值化1.2 数数 制制 与与 代代 码码 1.2.1 数数 制制 1.数制数制 数制(Number System)是人类表
5、示数值大小的各种方法的统称。迄今为止,人类都是按照进位方式来实现计数的,这种计数制度称为进位计数制,简称进位制。大家熟悉的十进制,就是一种典型的进位计数制。一种数制中允许使用的数符个数称为这种数制的基数(Radix)或基(Base),R进制的基就等于R。设一个R进制数NR包含n位整数和m位小数,其位置记数法的表示式为NR=(r n-1 rn-2 r1 r0.r-1 r-2r-m)R(1-1)其中,ri为R进制数NR第i位的有效数符,ri为“1”时所表示的数值大小称为该位的“权(power)”,用Ri表示。“权”的概念表明,处于不同位置上的相同数符所代表的数值大小是不同的。例如十进制数(215.
6、12)10,最高位和最低位均为2,但它们所代表的数值却分别为200(1022)和0.02(10-22);同样,次高位和次低位都为1,但它们所代表的数值却分别为10(1011)和0.1(10-11)。位置记数法实际上是多项式记数法省略各位权值和运算符号并增加小数点(小数点也称为基点)后的简记形式。各项式记数法的表示式为111221100112211nmiiimmmmnnnnRrRrRrRrRrRrRrRrRrRN(1-2)例如,十进制数(215.12)10的多项式表示式(也称按权展开式)为(215.12)10=1022+1011+1005+10-11+10-22在计算机等数字设备中,用得最多的是
7、二进制数和十六进制数,这是因为当前数字设备中所用的数字电路通常只有低电平和高电平两个状态,正好可用二进制数的 0和1 来表示。由于采用二进制来表示一个数时数位太多,所以常用与二进制数有简单对应关系的十六进制数(或八进制数)来表示一个数。十进制(Decimal System)、二进制(Binary System)和十六进制(Hexadecimal System)的数符、权、运算规则及其对应关系详见表1-1。需要特别注意的是,在十六进制数中,用英文字母A、B、C、D、E、F分别表示十进制数的10、11、12、13、14和15。表表1-1 常用数制及其对应关系常用数制及其对应关系 2.数制转换数制转
8、换 1)任意进制数转换为十进制数 首先写出待转换的R进制数的按权展开式,然后按十进制数的运算规则进行计算,即可得到转换后的等值十进制数。这称为按权展开法。【例1-1】将二进制数(1011001.101)2和十六进制数(AD5.C)16转换为十进制数。解解1032101234562)125.89(125.00010081606412020212020212120212)001.1011001(101101216)75.2773(75.052082560121651131610256165161616).5(CDACAD 2)二进制数与十六进制数的相互转换 从表1-1可见,1位十六进制数正好可以用
9、4位二进制数来表示,反之亦然。因此,以小数点为基准,向左或向右将二进制数按4位1组进行分组(整数部分高位不足4位时,高位添0补足4位;小数部分低位不足4位时,低位添0补足4位),然后用相应的十六进制数代替各组的二进制数,即可得到等值的十六进制数;之,将十六进制数的每个数符用相应的4位二进制数代替,并去掉整数部分高位无效的0和小数部分末尾无效的0,即可得到等值的二进制数。【例例1-2】将二进制数(1011101.101)2转换为十六进制数,将十六进制数(3AB.C8)16转换为二进制数。解解 (1011101.101)2=(0101 1101.1010)2=(5D.A)16(3AB.C8)16=
10、(0011 1010 1011.1100 1000)2=(1110101011.11001)2 3)十进制数转换为二进制数十进制数转换为二进制数 十进制数转换为二进制数的过程相对复杂一些,需要将整数部分和小数部分分别进行转换。(1)十进制整数转换为二进制数时,其结果也必然是整数。利用转换前后数值相等的原理,有N10=N2=2n-1bn-1+21b1+20b0将上式左右两端同时除以2,所得的整数商应该相等,余数也应该相等。而右端的二进制按权展开式除以2后的余数是b0,因此,十进制数第1次除以2所得的余数就是等值的二进制数的最低位b0(最低位常用符号LSB表示);同理,将左端每次所得的整数商依次除
11、以2,所得的余数正好就是等值二进制数的b1、b2、bn-1。Bn-1是商为0时的余数,它是等值二进制数的最高位(最高位常用符号MSB表示)。这种转换方法称为除2取余法,用它先得到的余数是等值二进制数的低位,后得到的余数是等值二进制数的高位。【例例1-3】将十进制数(218)10转换为二进制数。解解 采用竖式除法:因此,(218)10=(11011010)2。(2)十进制小数转换为二进制数时,其结果也必然是小数。利用转换前后数值相等的原理,有N10=N2=2-1b-1+2-2b-2+2-mb-m 将上式两端同时乘以2,显然左端乘积的整数部分就是右侧的b-1(即等值二进制小数的最高位)。然后把左端
12、乘积的小数部分再乘以2,所得整数部分便是b-2,如此继续下去,直到乘积的小数部分是0或满足精度要求为止,得到等值二进制小数的最低位b-m。这种转换方法称为乘2取整法,用它先得到的整数是二进制小数的高位,后得到的整数是二进制小数的低位。【例例1-4】将十进制数0.1875转换为二进制数。解解 采用乘2取整法:整数整数0.18752=0.3750 0(MSB)0.37502=0.7500 00.75002=1.5000 10.50002=1.0000 1(LSB)因此,(0.1875)10=(0.0011)2。4)几点说明 (1)当十进制小数不能精确转换为二进制小数时,往往需要有一定的精度要求,例
13、如要求结果保留几位小数。此时要注意,为了减小转换误差,转换时的小数位数应比要求保留的小数位数多1位,然后根据多出的这1位是0还是1决定取舍,基本原则是0舍1入。例如某二进制数(0.1001)2,保留两位小数时结果为(0.10)2,保留3位小数时结果应为(0.101)2。(2)如果一个十进制数既有整数部分又有小数部分,只要把它们分别进行转换,然后将结果合并即可。例如,十进制数(218.1875)10 转换为二进制数时,综合前面两例的转换结果,可得其等值二进制数为(11011010.0011)2。(3)利用二进制数作桥梁,可以方便地将十进制数转换为十六进制数。3.二进制数的算术运算二进制数的算术运
14、算 【例例1-5】已知X=(1011)2,Y=(1101)2,试计算X+Y的值。解解 二进制数的加法规则是逢2进1,由竖式加法得 X+Y=(11000)2其中,竖式上方的小圆点为相邻低位的进位。1 0 1 1 1 1 0 11 1 0 0 0+【例例1-6】已知X=(1101)2,Y=(1011)2,试计算X-Y的值。解解 二进制数的减法规则是借1为2,由竖式减法得X-Y=(10)2其中,竖式上方的小圆点为相邻低位的借位。1 1 0 1 1 0 1 1 0 0 1 0_ 【例例1-7】已知X=(1011)2,Y=(100)2,试计算X Y的值。解解 二进制数的乘法规则是 11=1,10=01=
15、00=0,由竖式乘法得 X Y=(101100)2 同时,由竖式乘法也可以看出,二进制数乘法运算由加法运算和左移位操作组成。当乘数为2k时,将被乘数左移k位(右侧添0)即可求得乘积。1 0 1 1 1 0 00 0 0 0 0 0 0 01 0 1 11 0 1 1 0 0 【例例1-8】已知X=(10101)2,Y=(100)2,试计算X Y的值。解解 二进制数除法是乘法的逆运算。由竖式除法得X Y=(101.01)2 同时,由竖式除法也可以看出,二进制数除法运算由减法运算和右移位操作组成。当除数是2k时,将被除数右移k位即可得到所求之商。1.2.2 带符号数的表示法带符号数的表示法 1.原
16、码表示法原码表示法 将带符号数的数值部分用二进制数表示,符号部分用0表示“+”,用1表示“-”,这样形成的一组二进制数叫做原带符号数(也称真值)的原码(Sign Magnitude)。n位二进制原码所能表示的十进制数范围为-(2 n-1-1)+(2n-1-1)。【例例1-9】求出X=(+75)10 和Y=(-75)10的8位二进制原码。解解 由于(75)10=(1001011)2,因此,X、Y的8位二进制原码分别为X原=(01001011)2 ,Y原=(11001011)2 2.补码表示法补码表示法 计算机中通常采用的带符号数表示法是补码(Complement)表示法,其规则是:对于正数,补码
17、与原码相同;对于负数,符号位仍为1,但二进制数值部分要按位取反,末位加1。这样得到的一组二进制数叫做原带符号数的补码(如果末位不加1,则称为反码)。之所以将其称为补码,是因为真值为负数时所得到的补码与真值的数值部分之和为2n,即彼此对2n互补,此处n为二进制补码的位数。利用这一特点,我们可以快速计算一个带符号二进制数(或十六进制数)的补码。n位二进制补码所能表示的十进制数范围为-2n-1+(2n-1-1)。【例例1-10】求出X=(+75)10和Y=(-75)10的8位二进制补码。解解 X为正数,补码与原码相同,因此,X补=X原=(01001011)2 Y为负数,数值部分要在原码的基础上按位取
18、反,末位加1,因此,Y补=(10110101)2利用互补特性,也可以求得Y的补码:Y补=28-(1001011)2=(100000000)2-(1001011)2=(10110101)2 利用十六进制数,同样可以快速地求得Y的补码:Y补=28-(1001011)2=(100)16-(4B)16=(B5)16=(10110101)顺便指出,当带符号数为纯小数时,原码或补码的符号位位于小数点的前面,原来小数点前面的0不再表示出来。例如,X=(-0.110101)2的8位二进制原码和补码分别表示为X原=1.1101010)2,X补=(1.0010110)2。此外,从补码求原码时的过程与从原码求补码时
19、的过程相同。也就是说,对于正数,原码与补码相同;对于负数,原码的符号位仍为1,但数值部分要将补码数值部分按位取反,末位加1。例如,已知Z的8位二进制补码 Z补=(10101101)2,则Z的8位二进制原码 Z原=(11010011)2。3.补码的运算补码的运算 利用补码,可以方便地进行带符号数的加、减法运算(减法运算要变换为加法运算来进行)。但要注意的是,同号相加或异号相减时,有可能发生溢出。所谓溢出(Overflow),就是指运算结果超出了原指定位数所能表示的带符号数范围。因此,当发生溢出时,需要增加二进制补码的位数,否则运算结果将出错。补码运算过程中是否溢出可以通过结果的符号位来直观地判断
20、。正数加正数或正数减负数结果均应为正数,负数加负数或负数减正数结果均应为负数,否则即为溢出。【例1-11】利用8位二进制补码计算(98)10-(75)10,结果仍然用十进制数表示。解解 (98)10-(75)10=(+98)10+(-75)10 =(01100010)补+(10110101)补 =1(00010111)补 =(00010111)原 =(+23)100 1 1 0 0 0 1 01 0 1 1 0 1 0 10 0 0 1 0 1 1 1+1自动丢失1 0 0 1 1 1 1 01 0 1 1 0 1 0 10 1 0 1 0 0 1 1+1溢出错误 【例1-12】利用8位二进制
21、补码计算(-98)10-(75)10,结果仍然用十进制数表示。解解 (-98)10-(75)10=(-98)10+(-75)10 =(10011110)补+(10110101)补 =1(01010011)补 =(01010011)原 =(+83)10 该题的结果显然是错误的,因为一个负数减去一个正数结果不可能是正数。错误的原因在于本题的正确结果(-173)10超过了8位二进制补码所能表示的十进制数范围,因而运算时发生了溢出错误。采用9位补码运算,就可得到正确的结果(-173)10。1.2.3 代码代码 计算机等数字设备除了处理二进制数外,有时候还需要处理其它数字甚至字母或符号。如同带符号数表示
22、法中用二进制的0表示“+”、用1表示“-”一样,这些字母、数字、符号也必须用二进制数来表示。这种用一组符号按一定规则表示给定字母、数字、符号等信息的方法称为编码(Encode),编码的结果称为代码(Code)。寄信时收发信人的邮政编码、因特网上计算机主机的IP地址等,就是生活中常见的编码实例。从编码的角度看,前面介绍的用各种进制来表示数的大小的方法也可以看是一种编码。当用二进制表示一个数的大小时,按上述方式表示的结果常常称为自然二进制码。带符号数的原码、反码和补码表示法本质上都可看作是编码。通常,一种编码的长度n不仅与要编码的信息个数m有关,而且与编码本身所采用的符号个数k也有关系。n、m和k
23、之间一般满足下面的关系:kn-1mkn(1-3)例如,用十进制符号09来对500个不同的信息编码时,k=10,m=500,从上式可求得n=3,即至少需要3位十进制数才能实现对500个不同信息的有效编码。当用二进制符号来编码时,上式变为2n-1m2n(1-4)1.格雷码格雷码 格雷码是一种典型的循环码(Cyclic Code)。循环码有两个特点,一个是相邻性,一个是循环性。相邻性是指任意两个相邻的代码中仅有1位取值不同,循环性是指首尾的两个代码也具有相邻性。凡是满足这两个特性的编码都称为循环码。当时序电路中采用循环码编码时,不仅可以有效地防止波形出现毛刺(Glitch),而且可以提高电路的工作速
24、度。十进制数015的4位二进制格雷码如表1-2所示。显然,它符合循环码的两个特性,因此是一种循环码。例如,5和6的两个代码分别为0111和0101,只有次低位取值不同;首尾的0和15的两个代码分别为0000和1000,也只有最高位取值不同。表表 1-2 4位二进制格雷码位二进制格雷码 2.BCD码码 BCD码是二-十进制码的简称,也就是二进制编码的十进制数(Binary Coded Decimal)。它是用二进制代码来表示十进制的10个数符,因此至少需要4位二进制数编码。当采用4位二进制编码时,共有16个码组,原则上可以从中任选10个来代表十进制的10个数符,多余的6个码组称为禁用码,平时不允
25、许使用。表表1-3 常用常用BCD码码 8421BCD码是最常用也是最简单的一种BCD代码,其显著特点是它与十进制数符的4位等值二进制数完全相同,各位的权依次为8、4、2、1。由于这个原因,有时也称它为自然BCD码。5421BCD码各位的权依次为5、4、2、1,其显著特点是最高位连续5个0后连续5个1。当计数器采用这种编码时,最高位可产生对称方波输出。2421BCD码各位的权依次为2、4、2、1,其显著特点是,将任意一个十进制数符D的代码的各位取反,正好是与9互补的那个十进制数符(9-D)的代码。例如,将4的代码0100取反,得到的1011正好是9-4=5的代码。这种特性称为自补特性,具有自补
26、特性的代码称为自补码(SelfComplementing Code)。余3码也是一种自补码,其显著特点是它总是比对应的8421BCD码多3(0011)。余3循环码由4位二进制格雷码去除首尾各3组代码得到,仍然具有格雷码的特性,因而也称为格雷码。上述代码中,8421BCD码、5421BCD码、2421BCD码是有权码,余3码和余3循环码是无权码。判断一种代码是否是有权码,只要检验这种代码的每个码组的各位是否具有固定的权值即可。例如5421BCD码,每个码组各位从高到低都具有5、4、2、1的权值,因而是一种有权码,且各位权值依次为5、4、2、1。如果发现一种代码中至少有1个码组的权值不同,这种代码
27、就是无权码。【例1-13】分别用8421BCD码和余3码表示十进制数(258.369)10。解解(258.369)10=(0010 0101 1000.0011 0110 1001)8421BCD =(0101 1000 1011.0110 1001 1100)余3码 3.ASCII码码 ASCII码是美国信息交换标准代码(American Standard Code for Information Interchange)的简称,是目前国际上最通用的一种字符码。计算机输出到打印机的字符码就采用ASCII码。ASCII码采用7位二进制编码表示十进制符号、英文大小写字母、运算符、控制符以及特殊符
28、号,如表1-4所示。表1-4 ASCII码编码表 表1-4中一些控制符的含义如下:NUL Null空白 DC1 Device Control 1设备控制1 SOH Start of Heading标题开始 DC2 Device Control 2设备控制2 STX Start of Text正文开始 DC3 Device Control 3设备控制3 ETX End of Text正文结束 DC4 Device Control 4设备控制4 EOT End of Transmission传输结束 NAK Negative Acknowledge否认 ENQ Enquiry询问 SYN Sync
29、hronous Idle同步空传 ACK Acknowledge确认 ETB End of Transmission Block块结束 BEL Bell响铃(告警)CAN Cancel取消 BS Backspace退一格 EM End of Medium纸尽 HT Horizontal Tabulation水平列表 SUB Substitute替换 LF Line Feed换行 ESC Escape脱离 VT Vertical Tabulation垂直列表 FS File Separator文件分离符 FF Form Feed 走纸 GS Group Separator字组分离符 CR Car
30、riage Return回车 RS Record Separator记录分离符 SO Shift Out移出 US Unit Separator单元分离符 SI Shift In移入 SP Space空格 DLE Data Link Escape数据链路换码 DEL Delete删除 4.奇偶校验码奇偶校验码 数据在传输过程中,由于噪声、干扰的存在,使得到达接收端的数据有可能出现错误。我们必须采取某种特殊的编码措施,检测并纠正这些错误。能够检测信息传输错误的代码称为检错码(Error Detection Code),能够纠正信息传输错误的代码称为纠错码(Correction Code)。检错码
31、和纠错码统称为可靠性编码,采用这类编码可以提高信息传输的可靠性。奇偶校验码(Party Check Code)是最简单也是最著名的一种检错码,它能够检测出传输码组中的奇数个码元错误。奇偶校验码的编码方法非常简单,就是在信息码组中增加1位奇偶校验位(奇偶校验位一般位于信息码组之前),使得增加校验位后的整个码组具有奇数个1或偶数个1的特点。如果每个码组中1的个数为奇数,则称为奇校验码;如果每个码组中1的个数为偶数,则称为偶校验码。例如,十进制数5的8421 BCD码0101增加校验位后,奇校验码是10101,偶校验码是00101,其中最高位分别为奇校验位1和偶校验位0。ASCII码也可以通过增加1
32、位校验位的办法方便地扩展为8位,8位在计算机中称为1个字节,这也是ASCII码采用7位编码的一个重要原因。1.3 逻辑代数基础逻辑代数基础1.3.1 逻辑代数的基本运算逻辑代数的基本运算 逻辑代数有与(AND)、或(OR)、非(NOT)三种基本运算(也分别称为逻辑乘、逻辑加和逻辑非),其运算符分别为“”、“+”和“-”。与运算符“”通常可以省略。逻辑运算的功能常用真值表(Truth Table)来描述。将自变量的各种可能取值及其对应的函数值F列在一张表上,就构成了真值表。表表1-5 与运算真值表与运算真值表A BF=AB0 00 11 01 10001 表表1-6 或运算真值表或运算真值表A
33、BF=A+B0 00 11 01 10111 表表1-7 非运算真值表非运算真值表AF=A0110图 1-3 用开关电路实现基本逻辑运算(a)与;(b)或;(c)非图 1-4 与、或、非门的逻辑符号(a)与门符号;(b)或门符号;(c)非门符号1.3.2 复合逻辑运算与常用逻辑门复合逻辑运算与常用逻辑门 将与、或、非三种基本的逻辑运算进行组合,可以得到各种形式的复合逻辑运算,其中最常用的几种复合逻辑运算是“与非(NAND)”运算、“或非(NOR)”运算、“与或非(AND-OR-OT)”运算、“异或(XOR)”运算以及“同或(XNOR)”运算。这些运算的代数式、真值表、逻辑门符号以及基本特性详见
34、表1-8,其中逻辑门符号栏中最后一种为新逻辑门符号(即国标符号),“=1”为“异或”限定符。表表1-8 复合逻辑运算与常用逻辑门复合逻辑运算与常用逻辑门表表1-8 复合逻辑运算与常用逻辑门复合逻辑运算与常用逻辑门表表1-8 复合逻辑运算与常用逻辑门复合逻辑运算与常用逻辑门 “异或”运算在功能上相当于不考虑进位的二进制加法运算,因而有时候也被称为模2加。“异或”运算和“同或”运算的结果只与参与运算的自变量取值有关,而与自变量的顺序无关。当n个变量参与“异或”运算或“同或”运算时,其结果并不需要通过将各自变量的取值逐个“异或”或“同或”来获得,而只要数一数自变量中取值为1或0的个数即可。如果取值为
35、1的自变量的个数为奇数,则“异或”运算结果为1,否则为0;如果取值为0的自变量的个数为偶数,则“同或”运算结果为1,否则为0。另外,到目前为止,实际的异或门(XOR Gate)和同或门(XNOR Gate)都只有两个输入端,而与门、或门、与非门(NAND Gate)、或非门(NOR Gate)和与或非门(AND-OR-NOT Gate)都可以有多个输入端。比如与或非门,它不仅可以有多个与项输入,而且每个与项还可以有多个输入。【例1-14】直接画出下列逻辑函数的实现电路,允许反变量输入。DBCBAZDABCBAYDCBAX 解解 X、Y、Z的实现电路如图1-5所示。X是4变量异或函数,因为只有2
36、输入异或门,所以必须用三个异或门才能实现。Y是与或非函数,用一个与或非门就可实现。Z是与或型函数,既可以如图所示用两个与门、一个或门实现,也可以用一个与或非门和一个非门来实现。图 1-5 例1-14的实现电路1.3.3 逻辑代数的基本公式和运算规则逻辑代数的基本公式和运算规则1.基本公式基本公式表表1-9 逻辑代数的基本公式逻辑代数的基本公式 【例1-15】证明表1-9中公式1中的分配律、吸收律和包含律。证明证明CAABBCACABBCAABCCAABBCAACAABBCCAABABBABAABBAAABBBABABAABABBABAABBABBABAAAABAAABABCABCABCBCAB
37、CABACABCBAACAACABA)1()1()()()()()(1)(1)1()(2.运算规则运算规则 1)代入规则 对于任何一个逻辑等式,以某个逻辑变量或逻辑函数同时取代等式两端的任何一个逻辑变量A后,等式依然成立。这就是代入规则。利用代入规则,可以方便地扩展公式。例如,可以把摩根定律扩展到含有n个变量的等式:nnnnAAAAAAAAAAAA21212121下面以三变量为例进行证明:CBACBACBACBACBACBA 2)对偶规则 设F为一个逻辑函数表达式,若将F中的“与”、“或”运算符互换(即变为+,+变为),常量0、1互换(即0变为1,1变为0),所得到的新表达式就叫做函数F的对偶
38、式(Duality Expression)或对偶函数(Duality Function),常用Fd表示。如果两个逻辑函数表达式相等,那么它们的对偶式也一定相等。这就是对偶规则。利用对偶规则,不仅可以帮助人们证明逻辑等式,而且可以帮助人们减少公式的记忆量。例如,表1-9中的公式1和公式2就互为对偶式,只需记忆其中一边的公式就可以了。【例例1-16】求 的对偶函数。解解 求对偶函数时,要注意保持原式中的运算次序不变。本例Fd表达式中的括号就是为了保证原式中的运算次序不变而使用的。原来大非号下面为两项相或,因此变号后应为两项相与。DCBCBAF)()(DCBCBAFd 3)反演规则 在逻辑代数中,常
39、将逻辑函数F叫作原函数,将F叫作F的反函数或补函数,将由原函数求反函数的过程叫作“反演(Reversal Development)”或“求反”。若A是函数F的一个自变量,则称A为原变量A的反变量。将一个逻辑函数表达式F中的“与”、“或”运算符互换,常量0、1互,原变量与反变量互换,就可得到F的反函数F。这就是反演规则。虽然利用摩根定律也可以从F求得F,但运算过程比较复杂。利用反演规则求反函数F时,不仅要注意运算的优先顺序,而且还要注意只有单个变量的反变量才变为原变量,而对于多个变量组合后的“非”号不能变反。)()(DCBCBAF 【例1-17】写出上例中F的反函数F的表达式并用反演律验证其正确
40、性。解解 利用反演规则,有利用反演定律,有)()()()()()(DCBCBADCBCBADCBCBADCBCBADCBCBADCBCBAF二者是完全相等的。因此,利用反演规则所得到的反函数是正确的。1.4 逻辑函数的描述方法逻辑函数的描述方法1.4.1 真值表描述法真值表描述法 【例1-18】某公司有A、B、C 三个股东,分别占有公司50%、30%和20%的股份。一个议案要获得通过,必须有超过50%股权的股东投赞成票。试列出该公司表决电路的真值表。解解 用1表示股东赞成议案,用 0表示股东不赞成议案;用F表示表决结果,且用1表示议案获得通过,用0表示议案未获得通过。根据这些假定,不难列出该公
41、司表决电路的真值表,如表1-10所示。表表1-10 真值表真值表1.4.2 代数式描述法代数式描述法 1.逻辑函数的代数表达式逻辑函数的代数表达式 现在,用逻辑代数表达式来描述例1-18中的表决电路问题。由题中所述表决规则和股东权益可知,一个议案要得到通过,必须同时满足以下两个条件:(1)大股东A赞成;(2)小股东B、C中至少有1个赞成。根据假定,大股东A赞成即逻辑变量A取值为1;小股东B、C中至少有1个赞成即逻辑变量B为1或C为1,或B、C均为1。显然,条件中的变量B和C为“逻辑或”的关系,即B+C。而条件与条件为“逻辑与”的关系,只有A为1且B+C也为1时,F才为1。因此,表决结果F的逻辑
42、表达式为F=A(B+C)和真值表一样,该表达式也准确地描述了该公司表决电路的逻辑关系。2.逻辑函数的标准形式逻辑函数的标准形式 对于给定的逻辑函数,其代数表达式的具体描述形式可以是多种多样的。例如,例1-18中的表决电路问题也可以这样来理解:只要大股东A和小股东B同时赞成,或大股东A和小股东C同时赞成,或大股东A和小股东B、C同时赞成,议案便可获得通过。第一种情况可用AB来表示,第二种情况可用AC来表示,第三种情况可用ABC来表示,而这三种情况又是一种“逻辑或”的关系,只要任何一种情况出现,表决结果F便为1。因此,F的逻辑表达式为 F=AB+AC+ABC 1)标准积之和式 在逻辑代数中,全部输
43、入变量均以原变量或反变量的形式出现1次且仅出现1次的“乘积项(与项)”称为“标准积项”。n个变量的逻辑函数最多可以有2n个标准积项。以两个变量A、B的函数为例,它最多可以有4个标准积项:和AB。诸如 等形式的乘积项都不是标准积项。BABABA、BBAAAA、标准积项有时也称为“最小项(Minterm)”,并用小写英文字母m加序号下标i的形式来简记。序号i的确定方法是,将最小项中的变量按序排列后,原变量用1表示,反变量用0表示,得到1组二进制数,将其转换为等值的十进制数,就是序号i。例如,二变量函数F(A,B)的4个最小项为)2)10()0)00(2220iBAmiBAm)3)11()1)01(
44、2321iABmiBAm 全部由标准积项逻辑加构成的“积之和(SOP)”逻辑表达式称为“标准积之和式(Canonical SOP Expression)”或“标准与或式”。由于标准积项也称为最小项,因此有时也把标准积之和式称为“最小项表达式”。例如,下面就是一个三变量逻辑函数F(A,B,C)的“标准积之和式”的三种表示形式:)6,5,2,0(),(6520mmmmmCABCBACBACBACBAF(变量型)(m型)(m型)2)标准和之积式 在逻辑代数中,全部输入变量均以原变量或反变量的形式出现1次且仅出现1次的“和项(或项)”称为“标准和项”。n个变量的逻辑函数最多可以有2n个标准和项。以两个
45、变量A、B的函数为例,它最多可以有4个标准和项:和A+B。诸如A、等形式的和项都不是标准和项。BABABA、BBAAA、标准和项有时也称为“最大项(Maxterm)”,并用大写英文字母M加序号下标i的形式来简记。序号i的确定方法是,将最大项中的变量按序排列后,原变量用0表示,反变量用1表示,得到1组二进制数,将其转换为等值的十进制数,就是序号i。例如,二变量函数F(A,B)的4个最大项为)2)10()0)00(2220iBAMiBAM)3)11()1)01(2321iBAMiBAM 全部由标准和项逻辑乘后构成的“和之积(POS)”逻辑表达式称为“标准和之积式(Canonical POS Exp
46、ression)”或“标准或与式”。由于标准和项也称为最大项,所以有时也把标准和之积式称为“最大项表达式”。例如,下面就是一个三变量逻辑函数F(A,B,C)的“标准和之积式”的三种表示形式:)7,4,3,1()()()(),(7431MMMMMCBACBACBACBACBAF(变量型)(M型)(M型)3)最小项与最大项的性质 (1)全部最小项之和恒为1,全部最大项之积恒为0,即 1201niim0120niiM (2)任意两个不同的最小项之积恒为0,任意两个不同的最大项之和恒为1,即如果i j,则有mi mj=0 Mi+Mj=1 (3)相同序号的最小项和最大项互为反函数,即1iiiiMmMm
47、4)标准积之和式与标准和之积式的关系 (1)标准积之和式与标准和之积式是同一函数的两种不同表示形式,因此二者在本质上是相等的。(2)两种标准式中的最小项和最大项序号间存在一种互补关系,即标准积之和式中未出现的最小项序号k必以最大项的序号k出现在标准和之积式中,反之亦然。利用这一特性,可以方便地根据一种标准表达式写出另一种标准表达式。(3)由相同自变量和相同序号构成的最小项表达式与最大项表达式互为反函数。【例1-19】已知F(A,B,C)=m(0,1,4,7),写出其最大项表达式。解解 三变量函数的最小项或最大项序号可有0、1、2、3、4、5、6、7,现在给定的最小项表达式中出现了序号0、1、4
48、、7,因此,未出现的2、3、5、6等序号必出现在最大项表达式中。所以,最大项表达式为 F(A,B,C)=M(2,3,5,6)下面证明其正确性。)6,5,3,2()6,5,3,2()6,5,3,2()6,5,3,2()6,5,3,2()7,4,1,0()7,6,5,4,3,2,1,0(1)7,4,1,0(1MmmFFmFmmmFmFF因此所以因为 3.从真值表写逻辑函数的标准式从真值表写逻辑函数的标准式 1)从真值表写标准积之和式 标准积之和式中的最小项与真值表中F=1的各行变量取值一一对应,因此,逻辑函数的标准积之和式就是真值表中使函数值为1的各个最小项之和。由此得出从真值表写标准积之和式的方
49、法如下:(1)找出F=1的行;(2)对每个F=1的行,取值为1的变量用原变量表示,取值为0的变量用反变量表示,然后取其乘积,得到最小项;(3)将各个最小项进行逻辑加,得到标准积之和式。2)从真值表写标准和之积式 标准和之积式中的最大项与真值表中F=0的各行变量取值一一对应,因此,逻辑函数的标准和之积式就是真值表中使函数值为0的各个最大项之积。由此得出从真值表写标准和之积式的方法如下:(1)找出F=0的行;(2)对每个F=0的行,取值为0的变量用原变量表示,取值为1的变量用反变量表示,然后取其和,得到最大项;(3)将各个最大项进行逻辑乘,得到标准和之积式。逻辑函数的标准和之积式也可通过下面方法得
50、到:首先写出 的标准积之和式,然后利用摩根定律求出 的标准和之积式。FF F 【例1-20】写出表1-11所示真值表的标准积之和式和标准和之积式。表表1-11 真值表真值表 解解 表1-11实际上就是前面介绍的表决电路真值表。其标准积之和式为)7,6,5(),(765mmmmABCCABCBACBAF其标准和之积式为)4,3,2,1,0()()()(),(43210MMMMMMCBACBACBACBACBACBAF 如果首先写出 的标准积之和式,然后利用摩根定律,也可得到标准和之积式为F),3,2,1,0()()()()(),(),(MCBACBACBACBACBACBABCACBACBACB