булева алгебра - построить вентиль ИЛИ как вентиль И-НЕ

Я пытаюсь понять, как это сделать. Насколько я понимаю, набор логических вентилей называется «функционально завершенным», если некоторая комбинация вентилей может использоваться для выполнения каждой из основных логических операций И, ИЛИ и НЕ. Утверждается, что вентиль И-НЕ функционально завершен.

Чего я не понимаю, так это того, как построить ворота ИЛИ в качестве ворот nand. построить вентиль И из вентиля И-НЕ и т. д.. должна ли формула, которую я придумал, иметь такой же выход?

 X' = X NAND 1
 X + Y = ?
 X * Y = ?

используя таблицу истинности, как X '= X NAND 1?

Я не уверен, что означает X NAND 1. Я понимаю, что 1 фиксируется как y?

Я смущаюсь, когда вижу ворота между двумя входами, такими как x NAND y

Как я могу построить таблицу истинности для x + y = NAND?

или я должен сделать это по-другому?


person Community    schedule 15.10.2010    source источник
comment
Хотя это, в конечном счете, связано с программированием, это скорее вопрос проектирования схемы/оборудования.   -  person Chris Thompson    schedule 15.10.2010
comment
x NAND 1 фиксирует y как 1. Обратите внимание, что у вас есть определение x' в терминах NAND, поэтому вы можете использовать его для определения ИЛИ и И. (Запишите таблицы истинности, если сомневаетесь.)   -  person Fred Foo    schedule 15.10.2010
comment
@Крис +1. FWIW, я решил, что это достаточно по теме, чтобы ответить, потому что я помню, как делал таблицы истинности на вводных уроках программирования.   -  person Pops    schedule 15.10.2010
comment
@ Лорд Торгамус, Ах да ... теперь я вспомнил ... это было такое ужасное воспоминание, что я его заблокировал ;-)   -  person Chris Thompson    schedule 16.10.2010


Ответы (4)


Просто иди по определению:

X И-И Y = ~ (X И Y) = ~ X ИЛИ ~ Y

Подставьте Y = 1 и увидите, что вы получите

X НЕ-И 1 = ~X ИЛИ ~1 = ~X ИЛИ 0 = ~X = X'

Изменить:

Просто для того, чтобы вы поняли, как создавать другие вентили, используя вентиль NAND, эта статья в Википедии очень хороша и информативна. Надеюсь, поможет.

http://en.wikipedia.org/wiki/NAND_logic

person Mahesh Velaga    schedule 15.10.2010
comment
@icelated, посмотри мой ответ; сравнение с 1 похоже на столбец, полный 1 - person Pops; 15.10.2010

Да, X NAND 1 похоже на X NAND Y, где Y зафиксировано как 1. То, с чем вы сравниваете X, не обязательно должно называться Y; это может быть любая переменная, любая константа или результат другого сравнения. Все, что имеет значение, это то, является ли значение 0 или 1, в конце концов.

Пример:

 X | Y | 1 | X OR Y
---+---+---+--------
 0 | 0 | 1 |    0
 0 | 1 | 1 |    1
 1 | 0 | 1 |    1
 1 | 1 | 1 |    1

Теперь вы можете сделать X AND Y, X AND 1 или X AND (X OR Y), просто сравнив числа в первом столбце с числами во втором, третьем или четвертом столбцах соответственно.

Что касается конкретно NAND, просто помните, что это означает противоположность AND. На самом деле это означает «не и». Таким образом, если вы ANDобъединили две вещи вместе и получили 0, то NANDобъединение тех же двух вещей вместе даст вам 1.

Тем не менее, ваш последний вопрос не имеет особого смысла. Нет такого понятия, как X+Y = NAND. X, Y и X+Y — значения; NAND — ворота. Нельзя сравнивать числа с воротами. Ваш вопрос заключается в том, чтобы использовать ворота NAND для сравнения вещей снова и снова, пока вы не получите столбец нулей и единиц, который выглядит так же, как X+Y.

РЕДАКТИРОВАТЬ:
Хорошо, давайте посмотрим на ваш вопрос: "используя таблицу истинности, как X' = X NAND 1?"

 X | X' | 1 |   X AND 1   | X NAND 1 is the same as the opposite of X AND 1
---+----+---+-------------+-------------------------------------------------
 0 | 1  | 1 | 0 AND 1 = 0 |               1 (opposite of 0)
 0 | 1  | 1 | 0 AND 1 = 0 |               1 (opposite of 0)
 1 | 0  | 1 | 1 AND 1 = 1 |               0 (opposite of 1)
 1 | 0  | 1 | 1 AND 1 = 1 |               0 (opposite of 1)

И глядя на каждый столбец, мы видим, что X' имеет те же значения, что и X NAND 1.

