第三章 组合逻辑电路的分析与设计
前一章我们学习了门电路。对于一个数字系统或数字电路来讲,有了这些门电路就相当于一个建筑工程有了所需的砖瓦和预制件。从现在起,我们就可以用门电路来搭接一个具有某一功能的数字电路了。正像建一座高楼,不仅需要砖瓦和预制件等建筑材料,还需要有效的工具和合理的工艺一样,数字电路的分析与设计也需要一定的数学工具和一套有效的方法。本章首先介绍分析和设计数字电路时常用的数学工具--逻辑代数和卡诺图,包括逻辑代数的基本公式和基本定律,逻辑函数的代数化简法和卡诺图化简法。然后介绍组合逻辑电路的分析方法与设计方法。另外,按其结构和工作原理不同,数字电路可分为两大类,组合逻辑电路和时序逻辑电路。第三、四章介绍组合逻辑电路,第五、六章介绍时序逻辑电路,请大家在学习过程中体会两者的区别及特点。
3.1 逻辑代数
逻辑代数和普通代数一样,有一套完整的运算规则,包括公理、定理和定律,用它们对逻辑函数式进行处理,可以完成对电路的化简、变换、分析与设计。
一.逻辑代数的基本公式
包括9个定律,其中有的定律与普通代数相似,有的定律与普通代数不同,使用时切勿混淆。
表3.1.1 逻辑代数的基本公式名称
公式1
公式2
0—1律
互补律
重叠律
交换律
结合律
分配律
反演律
吸收律
对合律
表中略为复杂的公式可用其他更简单的公式来证明。
例3.1.1 证明吸收律
证:
表中的公式还可以用真值表来证明,即检验等式两边函数的真值表是否一致。
例3.1.2 用真值表证明反演律和
证:分别列出两公式等号两边函数的真值表即可得证,见表3.1.2和表3.1.3
表3.1.2 证明
A B
0 0
0 1
1 0
1 1
1
1
1
0
1
1
1
0
表3.1.3 证明
A B
0 0
0 1
1 0
1 1
1
0
0
0
1
0
0
0
反演律又称摩根定律,是非常重要又非常有用的公式,它经常用于逻辑函数的变换,以下是它的两个变形公式,也是常用的。
二,逻辑代数的基本规则代入规则
代入规则的基本内容是:对于任何一个逻辑等式,以某个逻辑变量或逻辑函数同时取代等式两端任何一个逻辑变量后,等式依然成立。
利用代入规则可以方便地扩展公式。例如,在反演律中用BC去代替等式中的B,则新的等式仍成立:
对偶规则
将一个逻辑函数L进行下列变换:
·→+,+ →·
0 → 1,1 → 0
所得新函数表达式叫做L的对偶式,用表示。
对偶规则的基本内容是:如果两个逻辑函数表达式相等,那么它们的对偶式也一定相等。
利用对偶规则可以帮助我们减少公式的记忆量。例如,表3.1.1中的公式l和公式2就互为对偶,只需记住一边的公式就可以了。因为利用对偶规则,不难得出另一边的公式。
反演规则
将一个逻辑函数L进行下列变换:
·→+,+ →· ;
0 → 1,1 → 0 ;
原变量 → 反变量,反变量 → 原变量。
所得新函数表达式叫做L的反函数,用表示。
利用反演规则,可以非常方便地求得一个函数的反函数
例3.1.3 求函数的反函数。
解:
例3.1.4 求函数的反函数。
解:
在应用反演规则求反函数时要注意以下两点:
保持运算的优先顺序不变,必要时加括号表明,如例3.1.3。
变换中,几个变量(一个以上)的公共非号保持不变,如例3.1.4。
三,逻辑函数的代数化简法
1.逻辑函数式的常见形式一个逻辑函数的表达式不是唯一的,可以有多种形式,并且能互相转换。常见的逻辑式主要有5种形式,例如:
与—或表达式
或—与表达式
与非—与非表达式
或非—或非表达式
与—或非表达式在上述多种表达式中,与—或表达式是逻辑函数的最基本表达形式。因此,在化简逻辑函数时,通常是将逻辑式化简成最简与—或表达式,然后再根据需要转换成其他形式。
2.最简与—或表达式的标准
(1)与项最少,即表达式中“+”号最少。
(2)每个与项中的变量数最少,即表达式中“·,号最少。
3.用代数法化简逻辑函数用代数法化简逻辑函数,就是直接利用逻辑代数的基本公式和基本规则进行化简。代数法化简没有固定的步骤,常用的化简方法有以下几种。
并项法。运用公式,将两项合并为一项,消去一个变量。如
吸收法。运用吸收律消去多余的与项。如
(3)消去法。运用吸收律消去多余的因子。如
(4)配项法。先通过乘以(=1)或加上(=0),增加必要的乘积项,再用以上方法化简。如
在化简逻辑函数时,要灵活运用上述方法,才能将逻辑函数化为最简。下面再举几个例子。
例3.1.5 化简逻辑函数
解:
例3.1.6 化简逻辑函数
解: (利用)
(利用)
(利用)
例3.1.7 化简逻辑函数
解: (利用反演律)
(利用)
(利用)
(配项法)
(利用)
(利用)
例3.1.8 化简逻辑函数
解法1: (增加冗余项)
(消去1个冗余项)
(再消去1个冗余项)
解法2: (增加冗余项)
(消去1个冗余项)
(再消去1个冗余项)
由上例可知,逻辑函数的化简结果不是唯一的。
代数化简法的优点是不受变量数目的限制。缺点是:没有固定的步骤可循;需要熟练运用各种公式和定理;需要一定的技巧和经验;有时很难判定化简结果是否最简。
逻辑函数的卡诺图化简法
本节介绍一种比代数法更简便、直观的化简逻辑函数的方法。它是一种图形法,是由美国工程师卡诺(Karnaugh)发明的,所以称为卡诺图化简法。
一.最小项的定义与性质
1.最小项的定义
在n个变量的逻辑函数中,包含全部变量的乘积项称为最小项。其中每个变量在该乘积项中可以以原变量的形式出现,也可以以反变量的形式出现,但只能出现一次。n变量逻辑函数的全部最小项共有2n个。
如三变量逻辑函数L=f(A,B,C)的最小项共有23=8个,列入表中。
表3.2.1 三变量逻辑函数的最小项及编号最小项
变量取值
编号
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
m0
m1
m2
m3
m4
m5
m6
m7
2.最小项的基本性质以三变量为例说明最小项的性质,列出三变量全部最小项的真值表如表3.2.2所示。
表3.2.2 三变量全部最小项的真值表变量
m0
m1
m2
m3
m4
m5
m6
m7
A B C
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
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
从表3.2.2 中可以看出最小项具有以下几个性质:
(1)对于任意一个最小项,只有一组变量取值使它的值为1,而其余各种变量取值均使它的值为0。
(2)不同的最小项,使它的值为1的那组变量取值也不同。
(3)对于变量的任一组取值,任意两个最小项的乘积为0。
(4)对于变量的任一组取值,全体最小项的和为1。
二,逻辑函数的最小项表达式任何一个逻辑函数表达式都可以转换为一组最小项之和,称为最小项表达式。
例3.2.1 将逻辑函数L(A,B,C)转换成最小项表达式
解,该函数为三变量函数,而表达式中每项只含有两个变量,不是最小项。要变为最小项,就应补齐缺少的变量,办法为将各项乘以1,如AB项乘以。
L(A,B,C)
=m7+m6+m3+m1
为了简化,也可用最小项下标编号来表示最小项,故上式也可写为
L(A,B,C)=∑m(1,3,6,7)
要把非“与—或表达式”的逻辑函数变换成最小项表达式,应先将其变成“与—或表达式”再转换。式中有很长的非号时,先把非号去掉。
例3.2.2 将逻辑函数F(A,B,C)转换成最小项表达式解:F(A,B,C)
=m7+m6+m3+m5=∑m(3,5,6,7)
三.卡诺图
1.相邻最小项如果两个最小项中只有一个变量不同,则称这两个最小项为逻辑相邻,简称相邻项。
如果两个相邻最小项出现在同一个逻辑函数中,可以合并为一项,同时消去互为反变量的那个量。如
可见,利用相邻项的合并可以进行逻辑函数化简。有没有办法能够更直观地看出各最小项之间的相邻性呢?有。这就是卡诺图。
卡诺图是用小方格来表示最小项,一个小方格代表一个最小项,然后将这些最小项按照相邻性排列起来。即用小方格几何位置上的相邻性来表示最小项逻辑上的相邻性。卡诺图实际上是真值表的一种变形,一个逻辑函数的真值表有多少行,卡诺图就有多少个小方格。所不同的是真值表中的最小项是按照二进制加法规律排列的,而卡诺图中的最小项则是按照相邻性排列的。
2.卡诺图的结构
(1)二变量卡诺图。
(2)三变量卡诺图。
(3)四变量卡诺图。
仔细观察可以发现,卡诺图具有很强的相邻性。
首先是直观相邻性,只要小方格在几何位置上相邻(不管上下左右),它代表的最小项在逻辑上一定是相邻的。
其次是对边相邻性,即与中心轴对称的左右两边和上下两边的小方格也具有相邻性。
四,用卡诺图表示逻辑函数
1.从真值表到卡诺图
例3.2.3 某逻辑函数的真值表如表3.2.3所示,用卡诺图表示该逻辑函数。
解,该函数为三变量,先画出三变量卡诺图,然后根据表3.2.3将8个最小项L的取值0或者1填入卡诺图中对应的8个小方格中即可,如图3.2.4所示。
表3.2.3 真值表
A B C
L
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
0
1
0
1
1
1
图3.2.4 例3.2.3的卡诺图
2.从逻辑表达式到卡诺图
(1)如果逻辑表达式为最小项表达式,则只要将函数式中出现的最小项在卡诺图对应的小方格中填入1,没出现的最小项则在卡诺图对应的小方格中填入0。
例3.2.4 用卡诺图表示逻辑函数
解,该函数为三变量,且为最小项表达式,写成简化形式然后画出三变量卡诺图,将卡诺图中m0、m3、m6、m7对应的小方格填1,其他小方格填0。
(2)如果逻辑表达式不是最小项表达式,但是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入,直接填入的具体方法是:分别找出每一个与项所包含的所有小方格,全部填入1。
例3.2.5 用卡诺图表示逻辑函数
图3.2.5 例3.2.4的卡诺图 图3.2.6 例3.2.5的卡诺图
(3)如果逻辑表达式不是“与—或表达式”,可先将其化成“与—或表达式”再填入卡诺图。
3.2.5 逻辑函数的卡诺图化简法
1.卡诺图化简逻辑函数的原理
(1)2个相邻的最小项结合(用一个包围圈表示),可以消去1个取值不同的变量而合并为l项,如图3.2.7所示。
(2)4个相邻的最小项结合(用一个包围圈表示),可以消去2个取值不同的变量而合并为l项,如图3.2.8所示。
(3)8个相邻的最小项结合(用一个包围圈表示),可以消去3个取值不同的变量而合并为l项,如图3.2.9所示。
图3.2.7 2个相邻的最小项合并 图3.2.8 4个相邻的最小项合并
图3.2.9 8个相邻的最小项合并总之,2n个相邻的最小项结合,可以消去n个取值不同的变量而合并为l项。
2.用卡诺图合并最小项的原则
用卡诺图化简逻辑函数,就是在卡诺图中找相邻的最小项,即画圈。为了保证将逻辑函数化到最简,画圈时必须遵循以下原则:
(1)圈要尽可能大,这样消去的变量就多。但每个圈内只能含有2n(n=0,1,2,3……)个相邻项。要特别注意对边相邻性和四角相邻性。
(2)圈的个数尽量少,这样化简后的逻辑函数的与项就少。
(3)卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为1的最小项。
(4)取值为1的方格可以被重复圈在不同的包围圈中,但在新画的包围圈中至少要含有1个末被圈过的1方格,否则该包围圈是多余的。
3.用卡诺图化简逻辑函数的步骤画出逻辑函数的卡诺图。
(2)合并相邻的最小项,即根据前述原则画圈。
(3)写出化简后的表达式。每一个圈写一个最简与项,规则是,取值为l的变量用原变量表示,取值为0的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。
例3.2.6 用卡诺图化简逻辑函数:
L(A,B,C,D)=∑m(0,2,3,4,6,7,10,11,13,14,15)
解:(1)由表达式画出卡诺图如图3.2.10所示画包围圈合并最小项,得简化的与—或表达式:
注意图中的包围圈是利用了对边相邻性。
例3.2.7 用卡诺图化简逻辑函数:
解:(1)由表达式画出卡诺图如图3.2.11所示。
(2)画包围圈合并最小项,得简化的与—或表达式:
图3.2.10 例3.2.6卡诺图 图3.2.11 例3.2.7卡诺图注意:图中的虚线圈是多余的,应去掉;图中的包围圈是利用了四角相邻性。
例3.2.8 某逻辑函数的真值表如表3.2.4所示,用卡诺图化简该逻辑函数。
表3.2.4 例3.2.8真值表
A B C
L
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
1
1
1
1
1
1
0
解法1:(1)由真值表画出卡诺图,如图3.2.12所示
(2)画包围圈合并最小项,如图3.2.12(a)所示,得简化的与—或表达式:
解法2:(1)由表达式画出卡诺图,如图3.2.12所示
(2)画包围圈合并最小项,如图3.2.12(b)所示,得简化的与—或表达式:
图3.2.12 例3.2.8卡诺图 (a)解法1 (b)解法2
通过这个例子可以看出,一个逻辑函数的真值表是唯一的,卡诺图也是唯一的,但化简结果有时不是唯一的。
4.卡诺图化简逻辑函数的另一种方法——圈0法如果一个逻辑函数用卡诺图表示后,里面的0很少且相邻性很强,这时用圈0法更简便。但要注意,圈0后,应写出反函数,再取非,得原函数。
例3.2.9 已知逻辑函数的卡诺图如图3.2.13所示,分别用“圈0法”和“圈1法”写出其最简与—或式。
解:(1)用圈0法画包围圈如图3.2.13(a)所示,得
对取非,得,
(2)用圈1法画包围圈如图3.2.13(b)所示,得:
图3.2.13 例3.2.9的卡诺图 (a)圈0的卡诺图 (b)圈1的卡诺图
3.2.6 具有无关项的逻辑函数的化简
1.什么是无关项
例3.2.10:在十字路口有红绿黄三色交通信号灯,规定红灯亮停,绿灯亮行,黄灯亮等一等,试分析车行与三色信号灯之间逻辑关系。
解:设红、绿、黄灯分别用A、B、C表示,且灯亮为1,灯灭为0。车用L表示,车行L=1,车停L=0。列出该函数的真值表如表3.2.5所示。
表3.2.5 真值表红灯
A
绿灯
B
黄灯
C
车
L
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
显而易见,在这个函数中,有5个最小项是不会出现的,如(三个灯都不亮)、(红灯绿灯同时亮)等。因为一个正常的交通灯系统不可能出现这些情况,如果出现了,车可以行也可以停,即逻辑值任意。
无关项;在有些逻辑函数中,输入变量的某些取值组合不会出现,或者一旦出现,逻辑值可以是任意的。这样的取值组合所对应的最小项称为无关项、任意项或约束项,在卡诺图中用符号×来表示其逻辑值。
带有无关项的逻辑函数的最小项表达式为:
L=∑m( )+∑d( )
如本例函数可写成L=∑m(2)+∑d(0,3,5,6,7)
2.具有无关项的逻辑函数的化简化简具有无关项的逻辑函数时,要充分利用无关项可以当0也可以当1的特点,尽量扩大卡诺圈,使逻辑函数更简。
画出例3.2.10的卡诺图如图3.2.14所示,如果不考虑无关项,包围圈只能包含一个最小项,如图3.2.14(a)所示,写出表达式为
如果把与它相邻的三个无关项当作1,则包围圈可包含4个最小项,如图3.2.14(b)所示,写出表达式为,其含义为:只要绿灯亮,车就行。
注意,在考虑无关项时,哪些无关项当作1,哪些无关项当作0,要以尽量扩大卡诺圈、减少圈的个数,使逻辑函数更简为原则。
图3.2.14 例3.2.10的卡诺图 (a) 不考虑无关项 (b) 考虑无关项例3.2.11:某逻辑函数输入是8421BCD码(即不可能出现1010~1111这6种输入组合),其逻辑表达式为
L(A,B,C,D)=∑m(1,4,5,6,7,9)+∑d(10,11,12,13,14,15),用卡诺图法化简该逻辑函数解:(1)画出4变量卡诺图,如图3.2.15(a)所示。将1、4、5、6、7、9号小方格填入1;将10、11、12、13、14、15号小方格填入×。
(2)合并最小项。与1方格圈在一起的无关项被当作1,没有圈的无关项被当做0。注意,1方格不能漏。×方格根据需要,可以圈入,也可以放弃。
(3)写出逻辑函数的最简与—或表达式:
如果不考虑无关项,如图3.2.15(b)所示,写出表达式为,可见不是最简。
图3.2.15 例3.2.10的卡诺图 (a) 考虑无关项 (b) 不考虑无关项
卡诺图化简法的优点是简单、直观,有一定的化简步骤可循,不易出错,且容易化到最简。但是在逻辑变量超过5个时,就失去了简单、直观的优点,其实用意义大打折扣。
组合逻辑电路的分析方法
一,组合逻辑电路的特点组合逻辑电路是数字电路中最简单的一类逻辑电路,其特点是功能上无记忆,结构上无反馈。即电路任一时刻的输出状态只决定于该时刻各输入状态的组合,而与电路的原状态无关。
二,组合逻辑电路的分析方法
例3.3.1:组合电路如图3.3.3所示,分析该电路的逻辑功能。
图3.3.3 例3.3.1电路图解:(1)由逻辑图逐级写出逻辑表达式。为了写表达式方便,借助中间变量P
(2)化简与变换。因为下一步要列真值表,所以要通过化简与变换,使表达式有利于列真值表,一般应变换成与—或式或最小项表达式。
表3.3.1 真值表
A B C
L
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
1
1
1
1
1
1
0
(3)由表达式列出真值表,见表3.3.1。经过化简与变换的表达式为两个最小项之和的非,所以很容易列出真值表。
(4)分析逻辑功能
由真值表可知,当A、B、C三个变量不一致时,电路输出为“1”,所以这个电路称为“不一致电路”。
上例中输出变量只有一个,对于多输出变量的组合逻辑电路,分析方法完全相同。
3.4 组合逻辑电路的设计方法
组合逻辑电路的设计一般应以电路简单、所用器件最少为目标,并尽量减少所用集成器件的种类,因此在设计过程中要用到前面介绍的代数法和卡诺图法来化简或转换逻辑函数。
例3.4.1:设计一个三人表决电路,结果按“少数服从多数”的原则决定。
解:(1)根据设计要求建立该逻辑函数的真值表。
设三人的意见为变量A、B、C,表决结果为函数L。对变量及函数进行如下状态赋值:对于变量A、B、C,设同意为逻辑“1”;不同意为逻辑“0”。对于函数L,设事情通过为逻辑“1”;没通过为逻辑“0”。
列出真值表如表3.4.1所示。
(2)由真值表写出逻辑表达式:
该逻辑式不是最简。
(3)化简。由于卡诺图化简法较方便,故一般用卡诺图进行化简。将该逻辑函数填入卡诺图,如图3.4.2所示。合并最小项,得最简与—或表达式,
表3.4.1 例3.4.1真值表
A B C
L
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
0
1
0
1
1
1
图3.4.2 例3.4.1卡诺图
(4)画出逻辑图如图3.4.3所示。
如果要求用与非门实现该逻辑电路,就应将表达式转换成与非—与非表达式:
画出逻辑图如图3.4.4所示。
图3.4.3 例3.4.1逻辑图 图3.4.4 例3.4.1用与非门实现的逻辑图
例3.4.2:设计一个电话机信号控制电路。电路有I0(火警)、I1(盗警)和I2(日常业务)三种输入信号,通过排队电路分别从L0、L1、L2输出,在同一时间只能有一个信号通过。如果同时有两个以上信号出现时,应首先接通火警信号,其次为盗警信号,最后是日常业务信号。试按照上述轻重缓急设计该信号控制电路。要求用集成门电路7400(每片含4个2输入端与非门)实现。
解:(1)列真值表:
对于输入,设有信号为逻辑“1”;没信号为逻辑“0”。
对于输出,设允许通过为逻辑“1”;不设允许通过为逻辑“0”。
(2)由真值表写出各输出的逻辑表达式,
这三个表达式已是最简,不需化简。但需要用非门和与门实现,且L2需用三输入端与门才能实现,故不符和设计要求。
(3)根据要求,将上式转换为与非表达式:
表3.4.2 例3.4.2真值表输入
输出
I0 I1 I2
L0 L1 L2
0 0 0
1 × ×
0 1 ×
0 0 1
0 0 0
1 0 0
0 1 0
0 0 1
(4)画出逻辑图如图3.4.5所示,可用两片集成与非门7400来实现。
可见,在实际设计逻辑电路时,有时并不是表达式最简单,就能满足设计要求,还应考虑所使用集成器件的种类,将表达式转换为能用所要求的集成器件实现的形式,并尽量使所用集成器件最少,就是设计步骤框图中所说的“最合理表达式”。
图3.4.5 例3.4.2逻辑图例3.4.3:设计一个将余3码变换成8421BCD码的组合逻辑电路。
解:(1)根据题目要求,列出真值表如表3.4.3所示。
表3.4.3 余3码变换成8421BCD码的真值表输入(余3码)
输出(8421码)
A3 A2 A1 A0
L3 L2 L1 L0
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
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
(2)用卡诺图进行化简。本题目为4个输入量、4个输出量,故分别画出4个4变量卡诺图。注意余3码中有6个无关项,应充分利用,使其逻辑函数尽量简单。
图3.4.6 余3码变换成8421BCD码的卡诺图化简后得到的逻辑表达式为:
(3)由逻辑表达式画出逻辑图如图3.4.7所示。
图3.4.7 余3码变换成8421BCD码的逻辑图
3.5 组合逻辑电路中的竞争冒险
前面在分析和设计组合逻辑辑电路时,都没有考虑门电路延迟时间对电路的影响。实际上,由于延迟时间的存在,当一个输入信号经过多条路径传送后又重新会合到某个门上,由于不同路径上门的级数不同,或者门电路延迟时间的差异,导致到达会合点的时间有先有后,从而产生瞬间的错误输出。这一现象称为竞争冒险。
一,产生竞争冒险的原因
图3.5.1(a)所示的电路中,逻辑表达式为,理想情况下,输出应恒等于0。但是由于G1门的延迟时间tpd,下降沿到达G2门的时间比A信号上升沿晚1tpd,因此,使G2输出端出现了一个正向窄脉冲,如图3.5.1(b)所示,通常称之为“1冒险”。
图3.5.1 产生1冒险 (a)逻辑图 (b)波形图同理,在图3.5.2(a)所示的电路中,由于G1门的延迟时间tpd,会使G2输出端出现了一个负向窄脉冲,如图3.5.2(b)所示,通常称之为“0冒险”。
图3.5.2 产生0冒险 (a)逻辑图 (b)波形图
,0冒险”和“1冒险”统称冒险,是一种干扰脉冲,有可能引起后级电路的错误动作。产生冒险的原因是由于一个门(如G2)的两个互补的输入信号分别经过两条路径传输,由于延迟时间不同,而到达的时间不同。这种现象称为竞争。
二.冒险现象的识别
可采用代数法来判断一个组合电路是否存在冒险,方法为:
写出组合逻辑电路的逻辑表达式,当某些逻辑变量取特定值(0或1)时,如果表达式能转换为:
则存在1冒险;
则存在0冒险。
例3.5.1,判断图3.5.3(a)所示电路是否存在冒险,如有,指出冒险类型,画出输出波形。
解:写出逻辑表达式:
若输入变量A=B=l,则有。因此,该电路存在0冒险。下面画出A=B=l 时L的波形。在稳态下,无论C取何值,F恒为l,但当C变化时,由于信号的各传输路径的延时不同,将会出现图3.5.3(b)所示的负向窄脉冲,即0冒险。
图3.5.3 例3.5.1图 (a)逻辑图 (b)波形图
例3.5.2,判断逻辑函数是否存在冒险。
解:如果令A=C=0,则有,因此,该电路存在l冒险。
三.冒险现象的消除方法当组合逻辑电路存在冒险现象时,可以采取以下方法来消除冒险现象。
加冗余项。
在例3.5.1的电路中,存在冒险现象。如在其逻辑表达式中增加乘积项AB,使其变为,则在原来产生冒险的条件A=B=1时,L=1,不会产生冒险。这个函数增加了乘积项AB 后,已不是“最简”,故这种乘积项称冗余项。
2.变换逻辑式,消去互补变量。
例3.5.2的逻辑式存在冒险现象。如将其变换为,则在原来产生冒险的条件A=C=0时,L=0,不会产生冒险。
3.增加选通信号在电路中增加一个选通脉冲,接到可能产生冒险的门电路的输入端。当输入信号转换完成,进入稳态后,才引入选通脉冲,将门打开。这样,输出就不会出现冒险脉冲。
4.增加输出滤波电容由于竞争冒险产生的干扰脉冲的宽度一般都很窄,在可能产生冒险的门电路输出端并接一个滤波电容(一般为4~20pF),利用电容两端的电压不能突变的特性,使输出波形上升沿和下降沿都变的比较缓慢,从而起到消除冒险现象的作用。
本章小结
1.逻辑代数是分析和设计逻辑电路的工具。一个逻辑问题可用逻辑函数来描述。逻辑函数有4种常用的表示方法,即真值表、逻辑表达式、卡诺图、逻辑图。它们各具特点并可以相互转换。
2.逻辑函数化简的目的是为了获得最简逻辑函数式,从而使逻辑电路简单、成本低、可靠性高。化简的方法主要有公式法和卡诺图法两种。
3.组合逻辑电路的特点是,电路任一时刻的输出状态只决定于该时刻各输入状态的组合,而与电路的原状态无关。组合电路就是由门电路组合而成,电路中没有记忆单元,没有反馈通路。
4.组合逻辑电路的分析步骤为:写出各输出端的逻辑表达式→化简和变换逻辑表达式→列出真值表→确定功能。
5.组合逻辑电路的设计步骤为:根据设计求列出真值表→写出逻辑表达式(或填写卡诺图) →逻辑化简和变换→画出逻辑图。
前一章我们学习了门电路。对于一个数字系统或数字电路来讲,有了这些门电路就相当于一个建筑工程有了所需的砖瓦和预制件。从现在起,我们就可以用门电路来搭接一个具有某一功能的数字电路了。正像建一座高楼,不仅需要砖瓦和预制件等建筑材料,还需要有效的工具和合理的工艺一样,数字电路的分析与设计也需要一定的数学工具和一套有效的方法。本章首先介绍分析和设计数字电路时常用的数学工具--逻辑代数和卡诺图,包括逻辑代数的基本公式和基本定律,逻辑函数的代数化简法和卡诺图化简法。然后介绍组合逻辑电路的分析方法与设计方法。另外,按其结构和工作原理不同,数字电路可分为两大类,组合逻辑电路和时序逻辑电路。第三、四章介绍组合逻辑电路,第五、六章介绍时序逻辑电路,请大家在学习过程中体会两者的区别及特点。
3.1 逻辑代数
逻辑代数和普通代数一样,有一套完整的运算规则,包括公理、定理和定律,用它们对逻辑函数式进行处理,可以完成对电路的化简、变换、分析与设计。
一.逻辑代数的基本公式
包括9个定律,其中有的定律与普通代数相似,有的定律与普通代数不同,使用时切勿混淆。
表3.1.1 逻辑代数的基本公式名称
公式1
公式2
0—1律
互补律
重叠律
交换律
结合律
分配律
反演律
吸收律
对合律
表中略为复杂的公式可用其他更简单的公式来证明。
例3.1.1 证明吸收律
证:
表中的公式还可以用真值表来证明,即检验等式两边函数的真值表是否一致。
例3.1.2 用真值表证明反演律和
证:分别列出两公式等号两边函数的真值表即可得证,见表3.1.2和表3.1.3
表3.1.2 证明
A B
0 0
0 1
1 0
1 1
1
1
1
0
1
1
1
0
表3.1.3 证明
A B
0 0
0 1
1 0
1 1
1
0
0
0
1
0
0
0
反演律又称摩根定律,是非常重要又非常有用的公式,它经常用于逻辑函数的变换,以下是它的两个变形公式,也是常用的。
二,逻辑代数的基本规则代入规则
代入规则的基本内容是:对于任何一个逻辑等式,以某个逻辑变量或逻辑函数同时取代等式两端任何一个逻辑变量后,等式依然成立。
利用代入规则可以方便地扩展公式。例如,在反演律中用BC去代替等式中的B,则新的等式仍成立:
对偶规则
将一个逻辑函数L进行下列变换:
·→+,+ →·
0 → 1,1 → 0
所得新函数表达式叫做L的对偶式,用表示。
对偶规则的基本内容是:如果两个逻辑函数表达式相等,那么它们的对偶式也一定相等。
利用对偶规则可以帮助我们减少公式的记忆量。例如,表3.1.1中的公式l和公式2就互为对偶,只需记住一边的公式就可以了。因为利用对偶规则,不难得出另一边的公式。
反演规则
将一个逻辑函数L进行下列变换:
·→+,+ →· ;
0 → 1,1 → 0 ;
原变量 → 反变量,反变量 → 原变量。
所得新函数表达式叫做L的反函数,用表示。
利用反演规则,可以非常方便地求得一个函数的反函数
例3.1.3 求函数的反函数。
解:
例3.1.4 求函数的反函数。
解:
在应用反演规则求反函数时要注意以下两点:
保持运算的优先顺序不变,必要时加括号表明,如例3.1.3。
变换中,几个变量(一个以上)的公共非号保持不变,如例3.1.4。
三,逻辑函数的代数化简法
1.逻辑函数式的常见形式一个逻辑函数的表达式不是唯一的,可以有多种形式,并且能互相转换。常见的逻辑式主要有5种形式,例如:
与—或表达式
或—与表达式
与非—与非表达式
或非—或非表达式
与—或非表达式在上述多种表达式中,与—或表达式是逻辑函数的最基本表达形式。因此,在化简逻辑函数时,通常是将逻辑式化简成最简与—或表达式,然后再根据需要转换成其他形式。
2.最简与—或表达式的标准
(1)与项最少,即表达式中“+”号最少。
(2)每个与项中的变量数最少,即表达式中“·,号最少。
3.用代数法化简逻辑函数用代数法化简逻辑函数,就是直接利用逻辑代数的基本公式和基本规则进行化简。代数法化简没有固定的步骤,常用的化简方法有以下几种。
并项法。运用公式,将两项合并为一项,消去一个变量。如
吸收法。运用吸收律消去多余的与项。如
(3)消去法。运用吸收律消去多余的因子。如
(4)配项法。先通过乘以(=1)或加上(=0),增加必要的乘积项,再用以上方法化简。如
在化简逻辑函数时,要灵活运用上述方法,才能将逻辑函数化为最简。下面再举几个例子。
例3.1.5 化简逻辑函数
解:
例3.1.6 化简逻辑函数
解: (利用)
(利用)
(利用)
例3.1.7 化简逻辑函数
解: (利用反演律)
(利用)
(利用)
(配项法)
(利用)
(利用)
例3.1.8 化简逻辑函数
解法1: (增加冗余项)
(消去1个冗余项)
(再消去1个冗余项)
解法2: (增加冗余项)
(消去1个冗余项)
(再消去1个冗余项)
由上例可知,逻辑函数的化简结果不是唯一的。
代数化简法的优点是不受变量数目的限制。缺点是:没有固定的步骤可循;需要熟练运用各种公式和定理;需要一定的技巧和经验;有时很难判定化简结果是否最简。
逻辑函数的卡诺图化简法
本节介绍一种比代数法更简便、直观的化简逻辑函数的方法。它是一种图形法,是由美国工程师卡诺(Karnaugh)发明的,所以称为卡诺图化简法。
一.最小项的定义与性质
1.最小项的定义
在n个变量的逻辑函数中,包含全部变量的乘积项称为最小项。其中每个变量在该乘积项中可以以原变量的形式出现,也可以以反变量的形式出现,但只能出现一次。n变量逻辑函数的全部最小项共有2n个。
如三变量逻辑函数L=f(A,B,C)的最小项共有23=8个,列入表中。
表3.2.1 三变量逻辑函数的最小项及编号最小项
变量取值
编号
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
m0
m1
m2
m3
m4
m5
m6
m7
2.最小项的基本性质以三变量为例说明最小项的性质,列出三变量全部最小项的真值表如表3.2.2所示。
表3.2.2 三变量全部最小项的真值表变量
m0
m1
m2
m3
m4
m5
m6
m7
A B C
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
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
从表3.2.2 中可以看出最小项具有以下几个性质:
(1)对于任意一个最小项,只有一组变量取值使它的值为1,而其余各种变量取值均使它的值为0。
(2)不同的最小项,使它的值为1的那组变量取值也不同。
(3)对于变量的任一组取值,任意两个最小项的乘积为0。
(4)对于变量的任一组取值,全体最小项的和为1。
二,逻辑函数的最小项表达式任何一个逻辑函数表达式都可以转换为一组最小项之和,称为最小项表达式。
例3.2.1 将逻辑函数L(A,B,C)转换成最小项表达式
解,该函数为三变量函数,而表达式中每项只含有两个变量,不是最小项。要变为最小项,就应补齐缺少的变量,办法为将各项乘以1,如AB项乘以。
L(A,B,C)
=m7+m6+m3+m1
为了简化,也可用最小项下标编号来表示最小项,故上式也可写为
L(A,B,C)=∑m(1,3,6,7)
要把非“与—或表达式”的逻辑函数变换成最小项表达式,应先将其变成“与—或表达式”再转换。式中有很长的非号时,先把非号去掉。
例3.2.2 将逻辑函数F(A,B,C)转换成最小项表达式解:F(A,B,C)
=m7+m6+m3+m5=∑m(3,5,6,7)
三.卡诺图
1.相邻最小项如果两个最小项中只有一个变量不同,则称这两个最小项为逻辑相邻,简称相邻项。
如果两个相邻最小项出现在同一个逻辑函数中,可以合并为一项,同时消去互为反变量的那个量。如
可见,利用相邻项的合并可以进行逻辑函数化简。有没有办法能够更直观地看出各最小项之间的相邻性呢?有。这就是卡诺图。
卡诺图是用小方格来表示最小项,一个小方格代表一个最小项,然后将这些最小项按照相邻性排列起来。即用小方格几何位置上的相邻性来表示最小项逻辑上的相邻性。卡诺图实际上是真值表的一种变形,一个逻辑函数的真值表有多少行,卡诺图就有多少个小方格。所不同的是真值表中的最小项是按照二进制加法规律排列的,而卡诺图中的最小项则是按照相邻性排列的。
2.卡诺图的结构
(1)二变量卡诺图。
(2)三变量卡诺图。
(3)四变量卡诺图。
仔细观察可以发现,卡诺图具有很强的相邻性。
首先是直观相邻性,只要小方格在几何位置上相邻(不管上下左右),它代表的最小项在逻辑上一定是相邻的。
其次是对边相邻性,即与中心轴对称的左右两边和上下两边的小方格也具有相邻性。
四,用卡诺图表示逻辑函数
1.从真值表到卡诺图
例3.2.3 某逻辑函数的真值表如表3.2.3所示,用卡诺图表示该逻辑函数。
解,该函数为三变量,先画出三变量卡诺图,然后根据表3.2.3将8个最小项L的取值0或者1填入卡诺图中对应的8个小方格中即可,如图3.2.4所示。
表3.2.3 真值表
A B C
L
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
0
1
0
1
1
1
图3.2.4 例3.2.3的卡诺图
2.从逻辑表达式到卡诺图
(1)如果逻辑表达式为最小项表达式,则只要将函数式中出现的最小项在卡诺图对应的小方格中填入1,没出现的最小项则在卡诺图对应的小方格中填入0。
例3.2.4 用卡诺图表示逻辑函数
解,该函数为三变量,且为最小项表达式,写成简化形式然后画出三变量卡诺图,将卡诺图中m0、m3、m6、m7对应的小方格填1,其他小方格填0。
(2)如果逻辑表达式不是最小项表达式,但是“与—或表达式”,可将其先化成最小项表达式,再填入卡诺图。也可直接填入,直接填入的具体方法是:分别找出每一个与项所包含的所有小方格,全部填入1。
例3.2.5 用卡诺图表示逻辑函数
图3.2.5 例3.2.4的卡诺图 图3.2.6 例3.2.5的卡诺图
(3)如果逻辑表达式不是“与—或表达式”,可先将其化成“与—或表达式”再填入卡诺图。
3.2.5 逻辑函数的卡诺图化简法
1.卡诺图化简逻辑函数的原理
(1)2个相邻的最小项结合(用一个包围圈表示),可以消去1个取值不同的变量而合并为l项,如图3.2.7所示。
(2)4个相邻的最小项结合(用一个包围圈表示),可以消去2个取值不同的变量而合并为l项,如图3.2.8所示。
(3)8个相邻的最小项结合(用一个包围圈表示),可以消去3个取值不同的变量而合并为l项,如图3.2.9所示。
图3.2.7 2个相邻的最小项合并 图3.2.8 4个相邻的最小项合并
图3.2.9 8个相邻的最小项合并总之,2n个相邻的最小项结合,可以消去n个取值不同的变量而合并为l项。
2.用卡诺图合并最小项的原则
用卡诺图化简逻辑函数,就是在卡诺图中找相邻的最小项,即画圈。为了保证将逻辑函数化到最简,画圈时必须遵循以下原则:
(1)圈要尽可能大,这样消去的变量就多。但每个圈内只能含有2n(n=0,1,2,3……)个相邻项。要特别注意对边相邻性和四角相邻性。
(2)圈的个数尽量少,这样化简后的逻辑函数的与项就少。
(3)卡诺图中所有取值为1的方格均要被圈过,即不能漏下取值为1的最小项。
(4)取值为1的方格可以被重复圈在不同的包围圈中,但在新画的包围圈中至少要含有1个末被圈过的1方格,否则该包围圈是多余的。
3.用卡诺图化简逻辑函数的步骤画出逻辑函数的卡诺图。
(2)合并相邻的最小项,即根据前述原则画圈。
(3)写出化简后的表达式。每一个圈写一个最简与项,规则是,取值为l的变量用原变量表示,取值为0的变量用反变量表示,将这些变量相与。然后将所有与项进行逻辑加,即得最简与—或表达式。
例3.2.6 用卡诺图化简逻辑函数:
L(A,B,C,D)=∑m(0,2,3,4,6,7,10,11,13,14,15)
解:(1)由表达式画出卡诺图如图3.2.10所示画包围圈合并最小项,得简化的与—或表达式:
注意图中的包围圈是利用了对边相邻性。
例3.2.7 用卡诺图化简逻辑函数:
解:(1)由表达式画出卡诺图如图3.2.11所示。
(2)画包围圈合并最小项,得简化的与—或表达式:
图3.2.10 例3.2.6卡诺图 图3.2.11 例3.2.7卡诺图注意:图中的虚线圈是多余的,应去掉;图中的包围圈是利用了四角相邻性。
例3.2.8 某逻辑函数的真值表如表3.2.4所示,用卡诺图化简该逻辑函数。
表3.2.4 例3.2.8真值表
A B C
L
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
1
1
1
1
1
1
0
解法1:(1)由真值表画出卡诺图,如图3.2.12所示
(2)画包围圈合并最小项,如图3.2.12(a)所示,得简化的与—或表达式:
解法2:(1)由表达式画出卡诺图,如图3.2.12所示
(2)画包围圈合并最小项,如图3.2.12(b)所示,得简化的与—或表达式:
图3.2.12 例3.2.8卡诺图 (a)解法1 (b)解法2
通过这个例子可以看出,一个逻辑函数的真值表是唯一的,卡诺图也是唯一的,但化简结果有时不是唯一的。
4.卡诺图化简逻辑函数的另一种方法——圈0法如果一个逻辑函数用卡诺图表示后,里面的0很少且相邻性很强,这时用圈0法更简便。但要注意,圈0后,应写出反函数,再取非,得原函数。
例3.2.9 已知逻辑函数的卡诺图如图3.2.13所示,分别用“圈0法”和“圈1法”写出其最简与—或式。
解:(1)用圈0法画包围圈如图3.2.13(a)所示,得
对取非,得,
(2)用圈1法画包围圈如图3.2.13(b)所示,得:
图3.2.13 例3.2.9的卡诺图 (a)圈0的卡诺图 (b)圈1的卡诺图
3.2.6 具有无关项的逻辑函数的化简
1.什么是无关项
例3.2.10:在十字路口有红绿黄三色交通信号灯,规定红灯亮停,绿灯亮行,黄灯亮等一等,试分析车行与三色信号灯之间逻辑关系。
解:设红、绿、黄灯分别用A、B、C表示,且灯亮为1,灯灭为0。车用L表示,车行L=1,车停L=0。列出该函数的真值表如表3.2.5所示。
表3.2.5 真值表红灯
A
绿灯
B
黄灯
C
车
L
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
显而易见,在这个函数中,有5个最小项是不会出现的,如(三个灯都不亮)、(红灯绿灯同时亮)等。因为一个正常的交通灯系统不可能出现这些情况,如果出现了,车可以行也可以停,即逻辑值任意。
无关项;在有些逻辑函数中,输入变量的某些取值组合不会出现,或者一旦出现,逻辑值可以是任意的。这样的取值组合所对应的最小项称为无关项、任意项或约束项,在卡诺图中用符号×来表示其逻辑值。
带有无关项的逻辑函数的最小项表达式为:
L=∑m( )+∑d( )
如本例函数可写成L=∑m(2)+∑d(0,3,5,6,7)
2.具有无关项的逻辑函数的化简化简具有无关项的逻辑函数时,要充分利用无关项可以当0也可以当1的特点,尽量扩大卡诺圈,使逻辑函数更简。
画出例3.2.10的卡诺图如图3.2.14所示,如果不考虑无关项,包围圈只能包含一个最小项,如图3.2.14(a)所示,写出表达式为
如果把与它相邻的三个无关项当作1,则包围圈可包含4个最小项,如图3.2.14(b)所示,写出表达式为,其含义为:只要绿灯亮,车就行。
注意,在考虑无关项时,哪些无关项当作1,哪些无关项当作0,要以尽量扩大卡诺圈、减少圈的个数,使逻辑函数更简为原则。
图3.2.14 例3.2.10的卡诺图 (a) 不考虑无关项 (b) 考虑无关项例3.2.11:某逻辑函数输入是8421BCD码(即不可能出现1010~1111这6种输入组合),其逻辑表达式为
L(A,B,C,D)=∑m(1,4,5,6,7,9)+∑d(10,11,12,13,14,15),用卡诺图法化简该逻辑函数解:(1)画出4变量卡诺图,如图3.2.15(a)所示。将1、4、5、6、7、9号小方格填入1;将10、11、12、13、14、15号小方格填入×。
(2)合并最小项。与1方格圈在一起的无关项被当作1,没有圈的无关项被当做0。注意,1方格不能漏。×方格根据需要,可以圈入,也可以放弃。
(3)写出逻辑函数的最简与—或表达式:
如果不考虑无关项,如图3.2.15(b)所示,写出表达式为,可见不是最简。
图3.2.15 例3.2.10的卡诺图 (a) 考虑无关项 (b) 不考虑无关项
卡诺图化简法的优点是简单、直观,有一定的化简步骤可循,不易出错,且容易化到最简。但是在逻辑变量超过5个时,就失去了简单、直观的优点,其实用意义大打折扣。
组合逻辑电路的分析方法
一,组合逻辑电路的特点组合逻辑电路是数字电路中最简单的一类逻辑电路,其特点是功能上无记忆,结构上无反馈。即电路任一时刻的输出状态只决定于该时刻各输入状态的组合,而与电路的原状态无关。
二,组合逻辑电路的分析方法
例3.3.1:组合电路如图3.3.3所示,分析该电路的逻辑功能。
图3.3.3 例3.3.1电路图解:(1)由逻辑图逐级写出逻辑表达式。为了写表达式方便,借助中间变量P
(2)化简与变换。因为下一步要列真值表,所以要通过化简与变换,使表达式有利于列真值表,一般应变换成与—或式或最小项表达式。
表3.3.1 真值表
A B C
L
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
1
1
1
1
1
1
0
(3)由表达式列出真值表,见表3.3.1。经过化简与变换的表达式为两个最小项之和的非,所以很容易列出真值表。
(4)分析逻辑功能
由真值表可知,当A、B、C三个变量不一致时,电路输出为“1”,所以这个电路称为“不一致电路”。
上例中输出变量只有一个,对于多输出变量的组合逻辑电路,分析方法完全相同。
3.4 组合逻辑电路的设计方法
组合逻辑电路的设计一般应以电路简单、所用器件最少为目标,并尽量减少所用集成器件的种类,因此在设计过程中要用到前面介绍的代数法和卡诺图法来化简或转换逻辑函数。
例3.4.1:设计一个三人表决电路,结果按“少数服从多数”的原则决定。
解:(1)根据设计要求建立该逻辑函数的真值表。
设三人的意见为变量A、B、C,表决结果为函数L。对变量及函数进行如下状态赋值:对于变量A、B、C,设同意为逻辑“1”;不同意为逻辑“0”。对于函数L,设事情通过为逻辑“1”;没通过为逻辑“0”。
列出真值表如表3.4.1所示。
(2)由真值表写出逻辑表达式:
该逻辑式不是最简。
(3)化简。由于卡诺图化简法较方便,故一般用卡诺图进行化简。将该逻辑函数填入卡诺图,如图3.4.2所示。合并最小项,得最简与—或表达式,
表3.4.1 例3.4.1真值表
A B C
L
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
0
1
0
1
1
1
图3.4.2 例3.4.1卡诺图
(4)画出逻辑图如图3.4.3所示。
如果要求用与非门实现该逻辑电路,就应将表达式转换成与非—与非表达式:
画出逻辑图如图3.4.4所示。
图3.4.3 例3.4.1逻辑图 图3.4.4 例3.4.1用与非门实现的逻辑图
例3.4.2:设计一个电话机信号控制电路。电路有I0(火警)、I1(盗警)和I2(日常业务)三种输入信号,通过排队电路分别从L0、L1、L2输出,在同一时间只能有一个信号通过。如果同时有两个以上信号出现时,应首先接通火警信号,其次为盗警信号,最后是日常业务信号。试按照上述轻重缓急设计该信号控制电路。要求用集成门电路7400(每片含4个2输入端与非门)实现。
解:(1)列真值表:
对于输入,设有信号为逻辑“1”;没信号为逻辑“0”。
对于输出,设允许通过为逻辑“1”;不设允许通过为逻辑“0”。
(2)由真值表写出各输出的逻辑表达式,
这三个表达式已是最简,不需化简。但需要用非门和与门实现,且L2需用三输入端与门才能实现,故不符和设计要求。
(3)根据要求,将上式转换为与非表达式:
表3.4.2 例3.4.2真值表输入
输出
I0 I1 I2
L0 L1 L2
0 0 0
1 × ×
0 1 ×
0 0 1
0 0 0
1 0 0
0 1 0
0 0 1
(4)画出逻辑图如图3.4.5所示,可用两片集成与非门7400来实现。
可见,在实际设计逻辑电路时,有时并不是表达式最简单,就能满足设计要求,还应考虑所使用集成器件的种类,将表达式转换为能用所要求的集成器件实现的形式,并尽量使所用集成器件最少,就是设计步骤框图中所说的“最合理表达式”。
图3.4.5 例3.4.2逻辑图例3.4.3:设计一个将余3码变换成8421BCD码的组合逻辑电路。
解:(1)根据题目要求,列出真值表如表3.4.3所示。
表3.4.3 余3码变换成8421BCD码的真值表输入(余3码)
输出(8421码)
A3 A2 A1 A0
L3 L2 L1 L0
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
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
(2)用卡诺图进行化简。本题目为4个输入量、4个输出量,故分别画出4个4变量卡诺图。注意余3码中有6个无关项,应充分利用,使其逻辑函数尽量简单。
图3.4.6 余3码变换成8421BCD码的卡诺图化简后得到的逻辑表达式为:
(3)由逻辑表达式画出逻辑图如图3.4.7所示。
图3.4.7 余3码变换成8421BCD码的逻辑图
3.5 组合逻辑电路中的竞争冒险
前面在分析和设计组合逻辑辑电路时,都没有考虑门电路延迟时间对电路的影响。实际上,由于延迟时间的存在,当一个输入信号经过多条路径传送后又重新会合到某个门上,由于不同路径上门的级数不同,或者门电路延迟时间的差异,导致到达会合点的时间有先有后,从而产生瞬间的错误输出。这一现象称为竞争冒险。
一,产生竞争冒险的原因
图3.5.1(a)所示的电路中,逻辑表达式为,理想情况下,输出应恒等于0。但是由于G1门的延迟时间tpd,下降沿到达G2门的时间比A信号上升沿晚1tpd,因此,使G2输出端出现了一个正向窄脉冲,如图3.5.1(b)所示,通常称之为“1冒险”。
图3.5.1 产生1冒险 (a)逻辑图 (b)波形图同理,在图3.5.2(a)所示的电路中,由于G1门的延迟时间tpd,会使G2输出端出现了一个负向窄脉冲,如图3.5.2(b)所示,通常称之为“0冒险”。
图3.5.2 产生0冒险 (a)逻辑图 (b)波形图
,0冒险”和“1冒险”统称冒险,是一种干扰脉冲,有可能引起后级电路的错误动作。产生冒险的原因是由于一个门(如G2)的两个互补的输入信号分别经过两条路径传输,由于延迟时间不同,而到达的时间不同。这种现象称为竞争。
二.冒险现象的识别
可采用代数法来判断一个组合电路是否存在冒险,方法为:
写出组合逻辑电路的逻辑表达式,当某些逻辑变量取特定值(0或1)时,如果表达式能转换为:
则存在1冒险;
则存在0冒险。
例3.5.1,判断图3.5.3(a)所示电路是否存在冒险,如有,指出冒险类型,画出输出波形。
解:写出逻辑表达式:
若输入变量A=B=l,则有。因此,该电路存在0冒险。下面画出A=B=l 时L的波形。在稳态下,无论C取何值,F恒为l,但当C变化时,由于信号的各传输路径的延时不同,将会出现图3.5.3(b)所示的负向窄脉冲,即0冒险。
图3.5.3 例3.5.1图 (a)逻辑图 (b)波形图
例3.5.2,判断逻辑函数是否存在冒险。
解:如果令A=C=0,则有,因此,该电路存在l冒险。
三.冒险现象的消除方法当组合逻辑电路存在冒险现象时,可以采取以下方法来消除冒险现象。
加冗余项。
在例3.5.1的电路中,存在冒险现象。如在其逻辑表达式中增加乘积项AB,使其变为,则在原来产生冒险的条件A=B=1时,L=1,不会产生冒险。这个函数增加了乘积项AB 后,已不是“最简”,故这种乘积项称冗余项。
2.变换逻辑式,消去互补变量。
例3.5.2的逻辑式存在冒险现象。如将其变换为,则在原来产生冒险的条件A=C=0时,L=0,不会产生冒险。
3.增加选通信号在电路中增加一个选通脉冲,接到可能产生冒险的门电路的输入端。当输入信号转换完成,进入稳态后,才引入选通脉冲,将门打开。这样,输出就不会出现冒险脉冲。
4.增加输出滤波电容由于竞争冒险产生的干扰脉冲的宽度一般都很窄,在可能产生冒险的门电路输出端并接一个滤波电容(一般为4~20pF),利用电容两端的电压不能突变的特性,使输出波形上升沿和下降沿都变的比较缓慢,从而起到消除冒险现象的作用。
本章小结
1.逻辑代数是分析和设计逻辑电路的工具。一个逻辑问题可用逻辑函数来描述。逻辑函数有4种常用的表示方法,即真值表、逻辑表达式、卡诺图、逻辑图。它们各具特点并可以相互转换。
2.逻辑函数化简的目的是为了获得最简逻辑函数式,从而使逻辑电路简单、成本低、可靠性高。化简的方法主要有公式法和卡诺图法两种。
3.组合逻辑电路的特点是,电路任一时刻的输出状态只决定于该时刻各输入状态的组合,而与电路的原状态无关。组合电路就是由门电路组合而成,电路中没有记忆单元,没有反馈通路。
4.组合逻辑电路的分析步骤为:写出各输出端的逻辑表达式→化简和变换逻辑表达式→列出真值表→确定功能。
5.组合逻辑电路的设计步骤为:根据设计求列出真值表→写出逻辑表达式(或填写卡诺图) →逻辑化简和变换→画出逻辑图。