答案 0 :(得分:0)
您可以用NAND门替换所有AND门,只是否定结果。我可以看到你否定了输入,这是错误的,因为:
(ab)' != a'b'
作为一个例子,考虑信号(a,b)=(1,0)。如果你否定它们并计算输出,你得到0.如果你先计算然后否定输出,你得到1.
关于OR门:
a + b + c -> ((a + b + c)')' -> (a'b'c')'
因此OR门是与非门,所有信号都被否定。
答案 1 :(得分:0)
第一个电路实际实现
AD + AC + B'D' http://latex.codecogs.com/gif.download?AD%20+%20AC%20+%20%5Cbar%7BB%7D%5Cbar%7BD%7D
这是这个电路:
使用De Morgan's Laws,这相当于
这是这个电路:
这个Python程序可用于比较电路:
import itertools
# Create all the possible input combinations
x = (True, False)
comb = set(itertools.product(x, x, x, x))
# AD + AC + B'D'
def c1(a, b, c, d):
return ((a and d) or (a and c) or ((not b) and (not d)))
# ((AD)'(AC)'(B'D')')'
def c2(a, b, c, d):
return not ((not (a and d)) and (not (a and c)) and (not ((not b) and (not d))))
# For each input combination, verify that the results are the same
for x in comb:
r1 = c1(*x)
r2 = c2(*x)
if r1 != r2:
print "Error: Input %s produced %s != %s" % (x, r1, r2)