仅用NAND门构建x XOR (y XOR z)的技术实现问询
要只用NAND门实现x XOR (y XOR z)电路?没问题,咱们一步步拆解推导和实现:
第一步:推导目标输出的逻辑表达式
先从异或的定义出发,把整个表达式展开:
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
第二步:先实现
y XOR z子电路 异或门可以完全用NAND门组合出来,咱们先推导y XOR z的NAND实现方式:
已知y XOR z = y~z + ~yz,转换成NAND门的组合形式就是:NAND[NAND(y, NAND(z,z)), NAND(z, NAND(y,y))]
这里拆解一下每部分的作用:
- 首先,NAND门输入相同信号时,输出等于输入的非,所以
NAND(z,z)就是~z,NAND(y,y)就是~y - 接着,
NAND(y, NAND(z,z))等价于NOT(y * ~z),也就是~y + z - 同理,
NAND(z, NAND(y,y))等价于NOT(z * ~y),也就是~z + y - 最后把这两个结果输入到NAND门,得到的
NOT((~y + z) * (~z + y))正好等于y~z + ~yz,也就是咱们要的y XOR z
第三步:组合出完整的
x XOR (y XOR z)电路 有了y XOR z的NAND实现后,把它的输出记为temp,那么原电路就变成了x XOR temp,直接复用上面的异或NAND实现逻辑——把y换成x,z换成temp就行。
这样整个电路就完全用NAND门搭建完成了,所有的非操作(~)都用输入相同信号的NAND门来实现,完全符合“仅使用NAND门”的要求。
内容的提问来源于stack exchange,提问作者J Alan
相关产品推荐
相关产品推荐

