繁体   English   中英

真值为1101的逻辑门

[英]Logic gate whose truth is 1101

有没有办法从想要的真值表中找到逻辑门或如何制作更复杂的门/位运算符我希望有这个真值表:

0 0 = 1

0 1 = 1

1 0 = 0

1 1 = 1

如果您无法从表格中看到它,则有一种正式的方法可以做到这一点。 为表写出sum of products表达式的总和。
如果0 0 = 1 ,则 A'B' 在表达式中。
如果0 1 = 1 ,则 A'B 在表达式中。
如果1 1 = 1 ,则 AB 在表达式中。

那么,F = A'B' + A'B + AB
现在,简化表达式:

F = A'B' + A'B + AB
F = A'(B'+B) + AB      Distribution Law
F = A'(1) + AB         Complement Law
F = A' + AB            Identity Law
F = A'(B + 1) + AB     Annulment Law
F = A'B + A' + AB      Distribution Law
F = (A' + A)B + A'     Distribution Law
F = (1)B + A'          Complement Law
F = B + A'             Identity Law

not(A) or B

您必须使用not门和or门。

替代解决方案

正如评论中所指出的,您可以从 function 的negated版本中得出。
如果1 0 = 0 ,则 F' = AB'
简单地说,F = not(A and not(B)) 如果您分发not ,那么它将对应于与上面相同的 boolean 表达式。

感谢指出更短方法的评论。

真值表恰好给出了 0 的一种可能性。这与 OR 运算符的模式相同(也是 0 的一种可能性),除了第一个操作数应该被翻转。 因此,应该取反第一个操作数以获得所需的结果:

NOT(A) OR B

这实际上是蕴涵运算符:当且仅当第一个操作数为真而第二个不为真时,表达式为假:

A => B

如果我们用操作数 00、01、10 和 11 的 4 个结果位来表示一个运算符,那么这个运算符的代码为 1101(从上到下阅读 output 列)。 对于所有可能的操作,我们有这个:

Output 表达
0000 FALSE
0001 A AND B
0010 A AND NOT(B)
0011 A
0100 NOT(A) AND B
0101 B
0110 A XOR B
0111 A OR B
1000 NOT(A OR B)
1001 A <=> B
1010 NOT B
1011 B => A
1100 NOT A
1101 A => B
1110 NOT(A AND B)
1111 TRUE

有许多替代方法可以编写这些表达式,但作为一个经验法则:如果您需要三个 1 输出,请寻找一个OR运算符,其中可能需要翻转一个或两个 arguments。 如果您需要一个 1 输出,请使用AND运算符执行相同的操作。 如果您有两个 1 输出,请对XOR (或<=> )运算符执行相同的操作,除非是其中一个操作数自行确定结果的微不足道的情况。

如果你的输入是 X1 和 X2 并且你想要一个 1 作为 output,你可以看看很容易定义的组合:three 只有一个 0 - 然后反转它

  • output 0 的情况:x1 和(不是 (x2))
  • 反转解决方案 (de Mogan):not (x1 and (not (x2) )) = not(x1) or x2

你需要 1 x not 和 1 x 或者你需要 2 x not 和 1 x and

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM