- 数字电子教程
- 数字电子 - 首页
- 数字电子基础
- 数字系统类型
- 信号类型
- 逻辑电平和脉冲波形
- 数字系统组件
- 数字逻辑运算
- 数字系统优势
- 数制
- 数制
- 二进制数表示
- 二进制算术
- 带符号二进制算术
- 八进制算术
- 十六进制算术
- 补码算术
- 进制转换
- 进制转换
- 二进制转十进制
- 十进制转二进制
- 二进制转八进制
- 八进制转二进制
- 八进制转十进制
- 十进制转八进制
- 十六进制转二进制
- 二进制转十六进制
- 十六进制转十进制
- 十进制转十六进制
- 八进制转十六进制
- 十六进制转八进制
- 二进制码
- 二进制码
- 8421 BCD码
- 余3码
- 格雷码
- ASCII码
- EBCDIC码
- 代码转换
- 错误检测与纠正码
- 逻辑门
- 逻辑门
- 与门
- 或门
- 非门
- 通用门
- 异或门
- 异或非门
- CMOS逻辑门
- 使用二极管电阻逻辑的或门
- 与门与或门的比较
- 两级逻辑实现
- 阈值逻辑
- 布尔代数
- 布尔代数
- 布尔代数定律
- 布尔函数
- 德摩根定理
- SOP和POS形式
- POS到标准POS形式
- 最小化技术
- 卡诺图最小化
- 三变量卡诺图
- 四变量卡诺图
- 五变量卡诺图
- 六变量卡诺图
- 无关项条件
- 奎因-麦克拉斯基方法
- 最小项和最大项
- 规范式和标准式
- 最大项表示
- 使用布尔代数化简
- 组合逻辑电路
- 数字组合电路
- 数字算术电路
- 多路复用器
- 多路复用器设计流程
- 多路复用器通用门
- 使用4:1多路复用器的2变量函数
- 使用8:1多路复用器的3变量函数
- 多路分解器
- 多路复用器与多路分解器的比较
- 奇偶校验位发生器和校验器
- 比较器
- 编码器
- 键盘编码器
- 优先编码器
- 译码器
- 算术逻辑单元
- 7段LED显示器
- 代码转换器
- 代码转换器
- 二进制转十进制转换器
- 十进制转BCD转换器
- BCD转十进制转换器
- 二进制转格雷码转换器
- 格雷码转二进制转换器
- BCD转余3码转换器
- 余3码转BCD转换器
- 加法器
- 半加器
- 全加器
- 串行加法器
- 并行加法器
- 使用半加器的全加器
- 半加器与全加器的比较
- 使用与非门的全加器
- 使用与非门的半加器
- 二进制加减法器
- 减法器
- 半减器
- 全减器
- 并行减法器
- 使用两个半减器的全减器
- 使用与非门的半减器
- 时序逻辑电路
- 数字时序电路
- 时钟信号和触发
- 锁存器
- 移位寄存器
- 移位寄存器应用
- 二进制寄存器
- 双向移位寄存器
- 计数器
- 二进制计数器
- 非二进制计数器
- 同步计数器设计
- 同步计数器与异步计数器的比较
- 有限状态机
- 算法状态机
- 触发器
- 触发器
- 触发器转换
- D触发器
- JK触发器
- T触发器
- SR触发器
- 带时钟的SR触发器
- 无时钟SR触发器
- 带时钟的JK触发器
- JK触发器转T触发器
- SR触发器转JK触发器
- 触发方法:触发器
- 边沿触发触发器
- 主从JK触发器
- 竞争冒险现象
- A/D和D/A转换器
- 模数转换器
- 数模转换器
- DAC和ADC集成电路
- 逻辑门的实现
- 用与非门实现非门
- 用与非门实现或门
- 用与非门实现与门
- 用与非门实现或非门
- 用与非门实现异或门
- 用与非门实现异或非门
- 用或非门实现非门
- 用或非门实现或门
- 用或非门实现与门
- 用或非门实现与非门
- 用或非门实现异或门
- 用或非门实现异或非门
- 使用CMOS的与非/或非门
- 使用与非门的全减法器
- 使用2:1多路复用器的与门
- 使用2:1多路复用器的或门
- 使用2:1多路复用器的非门
- 存储器件
- 存储器件
- RAM和ROM
- 高速缓存设计
- 可编程逻辑器件
- 可编程逻辑器件
- 可编程逻辑阵列
- 可编程阵列逻辑
- 现场可编程门阵列
- 数字电子系列
- 数字电子系列
- CPU架构
- CPU架构
- 数字电子资源
- 数字电子 - 快速指南
- 数字电子 - 资源
- 数字电子 - 讨论
使用布尔代数化简
什么是卡诺图 (K-Map)?
卡诺图 (K-Map) 是一种图形工具,用于简化以标准形式表示的布尔表达式,以获得其最小形式。
卡诺图基本上是一个图表,由相邻的单元格或方块组成,每个单元格代表函数变量的特定组合,以和式或积式表示。
卡诺图中单元格的数量取决于布尔函数中变量的数量,即,K-map 有 2n 个相邻单元格,其中 n 是布尔表达式中变量的数量。因此,2变量卡诺图中的单元格数量为 4 (22),3变量卡诺图中的单元格数量为 8 (23),4变量卡诺图中的单元格数量为 16 (24),依此类推。
但是,我们可以对任意数量的变量使用卡诺图。但是,对于简化超过 5 个变量的布尔函数,它会变得繁琐。
现在,让我们讨论使用卡诺图简化布尔表达式的过程。
使用卡诺图简化布尔表达式的步骤
使用卡诺图简化给定布尔表达式涉及以下步骤:
步骤 1 - 根据给定布尔函数中变量的数量选择卡诺图。
步骤 2 - 识别最小项(在 SOP 形式中)或最大项(在 POS 形式中)。
步骤 3 - 对于SOP(积之和)形式,根据给定函数的最小项在卡诺图的单元格中放入 1。读取卡诺图如下:
- 读取卡诺图中与任何其他 1 不相邻的 1。这些 1 是孤立的最小项,因此需要按原样读取,因为它们不能组合成组。
- 读取卡诺图中仅与另一个 1 相邻的 1。将此类最小项组合成 2-方块。
- 读取卡诺图中相邻 1 的四元组(4-方块)、八元组(8-方块)等等,即使它们有一些 1 已经在其他组中组合。唯一需要注意的是,它们必须几何地形成矩形或正方形。
- 读取卡诺图中尚未分组的任何 1,如果可能,将它们分组到更大的正方形或矩形中。
- 最后,获得所有组的乘积项,然后将它们加起来形成最小的 SOP 表达式。
对于POS(和之积)形式,根据给定函数的最大项在卡诺图的单元格中放入 0。读取卡诺图如下:
- 读取卡诺图中与任何其他 0 不相邻的 0。这些 0 是孤立的最大项,因此需要按原样读取,因为它们不能组合成组。
- 读取卡诺图中仅与另一个 0 相邻的 0。将此类最大项组合成 2-方块。
- 读取卡诺图中相邻 0 的四元组(4-方块)、八元组(8-方块)等等,即使它们有一些 0 已经在其他组中组合。唯一需要注意的是,它们必须几何地形成矩形或正方形。
- 读取卡诺图中尚未组合的任何 0,如果可能,将它们组合到更大的正方形或矩形中。
- 最后,获得所有组的和项,然后将它们相乘形成最小的 POS 表达式。
让我们借助一些已解决的示例来了解使用卡诺图简化布尔表达式的过程。
示例 1
使用卡诺图简化以下 SOP 形式的 3 变量布尔函数。
$$\mathrm{F(P, \: Q, \:R) \: = \: \sum m ( 0, \: 1, \: 3, \: 5, \: 7)}$$
解答
给定布尔函数的卡诺图表示如图 1 所示。
根据以下步骤简化此卡诺图:
- 没有孤立的 1。
- 最小项 m1 与最小项 m3、m5 和 m7 形成一个 4-方块。将其组合并读取为 R。
- 最小项 m0 与最小项 m1 形成一个 2-方块。将其组合并读取为 $\mathrm{\bar{P} \: \bar{Q}}$
- 以 SOP 形式编写所有乘积项。
因此,简化的 SOP 表达式为:
$$\mathrm{F \: = \: R \: + \: \bar{P}\bar{Q}}$$
示例 2
使用卡诺图简化以下 POS 形式的 3 变量布尔函数。
$$\mathrm{F(A, \: B, \: C) \: = \: \Pi \: M(1, \: 2, \: 4, \: 6)}$$
解答
给定布尔函数的 POS 卡诺图表示如图 2 所示。
根据以下步骤简化此 POS 卡诺图:
- 最大项 M1 没有相邻项。因此,按原样保留它并将其读取为 $\mathrm{(A \: + \: B \: + \: \bar{C})}$.
- 最大项 M2 只有一个相邻项 M6。因此,将最大项 M2 扩展为与最大项 M6 的 2-方块,并将 2-方块读取为 $\mathrm{(\bar{B} \: + \: C)}$。
- 最大项 M4 也只有一个相邻项 M6。因此,将最大项 M4 扩展为与最大项 M6 的 2-方块,并将 2-方块读取为 $\mathrm{(\bar{A} \: + \: C)}$。
- 以 POS 形式编写所有和项。
因此,简化的 POS 表达式为:
$$\mathrm{F \: = \: (A \: + \: B \: + \: \bar{C}) \: (\bar{B} \: + \: C) \: (\bar{A} \: + \: C)}$$
示例 3
简化以下 SOP 形式的 4 变量布尔函数以获得最小的 SOP 表达式。
$$\mathrm{F(A, \: B, \: C, \:D) \: = \: \sum \: m( 0,\: 1, \:3, \: 5, \: 7, \: 6, \: 10, \: 13, \: 14, \: 15)}$$
解答
给定布尔函数的 SOP 卡诺图表示如图 3 所示。
根据以下步骤简化此 SOP 卡诺图:
- 没有孤立的 1。
- 最小项 m1 有三个相邻项 m3、m5 和 m7。因此,将 m1 扩展为与最小项 m3、m5 和 m7 的 4-方块,并将 4-方块读取为 $\mathrm{\bar{A}D}$。
- 最小项 m5 有三个相邻项 m7、m13 和 m15。将 m5 扩展为与最小项 m7、m13 和 m15 的 4-方块,并将 4-方块读取为 BD。
- 最小项 m6 也具有三个相邻项 m7、m14 和 m15。将 m6 扩展为与最小项 m7、m14 和 m15 的 4-方块,并将 4-方块读取为 BC。
- 最小项 m10 只有一个相邻项 m14。将 m10 扩展为与最小项 m14 的 2-方块,并将 2-方块读取为 $\mathrm{AC\bar{D}}$。
- 最小项 m0 也只有一个相邻项 m1。将 m0 扩展为与最小项 m1 的 2-方块,并将 2-方块读取为 $\mathrm{\bar{A}\bar{B}\bar{C}}$。
- 以 SOP 形式编写所有乘积项。
因此,简化的 SOP 表达式为:
$$\mathrm{F \: = \: \bar{A}D \: + \: BD \: + \: BC \: + \: AC\bar{D} \: + \: \bar{A}\bar{B}\bar{C}}$$
结论
通过这种方法,我们可以使用卡诺图(K-map)简化给定的布尔表达式,得到最小表达式。尝试解决以下练习题以更好地理解。
题 1 − 将以下三变量布尔函数化简为SOP形式,得到其最小表达式。
$$\mathrm{F(A, \: B, \: C) \: = \: \sum \: m(1, \: 2, \: 4, \: 5, \: 7)}$$
题 2 − 将以下四变量布尔函数化简为SOP形式,得到其最小布尔表达式。
$$\mathrm{F(A, \: B, \: C, \: D) \: = \: \sum \: m(0, \: 1, \: 2, \: 4, \: 5, \: 7, \: 8, \: 9, \: 10, \: 12, \: 14, \: 15)}$$