xor
puerta, ahora necesito construir esta puerta usando solo 4 nand
puertas
a b out
0 0 0
0 1 1
1 0 1
1 1 0
el xor = (a and not b) or (not a and b)
, que es
Sé la respuesta, pero ¿cómo obtener el diagrama de compuerta de la fórmula?
EDITAR
Quiero decir, intuitivamente, para mí, debería obtener este si lo hago paso a paso seguido de la definición xor = (a and not b) or (not a and b)
.
y xor
se construirá con 5 nand
puertas (primera imagen n. ° 1 a continuación)
mi pregunta es más como: imagina que la primera persona en la historia descifra esta fórmula, ¿cómo puede él o ella (el proceso de pensar) obtener las 4 nand
soluciones de esta fórmula, paso a paso.
logic
boolean-algebra
Eterno
fuente
fuente
Respuestas:
¿De esa fórmula? Se puede hacer. Pero es más fácil comenzar con este: (usando una notación diferente aquí)
Ok, ahora que? Eventualmente deberíamos derivar
~(~(~(a & b) & a) & ~(~(a & b) & b))
(que parece que tiene 5 NANDs, pero al igual que el diagrama de circuito tiene una subexpresión que se usa dos veces).Así que haga algo que se vea
~(a & b) & a
(y lo mismo pero con unb
final) y espere que se quede: (seand
distribuyeor
)Bastante cerca ahora, solo aplica DeMorgan para convertir ese medio
or
en unand
:Y eso es.
fuente
Creo que estás pidiendo esta prueba:
Aunque aparentemente hay 5
NAND
s usados en la ecuación resultante, pero el duplicado!(AB)
se usará solo una vez cuando esté diseñando su circuito.fuente
Dado que ya tiene la respuesta del diagrama, fácilmente accesible desde wikipedia escribiendo el título de su pregunta en Google, como un diagrama .png idéntico al suyo, debería ser fácil para usted encontrar la fórmula extrayéndola de ese diagrama. Dada la definición NAND comoNAND(A,B)=AB¯¯¯¯¯¯¯¯ :
La puerta más a la izquierda da ;C=AB¯¯¯¯¯¯¯¯
La puerta superior da ;D1=AC¯¯¯¯¯¯¯¯
La puerta superior da , ya que la NAND se conmuta como la AND;D2=BC¯¯¯¯¯¯¯¯
La puerta de la derecha da .E=D1D2¯¯¯¯¯¯¯¯¯¯¯¯
Poniendo todo junto, primero notamos que
Del mismo modo:D2¯¯¯¯¯¯=BA¯¯¯¯
Así
E=D1D2¯¯¯¯¯¯¯¯¯¯¯¯=D1¯¯¯¯¯¯+D2¯¯¯¯¯¯=AB¯¯¯¯+BA¯¯¯¯
Cuál es precisamente la definición de XOR. Puede revertir todo esto si desea comenzar desde sus datos iniciales, en lugar de simplemente verificar la respuesta.
Encontrar la respuesta sin conocimiento previo
Esto tiene como objetivo responder a la solicitud explícita, agregada como una edición de la pregunta, para encontrar una solución desde cero. Dado que la pregunta es sobre un proceso de pensamiento, estoy dando todos los detalles.
Entonces podemos intentar adivinar qué tipo de entrada a esta puerta produciría la salida deseada.
Unificando esta última fórmula con el resultado que tenemos que obtener, obtenemos:
Tenga en cuenta que esta es solo la posibilidad más simple. Hay otros pares de entradas que darían el resultado deseado, porque no nos estamos unificando en un álgebra libre, ya que NAND tiene propiedades equitativas. Pero lo intentamos para empezar.
Podríamos intentar repetir el procedimiento de unificación (lo hice), pero esto naturalmente nos llevará a usar cuatro puertas más, por lo tanto, a una solución de 5 puertas.
Es fácil verificar que
Por lo tanto, podemos componer estas cuatro puertas para obtener el resultado deseado, es decir, la función XOR.
fuente
fuente
Hice mi mejor esfuerzo para dar la respuesta usando la fórmula que me pidieron. Espero que lo aprecies.
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) '-> Sugerencia
para que ahora (AB)' pueda atravesar la primera puerta NAND, luego en la segunda y tercera puerta NAND la salida de la primera puerta NAND pasa con la entrada como A y B. Después de esto, necesitamos un complemento más, así que use la cuarta puerta NAND.
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
¡Contento!
fuente
La fórmula: XOR = (a y no b) o (no a y b).
Eso no es lo que quieres, quieres una fórmula que sea una NAND. Recuerde que no (a o b) = no a y no b, y por lo tanto (a o b) = no (no a y no b). Por lo tanto
(a y no b) o (no a y b) =
no (no (a y no b) y no (no a y b)) =
not ((no aob) y (a o no b)) =
NAND (no a o b, a o no b).
Entonces usamos una puerta NAND, y tenemos que calcular (no aob) y (ao no b) usando tres NANDs. Convertimos cada expresión en una NAND:
no aob = no (a y no b) = NAND (a, no b)
a o no b = no (no ayb) = NAND (no a, b)
Ahora observamos que (x e y) = x y (no x o y): Si x es falso, ambos lados son falsos. Si x es verdadero, entonces (no x o y) = (falso o y) = y. Esto es cierto para NAND tal como es cierto para AND. Por lo tanto
NAND (a, no b) = NAND (a, no a o no b) = NAND (a, NAND (a, b))
NAND (b, no a) = NAND (b, no b o no a) = NAND (b, NAND (a, b)).
Entonces, primero encontramos mid = NAND (a, b), left = NAND (a, mid) y right = NAND (b, mid), finalmente XOR = NAND (left, right).
fuente
* De izquierda a derecha - D1, D2, D3, D4 ** D1 = (AB) 'OR (A' + B ')
suponer
(AB) '= C
D2 = (AC) '= A' + C '
D3 = (BC) '= B' + C 'entonces
D4 = (D2.D3) '
D4 = ((AC) '. (BC)') '
D4 = (AC) '' + (BC) ''
D4 = (AC) + (BC)
D4 = A. (A '+ B') + B. (A '+ B')
D4 = AB '+ BA' {A.A '= B.B' = 0} **
fuente