person Pops    schedule 15.10.2010
comment
так что мне просто нужно x '= NAND, чтобы x + y работал как вентиль NAND? - person ; 15.10.2010
comment
Как я сказал в ответе, вы не можете сравнивать значение (например, X') с воротами (например, NAND). Я не очень понимаю ваш вопрос, не могли бы вы переформулировать его? - person Pops; 15.10.2010
comment
что меня смущает, так это то, что я смотрю на таблицу истинности для NAND, и на выходе получается 1 1 1 0, я не понимаю этого для x ' - person ; 15.10.2010
comment
я имею в виду, что если x + y должны быть похожи на NAND, разве им не нужен одинаковый вывод? Разве я не смотрю на таблицу истинности для x + y, а затем изменяю таблицу NAND, чтобы она выдавала то же самое, что и x + y? - person ; 15.10.2010
comment
@icelated, не совсем так. Они хотят, чтобы вы использовали вентиль NAND в разных местах, пока результат не будет выглядеть так же, как вентиль OR. Вам определенно придется использовать более одного вентиля NAND. Это займет несколько проб и ошибок. Просто ищите закономерности; например, если вы получите результат, противоположный OR, вы можете просто NAND его с самим собой. Другими словами, X NAND X = X'. вы можете доказать это с помощью таблицы истинности, которая выглядит много похожей на ту, что была в моем редактировании. - person Pops; 15.10.2010
comment
поэтому я вижу, что если я использую x '+ y' в вентиле ИЛИ, он действует как вентиль И-НЕ. - person ; 15.10.2010
comment
@icelated, о, кажется, теперь я вижу твою проблему. Вы сказали, что я смотрю на таблицу истинности для NAND, и на выходе получается 1 1 1 0; это результат для X NAND Y, если вы используете 0 0 1 1 для X и 0 1 0 1 для Y. Вам следует обратить внимание на X NAND X, у которого другой результат. - person Pops; 15.10.2010
comment
Можете ли вы привести один пример таблицы истинности того, как x + y может работать как вентиль И-НЕ? - person ; 15.10.2010
comment
почему я должен смотреть на X NAND X? я немного смущен - person ; 15.10.2010
comment
@icelated, если я использую x '+ y' в вентиле ИЛИ, он действует как вентиль И-НЕ - да, верно. - person Pops; 15.10.2010
comment
так что можно с уверенностью сказать, что x + y равно x' NAND y' - person ; 15.10.2010
comment
@icelated, я просто подумал, что X NAND X может быть немного легче понять, потому что вам не нужно беспокоиться о Y. Но если это смущает вас, вы можете забыть об этом. - person Pops; 15.10.2010
comment
@icelated, x + y совпадает с x 'NAND y' также верно. Теперь все, что вам нужно сделать, это выяснить, как получить X' и Y'. За исключением того, что мы уже говорили об этом, так что вы в основном знаете ответ. - person Pops; 15.10.2010
comment
моя проблема в том, что если я смотрю на таблицу истинности NAND, я вижу выходы, поэтому я пытаюсь сделать ИЛИ x + y, чтобы изменить его, чтобы сделать его выходом NAND .. я просто не могу этого сделать - person ; 15.10.2010
comment
@icelated, но ты уже сделал это! Одну половину ты понял, а вторую половину я тебе уже говорил. Помните, как и в обычной алгебре, вы можете использовать переменные для замены результатов операций. Итак, если A = B OR C и X = Y AND A, то X = Y AND (B OR C) - person Pops; 15.10.2010
comment
спасибо за вашу помощь .. Я ценю, что вы нашли время, чтобы помочь мне. я не понимаю, как, и я сказал вам другую половину раньше. этого не видно =( - person ; 15.10.2010
comment
@icelated, конечно. То, о чем я говорю, это. Другими словами, X NAND X = X'. Вы можете доказать это с помощью таблицы истинности, которая очень похожа на ту, что была в моем редактировании. Помните, переменные могут означать что угодно... если X NAND X = X', то Y NAND Y = Y' и [result of some other expression] NAND [result of some other expression] = [result of some other expression]' - person Pops; 15.10.2010
comment
@icelated, x + y = x' NAND y' верно. - person Pops; 15.10.2010
comment
Я не понимаю, почему x'+y' составляет половину ответа? знак равно - person ; 15.10.2010
comment
Так вот как я делаю остальные проблемы тогда? - person ; 15.10.2010
comment
сделать это X * Y = ? чтобы работать как вентиль NAND, я бы просто изменил таблицу AND, чтобы она работала как вентиль NAND? - person ; 15.10.2010
comment
@icelated, ну ты знаешь, как создать X', используя только NAND ворот. Вы знаете, как создать Y', используя только NAND врата. И вы знаете, что X' NAND Y' = X + Y. Я не могу сказать ничего другого, не написав явно ответ. Но да, это основная стратегия для остальных ваших проблем. - person Pops; 15.10.2010

NAND — это, по сути, обратная сторона AND:
Таблица истинности

A    B    A NAND B   A AND B   A OR B   A NOR B
0    0       1         0         o         1
0    1       1         0         1         0
1    0       1         0         1         0
1    1       0         1         1         0

Составляя правильные комбинации, используя эти и остальные логические операторы, вы должны быть в состоянии построить любой из них с точки зрения других.

person slashmais    schedule 15.10.2010

Быстрые таблицы истинности:

NAND 1 0
0    1 1
1    0 1

OR 1 0
0  1 0
1  1 1

NOT
1   0
0   1

Что означает функционально полная комплектация, так это то, что, имея стопку полных ворот, вы можете построить ворота любого другого типа.

Таким образом, если вы построите схему с 1 вентилем И-НЕ, вы получите полную противоположность вентилю ИЛИ (входы перевернуты). Если ваша цель состоит в том, чтобы построить вентиль ИЛИ, вы должны инвертировать входы вентиля И-НЕ. Это легко сделать с парой вентилей НЕ (что, если внимательно присмотреться, то же самое, что вентиль И-НЕ, один из входов которого привязан к логической 1). Итак, вы помещаете эти вентили НЕ перед вентилями И-НЕ, и вуаля, выпадает вентиль ИЛИ.

Чтобы вас не запутать, размещение ворот между двумя его входами означает просто использование этих ворот в качестве бинарного оператора, например, знака +. Это то же самое, что сказать НЕ-И (X, 1) или «Выход логического элемента И-НЕ, когда его входы равны Х и 1».

person nmichaels    schedule 15.10.2010
comment
+1 @Джорен; источник см. в Законах ДеМоргана на Википедии. - person Pops; 15.10.2010