IMPLEMENTASI SERIAL MULTIPLIERS 8 BIT KE DALAM...
Transcript of IMPLEMENTASI SERIAL MULTIPLIERS 8 BIT KE DALAM...
IMPLEMENTASI SERIAL MULTIPLIERS 8 BIT KE DALAM
IC FPGA SEBAGAI PENDUKUNG PERCEPATAN OPERASI
PERKALIAN DALAM KOMPRESI CITRA
Drs. Lingga Hermanto, MMSi1
Iman Ilmawan Muharam2
1. Dosen Universitas Gunadarma
2. Mahasiswa Universitas Gunadarma
Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Gunadarma
Abstraksi
Multiplier adalah salah satu bagian yang paling penting dalam perangkat yang dapat mempengaruhi kinerja
perangkat. Jadi, kecepatan tinggi dan sistem multiplier yang efisien adalah faktor penting bagi para perancang
perangkat mikroprosesor, mikrokontroler dan lain-lain digital. Seperti diketahui, operasi perkalian tidak sulit untuk
dilakukan di angka desimal. Tapi, untuk melakukan operasi dalam bilangan biner (yang digunakan dalam sistem
digital) adalah operasi yang sangat kompleks. Secara khusus, jika pemprosesan harus dilakukan pada kondisi real
time, algoritma yang digunakan pada operasi perkalian harus berurusan dengan throughput yang tinggi. Dalam
implementasinya banyak menggunakan Application specific integrated circuits (ASICs). Hal ini terutama
diperlukan untuk aplikasi pengolahan gambar seperti JPEG dan MPEG dll, karena biaya pengembangan untuk ASIC
tinggi, algoritma harus diverifikasi dan dioptimalkan sebelum implementasi. FPGA memungkinkan tingkat
paralelisme yang tinggi sehingga dapat meningkatkan sumber daya yang tertanam yang tersedia pada FPGA. FPGA
mendapatkan manfaat dari kecepatan hardware dan fleksibilitas perangkat lunak. Tujuan penulisan ini adalah untuk
menganalisis algoritma perkalian yang lebih optimal antara Array Multipliers dengan Serial Multipliers yang
dibentuk kedalam rangkaian elektonika digital dan mengimplementasi algoritma tersebut pada IC FPGA Spartan-
3E dengan meminimalisasi penggunaan sumber daya dari perangkat FPGA yang digunakan.
Kata Kunci: Field Programmable Gate Array (FPGA), Serial Multipliers, Array Multipliers, Spartan-3E,
Xilinx ISE 9.2i .
I.PENDAHULUAN
Seperti kita ketahui, sistem digital telah
digunakan dalam kehidupan sehari-hari atau
bidang industri saat ini karena lebih bermanfaat
dibandingkan dengan sistem analog. Karena
penting mengembangkan sistem digital, banyak
perangkat digital baru yang telah desain secara
kompleks. Beberapa perangkat yang disebut
mikroprosesor, mikrokontroler atau microchip.
Hal ini sangat penting untuk memiliki kinerja
kecepatan yang sangat tinggi di semua
perangkat.
Multiplier adalah salah satu bagian yang
paling penting dalam perangkat yang dapat
mempengaruhi kinerja perangkat. Jadi,
kecepatan tinggi dan sistem multiplier yang
efisien adalah faktor penting bagi para
perancang perangkat mikroprosesor,
mikrokontroler dan lain-lain digital. Seperti kita
ketahui, operasi perkalian tidak sulit untuk
dilakukan di angka desimal. Tapi, untuk
melakukan operasi dalam bilangan biner (yang
digunakan dalam sistem digital) adalah operasi
yang sangat kompleks. Secara khusus, jika
pemprosesan harus dilakukan pada kondisi real
time, algoritma yang digunakan pada operasi
perkalian harus berurusan dengan throughput
yang tinggi.
Dalam implementasinya banyak
menggunakan Application specific integrated
circuits (ASICs). Hal ini terutama diperlukan
untuk aplikasi pengolahan gambar seperti JPEG
dan MPEG dll, karena biaya pengembangan
untuk ASIC tinggi, algoritma harus diverifikasi
dan dioptimalkan sebelum implementasi. Namun
dengan berkembangnya teknologi VLSI,
implementasi perangkat keras telah menjadi
alternatif yang diinginkan. Percepatan yang
signifikan dalam perhitungan waktu dapat
dicapai dengan menetapkan secara intensif
tugas proses perhitungan dengan menggunakan
perangkat keras dan dengan memanfaatkan
proses paralel dalam algoritma. Untuk saat ini,
field programmable gate arrays (FPGA) telah
muncul sebagai platform pilihan untuk
implementasi hardware yang efisien.
FPGA memungkinkan tingkat
paralelisme yang tinggi sehingga dapat
meningkatkan sumber daya yang tertanam yang
tersedia pada FPGA. FPGA mendapatkan
manfaat dari kecepatan hardware dan
fleksibilitas perangkat lunak. Tiga faktor utama
yang mempunyai peran penting dalam desain
berbasis FPGA adalah arsitektur FPGA yang
digunakan, perangkat electronic design
automation (EDA) dan desain teknik yang
digunakan pada tingkat algoritma yang
menggunakan hardware description language
(HDL). Oleh karena itu FPGA telah menjadi
teknologi yang layak dan menarik untuk ASIC.
II.RUMUSAN MASALAH
a) Merancang algoritma perkalian yang
dapat memenuhi kecepatan proses real-
time.
b) Membandingkan dua buah algoritma
perkalian untuk optimalisasi rancangan.
c) Mengimplementasikan operasi aritmetik
perkalian dalam kompresi citra secara
real-time.
d) Rancang bangun perkalian dengan
FPGA ini dibatasi oleh beberapa
parameter yang dimiliki FPGA
Spartan3E, diantaranya: Four Input
LUTs, Occupied Slices, Bonded IOBs,
Total Equivalent Gate Count, Average
Connenction delay(ns) dan Maximum
Pin delay(ns)
III.TINJAUAN PUSTAKA
3.1 Algoritma Perkalian yang digunakan yaitu:
a. Array Multipliers
Perkalian meliputi pembentukan
beberapa perkalian parsial untuk setiap digit
dalam multiplier. Perkalian parsial ini kemudian
dijumlahkan untuk mendapatkan hasil Perkalian
akhir. Bila bit multiplier sama dengan 0, maka
hasil Perkalian 0. Bila bit multiplier 1, maka
hasil Perkalian sama dengan mutiplicand Hasil
pengalian akhir diperoleh dengan menjumlahkan
perkalian parsial tersebut. Setiap hasil perkalian
parsial yang berurutan digeser satu posisi ke kiri
relatif terhadap hasil perkalian sebelumnya.
Sebagai pengantar akan ditunjukan
operasi perkalian bilangan tak bertanda
(unsigned integer) dan sebagai contoh
ditunjukkan pada gambar 2.1 operasi perkalian
untuk operand Multiplicand (A) = 11010110 dan
Multiplier (B) = 00101101. [3]
Gambar 3.1 Proses Array Multipliers 8 bit
b. Serial Multipliers
Perkalian meliputi pembentukan
beberapa perkalian parsial untuk setiap digit
dalam multiplier. Perkalian parsial ini
kemudian dijumlahkan untuk mendapatkan
hasil perkalian akhir. Bila bit multiplier
sama dengan 0, maka hasil perkaliannya 0.
Bila bit multiplier 1, maka hasil
perkaliannya sama dengan multiplicand.
Hasil pengalian akhir diperoleh dengan
menjumlahkan perkalian parsial tersebut.
Setiap hasil perkalian parsial yang berurutan
digeser satu posisi ke kiri relatif terhadap
hasil perkalian sebelumnya Pada setiap hasil
perkalian parsial ditambahkan carry out 0
pada MSB hasil perkalian parsial. [4]
Gambar 3.2 Proses Serial Multipliers 8 bit
3.2 FPGA XCS500E
XC3S500E merupakan keluarga FPGA
dari seri Spartan 3E. Spartan 3E mampu
mendukung sistem dengan kecepatan clock
hingga 300 MHz. Piranti tersebut dilengkapi
dengan RAM di dalam chip dan dekoder input
yang lebar sehingga lebih berdaya guna untuk
aplikasi-aplikasi sistem digital. Spartan 3E juga
dilengkapi dengan blok pengali dengan jumlah
berkisar 4 sampai 36. Keluarga Spartan 3E
mempunyai beberapa varian dengan kapasitas
berkisar 100.000 sampai 1.600.000 gerbang.
Pada skripsi ini digunakan XC3S500E yang
mempunyai parameter seperti pada Tabel 2.14
berikut. [12]
Tabel 3.1 Parameter-parameter FPGA Xilinx
XC3S500E.
3.3 Parameter Pemanfaatan sumber daya
pada Xilinx Spartan-3E
Untuk perancangan dan implementasi
pada FPGA memiliki beberapa parameter untuk
meminimalkan penggunaan sumber daya dan
optimalisasi proses yaitu Four Input LUTs,
Occupied Slices, Bonded IOBs, Total Equivalent
Gate Count, Average Connenction delay(ns) dan
Maximum Pin delay(ns).
a. Four Input LUTs
Merupakan sejenis RAM (Random
Acces Memory) yang berkapasitas kecil.
Di dalam FPGA, LUT ini memegang
peranan penting dalam proses
implementasi fungsi-fungsi logika.
Selain itu, LUT ini berciri khas memiliki
input sejumlah 4 buah.
b. Occupied Slices
Merupakan blok dasar pembangun
FPGA. Setiap slice berisi sejumlah
LUT’s, flip-flop dan elemen carry logic
yang membentuk desain logika sebelum
pemetaan.
c. Configurable Logic Blocks (CLB)
Merupakan sumber daya utama
untuk merancang rangkaian
kombinasional secara sinkron. Masing-
masing CLB berisi 4 slices dan masing-
masing slices dua Look-Up Tables
(LUTs) untuk merancang logika dan
dua media penyimpanan yang digunakan
sebagai flip-flop atau latch.
d. Total Equivalent Gate Count
Merupakan jumlah total dari
gerbang logika yang digunakan baik
gerbang dasar maupun gerbang
kombinasional.
e. Average Connenction delay(ns)
Rata-rata waktu tunda yang
dibutuhkan untuk menghubungkan
Configurable Logic Blocks(CLB).
f. Maximum Pin delay(ns).
Maksimal waktu tunda yang
dibutuhkan untuk masing-masing
pin.
g. Bonded I/O
Sebagai interface antara external
package pin dari device dan internal
user logic.
IV.PERANCANGAN
4.1 Modul perancangan Array Multipliers
Dalam perancangan Array Multipliers
akan mengambil perkalian dengan lebar 4 bit, 6
bit dan 8 bit. Dalam masing-masing perancangan
Array Multipliers ini terdiri dari beberapa unit
yaitu Full Adder, Ripple Carry Adder, Gerbang
AND, blok Array Multipliers pada baris pertama
dan blok Array Multipliers pada baris 2 dan n-
baris yang masing mempuyai fungsi masing-
masing. Dibawah ini gambar sistem secara
keseluruhan baik untuk perkalian 4 bit, 6 bit dan
8 bit.
Gambar 4.1.1 Struktur Array
Multipliers 4 bit [10]
Gambar 4.1.2 Blok diagram Array
Multipliers 4 bit
Gambar 4.1.3 Komplit skematik
RTL Array Multipliers 4 bit
Gambar 4.1.4 FPGA layout Array
Multipliers 4 bit
Gambar 4.1.5 Struktur Rangkaian
Array Multipliers 6 bit [10]
Gambar 4.1.6 Blok diagram Array
Multipliers 6 bit
Gambar 4.1.7 Komplit skematik RTL
Array Multipliers 6 bit
Gambar 4.1.8 FPGA layout Array
Multipliers 6 bit
Gambar 4.1.9 Struktur Rangkaian
Array Multipliers 8 bit [10]
Gambar 4.1.10 Blok diagram
Array Multipliers 8 bit
Gambar 4.1.11 Komplit skematik
RTL Array Multipliers 8 bit
Gambar 4.1.12 FPGA layout Array
Multipliers 8 bit
4.2 Modul perancangan Serial Multipliers
Dalam perancangan Serial Multipliers
akan mengambil beberapa contoh perkalian
dengan lebar 4 bit, 6 bit dan 8 bit. Dalam
masing-masing perancangan Serial Multipliers
ini terdiri dari beberapa unit yaitu Ripple Carry
Adder, Gerbang AND, Register Buffer
Terkendali (multiplicand), Register Geser
Terkendali (multiplier), Register (produk
partial), Register Geser (produk partial) dan
Pencacah Putar (pengendali) yang masing
mempuyai fungsi masing-masing. Dibawah ini
gambar sistem secara keseluruhan baik untuk
perkalian 4 bit, 6 bit dan 8 bit.
Gambar 4.2.1 Struktur Rangkaian Serial
Multipliers 4 bit
Gambar 4.2.2 Blok diagram Serial
Multipliers 4 bit
Gambar 4.2.3 Komplit skematik RTL Serial
Multipliers 4 bit
Gambar 4.2.4 FPGA layout Serial
Multipliers 4 bit
Gambar 4.2.5 Struktur Rangkaian
Serial Multipliers 6 bit
Gambar 4.2.6 Blok diagram Serial
Multipliers 6 bit
Gambar 4.2.7 Bagian skematik RTL
Serial Multipliers 6 bit
Gambar 4.2.8 FPGA layout Serial
Multipliers 6 bit
Gambar 4.2.9 Struktur Rangkaian Serial
Multipliers 8 bit
Gambar 4.2.10 Blok diagram Serial
Multipliers 8 bit
Gambar 4.2.11 Bagian skematik RTL Serial
Multipliers 8 bit
Gambar 4.2.12 FPGA layout Serial
Multipliers 8 bit
V.SIMULASI
Pengujian hasil perancangan perkalian
ini salah satunya dilakukan dengan simulasi
menggunakan perangkat lunak Xilinx ISE
simulator. Simulasi secara perangkat lunak
dilakukan pada satu rangkaian perkalian secara
utuh.
5.1 Pengaturan clock untuk simulasi
Untuk melakukan simulasi tentunya
akan dibutuhkan sinyal clock, besarnya clock
yang digunakan akan mempengaruhi waktu
kecepatan proses dalam eksekusi. Berikut
merupakan perhitungan clock yang digunakan
pada simulasi rancangan perkalian ini:
Keterangan:
X = 25 = Kecepatan 25 gambar dalam sekali
eksekusi
M = 106 =
10 Megapixel / citra
5.2 Simulasi Rancangan Array Multipliers
Gambar 5.2.1 Simulasi Array Multipliers 4 bit
Gambar 5.2.2 Simulasi Array Multipliers 6 bit
Gambar 5.2.3 Simulasi Array Multipliers 8 bit
1/X : M = 4 x 10-9
s = 4 ns
Gambar 5.2.4 Simulasi Serial Multipliers 4 bit
Gambar 5.2.5 Simulasi Serial Multipliers 6 bit
Gambar 5.2.6 Simulasi Serial Multipliers 8 bit
5.3 Desain dan Implementasi pada FPGA
Desain dari Array Multilpiers dan
Serial Multilpiers 4x4,6x6 dan 8x8 telah
diselesaikan dengan menggunakan VHDL dan
implementasi dalam Xilinx Spartan-3E (package
:FG320, speed :-4), dalam proses pembuatan
desain ini menggunakan Design tool Xilinx ISE
9.2i . Tabel 5.3.1menunjukan Pemanfaatan
sumber daya untuk Spartan-3E pada desain dan
implementasi perkalian.
VI. KESIMPULAN DAN SARAN
6.1 KESIMPULAN
1. Serial Multipliers dapat mengurangi
penggunaan Four Input LUTs= 1.7%,
Occupied Slices = 1.3%, CLB=1.3%
dibandingkan dengan Array Multipliers.
2. Desain dan perancangan Serial
Multipiers lebih efektif dibandingkan
Array Multipliers baik untuk 4 bit, 6 bit
dan 8 bit dilihat dari sumber daya yang
digunakan dengan parameter Four Input
LUTs, Occupied Slices, CLB, Bonded
IOBs, Total Equivalent Gate Count,
Average Connenction delay(ns) dan
Maximum Pin delay(ns).
3. Serial Multipliers lebih sedikit
menggunakan area dari sumber daya dan
masih tersisa bagian yang tersedia yang
dapat dimanfaatkan sehingga dapat
disimpulkan bahwa Serial Multipliers
menunjukan peningkatan yang
signifikan dalam penggunaan sumber
daya dibandingkan dengan Array
Multilpiers baik untuk perkalian empat
bit, enam bit dan delapan bit .
6.2 SARAN
Berdasarkan kesimpulan simulasi dari
algoritma perkalian yang telah dibuat, maka
didapatkan beberapa saran untuk
penyempurnaan simulasi yaitu:
1. Membuat perbandingan simulasi kembali
dengan membandingkan lebih dari dua
algoritma perkalian.
2. Menggunakan algoritma perkalian lain
seperti: Ripple-Carry Multiplier, Carry-
Save Multiplier, Multipliers Based on
Dissymmetric Br _ Bs Cells, Multipliers
Based on Multioperand Adders, Per
Gelosia Multiplication Arrays dan Booth
Multipliers.
Tabel 5.3.1 Pemanfaatan sumber daya untuk Array Multilpiers dan Serial Multilpiers
untuk Spartan-3E
VII. DAFTAR PUSTAKA
[1] http://download1334.mediafire.com/w01zeysrpb6g/mclssfrxlzq8r49
/Digital+Electronics+Principles%2C+Devices+and+Applications+by+Anil+Kumar+Maini.pdf
Lebar
Multipier
Four
Input Occupied CLB
Bonded Total Equivalent Average Connection Maximum Pin
Bit
LUTs Slices IOBs Gate Count delay (ns) delay (ns)
{9312} {4656} {1164} {232}
n = 4x4
Array Multilpiers 47 24 6 18 282 1,593 4,375
Serial Multilpiers 29 23 6 24 345 0.984 4,071
n = 6x6
Array Multilpiers 121 63 16 26 726 1,542 5,684
Serial Multilpiers 46 36 9 34 527 1.196 3.984
n = 8x8
Array Multilpiers 215 110 27 34 1290 1,235 4,916
Serial Multilpiers 62 49 12 44 703 1,255 4,825
[2] ttp://elib.unikom.ac.id/files/disk1/468/jbptunikompp-gdl-sindrianil-23378-6-5-arithm-t.pdf
[3] http://id.wikipedia.org/wiki/Pengganda_biner
[4] http://ece224web.groups.et.byu.net/lectures/MULT.pdf
[5] http://images.alfianaceh.multiply.multiplycontent.com/attachment/0/
R@6WbgoKCrwAACqNcX01/Gerbang%20Logika.pdf?key=alfianaceh:journal:1&nmid=88644
043
[6] http://journal.mercubuana.ac.id/data/02%20-%20Gerbang gerbang%20sistem%20digital.pdf
[7] Widjanarka N,IR.Wijaya.2006.Teknik Digital.Jakarta,Erlangga.
[8] http://adit279.wordpress.com/2008/12/04/asic-application-specific-integrated-circuit/
[9] www.freewebs.com/chwijaya132/Resume%20Chapter%201.doc
[10] www.scribd.com/doc/38151138/Field-Programmable-Gate-Array
[11] http://indoware.com/bagaimanacarakerjafpga.html
[12] http://te.ugm.ac.id/~enas/tesis260199.pdf