2016-10-07 6 views
1

В изображении, Выше цепи сумма произведений
= (В '+ D') (А + D), (А + С)Построить схему с использованием только NAND и НЕ GATES

в то время как изображение ниже это моя попытка использовать только NAND и NOT. Однако мои чувства говорят мне, что я делаю это неправильно. Пожалуйста помоги!

My Attempt

+0

Какой инструмент вы использовали для создания этой схемы? –

ответ

0

Вы можете заменить все и ворота с воротами и NAND просто свести на нет результата. Я вижу, что вы свели на входы, что неверно, так как:

(ab)' != a'b' 

В качестве примера думать о сигналах (а, Ь) = (1, 0). Если свести на нет их и рассчитать выход, вы получите 0. Если вы сначала рассчитать, а затем свести на нет выхода, вы получаете 1.

О ИЛИ ворот:

a + b + c -> ((a + b + c)')' -> (a'b'c')' 

Так или ворота Вентиль со всеми сигналами отрицается.

0

Первый контур фактически реализует

AD + AC + B'D' http://latex.codecogs.com/gif.download?AD%20+%20AC%20+%20%5Cbar%7BB%7D%5Cbar%7BD%7D

который эта схема:

AD + AC + B'D'

Используя De Morgan's Laws, это эквивалентно

((AD)'(AC)'(B'D')')' http://latex.codecogs.com/gif.download?%5Coverline%7B%5Coverline%7BAD%7D%5Ccdot%5Coverline%7BAC%7D%5Ccdot%5Coverline%7B%5Cbar%7BB%7D%5Cbar%7BD%7D%7D%7D

что эта схема:

((AD)'(AC)'(B'D')')'

Это 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^