首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用NAND端口构建x XOR (y XOR z)

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

Stack Overflow用户
提问于 2018-03-11 21:42:59
回答 1查看 2.4K关注 0票数 0

我需要使用只有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端口更有效。

谢谢你们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-12 18:09:46

你最后的表达是正确的。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49225419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档