使用NAND端口构建x XOR(y XOR z)

时间:2018-03-11 21:42:59

标签: boolean-logic boolean-expression boolean-operations

我需要只使用NAND端口x xor(y xor z)。 符号:NOT(y)= ~y。

我的第一步是识别那些东西的输出,所以:

x xor(y xor z) = x xor (y~z + ~yz) = ~x(y~z + ~yz) + x~(y~z + ~yz) = ~xy~z + ~x~yz + x~y~z + xyz

所以我的NAND构造的最终输出应该是:~xy~z + ~x~yz + x~y~z + xyz

我试图通过首先制作y XOR z来攻击这个:

y XOR z = y~z + ~yz = NAND[NAND(y,NAND(z,z)),NAND(z,NAND(y,y))]

NAND(y,NAND(z,z)) = NOT(y * NOT(z*z)) = NOT(y) + z我打电话给 g1

NAND(z,NAND(y,y)) = NOT(z * NOT(y*y)) = NOT(z) + y g2

然后外部NAND [g1,g2] = z~y + y~z。

所以现在我只有NAND的XOR并且x xor (y xor z)应该只是将(y xor z)作为单个变量处理,这给了我:

x xor (y xor z) = NAND[NAND(x,NAND(NAND[NAND(y,NAND(z,z)),NAND(z,NAND(y,y))],NAND[NAND(y,NAND(z,z)),NAND(z,NAND(y,y))])),NAND(NAND[NAND(y,NAND(z,z)),NAND(z,NAND(y,y))],NAND(x,x))]

我说错了吗?我觉得xor可以比使用5个NAND端口更有效。

谢谢你们。

1 个答案:

答案 0 :(得分:0)

你的最后表达是正确的。

20个NAND门可以减少到8个:

enter image description here

该电路使用XOR(x,y,z) = XOR(XOR(x,y),z)。它是两个双输入XOR门的组合,每个门由四个NAND门组成。