组合逻辑设计中的编程最小化方法
1. 编程最小化方法概述
逻辑最小化是一个复杂的过程。在实际的逻辑设计应用中,通常会遇到两类最小化问题:变量较少的函数,可通过之前介绍的方法直接观察得出结果;而更复杂的多输出函数,则需要借助最小化程序来解决。
对于变量较少的函数,可使用卡诺图法进行可视化最小化。而对于任意数量变量的函数(至少理论上),可以采用表格法——奎因 - 麦克拉斯基算法(Quine - McCluskey algorithm)。该算法与所有算法一样,可转化为计算机程序,且和卡诺图法类似,包含两个步骤:
- 找出函数的所有质蕴含项。
- 选择一个最小的质蕴含项集合来覆盖该函数。
本文主要考虑完全指定的单输出函数,无关项和多输出函数可通过对单输出算法进行简单修改来处理。
2. 乘积项的表示
奎因 - 麦克拉斯基最小化算法的起点是函数的真值表或最小项列表。若函数的指定方式不同,则需先将其转换为这种形式。例如,任意的 n 变量逻辑表达式可通过展开(可能会用到德摩根定理)得到积之和表达式。得到积之和表达式后,每个 p 变量的乘积项会在最小项列表中产生 (2^{n - p}) 个最小项。
n 变量逻辑函数的最小项可以用一个 n 位整数(最小项编号)表示,其中每一位表示相应变量是取反还是不取反。但最小化算法还需处理非最小项的乘积项,即某些变量可能根本不出现。因此,在一般的乘积项中,每个变量有三种可能的表示:
- 1:未取反。
- 0:取反。
- x:不出现。
这些可能性在乘积项的立方体表示中,用上述数字组成的 n 位字符串来表示。例如,对于最多包含八个变量
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



