逻辑表达式与真值表转换
逻辑表达式与真值表转换真值表与逻辑表达式是数字电路设计的两种等价表示掌握它们之间的转换是基本功。 本章学习要点理解真值表的结构和表示方法掌握从真值表写出逻辑表达式最小项之和掌握从逻辑表达式列出真值表了解最大项之积的表达方式1️⃣ 真值表基础什么是真值表 真值表的定义 真值表Truth Table是一种列出逻辑函数所有输入组合 及其对应输出的表格。 ┌─────────────────────────────────────────────────────────────┐ │ │ │ 真值表 列出所有可能的输入组合 对应的输出值 │ │ │ │ 对于n个输入变量真值表有 2ⁿ 行 │ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 2输入与门的真值表 │ │ │ ├───────┬───────┬───────┐ │ │ │ │ A │ B │ Y │ │ │ │ ├───────┼───────┼───────┤ │ │ │ │ 0 │ 0 │ 0 │ │ │ │ │ 0 │ 1 │ 0 │ │ │ │ │ 1 │ 0 │ 0 │ │ │ │ │ 1 │ 1 │ 1 │ │ │ │ └───────┴───────┴───────┘ │ │ │ │ └─────────────────────────────────────────────────────────────┘真值表的行数规律 输入变量数与真值表行数 ┌─────────────────────────────────────────────────────────────┐ │ │ │ 1个变量 2¹ 2 行 (0, 1) │ │ 2个变量 2² 4 行 (00, 01, 10, 11) │ │ 3个变量 2³ 8 行 │ │ 4个变量 2⁴ 16 行 │ │ n个变量 2ⁿ 行 │ │ │ │ 规律每增加一个变量行数翻倍 │ │ │ └─────────────────────────────────────────────────────────────┘真值表的排列顺序 标准的输入排列顺序二进制递增 对于3变量函数 A, B, C ┌─────────────────────────────────────────────────────────────┐ │ │ │ 标准顺序自然二进制计数 │ │ ┌───────┬───────┬───────┐ │ │ │ A │ B │ C │ │ │ ├───────┼───────┼───────┤ │ │ │ 0 │ 0 │ 0 │ ← m0 │ │ │ 0 │ 0 │ 1 │ ← m1 │ │ │ 0 │ 1 │ 0 │ ← m2 │ │ │ 0 │ 1 │ 1 │ ← m3 │ │ │ 1 │ 0 │ 0 │ ← m4 │ │ │ 1 │ 0 │ 1 │ ← m5 │ │ │ 1 │ 1 │ 0 │ ← m6 │ │ │ 1 │ 1 │ 1 │ ← m7 │ │ └───────┴───────┴───────┘ │ │ │ │ ⚠️ 最后一列通常从0→1快速变化LSB │ │ 第一列变化最慢MSB │ │ │ └─────────────────────────────────────────────────────────────┘2️⃣ 从真值表到逻辑表达式最小项Minterm 最小项的定义 对于n个变量最小项是所有变量的乘积项 每个变量以原变量或反变量形式出现且仅出现一次。 ┌─────────────────────────────────────────────────────────────┐ │ │ │ 【示例】3变量 A, B, C 的最小项 │ │ │ │ 变量状态 │ 最小项 │ 符号表示 │ │ ───────────────────────────────────────────── │ │ A0,B0,C0 │ Ā·B̄·C̄ │ m0 │ │ A0,B0,C1 │ Ā·B̄·C │ m1 │ │ A0,B1,C0 │ Ā·B·C̄ │ m2 │ │ A0,B1,C1 │ Ā·B·C │ m3 │ │ A1,B0,C0 │ A·B̄·C̄ │ m4 │ │ A1,B0,C1 │ A·B̄·C │ m5 │ │ A1,B1,C0 │ A·B·C̄ │ m6 │ │ A1,B1,C1 │ A·B·C │ m7 │ │ │ │ 规律 │ │ - 变量1 → 写原变量 │ │ - 变量0 → 写反变量 │ │ │ └─────────────────────────────────────────────────────────────┘最小项之和Sum of Minterms 从真值表写出逻辑表达式的步骤 ┌─────────────────────────────────────────────────────────────┐ │ │ │ 【方法】 │ │ │ │ Step 1: 找出所有输出为1的行 │ │ │ │ Step 2: 对每行写出对应的最小项 │ │ 变量1写原变量变量0写反变量 │ │ │ │ Step 3: 将所有最小项相加OR运算 │ │ │ └─────────────────────────────────────────────────────────────┘实例演练 示例13输入多数表决器 ┌─────────────────────────────────────────────────────────────┐ │ │ │ 【问题】Y1 当且仅当 输入A,B,C中1的个数≥2 │ │ │ │ 【真值表】 │ │ ┌───────┬───────┬───────┬───────┐ │ │ │ A │ B │ C │ Y │ │ │ ├───────┼───────┼───────┼───────┤ │ │ │ 0 │ 0 │ 0 │ 0 │ │ │ │ 0 │ 0 │ 1 │ 0 │ │ │ │ 0 │ 1 │ 0 │ 0 │ │ │ │ 0 │ 1 │ 1 │ 1 │ ← m3 ĀBC │ │ │ 1 │ 0 │ 0 │ 0 │ │ │ │ 1 │ 0 │ 1 │ 1 │ ← m5 A B̄C │ │ │ 1 │ 1 │ 0 │ 1 │ ← m6 AB C̄ │ │ │ 1 │ 1 │ 1 │ 1 │ ← m7 ABC │ │ └───────┴───────┴───────┴───────┘ │ │ │ │ 【写出最小项之和】 │ │ │ │ Y m3 m5 m6 m7 │ │ ĀBC AB̄C ABC̄ ABC │ │ │ │ 【化简】使用卡诺图或代数法 │ │ │ │ Y AB AC BC │ │ 或 │ │ Y AB BC AC (三个乘积项) │ │ │ └─────────────────────────────────────────────────────────────┘ 示例28421BCD码校验器 ┌─────────────────────────────────────────────────────────────┐ │ │ │ 【问题】检测输入是否为有效的8421BCD码0~9 │ │ │ │ 【真值表】(输入为4位二进制 D C B A) │ │ │ │ ┌─────┬─────┬─────┬─────┬─────┐ │ │ │ D │ C │ B │ A │ Y │ │ │ ├─────┼─────┼─────┼─────┼─────┤ │ │ │ 0 │ 0 │ 0 │ 0 │ 1 │ ← 有效 0 │ │ │ 0 │ 0 │ 0 │ 1 │ 1 │ ← 有效 1 │ │ │ 0 │ 0 │ 1 │ 0 │ 1 │ ← 有效 2 │ │ │ ...0~9都有效... │ │ │ 1 │ 0 │ 1 │ 0 │ 0 │ ← 无效 A │ │ │ 1 │ 0 │ 1 │ 1 │ 0 │ ← 无效 B │ │ │ 1 │ 1 │ 0 │ 0 │ 0 │ ← 无效 C │ │ │ 1 │ 1 │ 0 │ 1 │ 0 │ ← 无效 D │ │ │ 1 │ 1 │ 1 │ 0 │ 0 │ ← 无效 E │ │ │ 1 │ 1 │ 1 │ 1 │ 0 │ ← 无效 F │ │ └─────┴─────┴─────┴─────┴─────┘ │ │ │ │ 【最小项之和】 │ │ │ │ Y Σm(0,1,2,3,4,5,6,7,8,9) │ │ m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 │ │ │ │ 【简化分析】 │ │ Y0 只有当输入≥10时即 D1 且 (C1 或 (B1 且 A1)) │ │ 所以 Ȳ D·(C B·A) │ │ Y D̄ C̄·B̄ C̄·Ā D̄ C̄·(B̄ Ā) │ │ │ └─────────────────────────────────────────────────────────────┘3️⃣ 从逻辑表达式到真值表步骤方法 从逻辑表达式列出真值表的步骤 ┌─────────────────────────────────────────────────────────────┐ │ │ │ Step 1: 确定变量数和真值表行数2ⁿ行 │ │ │ │ Step 2: 按标准顺序列出所有输入组合 │ │ │ │ Step 3: 对每个输入组合计算输出值 │ │ 代入表达式逐一计算 │ │ │ │ Step 4: 填入真值表 │ │ │ └─────────────────────────────────────────────────────────────┘实例演练 示例列出 Y A B̄C 的真值表 Step 1: 3个变量 → 2³ 8行 Step 2: 列出所有输入组合 ┌───────┬───────┬───────┐ │ A │ B │ C │ ├───────┼───────┼───────┤ │ 0 │ 0 │ 0 │ │ 0 │ 0 │ 1 │ │ 0 │ 1 │ 0 │ │ 0 │ 1 │ 1 │ │ 1 │ 0 │ 0 │ │ 1 │ 0 │ 1 │ │ 1 │ 1 │ 0 │ │ 1 │ 1 │ 1 │ └───────┴───────┴───────┘ Step 3: 逐一计算 Y A B̄C m0: A0, B0, C0 → Y 0 (1·0) 0 0 0 m1: A0, B0, C1 → Y 0 (1·1) 0 1 1 m2: A0, B1, C0 → Y 0 (0·0) 0 0 0 m3: A0, B1, C1 → Y 0 (0·1) 0 0 0 m4: A1, B0, C0 → Y 1 (1·0) 1 0 1 m5: A1, B0, C1 → Y 1 (1·1) 1 1 1 m6: A1, B1, C0 → Y 1 (0·0) 1 0 1 m7: A1, B1, C1 → Y 1 (0·1) 1 0 1 Step 4: 填入真值表 ┌───────┬───────┬───────┬───────┐ │ A │ B │ C │ Y │ ├───────┼───────┼───────┼───────┤ │ 0 │ 0 │ 0 │ 0 │ │ 0 │ 0 │ 1 │ 1 │ │ 0 │ 1 │ 0 │ 0 │ │ 0 │ 1 │ 1 │ 0 │ │ 1 │ 0 │ 0 │ 1 │ │ 1 │ 0 │ 1 │ 1 │ │ 1 │ 1 │ 0 │ 1 │ │ 1 │ 1 │ 1 │ 1 │ └───────┴───────┴───────┴───────┘ 验证Y Σm(1,4,5,6,7) ✓4️⃣ 最大项与最大项之积最大项Maxterm 最大项的定义 对于n个变量最大项是所有变量的和项 每个变量以原变量或反变量形式出现且仅出现一次。 ┌─────────────────────────────────────────────────────────────┐ │ │ │ 【与最小项的对比】 │ │ │ │ ┌──────────────┬────────────────┬────────────────┐ │ │ │ 输入 │ 最小项m │ 最大项M │ │ │ │ A B C │ A·B·C │ ABC │ │ │ ├──────────────┼────────────────┼────────────────┤ │ │ │ 0 0 0 │ Ā·B̄·C̄ (m0) │ ABC (M0) │ │ │ │ 0 0 1 │ Ā·B̄·C (m1) │ ABĀ (M1) │ │ │ │ 0 1 0 │ Ā·B·C̄ (m2) │ AĀC̄ (M2) │ │ │ │ ... │ ... │ ... │ │ │ │ 1 1 1 │ A·B·C (m7) │ ĀB̄C̄ (M7) │ │ │ └──────────────┴────────────────┴────────────────┘ │ │ │ │ 规律 │ │ - 最小项变量0写反变量变量1写原变量 │ │ - 最大项变量0写原变量变量1写反变量 │ │ - mⱼ 与 Mⱼ 互为补集mⱼ M̄ⱼ │ │ │ └─────────────────────────────────────────────────────────────┘最大项之积Product of Maxterms 从真值表写出最大项之积 【方法】 Step 1: 找出所有输出为0的行 Step 2: 对每行写出对应的最大项变量0写原变量变量1写反变量 Step 3: 将所有最大项相乘AND运算 【示例】 ┌───────┬───────┬───────┬───────┐ │ A │ B │ C │ Y │ ├───────┼───────┼───────┼───────┤ │ 0 │ 0 │ 0 │ 0 │ ← M0 ABC │ 0 │ 0 │ 1 │ 1 │ │ 0 │ 1 │ 0 │ 0 │ ← M2 AĀC̄ │ 0 │ 1 │ 1 │ 1 │ │ 1 │ 0 │ 0 │ 0 │ ← M4 ĀBC │ 1 │ 0 │ 1 │ 1 │ │ 1 │ 1 │ 0 │ 1 │ │ 1 │ 1 │ 1 │ 1 │ └───────┴───────┴───────┴───────┘ Y Σm(1,3,5,6,7) ΠM(0,2,4) (ABC)(AĀC̄)(ĀBC)最小项之和 vs 最大项之积⚖️ 两种表达式的对比 ┌─────────────────────────────────────────────────────────────┐ │ │ │ ┌────────────────────────────────────────────────────┐ │ │ │ Y Σm(输出为1的最小项) │ │ │ │ 或 │ │ │ │ Y ΠM(输出为0的最大项) │ │ │ │ │ │ │ │ Σm Sum of Minterms 最小项之和 OR形式的1 │ │ │ │ ΠM Product of Maxterms 最大项之积 AND形式 │ │ │ └────────────────────────────────────────────────────┘ │ │ │ │ 何时用哪种 │ │ - 输出1少 → 用最小项之和更简洁 │ │ - 输出0少 → 用最大项之积更简洁 │ │ │ │ ⚠️ 两种形式可以互相转换 │ │ Y Σm(i,j,k) ⟺ Y ΠM(其他所有索引) │ │ │ └─────────────────────────────────────────────────────────────┘5️⃣ 完整设计流程回顾 组合逻辑电路设计完整流程 ┌─────────────────────────────────────────────────────────────┐ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 开始 │ │ │ └────────────────────┬────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 1. 确定输入输出明确电路功能 │ │ │ └────────────────────┬────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 2. 列出真值表 │ │ │ └────────────────────┬────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 3. 写出逻辑表达式最小项之和 │ │ │ └────────────────────┬────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 4. 化简逻辑表达式 │ │ │ │ - 代数法布尔代数定律 │ │ │ │ - 卡诺图法可视化 │ │ │ └────────────────────┬────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 5. 画出电路图 │ │ │ │ - 选择合适的逻辑门 │ │ │ │ - 优化门电路与非门/或非门实现 │ │ │ └────────────────────┬────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 6. 验证设计 │ │ │ └────────────────────┬────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 完成 │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ 本章小结✅ 逻辑表达式与真值表转换要点 ┌─────────────────────────────────────────────────────────────┐ │ 【最小项】 │ │ - 定义n个变量的乘积项每个变量出现一次 │ │ - 变量0 → 写反变量变量1 → 写原变量 │ │ - 符号m₀, m₁, m₂, ... │ │ - 性质mⱼ M̄ⱼ互补 │ │ │ │ 【最大项】 │ │ - 定义n个变量的和项每个变量出现一次 │ │ - 变量0 → 写原变量变量1 → 写反变量 │ │ - 符号M₀, M₁, M₂, ... │ │ │ │ 【表达式形式】 │ │ - 最小项之和Y Σm(i,j,k...) │ │ - 最大项之积Y ΠM(i,j,k...) │ │ │ │ 【转换关系】 │ │ Y Σm(1的行) ⟺ Y ΠM(0的行) │ │ │ └─────────────────────────────────────────────────────────────┘ 延伸阅读《数字电子技术基础》- 阎石 - 第4章组合逻辑电路工具在线真值表生成器实践完成5道真值表↔表达式互化练习