Dalam pertanyaan ini , pemetaan didefinisikan antara EBCDIC dan superset ISO-8859-1.
Tugas Anda adalah membangun jaringan gerbang dua-masukan NAND yang akan mengambil delapan input yang A1, A2, A4, ..., A128
mewakili karakter EBCDIC dan mengembalikan delapan output B1, B2, B4, ..., B128
yang mewakili karakter "ISO-8859-1" yang sesuai sesuai dengan pemetaan itu.
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 mengimplementasikan semua persyaratan di atas dengan benar akan menang.
sumber
309 NANDs
Solusi yang sangat rendah dalam jumlah NAND, tapi saya bisa lebih rendah lagi. Seseorang harus berhenti di suatu tempat, suatu saat, dan 309 sepertinya bagus untuk itu. (Saya benar-benar mencapai 308 NAND kemudian, tetapi kemudian menabrak semacam penghalang.)
Tidak ada gambar pensil dari sirkuit kali ini. Mungkin nanti jika suatu hari nanti saya kembali ke masalah ini dan mengenai tepi yang lebih rendah, langkan, batas, di semak-semak sirkuit yang salah yang semakin padat.
Sirkuit disajikan dalam kode Verilog yang jelas, siap untuk berjalan dengan uji yang disertakan.
Kode Verilog:
sumber