贵州电子信息职业技术学院实训中心电工电子与控制 · 虚拟仿真

二进制数分析器

分析 3 位二进制数的多门电路。使用 NOT、AND、OR 和 XOR 门检测二进制数据中的模式与属性。

交互式仿真

本地工程状态

原作者完整工程已本地恢复;实际验证范围见交付清单。原远程交互电路已停用。

载入 H22 二进制数分析器 的本机副本。载入前会确认当前工程的保存选择。

学习目标

  • 将 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。

输入输出
B2B1B0EvenPatternAtLeast3
0001000 (000):偶数;Pattern 和 AtLeast3 均无效。
0010101 (001):奇数;低位异或使 Pattern 有效。
0101102 (010):偶数;低位异或使 Pattern 有效。
0110013 (011):奇数;低两位相同,因此 Pattern 为低电平,AtLeast3 为高电平。
1001114 (100):偶数;B2 使 Pattern 和 AtLeast3 均有效。
1010115 (101):奇数;B2 使 Pattern 和 AtLeast3 保持高电平。
1101116 (110):偶数;B2 使 Pattern 和 AtLeast3 保持高电平。
1110117 (111):奇数;B2 使 Pattern 和 AtLeast3 保持高电平。

布尔表达式

Even=B0‾\text{Even} = \overline{B_0}

当且仅当最低有效位 B0 为 0 时,二进制整数为偶数。

Pattern=B2+(B1⊕B0)\text{Pattern} = B_2 + (B_1 \oplus B_0)

B2 为高电平,或 B1 与 B0 不同时,中间指示灯为高电平。这正是生产电路实际实现的 Pattern 函数。

AtLeast3=B2+B1⋅B0\text{AtLeast3} = B_2 + B_1 \cdot B_0

B2 覆盖数值 4–7,B1·B0 则补充数值 3,因此下方指示灯可检测大于等于 3 的数值。

逐步尝试

在上方嵌入式电路中设置输入,然后阅读预期结果并验证。

  1. 1
    B = 000
    预期: Even = 1, Pattern = 0, AtLeast3 = 0
    观察结果: 000 将 Even 驱动为高电平,并使两个多门支路保持低电平。
  2. 2
    B = 011
    预期: Even = 0, Pattern = 0, AtLeast3 = 1
    观察结果: 011 证明下方支路包含数值 3,此时中间支路的异或项为 0。
  3. 3
    B = 100
    预期: Even = 1, Pattern = 1, AtLeast3 = 1
    观察结果: 100 确实是 2 的幂,并通过 B2 将 Pattern 和 AtLeast3 同时驱动为高电平。
  4. 4
    B = 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 的直接阈值路径只有一级。因此,即使每个稳定真值表行都正确,具有时序特性的实现仍可能存在不相等的延迟和转换冒险。

继续学习

进阶课程