异或/同或门、奇校验/偶校验门

| # 异或/同或门 奇校验/偶校验门

库： | 逻辑门
引入版本： | 异或门、奇/偶校验门：2.0 Beta 1；同或门：2.0 Beta 6
外观： |
| 异或门 | 同或门 | 奇校验门 | 偶校验门
--- | --- | --- | --- | ---
ANSI： |  |  |  |
IEC： |  |  |  |

## 行为

异或门、同或门、奇校验门与偶校验门分别计算其输入对应的逻辑函数，并将结果输出。

默认情况下，任何未连接的输入（连着导线视作有连接）都会被忽略。 因此，如果放置一个 5 输入的逻辑门，但只连接其中两个输入，它的行为就和一个 2 输入门一致。
但如果所有输入都未连接，则输出为错误值（E）。 如果您希望强制要求所有输入都必须连接，可以通过菜单 | 项目 | > | 选项… |，在 | 仿真 | 选项卡中， 将 未定义时的门输出 设置为 对未定义的输入给出错误值 来启用该行为。

这些门在 2 输入时的真值表如下。

x | y | 异或门 | 同或门 | 奇校验门 | 偶校验门
--- | --- | --- | --- | --- | ---
0 | 0 | 0 | 1 | 0 | 1
0 | 1 | 1 | 0 | 1 | 0
1 | 0 | 1 | 0 | 1 | 0
1 | 1 | 0 | 1 | 0 | 1

2 输入时，奇校验门与异或门的行为相同，偶校验门与同或门的行为相同。 但当输入数量多于 2 时，异或门在“恰好只有一个输入为 1”时输出 1，奇校验门在“为 1 的输入个数为奇数”时输出 1。 同或门在“不是恰好只有一个 1”时输出 1，偶校验门在“为 1 的输入个数为偶数”时输出 1。 此外，异或门与同或门还提供了一个名为 多输入行为 的属性，可将其配置为采用奇/偶校验的规则。

若任一输入为错误值（例如同一根导线上出现冲突）或悬空，则输出为错误值。

多位版本会对输入的每一位分别执行对应的 1 位变换。

注意：有些资料认为“弧形异或门”的行为应当和奇校验门一致，但这一点并无共识。 Logisim-evolution 默认的异或行为基于 IEEE 91 标准，同时也符合“互斥或”的直观含义：服务员问你配菜要土豆泥、胡萝卜、豌豆还是凉拌卷心菜，你只能选一个，而不是三个（不管有些资料怎么说）。 如需使用奇偶校验的规则，可修改异或门与同或门的 多输入行为 属性。

## 引脚（假设组件朝东）

西侧（输入，位宽由“数据位宽”决定）

  组件的输入端。输入数量由 输入端口数 属性指定。 位宽由 数据位宽 属性决定。

  注意，如果使用ANSI形状的逻辑门，或门和或非门的西侧会是弧形的，但输入引脚仍然沿直线排列。

东侧（输出，位宽由“数据位宽”决定）

  门的输出值，按上文规则由当前输入计算得到。

## 属性

当组件被选中或正在放置时，数字键 0–9 可修改 输入端口数， Alt-0–Alt-9 可修改 数据位宽， 方向键可修改 朝向。

朝向
  输出相对于输入的位置。
数据位宽
  组件输入与输出的位宽。
门尺寸
  决定组件绘制为较宽或较窄的版本。 该属性不会影响输入数量，输入数量由 输入端口数 属性指定。 如果选择了ANSI形状， 当输入数量超过形状本身所能容纳的数量时， 逻辑门会绘制出“翼状”结构以容纳额外的输入。
输入端口数
  指定西侧输入引脚的数量。
输出值
  指定逻辑假/真如何映射为输出值。默认情况下， 假为低电平（0），真为高电平（1）； 其中之一也可以改为高阻值， 以支持线与、线或连接，详见 与/或/与非/或非门 文档中的示例。
标签
  与该逻辑门关联的标签文本。
标签字体
  标签的显示字体。
多输入行为（仅限异或/同或门）
  当输入端不少于 3 个时，异或/同或门的输出规则可以设为： “当输入中只有一个为 1 时”（默认），或“当输入中有奇数个 1 时”（校验）。

## 手形工具行为

无。

## 文本工具行为

可编辑该逻辑门的标签。

返回 库参考手册