disain dan implementasi full adder dan full...
TRANSCRIPT
DISAIN DAN IMPLEMENTASI FULL ADDER DAN FULL
SUBSTRACTOR SERIAL DATA KEDALAM IC FPGA SEBAGAI
PERCEPATAN PERKALIAN MATRIKS DALAM OPERASI CITRA
Drs. Lingga Hermanto, MM,. MMSI.,1
Shandi Aji Pusghiyanto2
1. Dosen Universitas Gunadarma
2. Mahasiswa Universitas Gunadarma Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Gunadarma
Abstraksi
Field Programmable Gate Array (FPGA) merupakan perangkat keras yang nantinya akan digunakan untuk mengimplementasikan perangkat lunak yang telah dirancang sebelumnya untuk
menghasilkan algoritma kompresi JPEG dan MPEG. FPGA lebih mudah digunakan dan lebih cepat dalam segi pengoperasiannya dibandingkan perangkat keras yang lain, karena di dalam
FPGA kita dapat mengimplementasikan rangkaian – rangkaian digital. Tujuan penulisan ini adalah untuk menganalisis algoritma penjumlahan dan pengurangan yang lebih optimal 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. Disain dan perancangan Serial Adder dan Serial Substrctor lebih efektif dibandingkan Ripple Carry Adder dan Ripple Substractor 4 bit, 6 bit, dan 8 bit dilihat dari segi
penggunaan secara real time, namun sumber daya yang digunakan lebih banyak dibandingkan rangkaian Ripple Carry Adder dan Ripple Substractor.
Kata Kunci : Field Programmable Gate Array (FPGA), Full Adder, Full Substractor, Ripple
Carry Adder, Ripple Substractor, Serial Adder, Serial Substractor, Spartan-3E, Xilinx ISE 9.2i .
I. PENDAHULUAN
Perkembangan dunia
multimedia sangatlah pesat, banyak
sekali macam – macam multimedia
pada saat ini mulai dari foto ( JPEG )
dan MPEG yang meliputi citra, video,
dan audio. Namun banyak multimedia
yang memiliki space atau ukuran yang
sangat besar sehingga berdampak pada
camera digital maupun device lainnya
yang berhubungan dengan multimedia.
Kompresi JPEG dan MPEG
menjadi solusi terbaik untuk
mendapatkan ukuran JPEG atau MPEG
yang lebih kecil tetapi tetap
menghasilkan JPEG atau MPEG yang
memiliki kualitas yang tinggi, dengan
algoritma kompresi citra / video yang
akan di implementasikan kedalam
bentuk perangkat lunak yang nantinya
akan di implementasikan kedalam
perangkat keras.
Field Programmable Gate
Array (FPGA) merupakan perangkat
keras yang nantinya akan digunakan
untuk mengimplementasikan perangkat
lunak yang telah dirancang sebelumnya
untuk menghasilkan algoritma kompresi
JPEG dan MPEG. FPGA lebih mudah
digunakan dan lebih cepat dalam segi
pengoperasiannya dibandingkan
perangkat keras yang lain, karena di
dalam FPGA kita dapat
mengimplementasikan rangkaian –
rangkaian digital.
Rangkaian – rangkaian digital
yang bisa di implementasikan ke dalam
FPGA nantinya yang akan merancang
algoritma kompresi JPEG dan MPEG
dengan menggunakan rangkaian
schematic yang telah ada di dalam
FPGA, oleh karena itu penulis tertarik
untuk melakukan percobaan “Desain
dan Implementasi Full Adder dan Full
Substractor Serial Data Kedalam IC
FPGA Sebagai Penunjang Percepatan
Operasi Perkalian Matriks Dalam
Operasi Citra ” sebagai bagian dari
penelitian yang memfokuskan pada
“Pengembangan Algoritma Coding,
Perangkat Lunak dan Perangkat
Keras untuk Pengamanan dan
Kompresi Data Rahasia Multimedia
(teks, audio, citra dan video)”.
II. RUMUSAN MASALAH
a) Merancang algoritma penjumlahan dan pengurangan yang dapat
memenuhi kecepatan proses real-time.
b) Membandingkan dua buah algoritma penjumlahan dan pengurangan.
c) Mengimplementasikan operasi aritmetik penjumlahan dan perkalian
dalam kompresi citra secara real-time.
d) Rancang bangun penjumlahan dan pengurangan 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 Penjumlahan Biner
Operasi yang paling mendasar dalam
suatu sistem digital adalah penjumlahan
hampir semua operasi aljabar dapat
dilaksanakan dengan operasi penjumlahan.
Rangkaian penjumlah yang paling sederhana
dan mendasar adalah penjumlah yang
menjumlahkan dua angka biner. Untuk
mengetahui bentuk rangkaian yang
dibutuhkan kita lihat hukum penjumlahan
dua angka biner sebagai berikut :
0 + 0 = 0 0 + 1 = 1
1 + 0 = 1 1 + 1 = 0 carry (simpan) 1 = 10
Dengan menyebut kedua inputan
atau masukan yang dijumlahkan sebagai X
dan Y, hasil penjumlahan sebagai S (Sum),
dan simpanan sebagai C (Carry), maka table
kebenaran untuk rangkaian penjumlahan
diatas dapat dibuat sebagai berikut [11] :
Tabel 3.1.1 Tabel kebenaran rangkaian
penjumlahan
3.2 Algoritma Pengurangan Biner
Operasi pengurangan dapat
dilaksanakan dengan penjumlahan dengan
komplemen bilangan pengurang. Ini tidak
berarti bahwa rangkaian untuk pengurangan
tidak dapat dibentuk. Yang perlu
diperhatikan dalam operasi pengurangan
adalah adanya pinjaman (borrow) dari bit
yang lebih mahal bila bit pengurang lebih
besar dari pada bit yang dikurangi.
Pada inputan atau kedua operand
disebut x dan y, selisih disebut D
(difference) dan pinjaman disebut B
(borrow), maka tabel kebenaran pengurang
sebagai berikut [11]:
Tabel 3.1.2 a. Pengurangan Paruh ;
b. Pengurang Penuh
(a)
(b)
3.3 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]
X Y D B
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
X Y Z D B
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
X Y S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Tabel 3.3.1 Parameter-parameter FPGA Xilinx XC3S500E.
3.4 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 Ripple Carry
Adder
Rangkaian Ripple Carry Adder berikut penulis juga membuat 3 buah rangkaian
yang terdiri dari 4 Bit, 6 Bit dan 8 Bit yang nantinya rangkaian ini akan diuji dengan
rangkaian Full Adder dan Shift, manakah diantara kedua rangkaian tersebut yang
memiliki hasil lebih optimal pada hasil akhir.
Berikut adalah Rangkaian Ripple Carry Adder 4 Bit dan table Jenis dan fungsi port :
Gambar 4.1.1. Struktur Ripple Carry Adder
4 Bit
Gambar 4.1.2 Blok Diagram Ripple Carry Adder 4 Bit
Gambar 4.1.3 Schematic Ripple Carry
Adder 4 Bit
Gambar 4.1.4 Struktur Ripple Carry
Adder 6 Bit
Gambar 4.1.5 Blok Diagram Ripple Carry Adder 6 Bit
Gambar 4.1.6 Schematic Ripple Carry Adder 6 Bit
Gambar 4.1.7 Struktur Ripple
Carry Adder 8 Bit
Gambar 4.1.8 Blok Diagram Ripple
Carry Adder 8 Bit
Gambar 4.1.9 Schematic Ripple
Carry Adder 8 Bit
4.2 Modul Perancangan Ripple
Substractor
Rangkaian ini merupakan rangkaian
pengurangan dimana rangkaian ini hampir
sama dengan rangkaian Ripple Carry Adder
diatas perbedaannya hanya terdapat
tambahan gerbang NOT di dalam
rangkaiannya, penulis juga membuat
rangkaian Ripple Substractor ini menjadi 3
yaitu 4 Bit, 6 Bit dan 8 Bit yang nantinya
menjadi bahan pengujian dengan rangkaian
Full Substractor dan Shift, Berikut adalah
rangkaian Ripple Substractor 4 Bit :
Gambar 4.2.1 Struktur Ripple
Substractor 4 Bit
Gambar 4.2.2 Blok Diagram Ripple
Substractor 4 Bit
Gambar 4.2.3 Schematic Ripple
Substractor 4 Bit
Gambar 4.2.4 Struktur Ripple
Subtractor 6 Bit
Gambar 4.2.5 Blok Diagram Ripple
Substractor 6 Bit
Gambar 4.2.6 Schematic Ripple
Substractor 6 Bit
Gambar 4.2.7 Struktur Ripple
Substractor 8 Bit
Gambar 4.2.8 Blok Diagram Ripple Substractor 8 Bit
Gambar 4.2.9 Schematic Ripple
Substractor 8 Bit
4.3 Modul Perancangan Penjumlahan
Serial Adder
Dibawah ini adalah perancangan penjumlahan serial adder dimana inti proses
terdapat pada rangkaian Full Adder yang telah di kombinasikan dengan beberapa
rangkaian lain untuk mempercepat proses penjumlahan seperti rangkaian input yang
terdiri dari kombinasi gerbang AND dan rangkaian RS - Flip Flop (Register Geser
Terkendali). Kemudian pada Output terdapat
rangkaian kombinasi dari rangkaian D–Flip Flop yang membentuk Register Buffer,
dimana setiap rangkaian tersebut mempunyai fungsi yang berbeda.
Gambar 4.3.1 Struktur Serial
Adder 4 Bit
Gambar 4.3.2 Blok Diagram Serial Adder 4 Bit
Gambar 4.3.3 Schematic Serial
Adder 4 Bit
Gambar 4.3.4 Struktur Serial Adder 6 Bit
Gambar 4.3.5 Blok Diagram Serial Adder 6 Bit
Gambar 4.3.6 Schematic Serial Adder 6 Bit
Gambar 4.3.7 Struktur Serial
Adder 8 Bit
Gambar 4.3.8 Blok Diagram Serial Adder 8 Bit
Gambar 4.3.9 Schematic Serial Adder 8 Bit
4.4 Modul Perancangan Serial
Substractor
Rangkaian serial Substractor merupakan
rangkaian Full Substractor pada inti dalam
rangkaian ini, dimana rangkaian ini telah di
kombinasikan dengan rangkaian RS – Flip
flop sebagai Register Terkendali dan D –
Flip flop yang terdapat pada bagian akhir
dari rangkaian ini yang berfungsi sebagai
output yang memiliki kesamaan fungsi pada
rangakain serial substractor yang telah
dibahas sebelumnya.
Rangkaian ini juga memiliki blok input
yang sama dengan rangkaian serial adder
karena blok input pada rangkaian ini
memeliki fungsi yang sama sebagai register
terkendali untuk nilai inputan yang akan
diolah atau diproses di dalam rang Full
Substractor.
Penulis juga membuat 3 buah rangkaian
yaitu, 4 Bit, 6 Bit dan 8 Bit yang nantinya
pada tahap pengujian akan dibandingkan
dengan rangkaian Full Substractor, berikut
adalah rangkaian serial substractor 4 Bit dan
table jenis dan fungsi port dari rangkaian
serial substractor 4 Bit :
Gambar 4.4.1 Struktur Serial
Substractor 4 Bit
Gambar 4.4.2 Blok Diagram Serial
Substractor 4 Bit
Gambar 4.4.3 Schematic Serial Substractor 4 Bit
Gambar 4.4.4 Struktur Serial
Substractor 6 Bit
Gambar 4.4.5 Blok Diagram Serial Substractor 6 Bit
Gambar 4.4.6 Schematic Serial
Substractor 6 Bit
Gambar 4.4.7 Struktur Serial Substractor 8 Bit
Gambar 4.4.8 Blok Diagram Serial
Substractor 8 Bit
Gambar 4.4.9 Schematic Serial
Substractor 8 Bit
V. SIMULASI
Pengujian hasil perancangan
penjumlahan dan pengurangan ini salah satunya dilakukan dengan simulasi
menggunakan perangkat lunak Xilinx ISE simulator. Simulasi secara perangkat lunak
dilakukan pada satu rangkaian penjumlahan dan pengurangan secara utuh dan pada tiap-
tiap unit pada rangkaian penjumlahan dan
pengurangan.
5.1 Pengaturan Clock 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 penjumlahan dan pengurangan ini:
Keterangan: 25 = Kecepatan 25 gambar dalam
sekali eksekusi 10
6 =
10 Megapixel / citra
5.2 Simulasi Rancangan Ripple Carry
Adder
Gambar 5.2.1 Simulasi Ripple Carry
Adder 4 Bit
Gambar 5.2.2 Simulasi Ripple Carry
Adder 6 Bit
Gambar 5.2.3 Simulasi Ripple Carry
Adder 8 Bit
1/25 : 106 = 4 x 10
-9 s = 4 ns
5.3 Simulasi Rancangan Ripple
Substractor
Gambar 5.3.1 Simulasi Ripple
Substractor 4 Bit
Gambar 5.3.2 Simulasi Ripple
Substractor 6 Bit
Gambar 5.3.3 Simulasi Ripple Substractor 8 Bit
5.4 Simulasi Rancangan Serial Adder
Gambar 5.4.1 Simulasi Serial Adder 4 Bit
Gambar 5.4.2 Simulasi Serial Adder 6 Bit
Gambar 5.4.3 Simulasi Serial
Adder 8 Bit
5.5 Simulasi Serial Substractor
Gambar 5.5.1 Simulasi Serial Substractor 4 Bit
Gambar 5.5.2 Simulasi Serial Substractor 6 Bit
Gambar 5.5.3 Simulasi Serial
Substractor 8 Bit
5.6 Desain dan Implementasi pada FPGA Desain dari Ripple Carry Adder,
Ripple Substractor, Serial Adder dan Serial Substractor 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.6.1menunjukan Pemanfaatan sumber daya
untuk Spartan-3E pada desain dan implementasi penjumlahan dan
pengurangan.
VI. KESIMPULAN
Berdasarkan hasil pengamatan dan analisis yang telah dilakukan dapat disimpulkan
bahwa secara umum : 1. Pemakaian sumber daya yang
dibutuhkan oleh rangkaian baik penjumlahan secara serial adder
dan pengurangan secara serial adder lebih banyak dibandingkan
dengan rangkaian penjumlahan ripple carry adder dan
pengurangan ripple substractor. 2. Jika pengguanaan rangkaian
secara real time maka penjumlahan secara serial adder
dan pengurangan secara serial substractor lebih efektif
dibandingkan penjumlahan secara ripple carry adder dan
pengurangan secara ripple substractor
3. Rangkaian – rangkaian yang telah dirangkai dan semua
rangkaian telah memenuhi semua criteria yang diinginkan untuk
“Pengembangan Algoritma
Coding, Perangkat Lunak dan
Perangkat Keras untuk
Pengamanan dan Kompresi
Data Rahasia Multimedia (teks, audio, citra dan video)”
Tabel 4.6.1 Tabel Pemanfaatan sumber daya untuk Spartan-3E pada desain dan implementasi
penjumlahan dan pengurangan
Lebar
Rangkaian
Four
Input Occupied Bonded Total Equivalent Average Connection Maximum Pin
Bit LUTs Slices IOBs
Gate Count delay (ns) delay (ns)
{9312} {4656} {232}
n = 4x4
Ripple Carry Adder 8 5 13 48 0.948 2.971
Serial Adder 18 19 25 223 1.095 3.824
n = 6x6
Ripple Carry Adder 12 8 19 19 1.102 3.808
Serial Adder 26 29 35 319 1.090 4.439
n = 8x8
Ripple Carry Adder 16 11 25 96 0.826 3.426
Serial Adder 34 39 45 415 1.055 5.308
n = 4x4
Ripple Substractor 8 5 13 48 0.948 2.971
Serial Substractor 18 19 25 223 1.095 3.824
n = 6x6
Ripple Substractor 12 8 19 72 1.102 3.808
Serial Substractor 26 29 35 319 1.090 4.439
n = 8x8
Ripple Substractor 16 11 25 232 0.855 3.426
Serial Substractor 34 39 45 415 1.055 5.308
VII. DAFTAR PUSTAKA
[1].http://download1334.mediafire.com/w01
zeysrpb6g/mclssfrxlzq8r49/Digital+Electronics+Principles%2C+Devices+and+Applicati
ons+by+Anil+Kumar+Maini.pdf
[2].http://elib.unikom.ac.id/files/disk1/468/jbptunikompp-gdl-sindrianil-23378-6-5-
arithm-t.pdf
[3].http://images.alfianaceh.multiply.multipl
ycontent.com/attachment/0/ R@6WbgoKCrwAACqNcX01/Gerbang%2
0Logika.pdf?key=alfianaceh:journal:1&nmid=88644043
[4].http://journal.mercubuana.ac.id/data/02%20-%20Gerbang
gerbang%20sistem%20digital.pdf
[5].Widjanarka N,IR.Wijaya.2006.Teknik Digital.Jakarta,Erlangga.
[6].www.freewebs.com/chwijaya132/Resum
e%20Chapter%201.doc
[7].www.scribd.com/doc/38151138/Field-Programmable-Gate-Array
[8].http://indoware.com/bagaimanacarakerja
fpga.html
[9].http://te.ugm.ac.id/~enas/tesis260199.pdf
[10]. Modul Praktikum FPGA
[11].http://indoware.com/aritmatikabiner.html