SIRKUIT ARITMATIKA
Arithmetik/Logic Unit (ALU) Salah satu fungsi utama komputer dan kalkulator adalah kemampuan dalam operasi aritmatika Operasi aritmatika dilakukan oleh arithmetic/logic unit yang isinya gerbang logic dan flip-flop yang kombinasikan sehingga dapat melakukan operasi penjumlahan, pengurangan, perkalian, dan pembangian bilangan biner Sirkuit aritmatika melakukan operasi aritmatika dengan kecepatan kurang dari 100 ns untuk operasi penjumlahan #13 Teknik Digital (IF) 2015
Arithmetik/Logic Unit (ALU) (Lanjutan) Blok Diagram ALU #13 Teknik Digital (IF) 2015
Arithmetik/Logic Unit (ALU) (Lanjutan) Tujuan utama dari ALU adalah menerima data biner yang disimpan dalam memori kemudian melakukan operasi aritmatika dan operasi logik dari data tersebut berdasarkan intruksi dari control unit ALU setidaknya terdiri dari dua flip-flop register; register B dan register accumulator Langkah-langkah operasi yang dilakukan oleh ALU : Control unit menerima intruksi untuk mengambil bilangan yang disimpan dalam memori yang akan dijumlahkan dengan bilangan yang sudah disimpan dalan register accumulator #13 Teknik Digital (IF) 2015
Arithmetik/Logic Unit (ALU) (Lanjutan) Langkah-langkah operasi yang dilakukan oleh ALU (Lanjutan): Control unit menerima intruksi untuk mengambil bilangan yang disimpan dalam memori yang akan dijumlahkan dengan bilangan yang sudah disimpan dalan register accumulator Bilangan dalam memori dimasukan ke register B Bilangan pada register B dan register accumulator dijumlahkan dalam sirkuit logik berdasarkan perintah control unit, hasil penjumlahan disimpan pada accumulator Register accumulator menyimpan bilangan baru hasil penjumlahan sebelumnya yang dapat dijumlahkan dengan bilangan berikutnya atau jika proses sudah selesai bilangan tersebut disimpan dalam memori #13 Teknik Digital (IF) 2015
Binary Adder Penjumlahan dua bilangan biner satu bit akan menghasilkan kemungkinan dari 4 kombinasi Dua bit diperlukan untuk menampung hasil penjumlahan Bit paling kanan disebut sum, 𝑠 Bit paling kiri, jika penjumlahan menghasilkan carry, disebut carry, 𝑐 Hasil penjumlahan (sum) merupakan operasi XOR dan carry merupakan operasi AND dari input 𝑥 dan 𝑦 Sirkuit dari penjumlahan bilangan satu bit disebut half-adder #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) Simbol Half-Adder Tabel Kebenaran Half-Adder Sirkuit Half-Adder #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) Bagaimana kalau menjumlahkan bilangan biner lebih dari satu bit ? Prosesnya sama seperti penjumlahan satu bit tetapi ditambah dengan carry dari penjumlahan sebelumnya #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) Untuk posisi bit ke-0 tidak terdapat carry-in Untuk posisi bit ke-𝑖, penjumlahan melibatkan bit 𝑥 𝑖 , 𝑦 𝑖 , dan carry-in 𝑐 𝑖 𝑥 𝑖 𝑠 𝑖 𝑐 𝑖 𝑐 𝑖+1 𝑦 𝑖 #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) Carry-out, 𝑐 𝑖+1 , sama dengan 1 jika hasil penjumlahan 𝑥 𝑖 , 𝑦 𝑖 , dan 𝑐 𝑖 sama dengan 2 atau 3 K-map 𝑐 𝑖+1 SOP 𝑐 𝑖+1 adalah 𝑐 𝑖+1 = 𝑥 𝑖 𝑦 𝑖 + 𝑥 𝑖 𝑐 𝑖 + 𝑦 𝑖 𝑐 𝑖 #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) K-map 𝑠 𝑖 SOP 𝑠 𝑖 adalah 𝑠 𝑖 = 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) Fungsi 𝑠 𝑖 menggunakan gerbang XOR 𝑠 𝑖 = 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 𝑠 𝑖 = 𝑥 𝑖 𝑦 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 𝑦 𝑖 + 𝑥 𝑖 𝑦 𝑖 𝑐 𝑖 𝑥 1 ⊕ 𝑥 2 = 𝑥 1 𝑥 2 + 𝑥 1 𝑥 2 𝑠 𝑖 = 𝑥 𝑖 ⊕ 𝑦 𝑖 𝑐 𝑖 + 𝑥 𝑖 ⊕ 𝑦 𝑖 𝑐 𝑖 𝑠 𝑖 = 𝑥 𝑖 ⨁ 𝑦 𝑖 ⨁ 𝑐 𝑖 𝑠 𝑖 = 𝑥 𝑖 ⨁ 𝑦 𝑖 ⨁ 𝑐 𝑖 Sehingga fungsi 𝑠 𝑖 dapat menggunakan gerbang XOR dengan tiga input #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) Sirkuit Full Adder #13 Teknik Digital (IF) 2015
Binary Adder (Lanjutan) Sirkuit Full Adder dapat dibangun dari sirkuit Half Adder Ripple carry adder #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder Dari K-map full adder 𝑐 𝑖+1 = 𝑥 𝑖 𝑦 𝑖 + 𝑥 𝑖 𝑐 𝑖 + 𝑦 𝑖 𝑐 𝑖 Jika difaktorkan 𝑐 𝑖+1 = 𝑥 𝑖 𝑦 𝑖 + 𝑥 𝑖 + 𝑦 𝑖 𝑐 𝑖 Dapat dituliskan mejadi 𝑐 𝑖+1 = 𝑔 𝑖 + 𝑝 𝑖 𝑐 𝑖 Dengan 𝑔 𝑖 = 𝑥 𝑖 𝑦 𝑖 𝑝 𝑖 = 𝑥 𝑖 + 𝑦 𝑖 #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder (Lanjutan) Fungsi 𝑔 𝑖 akan sama dengan 1 jika input 𝑥 𝑖 dan 𝑦 𝑖 adalah 1 walaupun nilai carry-in 𝑐 𝑖 sembarang Karena 𝑔 𝑖 menjamin menghasilkan carry-out, maka 𝑔 disebut fungsi generate Fungsi 𝑝 𝑖 sama dengan 1 jika salah satu input 𝑥 𝑖 dan 𝑦 𝑖 sama dengan 1, maka carry-out akan sama dengan 1 jika 𝑐 𝑖 =1 Akibat dari 𝑝 𝑖 =1, carry-in = 1 dipropagasikan (diteruskan) ke langkah 𝑖 sehingga 𝑝 𝑖 disebut fungsi propagate (propagasi) #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder (Lanjutan) #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder (Lanjutan) Kembangkan persamaan 𝑐 𝑖+1 = 𝑔 𝑖 + 𝑝 𝑖 𝑐 𝑖 untuk langkah ke 𝑖−1 𝑐 𝑖+1 = 𝑔 𝑖 + 𝑝 𝑖 𝑔 𝑖−1 + 𝑝 𝑖−1 𝑐 𝑖−1 = 𝑔 𝑖 + 𝑝 𝑖 𝑔 𝑖−1 + 𝑝 𝑖 𝑝 𝑖−1 𝑐 𝑖−1 Begitu juga untuk langkah-langkah selanjutnya sampai 0 𝑐 𝑖+1 = 𝑔 𝑖 + 𝑝 𝑖 𝑔 𝑖−1 + 𝑝 𝑖 𝑝 𝑖−1 𝑔 𝑖−2 +…+ 𝑝 𝑖 𝑝 𝑖−1 … 𝑝 2 𝑝 1 𝑔 0 + 𝑝 𝑖 𝑝 𝑖−1 … 𝑝 1 𝑝 0 𝑐 0 Persamaan di atas representasi dua-tingkat sirkuit AND-OR dimana 𝑐 𝑖+1 dihitung dengan sangat cepat. Adder berbasi persamaan di atas disebut carry-lookahead adder #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder (Lanjutan) Sebagai contoh carry-lookahead adder pada dua langkah pertama 𝑐 1 = 𝑔 0 + 𝑝 0 𝑐 0 𝑐 2 = 𝑔 1 + 𝑝 1 𝑔 0 + 𝑝 1 𝑝 0 𝑐 0 #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder (Lanjutan) #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder (Lanjutan) Kompleksitas carry-lookahead adder akan bertambah seiring dengan jumlah n bit yang semakin besar Untuk mengurangi kompleksitas, pendekatan hierarki dapat digunakan untuk jumlah n bit yang besar Misalkan carry-lookahead adder 32-bit dapat dibagi menjadi 4 buah 8 bit carry-lookahead adder #13 Teknik Digital (IF) 2015
Carry-Lookahead Adder (Lanjutan) Hierarki carry-lookahead adder dengan ripple-carry antar blok #13 Teknik Digital (IF) 2015
Hierarki carry-lookahead adder #13 Teknik Digital (IF) 2015
Penjumlahan Dan Pengurangan Perbedaan antara penjumlahan dan pengurangan dalam sistem digital adalah pengurangan menggunakan komplemen 2 pada salah satu bilangannya Misalkan 𝑋 dan 𝑌 merupakan dua bilangan biner, dimana 𝑌 sebagai bilangan pengurang Proses membuat komplemen 2 adalah dengan membuat bilangan biner menjadi komplemen 1 kemudian ditambah 1 pada LSB Penambahan 1 pada LSB dapat dilakukan dengan membuat 𝑐 0 =1 Komplemen 1 dapat dilakukan dengan cara menambahkan gerbang NOT #13 Teknik Digital (IF) 2015
Penjumlahan Dan Pengurangan Supaya sirkuit lebih fleksibel (dapat melakukan penjumlahan sekaligus pengurangan) dibuat sirkuit sedemikian rupa Gerbang XOR dengan dua input dapat digunakan untuk memilih antara bilangan biner versi asli dengan versi komplemen-nya di bawah control input lainnya Misalkan terdapat sinyal control yang dapat memilih proses penjumlahan atau pengurangan, misalkan namanya 𝐴𝑑𝑑 /𝑆𝑢𝑏 Misalkan nilai 0 sebagai penjumlahan dan nilai 1 sebagai pengurangan #13 Teknik Digital (IF) 2015
Penjumlahan Dan Pengurangan (Lanjutan) Sirkuit penjumlahan/pengurangan #13 Teknik Digital (IF) 2015
Tugas #12 Lakukan perkalian bilangan biner berikut : a. 111 x 101 b. 101.101 x 110.010 2. Lakukan pembagian bilangan biner berikut : a. 1100 / 100 b. 10110.1101 / 1.1 3. Jumlahkan bilangan desimal berikut setelah dikonversikan ke BCD : a. 74 + 23 b. 385 + 118 c. 623 + 599 4. Jumlahkan bilangan hexa berikut : a. 3E91 + 2F93 b. ABC + DEF #13 Teknik Digital (IF) 2015
Tugas #12 (Lanjutan) 4. Lakukan pengurangan bilangan hexa berikut : a. 3E91 - 2F93 b. F000 - EFFF #13 Teknik Digital (IF) 2015