Saya perlu merancang ALU dengan dua input 8-bit A dan B dan mengontrol input x, y, dan z yang mendukung operasi berikut:
x y z | operation
0 0 0 | S = A-B
0 0 1 | S = A+B
0 1 0 | S = A*8
0 1 1 | S = A/8
1 0 0 | S = A NAND B (bitwise)
1 0 1 | S = A XOR B (bitwise)
1 1 0 | s = reverse the bits of A
1 1 1 | S = NOT A (bitwise)
Ini seharusnya dilakukan dengan penambah 8-bit dan extender aritmatika-logika. Membaca melalui buku teks saya, saya melihat bahwa tujuan dari AL-extender adalah untuk mengubah bit input sehingga adder, daripada banyak komponen tambahan, dapat digunakan untuk melakukan segalanya (atau setidaknya itulah yang saya pahami dari itu. ). Sebagai contoh, AL-extender dapat menempatkan bit dalam komplemen dua sehingga penambah melakukan pengurangan. Demikian juga, untuk operasi logis bitwise, bit dapat diubah dengan tepat dan salah satu input adder bisa saja nol sehingga hasilnya datang dengan benar.
Tetapi apa yang sebenarnya saya lakukan tentang perkalian? Buku saya sangat kabur, jadi saya tidak yakin apakah AL-extender akan meminta saya untuk melakukan sesuatu yang pintar untuk membuat adder melakukan pekerjaannya (cukup tambahkan 8 kali dalam kasus saya? ... ha ha), atau jika saya bisa melempar pengganda di sana. Saya harus membaca di divisi, tapi saya yakin ini mirip dengan perkalian.
Yah, pokoknya, intinya masih, apa yang AL extender "diizinkan" dapat / dapat miliki di dalamnya? Apakah satu-satunya tujuan untuk mengubah input sehingga dapat diumpankan ke penambah?
* EDIT: Ya, ini adalah perkalian / pembagian dengan 8, jadi ini dapat dengan mudah dilakukan dengan menggeser ke kiri atau kanan dengan 3. Apakah saya masih memiliki AL-extender yang nyata / tepat jika saya menambahkan beberapa pemindah di sana? (Mungkin aku terlalu memikirkan ini sebagai pemula yang lengkap ...)