xor
ворота, теперь мне нужно построить эти ворота, используя только 4 nand
ворот
a b out
0 0 0
0 1 1
1 0 1
1 1 0
the xor = (a and not b) or (not a and b)
, который является
Я знаю ответ, но как получить диаграмму ворот из формулы?
РЕДАКТИРОВАТЬ
Я имею в виду интуитивно, для меня, я должен получить это, если я делаю это шаг за шагом, а затем определение xor = (a and not b) or (not a and b)
.
и xor
будет построен с 5 nand
воротами (первое изображение №1 ниже)
мой вопрос больше похож на: представьте, что первый человек в истории nand
выяснит эту формулу, как он или она (процесс мышления) могут получить 4 решения из этой формулы, шаг за шагом.
logic
boolean-algebra
вневременный
источник
источник
Ответы:
Из этой формулы? Это может быть сделано. Но проще начать с этого: (здесь используется другая запись)
Хорошо, что теперь? В конце концов мы должны получить
~(~(~(a & b) & a) & ~(~(a & b) & b))
(что выглядит так, как будто у него 5 NAND, но так же, как у принципиальной схемы, есть подвыражение, которое используется дважды)Так что сделайте что-то похожее
~(a & b) & a
(и то же самое, но с символом «b
в конце») и надейтесь, что оно останется: (and
раздаётor
)Довольно близко, просто примените DeMorgan, чтобы превратить эту середину
or
вand
:Вот и все.
источник
Я думаю, что вы просите это доказательство:
Хотя, очевидно,
NAND
в полученном уравнении используются 5 с, но дубликат!(AB)
будет использоваться только один раз, когда вы проектируете его схему.источник
Поскольку у вас уже есть ответ на диаграмме, который можно легко получить из википедии , введя название вопроса в Google в виде диаграммы .png, идентичной вашей, вам будет легко найти формулу, извлекая ее из этой диаграммы. Учитывая NAND определения , какNAND(A,B)=AB¯¯¯¯¯¯¯¯ :
Крайний левый затвор дает ;C=AB¯¯¯¯¯¯¯¯
Верхние ворота дают ;D1=AC¯¯¯¯¯¯¯¯
Верхний вентиль дает , поскольку NAND коммутативен, как AND;D2=BC¯¯¯¯¯¯¯¯
Крайний правый затвор дает .E=D1D2¯¯¯¯¯¯¯¯¯¯¯¯
Собирая все это вместе, мы сначала отметим, что
Аналогично:D2¯¯¯¯¯¯=BA¯¯¯¯
Таким образом,
E=D1D2¯¯¯¯¯¯¯¯¯¯¯¯=D1¯¯¯¯¯¯+D2¯¯¯¯¯¯=AB¯¯¯¯+BA¯¯¯¯
Какое именно определение XOR. Вы можете просто отменить все это, если хотите начать с исходных данных, а не просто проверить ответ.
Поиск ответа без предварительного знания
Это предназначено, чтобы ответить на явный запрос, добавленный как изменение к вопросу, для способа найти решение с нуля. Учитывая, что речь идет о мыслительном процессе, я даю все детали.
Таким образом, мы можем попытаться угадать, какой тип ввода для этих элементов даст желаемый результат.
Объединяя эту последнюю формулу с результатом, который мы должны получить, мы получаем:
Обратите внимание, что это только самая простая возможность. Существуют и другие пары входных данных, которые дают желаемый результат, потому что мы не объединяемся в свободной алгебре, поскольку NAND обладает эквациональными свойствами. Но мы попробуем это для начала.
Мы могли бы попытаться повторить процедуру объединения (я это сделал), но это, естественно, приведет нас к использованию еще четырех ворот, а значит, к решению с 5 воротами.
Это легко проверить
SimilarlyNAND(Z,B)=Y
Hence we can compose these four gates to get the desired result, i.e., the XOR function.
источник
I take the input(0,0) as an example.
ForXOR , the desired output is 0. However, NAND(0,0)=1 .
Because the only way to get a 0 usingNAND is (at the last layer) NAND(1,1)=0 , you should first produce two 1's.
Only fourNAND s are involved. But it is only correct for the input (0,0) so far. So you need to check other inputs (0,1),(1,0), and (1,1) against the solution and find that it just works. Lucky.
источник
I tried my best to give the answer using formula as asked.Hope you appreciate it.
Z=AB'+A'B
Z=AA'+AB'+BB'+A'B --->BB'=AA'=0
Z=A(A'+B')+B(B'+A')
Z=A(AB)'+B(AB)' --> Hint
so now (AB)' can get through 1st NAND gate,then in 2nd and third NAND gate the output of 1st NAND gate pass through with one of the input as A and B.After this we need one more complement so use fourth NAND gate.
NAND(1st)=(AB)'=A'+B'
NAND(2nd)=(A(AB)')'=(A(A'+B'))'=(AB')'=A'+B
NAND(3rd)=(B(AB)')'=(B(A'+B'))'=(A'B)'=A+B'
NAND(4th)=[(A'+B)(A+B')]' =[A'B'+AB]'=(A+B)(A'+B')=AB'+A'B
Happy!
источник
The formula: XOR = (a and not b) or (not a and b).
Thats' not what you want, you want a formula that is a NAND. Remember that not (a or b) = not a and not b, and therefore (a or b) = not (not a and not b). Therefore
(a and not b) or (not a and b) =
not (not (a and not b) and not (not a and b)) =
not ((not a or b) and (a or not b)) =
NAND (not a or b, a or not b).
So we used one NAND gate, and have to calculate (not a or b) and (a or not b) using three NANDs. We turn each expression into a NAND:
not a or b = not (a and not b) = NAND (a, not b)
a or not b = not (not a and b) = NAND (not a, b)
Now we observe that (x and y) = x and (not x or y): If x is false then both sides are false. If x is true then (not x or y) = (false or y) = y. This is true for NAND just as it's true for AND. Therefore
NAND (a, not b) = NAND (a, not a or not b) = NAND (a, NAND (a, b))
NAND (b, not a) = NAND (b, not b or not a) = NAND (b, NAND (a, b)).
So we first find mid = NAND (a, b), left = NAND (a, mid) and right = NAND (b, mid), finally XOR = NAND (left, right).
источник
*From left to right--D1,D2,D3,D4 ** D1=(A.B)' OR(A'+B')
suppose
(A.B)'=C
D2=(A.C)'=A'+C'
D3=(B.C)'=B'+C' then
D4=(D2.D3)'
D4=((A.C)'.(B.C)')'
D4=(A.C)''+(B.C)''
D4=(A.C)+(B.C)
D4=A.(A'+B')+B.(A'+B')
D4=AB'+BA' {A.A'=B.B'=0}**
источник