Um 2-maneira lógica processador universal (2ULP) é uma rede de portas lógicas que leva dois fios de entrada A
e B
, bem como outros quatro entradas L_
, L_a
, L_b
, e L_ab
, e produz uma saída única L(a, b)
, utilizando os quatro L
entradas como uma função tabela de verdade:
- O 2ULP retorna
L_
seA
eB
são ambos0
. - Retorna
L_a
seA = 1
eB = 0
. - Retorna
L_b
seA = 0
eB = 1
. - Retorna
L_ab
seA
eB
são ambos1
.
Por exemplo, tendo em conta as entradas L_ = 0
, L_a = 1
, L_b = 1
, e L_ab = 0
, em seguida, a saída L(a, b)
será igual a A xor B
.
Sua tarefa é construir uma 2ULP usando apenas portas NAND, usando o menor número possível de portas NAND. Para simplificar, você pode usar as portas AND, OR, NOT e XOR em seu diagrama, com as seguintes pontuações correspondentes:
NOT: 1
AND: 2
OR: 3
XOR: 4
Cada uma dessas pontuações corresponde ao número de portas NAND necessárias para construir o portão correspondente.
O circuito lógico que usa o menor número de portas NAND para produzir uma construção correta vence.
fonte
Respostas:
11 NANDs
Defina o portão MUX (custo 4) como
com tabela de verdade
Então este é o operador ternário familiar
MUX(P, Q, R) = P ? Q : R
Nós simplesmente temos
por um custo de 12, mas há uma economia trivial de uma porta, reutilizando a
NOT B
partir das duasMUX
es internas .fonte
custo: 4 * 4 * 14 + 4 * (13) + 13 * 3 + 3 * 3 + 24 * 1 + 4 = 352
Eu não sou um homem booleano, este é o meu melhor na codificação dessas coisas (eu sei que isso não vai me dar muitos pontos de internet immaginários ..).
fonte
Usando a linguagem Wolfram, posso obter uma fórmula de 13 portas :
quais saídas:
Aqui
Ln
,La
,Lb
eLab
sãoL_
,L_a
,L_b
eL_ab
separadamente no OP.nota de rodapé: Os resultados da
BooleanMinimize
função na linguagem Wolfram são restritos a dois níveisNAND
eNOT
quando invocados comoBooleanMinimize[(*blabla*), "NAND"]
, portanto, não é tão bom quanto a fórmula de quatro níveis de Peter Taylor acima .fonte