先导概念和定理

逻辑(布尔)代数: 定义略.
5个公理和8个定理:见前一篇文章.现在记下几个比较重要的:
(A+B)⋅(A+Bˉ)=A(A+B)\cdot(A+\bar{B})=A(A+B)⋅(A+Bˉ)=A
A⋅B+Aˉ⋅C+B⋅C=A⋅B+Aˉ⋅CA\cdot B+\bar{A}\cdot C+B\cdot C=A\cdot B+\bar{A}\cdot CA⋅B+Aˉ⋅C+B⋅C=A⋅B+Aˉ⋅C
A+B‾=Aˉ⋅Bˉ\overline{A+B}=\bar{A}\cdot\bar{B}A+B​=Aˉ⋅Bˉ


反演和对偶

反演

是将运算符号对调,变量取反,0-1取反,保持运算顺序不变得到的反演函数Fˉ\bar{F}Fˉ.

对偶

是将运算符号对调,0-1取反,变量不变,保持运算顺序不变得到的对偶函数F′F'F′.

性质

对于反演函数,有F(x,y,...)=−Fˉ(x,y,...)F(x,y,...)=-\ \bar{F}(x,y,...)F(x,y,...)=− Fˉ(x,y,...):对于相同的变元指派方案,两式的值相反.
对于对偶函数,有ifF(x,y,...)=G(x,y,...),F′=G′if\ F(x,y,...)=G(x,y,...),F'=G'if F(x,y,...)=G(x,y,...),F′=G′:如果在某指派方案下函数FFF值等于函数GGG,则在该指派方案下F′=G′F'=G'F′=G′.
对偶和反演定义相近,其不同点和性质要注意区分.


卡诺图

接下来说说本文的核心部分卡诺图.

卡诺图是真值表的变形,它可以将有n个变量的逻辑函数的2n2^{n}2n个最小项组织在给定的长方形表格中,同时为相邻最小项(相邻与项)运用邻接律化简提供了直观的图形工具。但是,如果需要处理的逻辑函数的自变量较多(有五个或更多的时候,此时有些项就很难圈了),那么卡诺图的行列数将迅速增加,使图形更加复杂;此外,卡诺图的图形化表示方法不适合直接用于算法的设计,因此计算机辅助工程工具一般不会使用卡诺图来进行逻辑函数的优化。1

本质上是一个简化逻辑表达式的工具,我们从一些理论基础入手.

最大项和最小项

最大项和最小项是逻辑函数的两种标准形式.
最小项有如下特征:

  1. 具有n个变量的函数的“与项”包含全部n个变量;
  2. 每个变量都以原变量或反变量形式出现一次,且仅出现一次;

而最大项是:

  1. 具有n个变量的函数的“或项”包含全部n个变量;
  2. 在每个或中,每个变量都以原变量或反变量形式出现一次,且仅出现一次;

比如对于nnn变量,其最大项就是∑i=1nxi\sum_{i=1}^n x_{i}∑i=1n​xi​最小项就是∏i=1nxi\prod _{i=1}^n x_{i}∏i=1n​xi​.
其中任何一个变元均可随意指派0或1.

最大项和最小项的性质:

  1. 对于一个最大项,有且只有一个指派使得式子值为0.此时每个单元的表征值2为0.
  2. 对于一个最大项,有且只有一个指派使得式子值为1.此时每个单元的表征值为1.

另外,最大项和最小项是反演关系.

标准与-或式

  • 就是若干个最小项相或.只要有一个表征值是1,值就为1.
  • 其中每个子句(即每个最小项)包含了所有的变元

"相邻"和格雷码

为了具有理论依据在利用卡诺图化简时,这里提出相邻和格雷码的概念.

格雷码(循环二进制单位距离码)是任意两个相邻数的代码只有一位二进制数不同的编码,它与奇偶校验码同属可靠性编码。3

也就是对于最小项来说,以正元为1,负元为0,形成的0/1串,如果有且只有一位相反,那就是所谓的相邻.都相邻的编码组称格雷码.

卡诺图的绘制

  • 将变元按顺序尽量分为两组;
    像这样:
  • 按照相邻的规则进行表头的绘制.对于两变量两变量的图,表头的排布应该是00,01,11,10.注意,最后一个和第一个也是相邻*关系.
  • 对单元格进行编号,编号规则为:将ABCD形成的二进制码转化为十进制,就是编号.

运用卡诺图的化简

  1. 将要化简的式子转化为标准与-或式;
  2. 按照编码将1填入格子:0=非,1=是;
  3. 进行划圈归类.按照下列规则:
    1. 圈内只能有1,不能有0;
    2. 圈大小限定为2n2^n2n个;
    3. 允许不完全重叠;
    4. 不能遗漏1;
    5. 要求只能相邻的可以划进一个圈(注意跨边界的相邻);
    于是像这样:
  4. 将圈内子句按照定理A⋅B+A⋅Bˉ=AA\cdot B+A\cdot \bar{B}=AA⋅B+A⋅Bˉ=A合并,写出化简后的表达式.每一个圈写一个最简与项,规则是,取值为l的变量用原变量表示,取值为0的变量用反变量表示,将这些变量相与.然后将所有与项进行逻辑加,即得最简与—或表达式.
  5. 整理得到最后结果.

Conclusion

