Anda di halaman 1dari 16

BAB VI RANGKAIAN ARITMATIKA 6.

1 Pendahuluan Pada saat ini banyak dihasilkan mesin-mesin berteknologi tinggi seperti komputer atau kalkulator yang mampu melakukan fungsi operasi aritmatik yang cukup kompleks (misalnya penjumlahan, pengurangan, perkalian, pembagian pembandingan dan sebagainya) atau operasi logika (misalnya Or, And, Not, Nor, Nand, Exclusive-Or dan sebagainya), dengan ketelitian dan kecepatan yang sangat luar biasa. Untuk itu pada bab ini akan dibahas beberapa rangkaian digital yang dapat melakukan operasi aritmatika dalam bilangan biner. 6.2 Penjumlah Paruh (Half Adder) Bilangan biner hanya mempunyai dua bilangan yaitu 0 dan 1, untuk itu jika dua bilangan biner (masing-masing satu bit) yaitu antara yang dijumlahkan (augend) dan penjumlah (addend) dijumlahkan, maka diperoleh hasil jumlah (sum) dan luapan (overflow/carry) seperti ditunjukkan pada tabel 6.1 dibawah. Tabel 6.1 Penjumlahan Dua Bit Bilangan Biner Augend A 0 0 1 1 Addend B 0 1 0 1 Hasil Jumlah S 0 1 1 0 Luapan (Overflow/Carry) C 0 0 0 1

Dari tabel 5.1 tersebut dapat diperoleh persamaan kedua keluaran, yaitu : Hasil Jumlah : S = AB + A B Luapan (Overflow/Carry) : C = AB atau S= AB

Sehingga dari persamaan tersebut didapatkan rangkaian sebagai berikut :

HALF 106 ADDER

107

Masukan B C

Keluaran

(a) Blok Diagram Penjumlah Paruh (Half Adder)

Masukan A B

Sum Keluaran Carry

(b) Rangkaian Logika Penjumlah Paruh (Half Adder) Gambar 6.1 Penjumlah Paruh (Half Adder) 6.3 Penjumlah Penuh (Full-Adder) Penjumlah penuh (Full-Adder) merupakan rangkaian penjumlah yang 3 bit bilangan biner A, B dan masukan luapan Cin dengan keluaran hasil jumlah (sum) dan luapan (overflow/carry) Cout. Tabel 6.2 Penjumlahan Tiga Bit Bilangan Biner
Augend A Addend B Carry input Cin Hasil Jumlah S Luapan (Overflow/Carry) COut

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 1 1 0 1 0 0 1

0 0 0 1 0 1 1 1

Dari tabel 6.2 tersebut dapat diperoleh persamaan kedua keluaran, yaitu : Hasil Jumlah Luapan / Carry
S = A BC in + ABC in + A BC in + ABC in = A B C in
C out = ABC in + A BC in + ABC in + ABCin = BC in + AC in + AB

Sehingga dari persamaan tersebut didapatkan rangkaian sebagai berikut :

A Masukan B Cin

FULL ADDER

S Cout

Keluaran

108

(a) Blok Diagram Full Adder


A Masukan B C
in

Sum

Keluaran

Carry

(b) Rangkaian Logika Full Adder Gambar 6.2 Penjumlah Penuh (Full Adder)
Masukan
B
3

C
4

FA

FA

FA

FA

Keluaran

Gambar 6.3 Penjumlah Paralel 4-Bit Untuk mendapatkan jumlah bit yang lebih banyak, maka beberapa Penjumlah Penuh (FA) diparalel. Misalnya bilangan biner 4-bit (A0, A1, A2, A3) ditambah 4-bit (B0, B1, B2, B3) dengan keluaran (S0, S1, S2, S3) dan luapan C4, sehingga diperlukan 4 FA yang diparalel seperti ditunjukkan pada gambar 4.3, yang menjumlahan tiap bit yang bersesuaian secara serentak relatif cepat, tetapi dibatasi oleh luapan (carry) yang dihasilkan tiap bit, agar dapat dijumlahkan dengan bit

