A 2-arah logika yang universal prosesor (2ULP) adalah jaringan gerbang logika yang mengambil dua kawat masukan A
dan B
, serta empat input lainnya L_
, L_a
, L_b
, dan L_ab
, dan menghasilkan satu output L(a, b)
menggunakan empat L
input sebagai fungsi tabel kebenaran:
- 2ULP mengembalikan
L_
jikaA
danB
keduanya0
. - Ia mengembalikan
L_a
jikaA = 1
danB = 0
. - Ia mengembalikan
L_b
jikaA = 0
danB = 1
. - Ia mengembalikan
L_ab
jikaA
danB
keduanya1
.
Sebagai contoh, diberikan masukan L_ = 0
, L_a = 1
, L_b = 1
, dan L_ab = 0
, maka output L(a, b)
akan sama dengan A xor B
.
Tugas Anda adalah membangun 2ULP hanya menggunakan gerbang NAND, menggunakan sesedikit mungkin gerbang NAND. Untuk menyederhanakan hal-hal, Anda dapat menggunakan gerbang AND, ATAU, TIDAK, dan XOR dalam diagram Anda, dengan skor terkait berikut:
NOT: 1
AND: 2
OR: 3
XOR: 4
Masing-masing skor ini sesuai dengan jumlah gerbang NAND yang diperlukan untuk membangun gerbang yang sesuai.
Sirkuit logika yang menggunakan gerbang NAND paling sedikit untuk menghasilkan konstruksi yang benar menang.
sumber
Jawaban:
11 NAND
Tentukan gerbang MUX (biaya 4) sebagai
dengan tabel kebenaran
Maka ini adalah operator ternary yang akrab
MUX(P, Q, R) = P ? Q : R
Kami hanya punya
dengan biaya 12, tetapi ada penghematan satu gerbang sepele dengan menggunakan kembali
NOT B
dari duaMUX
es dalam .sumber
biaya: 4 * 4 * 14 + 4 * (13) + 13 * 3 + 3 * 3 + 24 * 1 + 4 = 352
Saya bukan orang boolean, ini adalah yang terbaik dalam mengkode hal-hal ini (saya tahu ini tidak akan memberi saya banyak poin internet immaginary ..).
sumber
Dengan menggunakan bahasa Wolfram saya bisa mendapatkan formula 13 gerbang :
yang keluaran:
Di sini
Ln
,La
,Lb
danLab
adalahL_
,L_a
,L_b
danL_ab
secara terpisah di OP.sidenote: Hasil
BooleanMinimize
fungsi dalam bahasa Wolfram terbatas pada dua tingkatNAND
danNOT
ketika dipanggil sebagaiBooleanMinimize[(*blabla*), "NAND"]
, jadi itu tidak sebagus rumus empat tingkat Peter Taylor di atas .sumber