就如开始所说,卡诺图是一个比较直观简便的方法化简标准式或者接近标准式.但是其主要缺陷在于是图形化化简方法,难以用计算机实现自动化.


  1. Stephen Brown, Zvonko Vranesic. Fundamentals of Digital Logic with Verilog Design. McGraw-Hill Education. ISBN 0-07-283878-7. ↩︎

  2. 这是一个个人为了表述方便的非标准名词.意思是某种真值指派下该变元(正或反)所在式子中表现出来的值.比如对于aˉ\bar{a}aˉ,当a指派为1时,表征值为0. ↩︎

  3. https://zh.wikipedia.org/wiki/%E6%A0%BC%E9%9B%B7%E7%A0%81 ↩︎

卡诺图在化简逻辑布尔代数上的运用相关推荐

  1. multsim仿真1:利用multisim化简逻辑函数

    在右边栏选择器件Logic Converter,图纸上出现XLC的标志,双击打开 选择变量数ABCD,圈变成白色. 在最右侧点击?修改数值为0,1,X 点击SIMP即可在框内出现化简的逻辑函数值

  2. 卡诺图直接化简为最简或与式

    直接圈图中为0的方格,且把方格编号中的0看成原变量,变量之间的关系是相加.比如"00"对应的是A+B或者C+D. 如例题 如果未能得到最简,可能是没有利用到约束项或者圈不是足够大.

  3. 数字电路之布尔代数与逻辑化简

    文章目录 思维导图 布尔运算 布尔代数定律 布尔代数常用基本法则 狄摩根定理 布尔表达式的标准形式 布尔表达式和真值表 卡诺图 布尔运算是逻辑门的基础,逻辑门和布尔代数的定律构成了数字电路的基础.本文 ...

  4. FPGA:逻辑函数的卡诺图化简法

    文章目录 最小项与最小项表达式 最小项的定义 最小项的性质 逻辑函数的最小项表达式 卡诺图化简法 用卡诺图表示逻辑函数 卡诺图的引出 两变量卡诺图 三变量卡诺图 四变量卡诺图 已知逻辑函数真值表,画卡 ...

  5. 数字逻辑笔记7丨2.5逻辑函数卡诺图化简法

    卡诺图的构成 1.卡诺图的构成 一种图形化简法,在逻辑设计中广泛应用 卡诺图:一种平面方格图,每个小方格代表一个最小项,又叫"最小项方格图" 卡诺图可以视为真值表图形化的结果 n个 ...

  6. 用卡诺图进行数字逻辑化简

    电路分为模拟电路与数字电路,模拟电路理论是整个电子电路的基础.但要想组成复杂的处理系统电路,数字电路有他自己的优势,他的优势就在于他的逻辑设计可以与实际电路设计相分离,分离的结果就是我们现在所看到的, ...

  7. 数字电路3(逻辑函数的卡诺图化简法)

    1.最小项的定义及其性质 2.逻辑函数的最小项表达式 3.用卡诺图表示逻辑函数 4.用卡诺图化简逻辑函数 5.含无关项的逻辑函数及其化简

  8. 看完这篇还不会化简卡诺图?你来打我

    最通俗易懂的的卡诺图化简教程 首先我们来介绍一下什么是卡诺图: 卡诺图是逻辑函数的一种图形表示.一个逻辑函数的卡诺图就是将此函数的最小项表达式中的各最小项相应地填入一个方格图内,此方格图称为卡诺图. ...

  9. 数字逻辑代数基础——基本定理、公式与卡诺图化简法、格雷码、LSFR等

    复习一下数字电路,下次就省事直接看自己写的了. 目录 1.常用门电路图 2.逻辑代数的基本定理----化简时比较好用 3.化简逻辑函数时几个关键的公式(A'代表A的非) 4.格雷码与二进制的转换 5. ...

最新文章

  1. C语言第二次博客作业---分支结构
  2. Jquer学习之jQuery(function(){})与(function(){})(jQuery)之间的区别
  3. Xcode 修改系统的代码块样式 Code Snippet
  4. 使用 gitlab 进行代码管理
  5. ruby和python_Ruby,Python和Java中的Web服务
  6. java cas并发_java并发之CAS
  7. IIS------项目配置到IIS后报500错误
  8. 大数据之-Hadoop之HDFS_NameNode和Secondary NameNode工作机制_通过文件的增删改查说明---大数据之hadoop工作笔记0070
  9. Winform界面中实现通用工具栏按钮的事件处理
  10. 代数数论初步(全书)
  11. 计算机系统领域顶级会议--OSDI,SOSP
  12. word文档替换技巧(空行替换、空格替换、软回车替换成硬回车)
  13. 链塔智库联合清华发布《2018区块链技术应用白皮书》
  14. 解决报错“RuntimeError - [Xcodeproj] Unknown object version.”
  15. HDU-1493 QQpet exploratory park(概率+二维dp)
  16. LeetCode 第 58 场力扣夜喵双周赛(动态规划、马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)
  17. 一招解决Android 加载高清大图
  18. Google Earth Engine(GEE)——通过NDBI计算雪山覆盖去除雪山阴影
  19. 视觉SLAM综述(入门篇)
  20. 往JScrollPane中添加组件时滚动条不出现的解决方法

热门文章

  1. Django 模板常用过滤器
  2. 关于n维欧式空间上梯度,Hesse矩阵的定义及两个重要结论
  3. 恒温恒湿机 控制器 日立_什么是工业防爆恒温恒湿机
  4. 个人软件开发知识体系梳理
  5. javaweb课程设计在线答疑网站
  6. python应届生工资_Python这么火热,本科应届生薪资这么高?
  7. Linux 部署 .NET 6(宝塔面板)
  8. SQL Server数据库版本总结
  9. Pyke 简介 (4) :Pyke 是什么?
  10. Chrome修改网页背景基色