目录
一.三大规则
1.代入规则
描述:逻辑表达式两边同时出现的某个变量或者表达式,可以直接把所有的这个变量替换成另一个变量或者表达式,等式依旧成立.
PS:不一定需要这两个变量相同.
通俗地讲,就是我们方程中遇到过的等量代换,但这里我们并不要求两个变量相同,而是可以直接替换.
Lg.B不等于BC,但依旧可以替换.
代入定理是我们三大规则之中最为重要的一个!并不是说它难,而是在于它的意义重大
为什么不要求变量相同,而是直接可以替换呢?
正是因为逻辑变量只有0和1的取值,这也是数字系统设计的根本理念之一
我们可以有很多不同的分层和接口,接口的输入可能是从其它地方来的,特别复杂的逻辑表达式
但是这不重要!无论是什么表达式,变量,最后都只能有0和1的取值
我们只需要关注模块功能的实现即可,层与层之间,我们说是解耦的
2.反演规则
描述:对一个逻辑函数F,其中所有·变成+,+变成·,单变量全部求反,0变成1,1变成0
注意:变换过程要注意保持原函数中逻辑运算的优先顺序!!!不要变换后,本来先运算a,b,变成先运算a,c了.
比如下面的运算A,B先运算,那进行变换后,要记得加上括号,否则B就会和后面先运算了.
相较于代入定理来说,反演定律在实际生活过程中意义并不大,我们实现一个输出Y的模块后,难道还调整输入,设计一个Y反的电路吗?
一般我们实际的操作都是直接在末尾加一个反相器即可.
3.对偶规则
描述:对一个逻辑函数F,其中所有·变成+,+变成·,0变成1,1变成0
实际和反演规则非常相似,就是单变量不需要取反,当然记得要保持运算优先顺序!!!
PS:得到的对偶函数一般和原来是不相同的,但是两个函数相同,它们的对偶函数也是相同的.
先看上式,就是我们之前讲的分配律,分别对它们进行对偶运算,就可以轻松证明我们上次推理得到的式子.
二.逻辑函数的描述方法
1.表达式
由逻辑变量和逻辑运算符号组成,用来描述变量之间逻辑关系的式子就是逻辑表达式.
这其实我们已经很熟悉了,像之前举的F = A(B + C) = AB + AC,这就是常见的逻辑表达式
A,B,C之间通过加法,乘法等逻辑运算符结合在一起,描述它们之间和F的关系.
当然,在这里我们要先重点了解一些概念,为后面的不同描述方法转化做准备.
每一项都是与项,然后通过逻辑或结合在一起,这是一个与或表达式.
当每一项都包含所有的单变量,这时被称为标准与或表达式.
和与或表达式对应,或与表达式中每一项都是或项,然后通过逻辑与结合在一起,这是一个或与表达式.
同理,当每一项都包含所有的单变量,这时被称为标准或与表达式.
2.真值表
用来反映变量所有不同的取值组合,以及它们对应函数值的表格,称为真值表
如下图中,A有0,1两种逻辑取值,B有0,1两种逻辑取值,C有0,1两种逻辑取值
总共2*2*2=8种情况,按照自然顺序从小到大全部列在左边输入端,然后根据对应函数关系,给出不同函数值(输出)
不难看出,假如有n个输入,那总共就会有2^n行,因为每个变量都可以有0或1两个逻辑取值
对于输入来说,我们一定要画全所有的输入
这里我们可以进一步思考一个问题,假如有两个输入变量A,B,那输出最多可能有多少列呢?
答案是16列,总共四行,每一行输出都可能有0或1两种取值,总共是2*2*2*2 = 16
从这个角度看,两个变量的与,异或,或运算等等,都只是16列中抽离出来的几列而已
3.波形图
将输入变量所有可能取值与对应输出按时间顺序排列,画成时间波形.
实际上和真值表类似,只不过一个横着放取值,一个竖着放取值
如图,也是8列,对应不同的输出.
假如想要从波形图中得到对应的逻辑表达式,必须要满足所有变量组合都要涵盖到(如图所示,A,B,C总共8种组合都要涵盖到),否则有一些输入,我们就不知道它的输出是什么
4.逻辑图
用逻辑图形符号表示逻辑运算关系,像下图就表示Y = A * (B + C)
5.卡诺图
将逻辑变量分成两组(怎么分取决我们,当然最好对半分,画出的表格更加美观,也更容易画)
分别在横竖两个方向用循环码形式排列出各组变量的一个取值组合,叫做卡诺图.
如下图,就是一个四变量的卡诺图,AB按循环码排列,CD也按循环码排列,然后括号里面没有放入对应的函数值,而是放入了对应变量取值组合的十进制数,也就是方格的编号.
这被称为变量卡诺图.
如果表格内放入的是对应函数值,则被称为函数卡诺图,如下图.
如何快速写出卡诺图的方格编号呢?
除了强行记忆(狗头),我们其实可以找些规律,循环码我们知道最低位是按0 1 1 0排列,而实际上应该是0 1 0 1,也就是每两列,每两行就要跳一下,发生转变.
三.不同描述方法之间的转换
本章主要讨论表达式,真值表,卡诺图三种描述方式的两两转化.
1.表达式——>真值表
首先把变量所有取值,按照自然二进制码顺序排列在左边
最简单一个方法就是把不同取值,代入表达式中,算出函数值,写到右边即可.
这当然没问题,但如果算错一个数,那就全盘皆输,是一个很考验耐心的活,能不能稍微简化一下呢?
答案是可以的,前面我们已经了解到与或表达式和或与表达式
如果先将逻辑函数化为与或表达式或者或与表达式
拿与或表达式来说,与或最后一步运算是逻辑或,假如有一项与项为1,那后面都不用看,最后输出肯定是1
那我们就可以一项项判断每一个与项什么时候取到1,函数值就是1,剩下的就为0
像上面的例子,先化简,变成与或表达式.
AC全为1,函数值为1;ABD全为0,函数值为1;ABD为1,C为0,函数值为1
剩下情况函数值全为0
这样是不是就能直接大大简化步骤呢?实际上还有另一种方法,直接看图,因为实际上按二进制排列,ABCD排列是有顺序的,可以不断对半切.
比方说下图的例子:
我先代入A为0,则上半部分[A(B + CD)]可以直接切掉,再代入B为0,则函数可以化为F = ,直接出答案,只有D为0的时候,函数值才为1.
然后代入B为1,化为F = C,只有C = 1,D = 0,才输出1,也可以直接出答案.
假如A = 1,则后半部分就全部消掉,只剩下前面的B + CD
继续分类讨论,也可以很快的写出对应的真值表
2.真值表——>表达式
那如何根据真值表写出表达式呢?
我们受到上面的启发,可以根据真值表,先根据函数值为1的项写出它的与项,然后再全部用逻辑或,加起来不就行了?
但是这有一个隐含前提,与项和函数值1是否一一对应呢?
假如一个与项在不同输入下,都能输出1,那我们就不可能根据输出为1,反推回去输入的与项是什么
即函数值(输出)为1,能够对应多个与项,那表达式就不是唯一的.
我们拿仅有A,B两个逻辑变量举例子,AB的与项总共有4种取法,对应二进制数取值也有4种取法
AB B A
11 01 10 00
我们把下面00 01 10 11分别代入AB中,只有11能使AB函数值为1
将11 分别代入 AB B A
中,只有AB为1
其余也可以类似得到,甚至推广更多变量,于是我们可以得到下面的结论:
标准与项都与变量的唯一一个取值组合相对应,只有这个组合能使标准与项取值为1,其余均是0.
PS:
1.所有不同标准与项相或必为1(全部最小项之和为1),因为必有1个标准与项对应函数值为1
2.任意两个不同的标准与项相与(任意两个最小项之积为0),必为0,不可能有一个取值对应的标准与项都为1
而且这个对应组合也很好写,因为对应函数值为1,一个变量一个变量来看,没有反则取1,有反则取0,比如ABC为111, 为00
标准与项对应变量取值组合大小,称为标准与项的编号
比如说ABC对应与项为1 1 1,则其编号为7,记为
所以标准与或表达式也可以用这种形式表示,写出其对应最小项的编号.
标准与项也被称为最小项
最小项完整定义书中是这样给的:
如果P是由n个变量组成的一个"与"项,在P中每个变量都以原变量或反变量作为一个因子出现一次且仅出现一次,则称P为这n个变量的一个最小项
由定义我们不难看出来下面四个重要性质
1.最小项一定要包含每个变量(假如有三个输入A,B,C,AB肯定不是最小项)
2.n个变量一共有2^n个最小项(每个变量都出现,并且要么是原,要么是反)
3.相邻(只有一个变量不同)的两个最小项之和可以合并消去一对因子(运用的正是我们之前学过的提公因式,原变量+反变量必定等于1)
从这里也可以看出,用最小项表达出的逻辑式,未必是最简单的,还可以化简
4.名字由来
如下图显示那样,AB(B ,A
,
)分别是全集中最小的一个单位,只是其中的一块,所以被称为最小项.
有了上面的铺垫,我们便知道真值表如何转变为表达式
函数值为1的时候,可以根据变量取值也就是最小项的编号,轻松写出其对应的唯一最小项
再通过逻辑或运算,表示只要有一个最小项为1,函数值便为1,其余自然而然就为0
利用我们前面学过的化简方法,就可以对表达式进一步化简,从而得到简化电路
反过来,通过原变量+反变量 = 1(A + = 1),也可以将任意一个表达式化成最小项之和的形式
有最小项,那肯定就有最大项(或与表达式),去除掉最小项后,对应的就是最大项.
这里便用到我们前面提到的反演律(德摩根律),如下图所示
首先对我们的最小项取反,得到的就是剩余部分
再利用德摩根律就可以对这个剩余部分进行化简
又比如说, C 和 A + B +
一一对应,两者是互补的关系(变量数相同的最小项和最大项之和等于1)
也可以说最小项取反即为最大项,最大项取反即为最小项
对应的编号依旧是保持不变的,都是0 0 1
只不过最小项对应的是函数值为1,由于取反后为0,因此,最大项对应的唯一函数值为0而已
最大项的编号书写也是一个变量一个变量来看,没有反则取0,有反则取1,和最小项编号书写方式正好相反
由于我们想要输出的是函数值为1的最小项,所对应的最大项的函数值刚刚好为0,进一步可以得到:
剩余编号对应的最小项,所对应的最大项的函数值就必定是1.
因此.
我们可以将函数值为0的项(剩余编号对应的最小项),先写出最小项,逻辑与起来,得到的实际是反函数Y'
对反函数Y'再求反,同时运用反演律(德摩根率),就可以得到原函数Y的最大项表达式(或与形式)
上述方法,还可以进一步化简为找函数值为0的项,编号中取值为0,写原变量,编号中取值
为1,写反变量,然后组成或与项,写出标准或与表达式.
还有另外一种角度,就是根据编号来写.
同一函数,其标准与或表达式中最小项的编号和其标准或与表达式中最大项的编号是互补的
比如说下面的例子
与或表达式最小项的编号为1,2,4,7.
那相应的或与表达式最大项的编号为0,3,5,6.
对于最大项而言,编号中取值为0,写原变量,编号中取值为1,写反变量,然后组成与或项,写出标准或与表达式.
我们可以根据这个实现与或表达式和或与表达式之间的转化.
3.真值表——>卡诺图
卡诺图中也有编号,真值表也有编号,从真值表中函数值为1的变量组合,确定其大小编号,并在卡诺图中对应方格标上1即可.
当然假如你记住卡诺图的方格编号,真值表是按照顺序排列,那在对应卡诺图位置就可以迅速标出函数值为1的方格.
4.卡诺图——>真值表
和第三部分类似,只需要找出卡诺图中函数值为1的方格所对应的变量组合,并让真值表中让相应组合的函数值为1,即可得到函数真值表.
5.表达式——>卡诺图
和表达式化为真值表相类似,我们先将表达式化为与或表达式
再分别让每一与项为1,找出其对应卡诺图方格位置,标上1即可.
6.卡诺图——>表达式
和真值表化为表达式相类似,我们既可以找出卡诺图中函数值为1的,变量中取值为1,写原变量,变量中取值为0,写反变量,然后组成与项,写出标准与或表达式.
也可以找出卡诺图中函数值为0的,变量中取值为0,写原变量,变量中取值为1,写反变量,然后组成与或项,写出标准或与表达式.
而实际上,并不需要写出标准与或表达式,而仅仅写出与或表达式也是完全可以的.
7.其它
(1)或与表达式变标准或与表达式(最小项之和)
关键点:利用基本公式中A + = 1补全与项
从上面例子,可以看出,一个与项缺少一个变量,则生成两个最小项,依次类推,如果一个与项缺少n个变量,则生成2^n个最小项.
(2)与或表达式变标准与或表达式(最大项之积)
关键点:利用基本公式中A* = 0补全或项
从上面例子,可以看出,一个或项缺少一个变量,则生成两个最大项,一个或项缺少n个变量,则生成2^n个最大项.