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 Multiplier adalah adalah salah satu bagian yang paling penting dalam perangkat yang dapat mempengaruhi kinerja perangkat. Jadi, kecepatan tinggi dan sistem multiplier yang efisien efisien adalah adalah faktor faktor penting penting bagi para perancan perancang g perangkat mikroprosesor, mikroprosesor, mikrokontroler 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 implementasinya banyak menggunakan Appli menggunakan Application cation specific specific integrated integrated circuits circuits (ASICs) (ASICs).. Hal ini terutama diperlukan untuk aplikasi pengolahan gambar seperti JPEG dan MPEG MPEG dll, karena biaya pengembangan untuk ASIC untuk ASIC tinggi, algoritma harus diverifikasi dan dioptimalkan sebelum implementasi. FPGA memungkinkan tingkat paralelisme yang yang tinggi tinggi sehin sehingga gga dapat dapat menin meningka gkatka tkan n sumbe sumberr daya daya yang yang tertan tertanam am yang yang tersed tersedia ia pada pada FPGA. FPGA. FPGA mendapatkan manfaat manfaat dari kecepatan hardware dan fleksibilitas fleksibilitas perangkat lunak. Tujuan penulisan penulisan ini adalah untuk Array Multipliers Multipliers dengan Serial Multipliers Multipliers yang menganal menganalisis isis algoritma algoritma perkalian perkalian yang lebih optimal optimal antara antara Array dibentuk kedalam rangkaian elektonika elektonika digital dan mengimplementasi algoritma algoritma tersebut pada IC FPGA Spartan3E dengan meminimalisasi penggunaan sumber daya dari perangkat FPGA yang digunakan. Kata Kunci: Field Kunci: Field Programmab Programmable le Gate Gate Array Array (FPGA (FPGA), ), Serial Serial Multiplie Multipliers, rs, Array Array Multipli Multipliers, ers, Spartan-3 Spartan-3E, E, Xilinx ISE 9.2i 9.2i .
I.PENDAHULUAN
Seperti kita ketahui, sistem digital telah digun digunaka akan n dalam dalam kehidu kehidupan pan sehari sehari-ha -hari ri atau atau bidang industri saat ini karena lebih bermanfaat diband dibanding ingkan kan dengan dengan sistem sistem analog analog.. Karena Karena penting mengembangkan sistem digital, banyak perangkat digital baru yang telah desain secara komple kompleks. ks. Bebera Beberapa pa perang perangkat kat yang yang diseb disebut ut mikropros mikroprosesor esor,, mikrokont mikrokontroler roler atau microchip. microchip. Hal ini sangat sangat penting penting untuk untuk memiliki memiliki kinerja kece ecepata patan n yan yang san sangat tingg inggii di semua emua perangkat.
Multiplier Multiplier adalah adalah salah satu bagian yang paling penting dalam perangkat yang dapat mempe empen ngar garuhi uhi kin kinerja erja per perangk angkat at.. Jadi, adi, kecepa kecepatan tan tinggi tinggi dan sistem sistem multiplier yang efisien adalah faktor penting bagi para perancang perangkat mikroprosesor, mikrokontroler dan lain-lain digital. Seperti kita ketahu ketahui, i, operas operasii perkal perkalian ian tidak tidak sulit sulit untuk untuk dila dilaku kuka kan n di angk angkaa desi desima mal. l. Tapi Tapi,, untu untuk k melakukan operasi dalam bilangan biner (yang digunakan dalam sistem digital) adalah operasi yang yang sang sangat at komp komple leks ks.. Seca Secara ra khus khusus us,, jika jika pemprosesan harus dilakukan pada kondisi real time, time, algoritma algoritma yang digunaka digunakan n 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 realtime. 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]
3.2 FPGA XCS500E
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]
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).
Gambar 3.2
Proses Serial Multipliers 8 bit
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.
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 masingmasing. Dibawah ini gambar sistem secara keseluruhan baik untuk perkalian 4 bit, 6 bit dan 8 bit.
c.
Configurable Logic Blocks (CLB) Merupakan sumber daya utama untuk merancang rangkaian kombinasional secara sinkron. Masingmasing CLB berisi 4 slices dan masingmasing 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. Average Connenction delay(ns) Rata-rata waktu tunda yang dibutuhkan untuk menghubungkan Configurable Logic Blocks(CLB).
Gambar 4.1.1 Struktur Array Multipliers 4 bit [10]
e.
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
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.7 Komplit skematik RTL Array Multipliers 6 bit
Gambar 4.1.8 FPGA layout Array Multipliers 6 bit
Gambar 4.1.5 Struktur Rangkaian Array Multipliers 6 bit [10] Gambar 4.1.9 Struktur Rangkaian Array Multipliers 8 bit [10]
Gambar 4.1.6 Blok diagram Array Multipliers 6 bit 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
Gambar 4.2.2 Blok diagram Serial Multipliers 4 bit
Gambar 4.2.3 Komplit skematik RTL Serial Multipliers 4 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.4 FPGA layout Serial Multipliers 4 bit
Gambar 4.2.5 Struktur Rangkaian Serial Multipliers 6 bit Gambar 4.2.1 Struktur Rangkaian Serial Multipliers 4 bit
Gambar 4.2.6 Blok diagram Serial Multipliers 6 bit
Gambar 4.2.10 Blok diagram Serial
Multipliers 8 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.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
Gambar 5.2.1 Simulasi Array Multipliers 4 bit
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: 1/X : M = 4 x 10 -9 s = 4 ns Keterangan: X = 25 = Kecepatan 25 gambar dalam sekali eksekusi M = 106 = 10 Megapixel / citra 5.2
Simulasi
Multipliers
Rancangan
Array
Gambar 5.2.2 Simulasi Array Multipliers 6 bit
Gambar 5.2.5 Simulasi Serial Multipliers 6 bit
Gambar 5.2.3 Simulasi Array Multipliers 8 bit
Gambar 5.2.6 Simulasi Serial Multipliers 8 bit Gambar 5.2.4 Simulasi Serial Multipliers 4 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 implementasi perkalian.
pada
desain
dan
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%
daya
dibandingkan dengan Array Multipliers.
Multilpiers baik untuk perkalian empat
2. Desain
dan
perancangan
dengan
Array
bit, enam bit dan delapan bit .
Serial
Multipiers lebih efektif dibandingkan
dibandingkan
6.2 SARAN
Array Multipliers baik untuk 4 bit, 6 bit
Berdasarkan kesimpulan simulasi dari
dan 8 bit dilihat dari sumber daya yang
algoritma perkalian yang telah dibuat, maka
digunakan dengan parameter Four Input
didapatkan
LUTs, Occupied Slices, CLB, Bonded
penyempurnaan simulasi yaitu:
beberapa
saran
untuk
IOBs, Total Equivalent Gate Count, Average
Connenction
delay(ns)
dan
1. Membuat perbandingan simulasi kembali dengan membandingkan lebih dari dua
Maximum Pin delay(ns).
algoritma perkalian. 3. Serial
Multipliers
lebih
sedikit
2.
Menggunakan algoritma perkalian lain
menggunakan area dari sumber daya dan
seperti: Ripple-Carry Multiplier, Carry-
masih tersisa bagian yang tersedia yang
Save Multiplier, Multipliers Based on
dapat
Dissymmetric Br _ Bs Cells, Multipliers
dimanfaatkan
sehingga
dapat
disimpulkan bahwa Serial Multipliers
Based on Multioperand Adders, Per
menunjukan
Gelosia Multiplication Arrays dan Booth
peningkatan
yang
signifikan dalam penggunaan sumber
Multipliers.
Tabel 5.3.1 Pemanfaatan sumber daya untuk Array Multilpiers dan Serial Multilpiers
untuk Spartan-3E
Four Input
Occupied
LUTs
Slices
{9312}
{4656}
{1164}
{232}
Array Multilpiers
47
24
6
Serial Multilpiers
29
23
Array Multilpiers
121
Serial Multilpiers
Lebar
Bit
n = 4x4
n = 6x6
n = 8x8
Bonded
Total Equivalent
Average Connection
Maximum Pin
IOBs
Gate Count
delay (ns)
delay (ns)
18
282
1,593
4,375
6
24
345
0.984
4,071
63
16
26
726
1,542
5,684
46
36
9
34
527
1.196
3.984
Array Multilpiers
215
110
27
34
1290
1,235
4,916
Serial Multilpiers
62
49
12
44
703
1,255
4,825
Multipier
CLB
VII. DAFTAR PUSTAKA
[1]
http://download1334.mediafire.com/w01zeysrpb6g/mclssfrxlzq8r49 /Digital+Electronics+Principles%2C+Devices+and+Applications+by+Anil+Kumar+Maini.pdf
[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=88644043
[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