булева алгебра - построить ИЛИ ворота как NAND-ворота - PullRequest
2 голосов
/ 15 октября 2010

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

Что я не понимаю, так это как построить ИЛИ ворота как nand ворота. построить вентиль AND из шлюза NAND и т. д., должна ли формула, которую я придумать, иметь такой же результат?

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

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

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

Я запутываюсь, когда вижу ворота между 2 входами, такими как x NAND y

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

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

Ответы [ 4 ]

2 голосов
/ 15 октября 2010

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

X NAND Y = ~ (X AND Y) = ~ X ИЛИ ~ Y

Замените Y = 1 и увидите, что вы получите

X NAND 1 = ~ X ИЛИ ~ 1 = ~ X ИЛИ 0 = ~ X = X '

Edit:

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

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

1 голос
/ 15 октября 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.

EDIT:
Хорошо, давайте посмотрим на ваш вопрос «используя таблицу истинности как 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

0 голосов
/ 15 октября 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

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

0 голосов
/ 15 октября 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 вентилем NAND, вы получаете полную противоположность вентилю ИЛИ (входы обращены). Если ваша цель состоит в том, чтобы построить вентиль ИЛИ, вы должны инвертировать входы вентиля NAND. Это легко сделать с парой шлюзов НЕ (если вы внимательно посмотрите, то же самое, что вентиль NAND с одним из его входов, привязанным к логическому 1). Таким образом, вы ставите эти НЕ ворота перед вашими воротами NAND и вуаля , ворота ИЛИ выпадают.

Для вашей путаницы, размещение шлюза между его двумя входами просто использует этот вентиль как бинарный оператор, как знак +. Это то же самое, что сказать NAND (X, 1) или «Выход логического элемента NAND, когда его входы - X и 1».

...