《数字电路》| 第 9 节‑卡诺图化简法

📅 2026/8/22 11:48:13
《数字电路》| 第 9 节‑卡诺图化简法
9.1 本节导论卡诺图Karnaugh Map是数字逻辑设计中一种重要的图形化化简工具由莫里斯·卡诺于1953年提出。它通过将逻辑函数的真值表以二维方格图的形式表示利用人类直观的图形识别能力快速找到可以合并的最小项从而得到最简的与或表达式。与代数化简法相比卡诺图法更加直观、不易出错尤其适用于变量数较少通常为2至6个变量的情况。本节将系统讲解卡诺图化简的完整流程涵盖从基本概念最小项、标准与或表达式到工具准备格雷码、卡诺图填写再到核心化简步骤圈图规则最后处理实际工程中常见的约束项无关项。掌握这套方法你将能高效地化简任意组合逻辑电路为后续的电路设计与优化打下坚实基础。利用计算机辅助也能化简逻辑函数表达式9.2 最小项与标准与‑或表达式最小项Minterm是逻辑代数中的一个基本概念。对于一个n变量的逻辑函数最小项是包含所有n个变量原变量或反变量的乘积项与项且每个变量在乘积项中只能以原变量或反变量形式出现一次。例如对于三变量函数F(A, B, C)ABCA非、B、C就是一个最小项。n个变量共有2n2^n2n个最小项。最小项的性质在输入变量的任一种取值下有且仅有一个最小项的值为1一个逻辑函数的任意两个最小项之积必为 0一个逻辑函数的全体最小项之和必为1。标准与或表达式Standard Sum of Products, Standard SOP又称最小项之和表达式是将逻辑函数中输出为 1 所对应的所有最小项相加形式为Y∑mii 为输出 Y1 时的最小项编号0≤i≤2n−1 Y\sum_{\mathclap{}} m_{i} i \;为输出\;Y1\;时的最小项编号0 \le i \le2^n-1Y∑​mi​i为输出Y1时的最小项编号0≤i≤2n−1标准与或式最多有2n2^n2n个最小项例如函数F(A, B, C)在m1,m3,m5,m7m_1, m_3, m_5, m_7m1​,m3​,m5​,m7​时为1则其标准与或表达式为F(A,B,C)Σm(1,3,5,7)A′B′CA′BCAB′CABCF(A, B, C) Σm(1, 3, 5, 7) ABC ABC ABC ABCF(A,B,C)Σm(1,3,5,7)A′B′CA′BCAB′CABC标准与或表达式是卡诺图化简的起点。它的优点是唯一、规范但通常不是最简形式。卡诺图化简的目标就是从标准与或表达式出发通过合并几何相邻的最小项消去多余的变量得到最简的与或表达式。最小项编号最小项编号是对 n 变量逻辑函数的最小项进行的十进制编码核心规则是将最小项中的原变量记为 1反变量记为 0按变量顺序组成二进制数再转换为十进制数即为该最小项的编号记为mi\boldsymbol{m_i}mi​i 为十进制编号标准与或式和真值表的联系真值表上输出为 1 所在行对应一个最小项标准与或式具有唯一性和该逻辑函数的真值表严格对应同一个逻辑函数真值表的输出部分有几个1卡诺图方格内就要填几个1都表示了有几个输入组合能够使输出成立9.3 逻辑表达式转卡诺图将逻辑表达式转换为卡诺图核心是先把表达式转为最小项之和的形式再按最小项编号在卡诺图对应方格填 1其余方格填 0或空白9.3.1 格雷码格雷码Gray Code是一种循环码其特点是任意两个相邻码字之间只有一位二进制数不同。这种特性使得它在卡诺图的坐标轴标注中至关重要因为它保证了卡诺图中几何相邻的方格包括上下、左右以及首尾相接的方格所代表的最小项在逻辑上也是相邻的即仅有一个变量不同。只有逻辑相邻的最小项才有可能合并化简。尤其适合用于卡诺图的变量标注和消除电平跳变的竞争冒险。9.3.2 转换步骤第一步确定变量数第二步看表达式是否是标准的与或表达式【即每个乘积项都是最小项】表达式已是标准与或式最小项之和写出表达式中所有最小项的编号原变量对应 1 反变量对应 0绘制对应变量数的卡诺图【卡诺图的行、列变量标注必须使用格雷码顺序】在卡诺图中最小项编号对应的方格填 1其余方格填 0 或 空白坐标变量不能跳跃变量划分例如ABCD 不能划分为 AC、BD只能划分为 AB、CD表达式是普通与或式非标准先将普通与或式利用配项法乘以(XX‾)(X\overline{X})(XX)转化为标准与或式核心给每个乘积项补全缺失的变量再展开。示例转换YABA‾C3变量A,B,C补全缺失变量AB缺失C→AB(CC‾)ABCABC‾m6m7A‾C缺失B→A‾C(BB‾)A‾BCA‾B‾Cm3m1合并最小项Y∑m(1,3,6,7)填卡诺图对应方格填1示例转换 YAB\overline{A}C3 变量 A,B,C \\ 补全缺失变量 \\ AB 缺失 C → AB(C\overline{C})ABCAB\overline{C}m_6m_7\\ \overline{A}C 缺失 B → \overline{A}C(B\overline{B})\overline{A}BC\overline{A}\overline{B}Cm_3m_1\\ 合并最小项Y\sum m(1,3,6,7) \\ 填卡诺图对应方格填 1示例转换YABAC3变量A,B,C补全缺失变量AB缺失C→AB(CC)ABCABCm6​m7​AC缺失B→AC(BB)ABCABCm3​m1​合并最小项Y∑m(1,3,6,7)填卡诺图对应方格填1展开过程中重复的最小项只需填 1 次真值表法找出真值表中输出为 1 的输入组合每个输出为1的输入组合对应一个最小项在卡诺图对应方格填 1 即可表达式含与非、或非、异或等运算先转换为与或式再转标准与或式常见的2-4变量卡诺图结构如下2变量2行×2列行变量和列变量各一个。3变量2行×4列通常行变量一个A列变量两个B, C。4变量4行×4列行变量两个A, B列变量两个C, D。卡诺图填写步骤确定变量与图形根据函数变量数画出对应大小的卡诺图并按格雷码顺序标注行和列。填入“1”将标准与或表达式中包含的每一个最小项在卡诺图对应的方格中填入“1”。填入“0”或留空其余方格可填入“0”或留空通常留空更清晰。若函数包含约束项则在对应方格中填入“×”或“d”见9.5节例如对于函数F(A, B, C) Σm(1, 3, 5, 7)其3变量卡诺图填写如下假设行变量为A列变量为BC顺序为00, 01, 11, 10图中m1m3m5m7m_1m_3m_5m_7m1​m3​m5​m7​位置填入了 19.4 卡诺图化简的通用步骤卡诺图化简的核心是利用相邻最小项合并消去互补变量最终得到乘积项数最少、每个乘积项变量数最少的最简与或表达式9.4.1 步骤 1将逻辑表达式转为最小项之和形式9.4.2 步骤 2绘制对应变量数的卡诺图卡诺图的行、列变量标注必须使用格雷码顺序这是卡诺图化简的关键前提9.4.3 步骤 3合并相邻的 1 方格合并的方格数必须是2k2^k2k个 k0,1,2,3⋯几何相邻即逻辑相邻包括上下、左右、四角相邻圈要尽可能大圈越大消去的变量越多乘积项越简单每个 1 必须被圈到至少 1 次允许重复圈但圈的总数要最少减少乘积项数卡诺圈只能是矩形或正方形且方格数必须是2k2^k2kk0,1,2,3⋯不能是不规则形状如 Z 型、L 型卡诺圈的数量尽量少每个圈尽量大。圈的方格数满足2k2^k2kk0,1,2,3⋯消去 k 个变量先圈唯一的选择【优先圈 只有一种圈法的 1 】再圈最大的最有吸引力的【优先圈大圈消去更多变量】最后用最大、最少的圈圈上剩余的19.4.4 步骤 4写出每个圈对应的乘积项变量取值始终不变→保留1 用原变量表示0 用反变量表示变量取值变化0 和 1 都出现→消去该变量9.4.5 步骤 5所有乘积项相或得到最简与或式最终表达式 圈 1 的乘积项 圈 2 的乘积项 … 圈 n 的乘积项示例化简 Y ∑m(0,2,4,6,8,10,12,14)4变量A,B,C,D\sum m(0,2,4,6,8,10,12,14)4 变量 A,B,C,D∑m(0,2,4,6,8,10,12,14)4变量A,B,C,D绘制 4 变量卡诺图并填 14 变量4×44\times44×4方格行AB列CD分析如下左侧4个1 和 右侧 4个1 满足 左右相邻规则以及满足2k(k3)2^k (k3)2k(k3)个 1可以直接圈住全部 8 个 1 方格圈内变量的取值变化A0 和 1 都出现 → 消去B0 和 1 都出现 → 消去C0 和 1 都出现 → 消去D始终为 0 【不变的如果是 0 用反变量如果是1 用原变量】→ 保留反变量D‾\overline{D}D因此最简与或式为YD‾Y \overline{D}YD温馨提示卡诺图化简也可以通过圈 0 化简得到其反函数的表达式然后取反就可以得到原函数的表达式9.5 约束项无关项的卡诺图化简9.5.1 约束条件在实际数字系统中某些输入组合由于物理限制或特定设计永远不会出现或者当它们出现时输出是“无关紧要”的既可以为1也可以为0。这些输入组合对应的最小项称为约束项或无关项Don‘t Care Terms常用di或×\boldsymbol{d_i} 或 \boldsymbol{\times}di​或×表示9.5.2 具有约束的逻辑函数由具有约束关系的输入变量所决定的逻辑函数就称为具有约束的逻辑函数逻辑函数的最小项之和形式需标注约束项格式为Y∑m(有效最小项)∑d(约束项)Y \sum m(\text{有效最小项}) \sum d(\text{约束项})Y∑m(有效最小项)∑d(约束项)所有约束项的逻辑和恒为 0即∑di0\sum d_i0∑di​0约束条件表达式可能需要转化为约束条件恒为0的形式示例约束条件 AB 1 转化恒为 0 形式A‾⋅B‾0\overline{A} \cdot \overline{B} 0A⋅B0约束条件的特点就是A和B里面至少有一个 1 A和B不能同时为 0 利用约束条件的特点推导或者对两端取反也可以推导出来约束项在卡诺图中填×\boldsymbol{\times}×化简时的核心原则是对化简有利则视为 1对化简不利则视为 0化简结果中要同时写上约束条件。最好将约束条件也做相应化简。9.5.3 任意项若逻辑函数中某些输入变量取值组合客观上可以出现但出现后输出结果不影响系统功能这些取值组合对应的最小项称为任意项或无关项 记为di或×\boldsymbol{d_i} 或 \boldsymbol{\times}di​或×任意项在卡诺图中填×\boldsymbol{\times}×化简时的核心原则是对化简有利则视为 1对化简不利则视为 0化简结果中要同时写上约束条件。最好将约束条件也做相应化简。例如一个用8421BCD码表示十进制数的电路输入是4位二进制但只使用0000到1001这十种组合代表0-9。1010到1111这六种组合是无效的永远不会出现它们就是该电路的约束项。利用约束项往往能得到比不考虑约束项更简化的结果这体现了卡诺图化简在处理实际、非完全定义逻辑函数时的强大优势。9.6 本节小节本节系统阐述了使用卡诺图化简逻辑函数的完整方法论基础理解了最小项与标准与或表达式是卡诺图化简的起点。工具掌握了基于格雷码构建和填写卡诺图的方法这是图形化分析的基础。核心熟练运用圈图规则与化简步骤是获得最简与或表达式的关键。进阶学会了如何利用约束项无关项来进一步优化化简结果以应对实际工程问题。卡诺图化简法将抽象的代数运算转化为直观的图形操作极大地提高了化简的效率和准确性。尽管对于变量较多6的情况卡诺图会变得复杂此时可能需要借助计算机辅助的奎因-麦克拉斯基法等算法但对于中小规模组合逻辑电路的设计与分析卡诺图依然是不可替代的经典工具。建议通过大量练习来巩固圈图的直觉并尝试将化简结果用与非门等基本门电路实现以完成从理论到实践的闭环。