学习目标
- 将 B2B1B0 读取为取值范围 0 至 7 的 3 位数。
- 直接根据最低有效位推导 Even。
- 根据逻辑门推导准确的 Pattern 和 AtLeast3 等式。
- 验证全部八个稳定输入向量,并识别标签错误的需求。
- 比较各并行输出的路径深度和潜在转换行为。
工作原理
生产电路接收 3 位数 B2B1B0,并通过三个独立支路驱动三个输出指示灯。电路包含三个开关、一个非门、一个与门、一个异或门、两个或门和三个指示灯,共 11 个非文本组件;其中没有数码显示器。
- Even = ¬B0。当输入值为 0、2、4 或 6 时,上方指示灯为高电平。
- Pattern = B2 + (B1 ⊕ B0)。当输入值为 1、2、4、5、6 或 7 时,中间指示灯为高电平。
- AtLeast3 = B2 + B1·B0。当输入值为 3 至 7 时,下方指示灯为高电平。
画布注释将中间结果称为“2 的幂”,但与 B2 相连的或门会使 5、6、7 也输出高电平。注释还将阈值描述为 B2 = 1(至少为 4),而已连接的 B1·B0 项有意将数值 3 纳入其中。此处的等式和真值表因此以可执行组件图为准,而不采用这些相互矛盾的注释。
这使该模板尤其适合工程验证:根据接线推导每个输出,枚举全部八种输入状态,并用实际实现的函数检验需求标签,不能预先假定二者一致。
真值表
表中列出 B2B1B0 的全部八个值。输出遵循实际等式 Even = ¬B0、Pattern = B2 + (B1⊕B0) 和 AtLeast3 = B2 + B1·B0。
| 输入 | 输出 | |||||
|---|---|---|---|---|---|---|
| B2 | B1 | B0 | Even | Pattern | AtLeast3 | |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 (000):偶数;Pattern 和 AtLeast3 均无效。 |
| 0 | 0 | 1 | 0 | 1 | 0 | 1 (001):奇数;低位异或使 Pattern 有效。 |
| 0 | 1 | 0 | 1 | 1 | 0 | 2 (010):偶数;低位异或使 Pattern 有效。 |
| 0 | 1 | 1 | 0 | 0 | 1 | 3 (011):奇数;低两位相同,因此 Pattern 为低电平,AtLeast3 为高电平。 |
| 1 | 0 | 0 | 1 | 1 | 1 | 4 (100):偶数;B2 使 Pattern 和 AtLeast3 均有效。 |
| 1 | 0 | 1 | 0 | 1 | 1 | 5 (101):奇数;B2 使 Pattern 和 AtLeast3 保持高电平。 |
| 1 | 1 | 0 | 1 | 1 | 1 | 6 (110):偶数;B2 使 Pattern 和 AtLeast3 保持高电平。 |
| 1 | 1 | 1 | 0 | 1 | 1 | 7 (111):奇数;B2 使 Pattern 和 AtLeast3 保持高电平。 |
布尔表达式
当且仅当最低有效位 B0 为 0 时,二进制整数为偶数。
B2 为高电平,或 B1 与 B0 不同时,中间指示灯为高电平。这正是生产电路实际实现的 Pattern 函数。
B2 覆盖数值 4–7,B1·B0 则补充数值 3,因此下方指示灯可检测大于等于 3 的数值。
逐步尝试
在上方嵌入式电路中设置输入,然后阅读预期结果并验证。
- 1B = 000预期:
Even = 1, Pattern = 0, AtLeast3 = 0观察结果: 000 将 Even 驱动为高电平,并使两个多门支路保持低电平。 - 2B = 011预期:
Even = 0, Pattern = 0, AtLeast3 = 1观察结果: 011 证明下方支路包含数值 3,此时中间支路的异或项为 0。 - 3B = 100预期:
Even = 1, Pattern = 1, AtLeast3 = 1观察结果: 100 确实是 2 的幂,并通过 B2 将 Pattern 和 AtLeast3 同时驱动为高电平。 - 4B = 111预期:
Even = 0, Pattern = 1, AtLeast3 = 1观察结果: 111 同样会将 Pattern 驱动为高电平,说明中间支路并非 2 的幂检测器。
所用元件
实际应用
与奇偶校验无关的偶数检测。 对于二进制整数,最低有效位直接决定该数能否被 2 整除。
阈值译码。 小型比较器可化简为 B2 + B1·B0 等紧凑的与/或表达式。
模式识别。 异或与或逻辑网络可对选定输入集合进行分类,用于控制或诊断。
规格验证。 穷举真值表可以揭示标签、预期行为与实际接线之间的差异。
控制状态生成。 可在相互独立的组合支路上并行计算同一输入字的多种属性。
常见问题
中间指示灯是否检测 2 的幂?
不是。其等式为 Pattern = B2 + (B1 ⊕ B0),因此输入值为 1、2、4、5、6 和 7 时均为高电平。真正的 3 位 2 的幂检测器只能在 001、010 和 100 时输出高电平,需要实现“恰有一位置 1”的函数。
为什么偶数检测只使用 B0?
在二进制数中,B0 的权值为 1。B0 = 0 的数都能被 2 整除,因此一个反相器即可实现:Even = ¬B0。
该电路如何检测大于等于 3 的数值?
B2 = 1 的所有数值均位于 4–7。B2 = 0 时,只有 011 满足阈值,B1·B0 可检测该情况。对两项进行或运算得到 B2 + B1·B0,它在数值 3–7 时为高电平。
该模板中是否有十进制数码显示器?
没有。生产组件图包含三个开关和三个输出指示灯,但没有数码显示组件。如需数值读出,应添加兼容的显示器,并按照其引脚约定连接 B0–B2。
分析器各输出的时序是否完全相同?
异或/或逻辑的 Pattern 路径包含两级,B0 和 B1 所经过的与/或逻辑 AtLeast3 路径同样包含两级,而 B2 的直接阈值路径只有一级。因此,即使每个稳定真值表行都正确,具有时序特性的实现仍可能存在不相等的延迟和转换冒险。