Pengganda biner

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Langsung ke: navigasi, cari

Pengganda atau Multiplier adalah rangkaian elektronika digital yang berfungsi untuk mengalikan dua buah bilangan dalam sistem bilangan dwi-an atau biner (binary). Jenis rangkaian ini biasanya merupakan bagian dari ALU (Arithmetic Logical Unit) di dalam mikroprosesor atau CPU (Central Processing Unit) atau otak dari sebuah komputer. Namun, rangkaian ini bisa dibuat secara tersendiri untuk keperluan tertentu, dan bisa diprogram secara perangkat keras di dalam FPGA.

Beberapa macam teknik atau cara dapat dipakai untuk merealisasikan operasi perkalian aritmatika ini. Salah satunya adalah dengan mengalikan secara parsiel masing masing bit, kemudian menjumlahkan semua hasil dari perkalian parsiel tersebut. Hal ini mirip dengan proses perkalian bilangan desimal (bilangan basis-10) yang dilakukan oleh murid Sekolah Dasar.

Jika dua buah bilangan biner, a dan b, masing-masing 2 bit (membentuk angka 00, 01, 10, dan 11) dikalikan satu sama lain, maka akan kita peroleh hasil perkalian dalam bentuk bilangan biner 4 bit, seperti nampak pada tabel di bawah ini. Bilangan a ada di kolom paling kiri, dan bilangan b ada di baris paling atas, sementara hasil kalinya ada di dalam masing-masing sel.

× 00 01 10 11
00 0000 0000 0000 0000
01 0000 0001 0010 0011
10 0000 0010 0100 0110
11 0000 0011 0110 1001

Cara lain dalam melihat operasi perkalian ini adalah dengan menyatakan bilangan pertama sebagai angka 2 bit a[1] dan a[0], sementara bilangan kedua dinyatakan dengan b[1] dan b[0]. Maka hasil kali parsielnya ada 4 buah: p0[0], p0[1], p1[0], dan p1[1] dengan:

\begin{array}{c c c c}\\
p0[0] & =b[0]\times a[0]\quad & p0[1] & =b[0]\times a[1]
\\
p1[0] & =b[1]\times a[0]\quad & p1[1] & =b[1]\times a[1]\\
\end{array}

Hasil kali akhir dari bilangan a dan b akan membentuk bilangan P 4 bit: P[3] P[2] P[1] P[0] dengan penjumlahan parsiel sebagai berikut:

\begin{array}{c c c c}\\ &&p0[1]&p0[0]
\\ &p1[1]&p1[0]&0
\\ \hline P[3]&P[2]&P[1]&P[0]\end{array}

Untuk bilangan 8 bit: a[7:0] dan b[7:0], banyaknya hasil kali parsiel juga ada 8 buah:

\begin{array}{c c c c}\\
p0[7:0] & =a[0]\times b[7:0] & = \{ 8\{ a[0] \} \} \And & b[7:0]
\\
p1[7:0] & =a[1]\times b[7:0] & = \{ 8\{ a[1] \} \} \And & b[7:0]\\
p2[7:0] & =a[2]\times b[7:0] & = \{ 8 \{ a[2] \} \} \And & b[7:0]\\
p3[7:0] & =a[3]\times b[7:0] & = \{ 8 \{ a[3] \} \} \And & b[7:0]\\
p4[7:0] & =a[4]\times b[7:0] & = \{ 8 \{ a[4] \} \} \And & b[7:0]\\
p5[7:0] & =a[5]\times b[7:0] & = \{ 8 \{ a[5] \} \} \And & b[7:0]\\
p6[7:0] & =a[6]\times b[7:0] & = \{ 8 \{ a[6] \} \} \And & b[7:0]\\
p7[7:0] & =a[7]\times b[7:0] & =\{ 8 \{ a[7] \} \} \And & b[7:0]\\
\end{array}

Hasil akhirnya merupakan penjumlahan dari semua hasil kali parsiel:

\begin{array}{c c c c c c c c c c c c c c c c}\\&&&&&&&&p0[7]&p0[6]&p0[5]&p0[4]&p0[3]&p0[2]&p0[1]&p0[0]\\
&&&&&&&p1[7]&p1[6]&p1[5]&p1[4]&p1[3]&p1[2]&p1[1]&p1[0]&\\&&&&&&p2[7]&p2[6]&p2[5]&p2[4]&p2[3]&p2[2]&p2[1]&p2[0]&&\\&&&&&p3[7]&p3[6]&p3[5]&p3[4]&p3[3]&p3[2]&p3[1]&p3[0]&&&
\\&&&&p4[7]&p4[6]&p4[5]&p4[4]&p4[3]&p4[2]&p4[1]&p4[0]&&&&\\
&&&p5[7]&p5[6]&p5[5]&p5[4]&p5[3]&p5[2]&p5[1]&p5[0]&&&&&\\
&&p6[7]&p6[6]&p6[5]&p6[4]&p6[3]&p6[2]&p6[1]&p6[0]&&&&&&
\\&p7[7]&p7[6]&p7[5]&p7[4]&p7[3]&p7[2]&p7[1]&p7[0]&&&&&&&\\ \hline P[15]&P[14]&P[13]&P[12]&P[11]&P[10]&P[9]&P[8]&P[7]&P[6]&P[5]&P[4]&P[3]&P[2]&P[1]&P[0]
\\ \end{array}