数字电路基础之逻辑代数的基础 (郭天祥)

  • 名称:数字电路基础之逻辑代数的基
  • 分类:电气工程  
  • 观看人数:加载中
  • 时间:2022/12/10 17:01:02

在数字逻辑电路中,用1位二进制数码的“0”和“1”表示一个事物的两种不同逻辑状态。例:一件事情的是和非、真和伪、有和无、好和坏,或者电路的通和断、电灯的亮和暗、门的开和关等等。这种只有两种对立逻辑状态的逻辑关系成为二值逻辑。当使用两个数码表示逻辑状态时,它们之间可以按照指定的某种因果关系进行推理计算,将这种运算称为逻辑运算。

1849年英国数学家乔治·布尔提出了逻辑运算的数学方法——布尔代数。在实际电路中就是按照二进制进行工作的,所以布尔代数在电路中的应用非常普遍。

逻辑代数中有与(AND)、或(OR)、非(NOT)三种。

对于(a)电路来说,只有开关A和开关B都闭合,灯Y才可以点亮。

决定事物结果的全部条件同时成立时,结果才发生。这种因果关系成为逻辑与,也称为逻辑相乘。

对于(b)电路来说,开关A和开关B有一个闭合,灯Y就可以点亮。

决定事物结果的诸多条件中任何一个满足,结果就会发生。这种因果关系成为逻辑或,也成为逻辑相加。

对于(c)电路来说,只要条件具备了,结果就不发生了;条件不具备时,结果一定发生。这种因果关系称为逻辑非,也称为逻辑求反。

如果以A、B表示开关的状态,并以1表示开关闭合,以0表示开关断开;以Y表示指示灯的状态,并以1表示灯亮,以0表示不亮,则可以列出以0、1表示的与、或、非逻辑关系的图表。这种图表称为真值表。

在逻辑代数中,将与、或、非看作时逻辑变量A、B间的三种最基本的逻辑运算,并且以“· ”表示与运算(可以省略不写),以“+”表示或运算,以变量右上角的“‘”表示非运算。所以与、或、非可以写成如下表达式:

与 :Y = A · B; 或 :Y = A + B; 非 :Y = A’;

在图1中只是利用电路模型说明外部条件和结果的逻辑关系,在我们设计时,我们需要施加电压,经过某种单元,可以产生结果的电压。

实现与逻辑运算的单元电路称为与门,实现或逻辑运算的单元电路称为或门,实现非逻辑运算的单元电路称为非门(也称为反相器)。

与、或、非逻辑运算单元的常用图形符号如下:

当A、B不同时,输出Y为1;当A、B相同时,输出Y为0,这种逻辑称为异或逻辑。

Y = A + B = A · B‘ + A’ · B;

当A、B相同时,Y等于1,A、B不同时,Y等于0,这种逻辑称为同或逻辑。

Y = A · B = A · B + A’·B’

异或和同或互为反运算。

在对于给定的布尔代数时,可能不是最简化的,我们需要化简

以逻辑变量作为输入,以运算结果作为输出,那么输入变量的取值确定之后,输出的取值便随之而定。因此,输出与输入之间是一种函数关系。这种函数关系称为逻辑函数。

下面利用一个三人表决器的电路设计来说明一些问题。此电路有三个输入(A、B、C),一个输出(Y),只有当两个及两个以上输入赞成时,Y输出赞成。

设赞成为1,不赞成为0。图6 :三人表决器真值表

根据真值表中Y为1的项列出来,对应的A、B、C为1,则留下变量,为0,则留下反变量。

Y = A'BC + AB’C + ABC’ + ABC;

根据上述布尔表达式,我们得出逻辑电路图:

如果所有的逻辑都按照这种写法的话,那么很多的逻辑就会变的很复杂,并且会浪费很多的资源。我们考虑一下,电路既然是按照布尔表达式做出来的,那么布尔表达式能不能化简一下呢(利用图1-29中的公式)?

Y = A'BC + AB’C + ABC’ + ABC;

= A'BC + ABC +  AB’C + ABC  + ABC’+ABC;

= BC(A' + A) + AC(B+B') + AB(C+C')

= BC+AC+AB

上述布尔表达式所对应的逻辑电路图如下:

若我们不考虑中间的过程,只是考虑A、B、C与Y之间的关系,上述哪一种电路结构都是可以实现功能的。我们将上述两种电路称为等效电路。

我们可以将输入与输出之间的关系绘制出一副图,来表示它的逻辑关系。

除了上述几种方式表示逻辑关系外,我们还可以用卡诺图来表示逻辑关系

在n变量逻辑函数中,若m为包含n个因子的乘积项,而且这n个变量均以原变量或反变量的形式在m中出现一次,则称m为该组变量的最小项。

n个变量有2^n个最小项,比如当n = 3时,此逻辑函数应有2^3 = 8个最小项。比如一个3变量的逻辑函数,它有8个最小项,分别是:A'B'C'(000), A'B'C(001), A'BC'(010), A'BC(011), AB'C'(100), AB'C(101), ABC'(110), ABC(111)。他们分别可以用m0---m7表示。

根据定义可以得出:

输入变量的任何取值下有且仅有一个最小项为‘1’,其他为‘0’。

任意两个最小项之积为‘0’。

所有最小项之和为‘1’。

如果两个最小项之间只有一个因子不相同,则认为它们相邻。相邻的两个最小项之和就是把不相同的因子去掉。例如:ABC + ABC' = AB(C+C') = AB。

在上述的三人表决器中,用最小项表示:Y=m3+m5+m6+m7。

卡诺图是逻辑函数的一种图形表示。一个逻辑函数的卡诺图就是将此函数的最小项表达式中的各最小项相应地填入一个方格图内,此方格图称为卡诺图。卡诺图的构造特点使卡诺图具有一个重要性质:可以从图形上直观地找出相邻最小项。两个相邻最小项可以合并为一个与项并消去一个变量。

我们可以用圆圈圈出相邻的值为‘1’的最小项,注意只能是矩阵画(2,4,8·····)。左侧红色的圈为:AB'C和ABC,所以可以化简成AC。其他两个圈可以化简称为AB和BC。化简的时候也没有必要要写出来,直接看就好了,把对应位置中有变化的哪一项直接去掉就好了。例如:红色的圈圈出的两个就只有B发生了变化,所以直接去掉,就变成了AC。

注意卡诺图的数码表示,如有两位应该是 00、01、11、10。因为卡诺图能够销项的原因是利用公式:ABC + ABC' = AB(C+C') = AB。不能是00、01、10、11,01和10是两个变量不同。

另外卡诺图在画圈时,可以认为是一个左右、上下都连接的表格,可以最左侧一个,最右侧一个,构成两个。因为它们同样满足相邻(只有一个变量不同)。