109

berikutnya dan diperoleh hasil penjumlahan yang benar, efek ini dinamakan perambatan luapan (carry propagation atau carry ripple), yang disebabkan oleh penundaan perambatan tiap FA. Contoh : 00111 10101 00111 11100 00111 Yang dijumlah (Augend) Penjumlah (Addend) Hasil Jumlah Luapan / Carry (ditambahkan ke posisi berikutnya)

Untuk mengatasinya, diperlukan rangkaian yang dapat mengetahui jika terjadi luapan dan menjumlahkannya dengan bit berikutnya dengan waktu yang lebih cepat dari penundaan perambatan tiap FA, yaitu Generator Look Ahead Carry. Dalam penerapan penjumlahan menggunakan IC, biasanya sudah disertai dengan Generator Look Ahead Carry, contohnya IC Penjumlah 4-bit adalah 7483.
B 16
4

S 15

C 14

C 13

GND 12

B 11

A 10

S 9

7483

1 A
4

2 S
3

3 A
3

4
B
3

5 V
CC

6 S
3

7 B
2

8 A
2

Gambar 6.4 IC Penjumlah Paralel 4-Bit 7483

6.4 Penjumlahan Sistem Komplemen Ke-2

110

Pada sistem bilangan biner untuk menyatakan bilangan negatif atau pengurangan digunakan sistem komplemen ke-2, yaitu (yaitu dengan cara menambah nilai sebenarnya dengan komplemen 1 (diperoleh dari membalik nilai sebenarnya) dan ditambah 1 pada bit yg bernialai paling rendah. Disini bit tanda negatif menggunakan biner 1, sedangkan besarannya dibalik (komplemen ke-1) lalu ditambah 1 pada bit yang bernilai paling rendah (Least Significant Bit / LSB) untuk mendapatkan komplemen ke-2. Contoh : - 6 = 1 0110 1 1 1010 komplemen ke-2 Gambar 6.5 dibawah adalah contoh rangkaian penjumlah atau pengurang untuk bilangan positif pada tertambah / terkurang dan bilangan negatif pada penambah / pengurang dalam sistem komplemen ke-2 beserta bit tandanya, untuk operasi penjumlahan menggunakan bit 0 dan untuk operasi pengurangan menggunakan bit 1. Bentuk komplemen ke-1 menggunakan Gate Ex-Or sebagai pembalik. Apabila hasil penjumlahan / pengurangan adalah positif, maka hasil jumlah yang ditampilkan sudah benar, sedangkan apabila hasil penjumlahan / pengurangan adalah negatif, maka hasil jumlah yang ditampilkan masih dalam bentuk komplemen ke-2, agar mendapatkan hasil yang sesungguhnya dijadikan ke komplemen ke-1 (dibalik) lalu ditambah 1 pada LSBnya, untuk itu diperlukan rangkaian tambahan pada keluaran hasil jumlah / selisih, demikian juga apabila diinginkan pada masukan tertambah / terkurang untuk bilangan negatif. nilai sebenarnya (True Magnitude Form / TMF)

1 1001 komplemen ke-1

111

Tertambah / Terkurang A
3

Penambah / Pengurang A
1

Bit tanda
0 Penjumlahan 1 Pengurangan

Luapan / Pinjaman

FA 4-Bit

Hasil Jumlah / Selisih

Gambar 6.5 Penjumlah Komplemen Ke-2 6.5 Penjumlahan Serial Kecepatan dalam menjumlahkan dua bilangan biner pada Penjumlah Paralel relatif tinggi, karena semua bit dijumlahkan secara serentak. Tetapi kecepatannya dibatasi oleh waktu perambatan luapan (carry), yang dapat diatasi dengan menggunakan Generator Look Ahead Carry, untuk itu diperlukan rangkaian tambahan sebanding dengan banyaknya bit yang dijumlahkan. Pada Penjumlah Serial, proses penjumlahannya dilakukan seperti diatas kertas, yaitu dijumlahkan per bit, sehingga rangkaiannya lebih sederhana tetapi kecepatannya lebih rendah. Gambar 6.6 menunjukkan rangkaian Penjumlah (Adder) Serial 4 bit yang menggunakan FF-D sebagai Register, Register A untuk data yang dijumlahkan (Augend) dan juga sebagai hasil penjumlahan (Sum) serta Register B untuk data penjumlahnya (Addend). Proses penjumlahannya dilakukan di FA dimulai dari LSB yaitu A0, B0 dan keluaran Q dari FF carry yang sudah direset sebelumnya. FF carry digunakan untuk menyimpan luapan/carry dari FA, sehingga dapat dijumlahkan dengan bit berikutnya pada kedua Register.

112

Register Geser

SET

Q Q

SET

Q Q

SET

Q Q

SET

Q Q

LSB

A3
CLR

A2
CLR

A1
CLR

A0
CLR

Sum

FA
Register Geser Carry in

Carry out

SET

Q Q

SET

Q Q

SET

Q Q

SET

Q Q

LSB

B3
CLR

B2
CLR

B1
CLR

B0
CLR

SET

Q Q

Clock
Pulsa clear

CLR

Gambar 6.6 Penjumlah Serial Hasil jumlahnya (Sum) diberikan ke masukan D dari Register A3, dan akan muncul pada keluaran A3 saat pemberian pulsa Clock. Demikian pula keluaran B0 dihubungkan ke masukan D dari Register B3, dan akan muncul pada keluaran B3 bersamaan dengan pemberian pulsa Clock. Dengan cara ini maka Register B tetap setelah operasi pergeseran selesai. Tabel 6.3 Proses Penjumlah Serial Pulsa Clock
Awal Pertama Kedua Ketiga Keempat

Register A
A3 A2 A1 A0 B3

Register B
B2 B1 B0

(Keluaran Q)

Carry in 0 0 1 1 0

Keluaran Sum

Keluaran Carry

0 1 0 0 1

1 0 1 0 0

1 1 0 1 0

1 1 1 0 1

0 0 1 0 0

0 0 0 1 0

1 0 0 0 1

0 1 0 0 0

1 0 0 1 1

0 1 1 0 0

Hasil Jumlah akhir

Operasi Adder serial ini dapat dengan mudah dipahami dengan contoh berikut, misalnya Augend = 0111 yang disimpan di Register A dan Addend =

113

0010 di Regsiter B, dengan mereset FF carry ke 0, sehingga Carry-in = 0 dan urutan prosesnya ditunjukkan pada tabel 6.3 diatas. Gambar 6.6 diatas juga bisa digunakan untuk pengurangan atau penjumlahan dalam sistem komplemen ke-2, yaitu yang dikurangi (minuend) disimpan di Register A dan pengurang (subtrachend) di Register B yang menggunakan keluaran
Q

untuk dihubungkan ke FA agar diperoleh bentuk

komplemen ke-1 (kebalikannya) serta Carryin = 1 (bentuk komplemen ke-2) sebelum dijumlahkan. Setelah itu dilakukan proses yang sama seperti penjumlahan bilangan biner biasa. 6.6 Penjumlahan BCD (Binary Coded Decimal) Pada sistem digital seringkali beroperasi dalam kode desimal yang dikodekan dalam biner (Binary Coded Decimal/BCD) dari pada kode biner biasa. Yang memerlukan 4 bit kode biner untuk menyatakan tiap digit desimal dalam kode BCD. Misalnya desimal 478 dalam kode BCD adalah : 4 0100 7 0111 8 1000 Kode Desimal Kode BCD

Ada beberapa prosedur dalam menjumlahkan dua bilangan BCD, yaitu : Jumlahkan kelompok kode BCD untuk tiap posisi digit desimal Apabila hasil jumlahnya (sum) 9 atau kurang, itu adalah hasil penjumlahan bentuk BCD yang benar tetapi apabila hasil jumlahnya lebih besar dari 9, maka perlu dikoreksi, yaitu menambahkan faktor koreksi (0110) pada hasil penjumlahan tersebut dan ini menghasilkan luapan (carry) untuk dijumlahkan dengan kode BCD berikutnya. Tabel 6.4 Hasil Penjumlahan Dua Bilangan BCD
Hasil Jumlah BCD Tanpa Koreksi
C4 S3 S2 S1 S0

Heksa desi mal

Hasil Jumlah BCD Terkoreksi


Cn 3 2 1 0

BCD

114

0 0 0 0 0 0 0 0 0 0 tanpa 0 1 koreksi 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 harus 1 1 dikoreksi 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0

0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13

0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1

0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0

0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

S 1 S0 00 S3 S2 01 11 10 00 0 0 1 0 01 0 0 1 0 11 0 0 1 1 10 0 0 1 1

Persamaan Koreksi = C4 + S2S3 + S1S3 = C4 + S3 (S1 + S2) (a) Kmap Untuk Persamaan Koreksi (Penambah 0110)

115

Bilangan BCD B
3

Bilangan BCD B
1

C S
3

C diabaikan

Hasil Jumlah BCD

(b) Rangkaian Penjumlah BCD Gambar 6.7 Penjumlah BCD Rangkaian Adder BCD harus mampu mendeteksi hasil jumlahnya kurang dari 9 (1001), lebih besar dari 9 atau lebih besar dari 15, untuk dikoreksi menjadi bilangan BCD yang benar. Untuk mendapatkan rangkaian pengkoreksinya tabel 6.4 menunjukkan semua kemungkinan hasil penjumlahan dua bilangan BCD. Dari Tabel 6.4 tersebut tampak bahwa yang harus dikoreksi adalah hasil penjumlahan 10, 11, 12, 13, 14, 15, 16, 17, 18, 19. Dari sini jika dimasukkan pada Kmap diperoleh rangkaian pengkoreksi seperti yang ditunjukkan pada gambar 6.7.b. 6.7 Perkalian Bilangan Biner

116

Perkalian dalam bilangan biner dikerjakan seperti menggunakan kertas dan pensil, yaitu dengan melakukan penjumlahan dan penggeseran berturut-turut seperti contoh berikut : 1011 1101 1011 0000 1011 1011 10001111 Yang dikalikan (Multiplicand) = 11 Pengali (Multiplier) = 13

Hasil Perkalian (Product) = 143

Proses pengulangan bit bilangan Pengali berturut-turut dimulai dari LSB. Jika bit Pengali adalah 1, bilangan yang dikalikan ditulis, tetapi apabila bit Pengali adalah 0, maka ditulis 0. Baris berikutnya digeser kekiri satu bit dari baris sebelumnya. Apabila semua bit Pengali sudah habis lalu dijumlahkan untuk memperoleh hasil perkalian akhir. Pada sistem digital, proses penjumlahannya dilakukan tiap dua bilangan dan hasil penjumlahan akhirnya ditempatkan pada Penyimpan (Register). Untuk efisiensi, apabila bit Pengali bernilai 0 tidak diperlukan penulisan 0 sehingga tidak berakibat pada hasil akhir. Contoh yang lalu dapat dituliskan sebagai berikut : Multiplicand : 1011 Multiplier : 1101 1011 1011 +101100 101111 +1011000 10001111 Bit pertama Multiplier = 1, Multiplicand ditulis Multiplicand digeser kekiri satu bit (10110) Bit kedua Multiplier = 0, hasil yang ditulis Multiplicand yang baru digeser kekiri satu bit (101100) Bit ketiga Multiplier = 1, tulis Multiplicand yang baru Jumlahkan Multiplicand yang baru digeser kekiri satu bit (1011000) Bit keempat Multiplier = 1, tulis Multiplicand yang baru Jumlahkan untuk mendapat Hasil Perkalian akhir (Product) = 143 Proses perkalian ini dapat diterapkan seperti ditunjukkan pada gambar 6.8 dengan 3 Register, yaitu Register X digunakan untuk menyimpan bit-bit Pengali/Multiplier yang merupakan Register geser kanan, Register B digunakan

117

untuk menyimpan bit-bit yang dikalikan / Multiplicand yang merupakan Register geser kiri dan Register A / Accumulator digunakan untuk menyimpan Hasil Perkalian (Product). Operasi rangkaian Perkalian dapat dijelaskan dengan gambar 6.9 dibawah yang menunjukkan isi semua Register dan keluaran Adder oleh setiap pemberian pulsa Clock. Langkah-langkah prosesnya sebagai berikut : 1. Reset Register A (00000000), set yang dikali (Multiplicand) pada Register B (00001011) dan Pengali (Multiplier) pada Register X (1101), sehingga keluaran Adder adalah hasil penjumlahan isi Register A dan B yaitu 00001011, yang ditunjukkan pada gambar 6.9(a). 2. Pada pulsa Clock pertama, LSB Pengali (keluaran X0) adalah 1, sehingga pulsa Clock tersebut keluar pada Gate And dan sisi positifnya menyebabkan Register A berisi data dari keluaran Adder yang berasal dari penjumlahan isi Register B dengan isi Register A yaitu 00001011. Sedangkan sisi negatif pulsa Clock menyebabkan isi Register B bergeser kekiri menjadi 00010110 dan isi Register X bergeser kekanan menjadi 0110, sehingga keluaran Adder adalah hasil penjumlahan isi Register A (00001011) dan isi Register B (00010110) yaitu 00100001. Kondisi ini ditunjukkan pada gambar 6.9(b). 3. Pulsa Clock kedua, LSB Pengali (keluaran X0) adalah 0, sehingga keluaran Gate And juga 0 dan isi Register A tetap. Sedangkan sisi negatif pulsa Clock menyebabkan isi Register B bergeser kekiri menjadi 00101100 dan isi Register X bergeser kekanan menjadi 0011, keluaran Adder adalah hasil penjumlahan isi Register A (00001011) dan isi Register B (00101100) yaitu 00110111, yaitu gambar 6.9(c).

Penyimpan (Accumulator)
A6 C0 = 0 S3 S2 S1 S0 D6 A5 A4 A3 A2 A1 A0 D5 D4 D3 D2 D1 D0

A7

D7

S4 Ke masukan S5 D4 - D7 S6 FF - A S7

Adder Paralel 8-Bit

Ke masukan D0 - D3 FF - A

Yang dikalikan (Multiplicand)


D6 D5 D4 D3 D2

B7

D7

B6

B5

B4

B3

B2

B1

D1

B0

D0

Pengali (Multiplier)
D X3 D X2 D X1 D X0

Gambar 6.8 Rangkaian Pengali Bilangan Biner

Clock

118

119

4. Pulsa Clock ketiga, LSB Pengali (keluaran X0) adalah 1, sehingga sisi positif pulsa Clock menyebabkan Register A berisi data dari keluaran Adder yang berasal dari penjumlahan isi Multiplicand dengan isi Register A (Accumulator) yaitu 00110111. Sedangkan pada sisi negatif pulsa Clock menyebabkan isi Register B bergeser kekiri menjadi 01011000 dan isi Register X bergeser kekanan menjadi 0001, menyebabkan keluaran Adder adalah hasil penjumlahan isi Register A (00110111) dan isi Register B (01011000) yaitu 10001111. Kondisi ini ditunjukkan pada gambar 6.9(d). 5. Pulsa Clock ketiga, LSB Pengali (keluaran X0) adalah 1, sehingga sisi positif pulsa Clock menyebabkan Register A berisi data dari keluaran Adder yaitu penjumlahan isi Register B dengan isi Register A yaitu 100011111. Sedangkan pada sisi negatif pulsa Clock menyebabkan isi Register B bergeser kekiri menjadi 10110000 dan isi Register X bergeser kekanan menjadi 0000, menyebabkan keluaran Adder adalah hasil penjumlahan isi Register A (10001111) dan isi Register B (10110000) yaitu 00111111. Kondisi ini ditunjukkan pada gambar 6.9(e). Jadi Hasil perkalian ( product) disimpan di Register A (Accumulator).

Register A 00000000

Register B 00001011

Register X

1101

Sebelum pulsa Clock pertama

120

Hasil Jumlah 00001011


(a)

Register A 00000000

Register B 00001011
Hasil Jumlah

Register X 1101

Setelah pulsa Clock pertama

00001011
(b)

Register A 00000000

Register B

00001011
Hasil Jumlah

Register X 1101

Setelah pulsa Clock kedua

00001011
(c)

Register A 00000000

Register B 00001011
Hasil Jumlah

Register X 1101

Setelah pulsa Clock ketiga

00001011
(d)

Register A 00000000

Register B

Register X

00001011
Hasil Jumlah

1101

Setelah pulsa Clock keempat

00001011
(e)

Gambar 6.9 Isi Register Pada Proses Perkalian 1011 Dengan 1101 6.8 Permasalahan 6.8.1 Tunjukkanlah bagaimana Full Adder disusun dari Half Adder ! 6.8.2 Dari gambar 6.5, berapakah keluaran FA untuk menjumlahkan : (a) 7 + ( 7) (b) 5 + 10 (c) 5 + (-10) (d) 10 + (-5)

121

6.8.3 Ubahlah gambar 6.5 sehingga dapat digunakan untuk menjumlahkan dua bilangan negatif dan hasil jumlahnya dalam bentuk TMF ! 6.8.4 Rancanglah rangkain Look Ahead Carry untuk Adder 4-bit yang membangkitkan Carry C3 agar bisa dijumlahkan dengan MSB FA yang didasarkan oleh nilai A0, B0, A1, B1, A2 dan B2 (Petunjuk : mulai dengan menulis ekspresi C1 dalam fungsi A0, B0 dan C0, lalu tuliskan ekspresi C2 dalam fungsi A1, B1 dan C1, kemudian substitusilah C1 kedalam ekspresi C2. Tulislah ekspresi C3 dalam fungsi A2, B2 dan C2, lalu substitusilah ekspresi C2 kedalam C3. Sederhanakan ekspresi akhir C3 dalam bentuk hasil penjumlahan dari hasil perkalian (Sum Of Product / SOP) dan buatlah rangkaiannya ! 6.8.5 Berapakah waktu penundaan perambatan maksimum untuk Adder 8-bit yang tersusun dari Gate-Gate logika, apabila waktu penundaan perambatan tiap Gate adalah 20 ndetik ? 6.8.6 Penjumlah serial gambar 6.6 mempunyai waktu penundaan propagasi FA adalah 50 ndetik dan FF adalah 20 ndetik, hitunglah frekuensi maksimum pulsa Clock ! 6.8.7 Gambarkanlah urutan keadaan tiap FF dan keluaran FA pada Penjumlah serial gambar 6.6 untuk menjumlahkan 10 dan 7 ! Serta bagaimanakah caranya apabila digunakan untuk penjumlahan 10 dan 7 ? 6.8.8 Rancanglah Penjumlah BCD 3 digit dan tentukanlah keluaran Sum untuk menjumlahkan kode BCD 376 dan 469 ! 6.8.9 Tunjukkanlah isi Register A, B dan X serta keluaran Adder S 0 S7 setelah tiap pulsa setelah proses perkalian 0111 (Multiplicand) dan 1001 (Multiplier) dengan menggunakan rangkaian Pengali gambar 6.8 !

Anda mungkin juga menyukai