为了便于研究和处理一些复杂的逻辑问题,常常将实际的逻辑问题用逻辑函数来表示。表示逻辑函数的方法有很多种,如真值表、逻辑表达式、逻辑图和卡诺图等。逻辑函数进行运算的数学工具是逻辑代数。本任务主要介绍逻辑函数与逻辑运算、逻辑函数的表示方法、逻辑代数和逻辑函数的化简。
如果将一个事件能否发生作为逻辑的结果,那么影响这个结果的各个原因就是这个逻辑的因,这种因果关系称为逻辑关系。用来描述任何一种具体事物因果关系的公式称为逻辑函数,逻辑函数的一般表达式为
Y = F ( A , B , C , D ,…)
式中, Y 为输出变量; A , B , C , D ,…为输入变量; F 为输出变量与输入变量的逻辑关系。
逻辑函数变量的取值范围仅为0和1,0和1并不表示数量的大小,而是表示两种不同的逻辑状态,例如,用1和0表示是和非、真和假、高电平和低电平、开和关等。逻辑函数中的变量称为逻辑变量。任何一个逻辑函数均可由与、或、非3种基本逻辑运算组合而成。
与逻辑关系:只有当决定事物结果的所有条件全都具备时,结果才会发生。
例如,图1-1a所示电路中有两个开关(输入 A 和 B ),不难看出,只有两个开关都闭合时,灯(输出 Y )才亮;只要有一个开关断开,灯就不亮。
图1-1 与逻辑
a)电路模型 b)逻辑符号
实现与逻辑的电路称为与门,与逻辑和与门的逻辑符号如图1-1b所示,符号“&”表示与逻辑运算。
当然,“与”的条件可以有多个。若用逻辑表达式来描述,则写为 Y = A · B ,式中的符号“·”读作与(或乘),在不引起混淆的前提下,“·”常被省略。
与逻辑的真值表见表1-5。
表1-5 与逻辑的真值表
从与逻辑的真值表可以看出,与逻辑的运算规律为“有0得0,全1得1”。
或逻辑关系:决定事物结果的几个条件中,只要有一个或一个以上条件得到满足,结果就会发生。
电路如图1-2a所示,两个开关(输入 A 和 B )是并联的,只要有一个开关闭合,灯(输出 Y )就亮;只有当开关全部断开时,灯才灭。
图1-2 或逻辑
a)电路模型 b)逻辑符号
实现或逻辑的电路称为或门,或逻辑和或门的逻辑符号如图1-2b所示,符号“≥1”表示或逻辑运算,其中“或”的条件可以有多个。若用逻辑表达式来描述,可写为 Y = A + B ,式中的符号“+”读作或(或加)。
或逻辑的真值表见表1-6。
表1-6 或逻辑的真值表
从或逻辑的真值表可以看出,或逻辑的运算规律为“有1得1,全0得0”。
非逻辑关系:在事件中,结果总是和条件呈相反状态。
电路如图1-3a所示,当开关(输入 A )闭合时,灯(输出 Y )不亮;当开关断开时,灯就亮。
实现非逻辑的电路称为非门或反相器,其逻辑符号如图1-3b所示,逻辑符号中的“○”表示非,符号中的“1”表示缓冲。
图1-3 非逻辑
a)电路模型 b)逻辑符号
非逻辑用逻辑表达式描述可写为 ,式中变量上方的符号“—”表示非运算,读作非(或反)。
非逻辑的真值表见表1-7。
表1-7 非逻辑的真值表
从非逻辑的真值表可以看出,非逻辑运算的规律为“0变1,1变0”。
三种基本逻辑的运算简单、容易实现,但是实际的逻辑问题要比基本逻辑运算复杂得多。所以常把与、或、非三种基本逻辑运算合理地组合起来使用,这就是逻辑函数的复合运算。常用的复合逻辑运算有与非运算、或非运算、与或非运算、异或运算和同或运算等。
“与”和“非”运算的复合运算称为与非运算,若输入变量为 A 、 B 、 C ,则与非运算的逻辑表达式为
实现与非运算的电路称为与非门,其逻辑符号如图1-4所示。
图1-4 与非门的逻辑符号
表1-8为与非逻辑的真值表,从表中可以看出,只有 A 、 B 、 C 全为1时,输出才为0。其运算规律可归纳为“有0则1,全1才0”。
表1-8 与非逻辑的真值表
“或”和“非”运算的复合运算称为或非运算,若输入变量为 A 、 B 、 C ,则或非运算的逻辑表达式为
实现或非运算的电路称为或非门,其逻辑符号如图1-5所示。
图1-5 或非门的逻辑符号
表1-9为或非逻辑的真值表,从表中可以看出,只有 A 、 B 、 C 全为0时,输出才为1。其运算规律可归纳为“有1则0,全0才1”。
表1-9 或非逻辑的真值表
与或非运算是先进行与运算,把与运算的结果进行或运算,最后进行非运算。若输入变量为 A 、 B 、 C 、 D ,则其逻辑表达式为
实现与或非逻辑的电路称为与或非门,其逻辑符号如图1-6所示。
图1-6 与或非门的逻辑符号
异或运算是指两个输入变量的取值相同时输出为0,取值不相同时输出为1。若输入变量为 A 、 B ,则其逻辑表达式为
实现异或运算的电路称为异或门,其逻辑符号如图1-7所示。逻辑符号的“=1”表示异或运算。
图1-7 异或门的逻辑符号
表1-10为异或逻辑的真值表,从表中可以看出,异或逻辑功能可归纳为“相同为0,相异为1”。
表1-10 异或逻辑的真值表
同或运算是指两个输入变量的取值相同时输出为1,取值不相同时输出为0。若输入变量为 A 、 B ,则其逻辑表达式为
实现同或运算的电路称为同或门,同或逻辑和同或门的逻辑符号如图1-8所示。
图1-8 同或门的逻辑符号
表1-11为同或逻辑的真值表,从表中可以看出,同或逻辑功能可归纳为“相同为1,相异为0”。
表1-11 同或逻辑的真值表
由于同或运算是异或运算的非运算,所以有
或
任何一个逻辑函数都可以有逻辑表达式、真值表、逻辑图和卡诺图4种表示方法。
逻辑函数表达式是将逻辑变量用与、或、非等运算符号按一定规则组合起来表示逻辑函数的一种方法。它是逻辑变量与逻辑函数之间逻辑关系的表达式,简称逻辑表达式,如 Y = AB + BC + AC 、 Y = 等。该表示方法的特点比较明显:简洁、方便,有利于化简和变换。
真值表是将输入逻辑变量的所有可能取值与相应的输出变量函数值排列在一起而组成的表格。由于每个输入变量有0与1两种取值, n 个输入变量就有2 n 个不同的取值组合。将输入变量的全部取值组合和相应的输出函数值全部列出来,就可以得到逻辑函数的真值表。
例如,逻辑函数 Y=AB+BC+AC ,式中有 A 、 B 、 C 三个输入变量,共有8种取值组合,把它们分别代入逻辑表达式中运算,求出相应的输出变量 Y 的值,即可列出其真值表(见表1-12)。
表1-12 Y = AB + BC + AC 的真值表
该表示方法能直观、明了地反映函数和输入变量的取值对应关系。
逻辑图是用逻辑符号表示逻辑函数的一种方法。其中,每一个逻辑符号就是一个最简单的逻辑图。根据逻辑表达式 Y=AB+BC+AC ,可以画出如图1-9所示的逻辑图。
图1-9 Y=AB+BC+AC 的逻辑图
由图1-9可知,逻辑符号与实际器件有着明显的对应关系,能方便地按逻辑图构成实际电路。
从前面三种逻辑函数的表示方法很容易看出,同一个逻辑函数可以用几种不同的方法表示,每一种表示方法都有其优点和缺点,表示逻辑函数时应该视具体情况合理选用,各种表示方法可以互相转换。逻辑函数的第四种表示方法(卡诺图)将在后面进行介绍。
逻辑代数是一种描述客观事物逻辑关系的数学方法,又称布尔代数。它是研究数字电路的数学工具,是分析和设计逻辑电路的理论基础。它的研究内容是逻辑函数与逻辑变量之间的关系。
根据与、或、非3种基本运算的特点,可以推导出表1-13的逻辑代数的基本公式。这些公式中,有一些是与普通代数不同的,在运用中要特别注意。证明这些定律是极容易的,最直接的方法,就是将变量的各种可能取值组合代入等式中进行计算,如果等号两边的值相等,则等式成立,否则就不成立。
表1-13 逻辑代数的基本公式
逻辑代数关于常量间关系的规律:
0·0=0
0·1=0
1·0=0
1·1=1
0+0=0
0+1=1
1+0=1
1+1=1
应用基本公式,可以推导出一些其他的常用公式。熟练地掌握和使用这些公式将为化简逻辑函数带来很多方便。下面介绍一些常用公式。
公式1:
证明:
可见,如果当两乘积项中分别含有 B 和 形式而其他因子相同时,则可消去变量 B ,合并成一项。
公式2:
A + AB = A
证明:
A + AB = A (1+ B )= A ·1= A
可见,在两个乘积项中,如果一个乘积项是另一乘积项(如 AB )的因子,则另一个乘积项是多余的。
公式3:
证明:
可见,在两个乘积项中,如果一个乘积项的反函数(如 )是另一个乘积项的因子,则这个因子是多余的。
公式4:
证明:
推论:
可见,如果一个与或表达式中的两个乘积项中,一项含有原变量(如 A ),另一项含有反变量(如 ),而这两个乘积项的其他因子正好是第三个乘积项(或第三个乘积项的部分因子),则第三个乘积项是多余的。公式4常称为添加定理。
反演规则主要是用来求逻辑函数的反函数,其方法是将原函数中所有的“·”换成“+”、“+”换成“·”;所有的“0”换成“1”、“1”换成“0”;所有原变量变成反变量、反变量变成原变量。这样,所得到的新逻辑表达式就是原函数的反函数。
例如,若
则
注意:① 所求反函数运算的优先顺序要与原函数一致。
② 原函数的长非号在反函数中位置保持不变。
对偶规则主要是用来求函数的对偶式,其方法是将原函数中所有的“·”换成“+”、“+”换成“·”;所有的“0”换成“1”、“1”换成“0”。这样,所得到的新逻辑函数就是原函数的对偶式。
例如:若
则
注意:① 所求对偶式运算的优先顺序要与原函数一致。
② 原函数的长非号在对偶式中位置保持不变。
对比表1-13所列的公式,除还原律外,其余同一行公式中的左侧公式和右侧公式两边的表达式是互为对偶式的。因此可知,如果两个逻辑函数相等,则它们的对偶式也相等,这称为对偶定理。
代入规则是指在任何一个逻辑等式中,如果将等式两端的某个变量都以一个逻辑函数代入,则等式仍然成立。应用代入规则,可扩大公式的应用范围。
例如, ,令 Y = B + C ,并代等式中的变量 B ,则有
即
故
反复运用代入规则,则有
同理可得
逻辑函数的表达式并不是唯一的,它可以有各种不同的形式。为了提高数字电路的可靠性,尽可能地减少所用的元器件数量,这就需要通过化简找出逻辑函数的最简形式,这样既提高了可靠性,又节省了元器件,降低了成本。
对于某一给定的逻辑函数,其真值表是唯一的,但描述同一个逻辑函数的逻辑表达式却可以是多种多样的,常用的有6种形式:与或表达式、或与表达式、与或非表达式、或与非表达式、与非-与非表达式、或非-或非表达式。
通过观察逻辑函数表达式的6种表示形式可以看出,与或表达式最简单、直观,同时与或表达式也比较容易转换成其他形式的表达式。因此,我们主要讨论与或表达式的化简方法。
逻辑函数的化简方法有代数化简法和卡诺图化简法两种,下面将分别加以讨论。
逻辑函数的代数化简法就是反复利用逻辑代数的基本公式和常用公式,经过运算化简逻辑函数的方法,又称公式化简法。通常采用的方法有并项法、吸收法、消去法和配项法等。
利用公式 把两项合并成一项,同时消去互补变量。
【例1-1】 化简逻辑函数: 。
解:
利用公式 A + AB = A 和公式 ,消去多余项。
【例1-2】 化简逻辑函数: 。
解:
利用公式 ,消去多余的因子 。
【例1-3】 化简逻辑函数: 。
解:
在不能直接利用公式、定律化简时,可在某个乘积项上乘以 进行化简。
【例1-4】 化简逻辑函数: 。
解:
【例1-5】 化简逻辑函数: 。
解:
公式化简法相对比较烦琐,目前尚无一套完整的方法,能否以最快的速度进行化简,这与我们的经验和对公式掌握及运用熟练程度有关。公式化简法对逻辑函数的变量个数没有限制,但结果是否最简有时不易判断。为此,下面介绍一种简便、直观的化简方法,即卡诺图化简法。
1)最小项。最小项即一个包含了所有输入变量的乘积项(每一个输入变量均以原变量或反变量的形式在乘积项中出现,且仅仅出现一次)。它是由输入变量的取值组合而写出的输入变量组合。 n 个输入变量共有2 n 种取值组合,对应就有2 n 个最小项。
例如, A 、 B 、 C 三个输入变量共有2 3 =8种取值组合,就有8个最小项,即 ABC 、 、 、 、 、 、 、 。
对于任意一个最小项只有一组变量取值使它的值为1,而变量其余各组值时,该最小项均为0(如最小项 ,只有当 A 、 B 、 C 均为1时, 才为1,否则 的值均为0);任意两个不同的最小项之积恒为0;全部最小项之和恒为1。
2)最小项编号。为了表示方便起见,常常把最小项排列起来,编上号。编号的方法是把使最小项值为1的取值组合当作二进制数,与这个二进制等值的十进制数就是该最小项的编号。经编号之后,就用 m i 的形式来表示。
3)最小项的逻辑相邻性。若两个最小项中只有一个变量互反,其余变量均相同,则这样的两个最小项为逻辑相邻。如三变量最小项 ABC 和 ,其中的 C 和 为互反变量,其余变量 AB 都相同,故它们是相邻最小项。
任何一个 n 变量的最小项有 n 个最小项分别与它逻辑相邻。
4)逻辑函数的最小项表达式。任何一个逻辑函数都可以表示为最小项之和的形式——标准与或表达式。而且这种形式是唯一的,也就是说,一个逻辑函数只有一种最小项表达式。
【例1-6】 将 Y = AB + BC 展开为最小项表达式。
解:
或者 Y ( A , B , C )= m 3 + m 6 + m 7 =∑ m (3,6,7)
式中,∑为逻辑或。
1)卡诺图及其构成原则。如前所述,如果把 n 变量逻辑函数的所有最小项按一定规则排列构成一个方格图,这一方格图称为卡诺图,它能够直观地表示出最小项的逻辑相邻关系。因为 n 个变量有2 n 个最小项,所以 n 变量的卡诺图也应该有2 n 个方格。卡诺图中各变量的取值要按一定的规则(循环码规律)排列,以保证在几何位置上相邻的最小项在逻辑上也是相邻的。
几何相邻的3种情况如下:
① 相邻——上、下、左、右紧挨着的小方格。
② 相对——任意一行或一列的首尾小方格。
③ 相重——对折起来位置相重合的小方格。
2)变量卡诺图的画法。将 n 变量的2 n 个最小项用2 n 个小方格表示,并且使相邻最小项在几何位置上也相邻且循环相邻,这样排列得到的方格图称为 n 变量最小项卡诺图,简称变量卡诺图。
注意:卡诺图一般画成正方形或矩形,变量取值的顺序按照循环码排列。
3)逻辑函数的卡诺图。任何一个逻辑函数都可以填到与之相对应的卡诺图中,称之为逻辑函数的卡诺图。对于确定的逻辑函数,其卡诺图和真值表一样都是唯一的。
① 由真值表画卡诺图。由于卡诺图与真值表一一对应,即真值表的某一行对应着卡诺图的某一个小方格。因此,如果真值表中的某一行函数值为1,则卡诺图中对应的小方格填“1”;如果真值表某一行的函数值为0,则卡诺图中对应的小方格填“0”,这样即可以得到逻辑函数的卡诺图。
【例1-7】 已知逻辑函数 Y 的真值表见表1-14,画出 Y 的卡诺图。
解: 首先画出三变量的卡诺图,然后根据表1-14的真值表在卡诺图的对应方格中填写 Y 的值,即可得到函数 Y 的卡诺图,如图1-10所示。
表1-14 例1-7真值表
图1-10 例1-7卡诺图
② 由最小项表达式画卡诺图。把表达式中所有的最小项在对应的小方块中填入“1”,其余的小方块中填入“0”。
【例1-8】 画出函数 Y ( A , B , C , D )=∑ m (0,3,5,7,9,12,15)的卡诺图。
解: 卡诺图如图1-11所示。
图1-11 例1-8卡诺图
③ 由逻辑函数表达式画卡诺图。首先把逻辑函数表达式展开成最小项表达式,然后在每一个最小项对应的小方格内填“1”,其余的小方格内填“0”,这样就得到了该逻辑函数的卡诺图。
【例1-9】 画出函数 =∑ m (7,9,12,13,14,15)的卡诺图。
解:
图1-12 例1-9卡诺图
4)用卡诺图化简逻辑函数。卡诺图逻辑相邻性的特点保证了在卡诺图中相邻的两个最小项之中只有一个变量不同,因此,当相邻的方格都为1时,可将其合并,利用公式 消去一个或多个变量,合并的结果是消去不同的变量、保留相同的变量,进而达到化简逻辑函数的目的。
① 卡诺图中最小项合并的规律。两个相邻最小项合并成一项时,可消去一个变量;4个相邻最小项合并成一项时,可消去两个变量;8个相邻最小项合并成一项时,可消去3个变量。
一般来说,2 n 个相邻最小项合并时,可消去 n 个变量。
② 用卡诺图化简逻辑函数的步骤如下:
a.根据变量数画出变量卡诺图,根据给出的要化简的逻辑函数,在函数包含的最小项方格中填“1”,其余的方格填“0”(或不填),画出函数的卡诺图。
b.找出可以合并的最小项并画圈(每一个圈就是一个乘积项)。
c.由画圈的结果写出最简与或表达式。
③ 画圈的原则如下:
a.必须按2 i ( i =0,1,2,…, n )的规律来圈取值为1的相邻最小项。
b.每个取值为1的相邻最小项至少圈一次,可以圈多次。
c.圈的个数要最少(与项就少),并要尽可能大(消去的变量就越多)。
画圈完成后,应当检查是否符合以上原则。尤其要注意是否漏圈了最小项,是否有多余的圈(某个圈中的“1”都被其他圈圈过)。只要能正确画圈,就能获得函数的最简与或表达式。
④ 由圈写最简与或表达式的方法:
a.将每个圈用一个乘积项表示。其中,圈内各最小项中相同的因子保留,互补的因子消去;相同因子取值为“1”时用原变量表示,取值为“0”时用反变量表示。
b.将各乘积项相或,便得到最简与或表达式。
5)具有无关项逻辑函数的化简。
① 无关项的概念。在某些实际问题的逻辑关系中,有时会遇到这样的问题:对应于输入变量的某些取值下,输出函数的值可以是任意的,或者这些输入变量的取值根本不会也不允许出现。针对这一问题,通常把这些输入变量的取值所对应的最小项称为无关项或约束项。例如,当8421BCD码作为输入变量时,禁止码1010~1111这6种状态所对应的最小项就是无关项。无关项在卡诺图中用符号“×”表示,在标准与或表达式中用“∑ d ( )”表示。
② 具有无关项逻辑函数的化简。因为无关项的值可以根据需要取0或取1,所以在用卡诺图化简逻辑函数时,充分利用无关项,可以使逻辑函数进一步得到简化。
卡诺图的优点:形象地表达了变量各个最小项之间在逻辑上的相邻性。
卡诺图的缺点:随着输入变量的增加,图形迅速复杂化。所以,卡诺图只适于用来表示5~6个变量以内的逻辑函数。
【例1-10】 化简图1-13所示逻辑函数。
解:
图1-13 例1-10卡诺图
多余项:如果一个圈中各个1都被其他圈圈过,则这个圈是多余的。
圈组技巧(防止多圈组的方法):
a.先圈孤立的1。
b.再圈只有一种圈法的1。
c.最后圈大圈。
d.检查:每个圈中至少有一个1未被其他圈圈过。
【例1-11】 设 ABCD 是十进制数 X 的二进制编码,当 X ≥5时输出 Y 为1,求 Y 的最简与或表达式。
解: 画卡诺图,如图1-14所示。
利用无关项化简结果为 Y = A + BD + BC 。
充分利用无关项化简后得到的结果要简单得多。
图1-14 例1-11卡诺图
注意:当圈组后,圈内的无关项已自动取值为1,而圈外无关项自动取值为0。
【例1-12】 画出 Y ( A , B , C , D )=∑ m (1,2,5,6,9)+∑ d (10,11,12,13,14,15)的卡诺图,并进行化简。
解: 如图1-15所示,化简结果为 。
图1-15 例1-12卡诺图
利用代数法化简逻辑函数,要熟练掌握公式、定律、规则,且要有一定的技巧,尤其是结果是否最简难以确定。Multisim仿真软件中的虚拟仪器——逻辑变换器可以直观地显示出逻辑函数的真值表,并能将逻辑函数化简结果显示出来(本书仿真软件均采用Multisim 14)。
1)掌握使用Multisim 14仿真软件进行逻辑函数化简的方法。
2)通过训练加深读者对Multisim 14仿真软件的掌握。
计算机、Multisim 14仿真软件。
1)运行Multisim 14仿真软件,进入软件操作界面并在仪器栏中调出逻辑变换器,如图1-16所示。
2)打开逻辑变换器操作界面,如图1-17所示。
3)把逻辑函数 输入逻辑变换器操作界面的输入栏中,如图1-18所示。
图1-16 调出逻辑变换器
图1-17 逻辑变换器操作界面
注意:在逻辑函数的输入中用“′”代替逻辑非运算。
图1-18 输入逻辑函数
4)单击逻辑变换器操作界面右侧的第四行按钮,显示界面出现逻辑函数的真值表;再单击第三行按钮,则在逻辑变换器操作界面的输入栏显示出逻辑函数的最简结果 ,如图1-19所示。
5)任意选择逻辑函数使用逻辑变换器进行化简,观察化简结果是否与采用其他方法化简的结果一致。
图1-19 逻辑函数的真值表及化简结果
1)仿真软件Multisim 14中的逻辑变换器还有哪些功能?
2)试梳理仿真软件Multisim 14中逻辑变换器的操作步骤。