1、逻辑代数的基本概念
1.1、逻辑代数基本概述
1.1.1、逻辑代数定义
逻辑代数首先是由英国数学家乔治·布尔(George Boole)1815-1864年奠定的,因此也称为布尔代数。布尔代数是用一种数学运算来描述人的逻辑思维规律和推理过程的代数系统,直到后来人们发现布尔代数的二值性应用于两态元件组成的数字电路(开关电路)尤为合适,因此又被称为开关代数。
逻辑代数:将布尔代数的一些基本前提和定理应用于继电器电路的分析与描述,即开关代数,也就是二值布尔代数(由一个逻辑变量集K,常量0和1,以及“与”、“或”、“非”三种基本运算所构成)。
注:与普通代数不同,逻辑常量没有大小的概念,而是表示事务的两种对立的逻辑状态。
逻辑变量:在数字系统中,用于描述开关接通与断开、电平的高与低,信号的有和无,晶体管的导通与截止等两种取值状态的二值变量称之为逻辑变量。逻辑代数中的变量取值只有两种可能,即0和1。
2、逻辑代数的基本定理和规则
2.1、逻辑代数的基本运算
2.1.1、 “或”逻辑
决定某一事件是否发生的多个条件中只要有一个或一个以上的条件成立,事件便可发生。通常记作:F = A + B 或者 F = AⅴB。
实现“或”运算关系的逻辑电路称为“或”门。
2.1.2、“与”逻辑
决定某一事件是否发生的多个条件必须同时具备,事件才能发生。通常记作:F = A ▪ B 或者 F = A ^ B。
实现“与”运算关系的逻辑电路称为“与”门。
2.1.3、“非”逻辑
决定某一事件是否发生取决于条件的否定,即事件与事件发生的条件之间构成矛盾。通常记作:F = Ā 或者 F = ¬A。
实现“非”运算关系的逻辑电路称为“非”门。
2.2、逻辑代数的公理
逻辑代数满足以下五个公理(是不需要我们推理的定律)。与(▪)、或(+)、非(¯)符号。其中交换律、结合律以及分配律我们很早在数学中就接触过。
2.2.1、交换律
对任意逻辑变量A、B,有:
A ▪ B = B ▪ A(A与B=B与A) A + B = B + A
2.2.2、结合律
对任意逻辑变量A、B、C,有:
(A ▪ B) ▪ C = A ▪ (B ▪ C) (A + B) +C = A + (B + C)
2.2.3、分配律
对任意逻辑变量A、B、C,有:
A ▪ (B + C) = A ▪ B + A ▪ C A + (B ▪ C) = (A + B) ▪ (A + C)
2.2.4、0-1律
对任意的逻辑变量A,有:
A ▪ 1 = A A ▪ 0 = 0
A + 0 = A A + 1 = 1
2.2.5、互补律
对任意逻辑变量A,有
A ▪ Ā = 0 A + Ā = 1
2.3、逻辑代数的基本定理
前面我们介绍了5个公理,接下来我们再来介绍几个可由公理推导出来的八定理。就好像我们中学数学中的几何定理一样。
2.3.1、定理一基本逻辑运算定理
与运算 | 0 ▪ 0 = 1 | 0 ▪ 1 = 0 | 1 ▪ 0 = 0 | 1 ▪ 1 =1 |
---|---|---|---|---|
或运算 | 0 + 0 = 0 | 0 + 1 = 1 | 1 + 0 = 1 | 1 + 1 =1 |
非运算 | ¬1 = 0 | ¬0 = 1 |
2.3.2、定理二-自等律
A + A = A A ▪ A = A
2.3.3、定理三-吸收律
A + A ▪ B = A A ▪ (A + B)= A
2.3.4、定理四-吸收律变种
2.3.5、定理五-非非律
2.3.6、定理六-摩根定律
2.3.7、定理七-并向定理
2.3.8、定理八-冗余律
2.4、三大规则
2.4.1、代入规则
任何一个含有变量A的逻辑等式,如果将所有出现A的位置都代之以同一个逻辑函数,则等式仍然成立。
2.4.2、反演规则
若将逻辑函数表达式F中所有的“▪”(“与”)变成“+”(“或”),或变成与,“0”变成“1”,“1”变成“0”,保持原函数中的运算顺序不变,所有的逻辑变量变成反变量,则所得到的函数为原函数F的反函数。
2.4.3、对偶规则
若将逻辑函数表达式F中所有的“▪”(“与”)变成“+”(“或”),或变成与,“0”变成“1”,“1”变成“0”,保持原函数中的运算顺序不变,则所得到的函数为原函数F的对偶式(和反演规则的区别是变量不用取反)。
3、逻辑函数
3.1、逻辑函数基本概述
3.1.1、逻辑函数的定义
逻辑函数,是一类返回值为逻辑值true或逻辑值false的函数。
逻辑函数具有的特点:
1)逻辑变量(输入)和逻辑函数(输出)的取值只有0和1两种可能;
2)函数与变量之间的关系是由“与”、“或”、”非“三种基本运算决定。
3.1.2、逻辑函数的表示方法
1)逻辑表达式
设一逻辑电路的输入逻辑变量为A1、A2、...、An,输出逻辑变量为F,当A1、A2、...、An的值确定后,F的值就唯一的被确定下来,则F被称为A1、A2、...、An的逻辑函数,记作:F = f(A1、A2、...、An)。
例如:
注:逻辑表达式的简写规则
2)真值表
依次列出一个逻辑函数的所有输入变量取值组合及其相应函数值的表格。n个变量就有2^n次方种结果。
例如:
3)卡诺图
在函数化简中再一起讲解。
3.2、复合逻辑
3.2.1、与非逻辑
与非逻辑可以实现与、或、非3种基本逻辑。因此与非门是一个通用门。
例如:根据摩根定律可推导,具体的实现电路将在后面讲解
3.2.2、或非逻辑
或非逻辑可以实现与、或、非3种基本逻辑。因此或非门也是一个通用门。
例如:根据摩根定律可推导
3.2.3、与或非逻辑
与或非门,也是一个通用门,但是相比与非门和或非门来说,相对更复杂,比较不经济,因此并不常用。
3.2.4、异或逻辑
异或的逻辑表达式可以表示为:
异或逻辑中的多个变量中,若有奇数个变量值为1,则运算结果为1;反之若有偶数个变量值为1,则运算结果为0(可应用在奇偶校验中,异或取非,就是同或门)。
3.3、逻辑表达式
前面我们接触了与非逻辑、或非逻辑,他们都可以实现与、或、非逻辑。因此任何一个逻辑函数的表达式的形 式都不是唯一的,逻辑表达式可以被表示成任意的混合形式,但无论什么形式,都可以变换为两种基本形式:“与-或”表达式、“或-与”表达式。
3.3.1、逻辑表达式的基本形式
1) “与-或”表达式
由若干“与”项进行“或”运算构成的表达式(积之和)。
2)“或-与”表达式
由若干“或”项进行“与”运算构成的表达式(和之积)。
例如:有函数F,变化为逻辑表达式的基本形式
3.3.2、表达式的标准形式
1)最小项
具有n个变量的函数,与项包含全部n个变量,且每个变量都以原变量或反变量形式出现一次,且仅出现一次,该与项被称为最小项,有时也称为“标准与项”,n个变量可以构成2^n个最小项。
例如:3个变量A、B、C可构成8个最小项
通常用符号来表示最小项(即简写,其中i的值为最小项中原变量为1,反变量为0而得到的二进制)。
例如:中i为101,则3个变量构成的最小项,表示为。
相邻最小项:除一个变量互为相反之外,其余部分均相同的最小项。n个变量构成的最小项有n个相邻最小项。
2)最大项
具有n个变量的函数,或项包含全部n个变量,且每个变量都以原变量或反变量形式出现一次,且仅出现一次,该或项被称为最大项,有时也称为“标准或项”,n个变量可以构成2^n个最大项。
例如:3个变量A、B、C可构成8个最大项
通常用符号来表示最大项(即简写,其中i的值为最小项中原变量为0,反变量为1而得到的二进制)。
例如:中i为010,则3个变量构成的最大项,表示为。
相邻最大项:除一个变量互为相反之外,其余部分均相同的最大项。n个变量构成的最大项有n个相邻最大项。
注:最大项和最小项的界定是它们组合中使其值为1的组合项最多或最少的一种方式。
3)最小项和最大项的关系
相同变量构成的最小项和最大项之间存在互补关系。
4)标准“与-或”表达式
由若干最小项相”或“构成的逻辑表达式(也叫最小项表达式)。
例如:
5)标准“或-与”表达式
由若干最大项相”与“构成的逻辑表达式(也叫最大项表达式)。
3.4、逻辑函数化简
对于一个逻辑函数而言,如果逻辑表达式越简单,那么实现它的电路就越简单,电路工作就越稳定可靠。一个逻辑函数化简得到它的最简式十分重要。
3.4.1、代数化简法
运用逻辑代数的公理、定理和规则对逻辑函数进行化简。例如:“与-或”和“或-与”表达式的化简。
3.4.2、卡诺图化简法
1)卡诺图的构成
卡诺图是最小项按一定规律排列的方格图,每一个最小项占有一个小方格。前面我们也说过最小项,因为最小项的数目与变量数有关(2^n)。
1-1)两个变量的卡诺图
1-2)三个变量的卡诺图
为什么第三列是11而第四列是10?这与最小项的排列满足邻接关系有关。因为相邻最小项相加时可以消去一个变量。什么意思呢?00和01、01和11、11和10之间都只有一位不同(一个变量互反)。而形成的卡诺图的(m0...m7)的相邻位置不管是横向还是纵向都满足m_0与m_2相邻、m_2与m_6相邻
1-3)四个变量的卡诺图
2)卡诺图的特点
2-1)几何图形上处在相邻、相对、相重位置的小方格代表的最小项为相邻的最小项。
2-2)卡诺图中最小项的排列方案不是唯一的,上面的方式只是其中一种。
3)标准“与-或”表达式在卡诺图上的表示
在卡诺图上找出和表达式中最小项对应的小方格填上1,其余小方格填上0。
例如:3个变量函数
这种简单的我们知道最小项位置的,当然很好作出相应的卡诺图。那复杂一点的呢?
例如:函数的卡诺图
注:对应行列交集就是我们填1的地方。
4)卡诺图合并-卡诺圈
依据并向定理,两个相邻最小项有一个变量互反,可以合并为一项,消去一个变量。
注:对于横向的相邻项,互反的是A,可被消去,剩下的是B,而B的值是0,因此最终得到的是。
卡诺圈:用来包围那些能由一个简单与项代替的若干最小项的圈,称为“卡诺圈”。
注:对于图(a)四个相邻最小合并,蓝色方框即是我们的卡诺圈(BD)。
推导:图(a)
那么思考下:C图两列相邻的1,最终得到的是什么呢?
横向的是:CD;
纵向的是:;
规律:n个变量卡诺图
a)卡诺圈中小方格的个数必须为2^m个,m为小于或等于n的整数。
b)卡诺圈中的2^m个小方格含有m个不同变量,n-m个相同变量。
c)卡诺圈中的2^m个小方格对应的最小项可用(n-m)个变量的“与-或”表示,该与项由这些最小项中的相同变量表示。
d)当m=n时,卡诺圈包围了整个卡诺图,可用1表示。
5)卡诺图化简“与-或”表达式
例如:
写出函数的最简“与-或”表达式。
必要质蕴涵项:在函数卡诺圈中,某个卡诺圈包含了不可能被其他任何卡诺圈包含的1方格,其对应的与项为必要质蕴涵项。
这些被星号标记出来,就是质蕴涵项。因此我们就得到函数的最简表达式:
例如:
写出函数的最简“与-或”表达式。
我们发现为了覆盖最小项m_{10},我们可以有两个选择,因此最简表达式可以是:
一个函数的最简”与-或“表达式并不是唯一的。
5)卡诺图化简“或-与”表达式
3.4.3、列表化简法
1)列表化简法定义
列表化简法是Quine-Mccluskey提出的一种系统化简法,故也称作Q-M法(也叫表格法)。这种方法具有严格的算法,虽然其工作量大、方法繁琐,但便于计算机化简多变量逻辑函数。
2)Q-M法化简逻辑函数的步骤
2-1)第一步:将函数表示成最小项表达式,并找出函数的全部质蕴涵项(先n-1个变量的与项(质蕴涵)和n-2)。
2-3)第二步:作必要质蕴涵项产生表,找出函数的必要质蕴涵项。
2-4)第三步:当必要质蕴涵项不能覆盖所有最小项时,作所需质蕴涵项产生表,找出函数的最小覆盖。
例如:
用列表法化简逻辑函数:
第一步:
第二步:
四个必要质蕴涵项已经全部覆盖所有最小项。所以该函数的最简结果: