我需要使用只有NAND端口的x xor(y xor z)
。符号:不是(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
as g2
然后是外部NANDg1,g2 = z~y + y~z。
所以现在我有了一个只有NAND的XOR,执行x xor (y xor z)
应该只是把(y )作为一个单一变量来处理,这给了我:
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个NANDs端口更有效。
谢谢你们。
发布于 2018-03-12 18:09:46
你最后的表达是正确的。
20个NAND
门可以减少到8个:
该电路利用XOR(x,y,z) = XOR(XOR(x,y),z)
。它是两个双输入XOR
门的组合,每个门由四个NAND
门组成。
https://stackoverflow.com/questions/49225419
复制相似问题