Un procesador de lógica universal de 2 vías (2ULP) es una red de puertas lógicas que toma dos cables de entrada A
y B
, así como otras cuatro entradas L_
, L_a
, L_b
, y L_ab
, y produce una única salida L(a, b)
usando las cuatro L
entradas como una función de tabla de verdad:
- El 2ULP devuelve
L_
siA
yB
son ambos0
. - Devuelve
L_a
siA = 1
yB = 0
. - Devuelve
L_b
siA = 0
yB = 1
. - Devuelve
L_ab
siA
yB
son ambos1
.
Por ejemplo, dadas las entradas L_ = 0
, L_a = 1
, L_b = 1
, y L_ab = 0
, a continuación, la salida L(a, b)
será igual a A xor B
.
Su tarea es construir un 2ULP usando solo puertas NAND, usando la menor cantidad posible de puertas NAND. Para simplificar las cosas, puede usar las compuertas AND, OR, NOT y XOR en su diagrama, con los siguientes puntajes correspondientes:
NOT: 1
AND: 2
OR: 3
XOR: 4
Cada uno de estos puntajes corresponde al número de puertas NAND que se necesitan para construir la puerta correspondiente.
El circuito lógico que utiliza la menor cantidad de compuertas NAND para producir una construcción correcta gana.
fuente
Respuestas:
11 NANDs
Defina la puerta MUX (costo 4) como
con tabla de verdad
Entonces este es el operador ternario familiar
MUX(P, Q, R) = P ? Q : R
Simplemente tenemos
por un costo de 12, pero hay un ahorro trivial de una puerta al reutilizar el
NOT B
de los dos interioresMUX
.fuente
costo: 4 * 4 * 14 + 4 * (13) + 13 * 3 + 3 * 3 + 24 * 1 + 4 = 352
No soy un hombre booleano, este es mi mejor en la codificación de estas cosas (sé que esto no me dará muchos puntos de Internet inimaginables ...).
fuente
Al usar el lenguaje Wolfram puedo obtener una fórmula de 13 puertas :
que salidas:
Aquí
Ln
,La
,Lb
yLab
son elL_
,L_a
,L_b
yL_ab
por separado en OP.nota al margen: Los resultados de la
BooleanMinimize
función en el lenguaje Wolfram se limitan a dos nivelesNAND
yNOT
cuando se invoca comoBooleanMinimize[(*blabla*), "NAND"]
, por lo que no es tan bueno como la fórmula de cuatro niveles de Peter Taylor anterior .fuente