第 5 讲:组合逻辑电路的分析与设计
组合逻辑电路的输出只取决于当前输入,不含记忆元件和状态反馈。分析是“电路 → 功能”,设计是“功能 → 电路”。
分析流程
给定逻辑图:
- 从输入向输出逐级给中间节点命名;
- 写每一级逻辑表达式;
- 代入并化简输出表达式;
- 必要时列真值表;
- 用人话说明功能。
“功能”不只是重复表达式。例如输出为输入中 1 的奇偶性,应说明是奇偶校验;两个输出分别是异或和与,应说明是半加器。
低有效信号通常用上划线、小圆圈或名称后缀表示。分析前先确认有效电平,避免把“输出低表示选中”误解为普通反相。
设计流程
1. 定义变量
把自然语言中的条件映射为输入变量,并明确 0/1 各代表什么。输出也要定义“1 表示动作发生”还是“0 表示动作发生”。
2. 建真值表
枚举所有输入组合,根据需求填输出。永远不会出现的输入可标无关项,但必须有事实依据。
3. 写并化简函数
可从最小项写标准与或式,再用 Karnaugh 图化简。多个输出分别化简,但也应寻找能共享的中间项,实际门数可能更少。
4. 选器件并变换门型
根据要求使用基本门、NAND/NOR、译码器、MUX、加法器等。若指定器件是低有效输出,逻辑式要做相应变换。
5. 验证
重新列出电路真值表,与需求逐项比较;再考虑门延迟、扇出、未用输入和冒险。
多输出设计
多个输出常有公共乘积项。若每个输出独立做到代数最简,可能重复大量门。先写
等共享节点,再组合输出,可能降低总成本。PLD/FPGA 实现中综合工具也会做共享优化。
只用 NAND 或 NOR
两级与或式适合 NAND–NAND:
或与式适合 NOR–NOR。若逻辑图中相邻级的反相气泡相消,可以直接“气泡推移”,但需保持信号有效极性一致。
组合电路的时间行为
理想 Boolean 模型只看稳态。真实输入变化后,各级门要经过传播延迟,输出可能短暂错误。设计若用于异步控制、时钟或复位,必须检查冒险;若输出只在充分稳定后被寄存,毛刺影响可能减小,但仍需满足建立时间。
一个典型多数表决器
三个输入 ,至少两个为 1 时输出 1。真值表化简得
它也正是全加器的进位函数。这个例子说明相同 Boolean 函数可以有不同语义,电路功能由输入输出定义决定。
交付检查
- 变量含义和有效电平已写清;
- 真值表没有漏组合;
- 无关项有来源;
- 化简式和原表等价;
- 指定器件的使能端已正确处理;
- 多输出是否能共享逻辑;
- 真实实现是否存在总线冲突或冒险。