XLINUX-FPGA开发-基础篇-数电-逻辑代数基础
大家好,我是Xiaojie,桂林电子科技大学计算机在读硕士研究生,这篇内容主要是给大家分享:XLINUX-FPGA开发-基础篇-数电-逻辑代数基础,接下来进入正题
概述
- 在数字逻辑电路中,用1位二进制数码的0和1表示一个事物的两种不同逻辑状态
- 逻辑运算:当两个二进制数码表示不同的逻辑状态时,它们之间可以按照指定的某种因果关系进行推理运算
- 1849年英国数学家George Boole提出了进行逻辑运算的数学方法—布尔代数,又称为开关代数或逻辑代数
- 逻辑代数中用字母表示变量,这种变量称为逻辑变量
- 在二值逻辑中,由于每个变量的取值只有0和1两种可能,只能表示两种不同的逻辑状态,但是可以用多变量的不同状态组合表示事物的多种逻辑状态,处理任何复杂的逻辑问题。
逻辑代数中的三种基本运算
-
三种基本运算
-
与
-
或
-
非
-
-
几种常用的复合逻辑运算
-
与非
-
或非
-
与或非
-
异或
-
同或
-
逻辑代数中的基本公式和常用公式
-
基本公式
-
常用公式
逻辑代数的基本定理
- 代入定理
在任何一个包含变量A的逻辑等式中,若以另外一个逻辑式代入式中所有A的位置,则等式仍然成立。这就是代入定理 - 反演定理
对于任意一个逻辑式Y,若将其中所有的与符号变成或符号,或符号变成与符号,0变成1,1变成0,原变量换成反变量,反变量换成原变量,则得到的结果就是Y’。这个规律称为反演定理。
在使用反演定理的时候,要遵守下面的两个规则:- 运算的优先次序为:先括号、然后乘、最后加
- 不属于单个变量上的反号应保留不变
- 对偶定理
对于任何一个逻辑式Y,若将其中的与符号换成或符号,或符号换成与符号,0换成1,1换成0,则得到一个新的逻辑式YD,这个YD就是Y的对偶式,或者说Y和YD互为对偶式
逻辑函数及其表示方法
- 逻辑函数
若以逻辑变量为输入,运算结果为输出,则输入变量取值确定以后,输出的取值也随之而定。输入和输出之间是一种函数关系。这种函数关系称为逻辑函数,写作Y=F(A,B,C,……)。在二值逻辑中,输入/输出的取值只有0/1两种取值状态 - 逻辑函数的表示方法
- 真值表:将输入变量所有的取值下对应的输出值找出来,列成表格,即可得到真值表
- 函数逻辑式:将输入/输出之间的逻辑关系用与/或非的运算式进行表示
- 逻辑图:将逻辑函数式中各变量之间的与、或、非等逻辑关系用图形符号表示出来,就可以画出表示函数关系的逻辑图
- 波形图:如果将逻辑函数输入变量每一种可能出现的取值与对应的输出值按时间顺序依次排列起来,就得到了表示该逻辑函数的波形图
- 逻辑函数形式的转换
- 波形图与真值表的相互转换
- 波形图到真值表:从波形图上找出每个时间段里输入变量与函数输出的取值,然后将这些输入、输出取值对应列表,就得到真值表
- 真值表到波形图:要将真值表中的输入变量与对应的输出变量取值依次排列画成以时间为横轴的波形,就得到了真值表
- 真值表与逻辑函数式的相互转换
- 真值表到逻辑函数式
- 找出真值表中使逻辑函数Y=1的那些变量的组合
- 每组输入变量取值的组合对应一个乘积项,其中取值为1的写入原变量,取值为0的写入反变量
- 将这些成绩项相加,就得到了Y的逻辑函数式
- 逻辑函数式到真值表:将输入变量取值的所有组合状态逐一代入逻辑式求出函数值,列成表,就得到了真值表
- 真值表到逻辑函数式
- 逻辑函数式与逻辑图的相互转换
- 逻辑函数式到逻辑图:用逻辑图形符号代替逻辑函数式中的逻辑运算符号并按运算优先顺序将它们连接起来,就得到逻辑图
- 逻辑图到逻辑函数式:从逻辑图的输入端到输出端逐级写出每个图形符号的输出逻辑式,就可以在输出端得到所求的逻辑函数式
- 波形图与真值表的相互转换
- 逻辑函数的两种表示方法
- 最小项之和
- 最小项:在n变量逻辑函数中,若m为包含n个因子的乘积项,而且这n个变量均以原变量或反变量的形式在m中出现一次,则称m为该组变量的最小项。
- 最小项的性质:
- 在输入变量任一取值下,有且仅有一个最小项的值为1
- 全体最小项之和为1
- 任意两个最小项的乘积为0
- 具有相邻性的两个最小项之和可以合并成一项并消去一对因子。相邻性:若两个最小项只有一个因子不同,则称这两个最小项具有相邻性。
- 最小项之和:首先将给定的逻辑函数式华为若干乘积项之和的形式,然后利用基本公式A+A’=1将每个乘积项中缺少的因子补全,这样就可以将与或的形式化为最小项之和的标准形式
- 最大项之积
- 最大项:在n变量逻辑函数中,若M为n个变量之和,而且这n个变量均以反变量或反变量的形式在M中出现一次,则称M为该组变量的最大项
- 最大项的性质:
- 在输入变量任一取值下,有且仅有一个最大项的值为0
- 全体最大项之积为0
- 任何两个最大项之和为1
- 两个相邻的最大项之积可以合并,消去一对因子,只留下公共因子。相邻:仅一个因子不同的最大项
- 最大项之积:首先将一个逻辑函数式化成若干多项式相乘的或与形式,然后利用基本公式AA’=0将每个多项式中缺少的变量补齐,就可以将函数式的或与形式化成最大项之积的形式
- 最小项之和
逻辑函数的化简方法
化简逻辑函数的目的就是要消去多余的乘积项和每个乘积项中多余的因子,以得到逻辑函数式的最简形式
- 公式化简法
- 并项法:根据公式AB+AB’=A可以将两项合并为一项,并消去B和B’这一对因子
- 吸收法:根据公式A+AB=A可以将AB项消去
- 消项法:根据公式AB+A’C+BC=AB+A’C及AB+A’C+BCD=AB+A’C将BC或BCD项消去
- 消因子法:根据公式A+A’B=A+B可将A’B中的A’消去
- 配项法:
- 根据基本公式A+A=A可以在逻辑函数式中重复写入某一项,可以使化简变得更简单
- 根据基本公式A+A’=1可以在函数式中的某一项乘以(A+A’),然后拆成两项分别于其他项合并,可以使化简变得更简单
- 卡诺图化简法
- 逻辑函数的卡诺图表示法
-
卡诺图:将n个变量的全部最小项各用一个小方块表示,并使具有逻辑相邻性的最小项在几何位置上也相邻地排列起来,所得到的图形称为n变量最小项的卡诺图
-
二到五变量的最小项卡诺图
- 用卡诺图表示逻辑函数:首先将逻辑函数化为最小项之和的形式,然后在卡诺图上与这些最小项对应的位置上填入1,在其余的位置上填入0,就得到了表示该逻辑函数的卡诺图
-
- 用卡诺图化简逻辑函数
-
基本原理:具有相邻性的最小项可以合并,并消去不同的因子
-
合并最小项的基本原则:
- 若两个最小项相邻,则可合并为一项并消去一对因子
- 若四个最小项相邻,则可合并为一项并消去两对因子
- 若八个最小项相邻并且排成一个矩形组,则可合并为一项并消去三对因子
-
卡诺图化简的步骤
- 将函数化为最小项之和的形式
- 画出表示该逻辑函数的卡诺图
- 找出可以合并的最小项
- 选取化简后的乘积项,选取的原则是:
- 这些乘积项应包含函数式中所有的最小项(应覆盖卡诺图中所有的1)
- 所用的乘积项数目最少。也就是可合并的最小项组成的矩形数目最少
- 每个乘积项包含的因子最少。也就是每个可合并的最小项矩形组中应包含尽量多的最小项
-
- 逻辑函数的卡诺图表示法
具有无关项的逻辑函数及其化简
- 约束项、任意项、无关项
- 约束项:逻辑函数中对输入变量的取值有限制,与这些被限制的取值对应的最小项称为约束项
- 任意项:在输入变量某些取值下,函数值为1或0不影响逻辑电路的功能,与这些取值对应的最小项称为任意项
- 无关项:约束项和任意项统称为无关项,可以写入逻辑式,也可以不写入逻辑式
- 具有无关项的逻辑函数化简
- 合理利用无关项,可得更简单的化简结果
- 加入无关项,应使化简后的项数最少,每项的因子最少
- 从卡诺图直观地看,加入无关项,应使矩形圈最大,矩形数最少
- 例子:
至此,数电中的逻辑代数基础就介绍完了,下一章介绍数电中的门电路
当幸福来敲门
下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习、计算机视觉、雷达原理、FPGA等系列文章。