MERGESORT DALAM TINGKAT REGISTER TRANSFER LOGIC BERBASIS FIELD PROGRAMMABLE GATE ARRAY

dokumen-dokumen yang mirip
FPGA Field Programmable Gate Array

untuk ASIC tinggi, algoritma harus diverifikasi dan dioptimalkan sebelum implementasi. Namun dengan berkembangnya teknologi VLSI, implementasi perangk

Field Programmable Gate Array (FPGA) merupakan perangkat keras yang nantinya akan digunakan untuk mengimplementasikan perangkat lunak yang telah diran

IMPLEMENTASI FIELD PROGRAMMABLE GATE ARRAY DALAM PERANCANGAN ARITHMETIC-LOGIC UNIT DAN SHIFTER

BAB I PENDAHULUAN Latar Belakang Rumusan Masalah Tujuan

Implementasi Prototipe Sistem Kontrol Elevator Berbasis FPGA Menggunakan VHDL

Read Only Memory (ROM) berbasis Field Programmable Gate Array (FPGA) menggunakan VHDL (VHSIC Hardware Description Language)

BAB 1. Pendahuluan. diprogram secara digital ditemukan seperti IC sederhana seperti General Array

Percepatan Menggunakan Perangkat Keras

Lampu lalu lintas sederhana berbasis Field Programmable Gate Array (FPGA) menggunakan Finite State Machine

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

ARSITEKTUR FPGA. Veronica Ernita K.

RUMUSAN MASALAH Rumusan masalah yang diambil penulis ialah mengembangkan dari latar belakang masalah yang telah diuraikan di atas, dan dapat diperoleh

MODUL I Pengenalan Teknologi FPGA

IMPLEMENTASI FIELD PROGRAMMABLE GATE ARRAY (FPGA) UNTUK MEMBUAT GAME RICOCHET. Naskah Publikasi. diajukan oleh Astona Sura Satrida

Analisa Model Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC)

Implementasi Penampil Citra Dengan Menggunakan Picoblaze FPGA

PROGRAMMABLE LOGIC DEVICES

MULTIPLEKSER BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

Design Capture dalam Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC)

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

Teknologi Implementasi dan Metodologi Desain Sistem Digital

PURWARUPA MIKROPROSESOR BERBASIS FPGA ALTERA EPF10K10 DENGAN DESKRIPSI VHDL

Desain dan Implementasi Convolutional Encoder (2, 1, 8) dalam Field Programmable Gate Array (FPGA)

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KONTRAK PEMBELAJARAN (KP) MATA KULIAH

Pendahuluan BAB I PENDAHULUAN

BAB 1 PENDAHULUAN. dengan teknologi digital, maka perangkat tersebut memiliki sebuah integrated

MODUL TRAINING PRAKTIKUM MENGGUNAKAN FPGA

Metodologi Top-down bagi Perancang Chip (Implementasi Field Programmable Gate Array (FPGA) dan Application Spesific Integrated Circuit (ASIC))

Latihan 19 Maret 2013

PLA & PLD Programmable Logic Array Programmable Logic Device

ANALISIS PERBANDINGAN METODE PERKALIAN ARRAY DAN BOOTH. Hendra Setiawan 1*, Fahmi Nugraha 1. Jl. Kaliurang km.14.5, Yogyakarta 55582

PERANCANGAN PLC MENGGUNAKAN FPGA

BAB I PENDAHULUAN. Gambar 1.1 : Xilinx Foundation Series

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika. Assembler Bahasa pemrograman mikrokontroler MCS-51

Pengenalan VHDL. [Pengenalan VHDL]

MATERI PELATIHAN VHDL UNTUK SINTESIS

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB V SISTEM PENGOLAHAN DATA KOMPUTER (Arsitektur Komputer) "Pengantar Teknologi Informasi" 1

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 3 Stopwatch

Mikroprosesor. Nuryono Satya Widodo, S.T.,M.Eng. Mikroprosesor 1

PENGENALAN SISTEM MIKROPROSESOR. Judul Pokok Bahasan

Pengenalan & Konsep Dasar FPGA. Veronica Ernita Kristianti

BAB 5 VERIFIKASI DAN IMPLEMENTASI FPGA

ASIC Application Spesific Integrated Circuit

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika

INTERFACE LCD DENGAN MENGGUNAKAN FPGA

Pengenalan FPGA oleh Iman Taufik Akbar

PENGUJIAN DAN VERIFIKASI DESAIN PENERIMA FM DIGITAL PADA FPGA. ( Verification and testing of FPGA-based Digital FM Receiver Design)

GERBANG LOGIKA BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

1). Synchronous Counter

BAB II LANDASAN TEORI

Perancangan dan Implementasi Algoritma DES untuk Mikroprosesor Enkripsi dan Dekripsi pada FPGA

1). Synchronous Counter

Pertemuan ke 5 BAB IV Sintesis Rangkaian Sekuensial (2) Deskripsi Manfaat Relevansi Learning Outcome Materi I. Rangkaian Memori Terbatas RAM dinamik

MODUL TRAINER DIGITAL YANG DIGUNAKAN SEBAGAI MODUL PEMBELAJARAN PENDIDIKAN VOKASI BIDANG ELEKTRONIKA

Perkembangan Mikroprosesor

Pengantar Kuliah. TKC305 - Sistem Digital Lanjut. Eko Didik Widianto. Prodi Sistem Komputer - Universitas Diponegoro.

DESAIN SKEMATIK ALGORITMA HISTOGRAM UNTUK KEBUTUHAN ANALISIS TEKSTUR CITRA BERBASIS FPGA (Field Programmable Gate Array)

=== PERANCANGAN RANGKAIAN SEKUENSIAL ===

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB 3 PERANCANGAN SISTEM. Bab ini akan membahas tentang perancangan sistem yang digunakan dari alat

BAB II. PENJELASAN MENGENAI System-on-a-Chip (SoC) C8051F Pengenalan Mikrokontroler

Voter dan error detector Pengujian Sistem Pengujian perpindahan mode Pengujian dengan fault injection...

1 Tujuan dan Sasaran. 2 Alat dan Bahan. 3 Dasar Teori. Praktikum Sistem Digital Lanjut Percobaan 3: Dekoder 3-ke-8 dan Demultiplekser 1-ke-8

IMPLEMENTASI SISTEM DADU ELEKTRONIK DENGAN

adalah frekuensi detak masukan mula-mula, sehingga membentuk rangkaian

FPGA DAN VHDL TEORI, ANTARMUKA DAN APLIKASI Chapter 19

TSK505 - Sistem Digital Lanjut. Eko Didik Widianto

TSK205 Sistem Digital. Eko Didik Widianto

Pengenalan Komputer. Mahasiswa dapat menjelaskan definisi komputer,jenis generasi perkembangannya. Nawindah,S.Kom, M.Kom. Modul ke: Fakultas FT

QUARTUS DAN CARA PENGGUNAANNYA

Antarmuka CPU. TSK304 - Teknik Interface dan Peripheral. Eko Didik Widianto. Teknik Sistem Komputer - Universitas Diponegoro.

ENTITY Entity adalah daftar dengan spesifikasi dari semua pin input dan output (port) dari sirkuit. Sintaks ditampilkan di bawah:

FPGA DAN VHDL. Teori, Antarmuka dan Aplikasi

BABI PENDAHULUAN 1.1 Latar Belakang

SIMULASI RANGKAIAN DIGITAL MESIN PENJUAL KOPI DENGAN XILINX

Konferensi Nasional Sistem dan Informatika 2011; Bali, November 12, 2011

BAB III PERANCANGAN UIMEGA 8535

Percobaan 7 REGISTER (PENCATAT) Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

Interfacing i8088 dengan Memori

Sistem Mikroprosessor

BAB 2. Landasan Teori

Sistem Minimum Mikrokontroler. TTH2D3 Mikroprosesor

Encoder, Multiplexer, Demultiplexer, Shifter, PLA

MIKROKONTROLER AT89S52

Tabel 1. Karakteristik IC TTL dan CMOS

Review Kuliah. TKC305 - Sistem Digital Lanjut. Eko Didik Widianto

Finite State Machine (FSM)

DEKODER BINER KE DESIMAL BERBASIS PROGRAMMABLE LOGIC DEVICE (PLD)

BAB 3 PERANCANGAN SISTEM

BAB 3. Perancangan Sistem

KOMPONEN INTERFACING. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

TKC210 - Teknik Interface dan Peripheral. Eko Didik Widianto

Transkripsi:

MERGESORT DALAM TINGKAT REGISTER TRANSFER LOGIC BERBASIS FIELD PROGRAMMABLE GATE ARRAY Ferry Wahyu Wibowo Dosen STMIK AMIKOM Yogyakarta ferrywahyu@gmail.com Abstrak Telah dibuat rangkaian yang berfungsi sebagai pengurut (sorter) menggunakan FPGA Xilinx Spartan-3E. Penelitian ini menggunakan FPGA sebagai piranti utama dan alat bantu yang digunakan adalah seperangkat komputer yang terinstal software Xilinx ISE 9.2i yang digunakan untuk meng-upload kode program ke FPGA. Paper ini mengulas sorter dengan 4 buah masukan yang mempunyai panjang 8 bit, yang dirancang di tingkat register transfer logic (RTL). Pengujian kinerja piranti ditampilkan dalam bentuk diagram bentuk gelombang pada perangkat lunak ISE 9.2i. Hasil dari penelitian diperoleh bahwa komponen FPGA Spartan-3E yang dikonsumsi adalah 26 slices flip-flop dari 9.312 (1%), 112 4-masukan LUT dari 9.312 (1%), 73 slices dari 4,656 (1%) dan waktu yang diperlukan untuk kerja rangkaian mergesort sebesar 16,029ns. Kata kunci: FPGA, program, RTL, sorter, xilinx. Pendahuluan Pengurutan (sorting) merupakan salah satu algoritma dalam bidang ilmu komputer yang sering digunakan sebagai platform kinerja system, salah satu aplikasinya dalam jaringan (Sungun, et. al., 2006). Field programmable gate array (FPGA) mempunyai kekhasan desain rangkaian dalam pemenuhan optimasinya, yang berbeda ketika menggunakan mikrokontroler maupun personal computer (PC). FPGA diharapkan dapat digunakan untuk mengetahui tingkat desain rangkaian seoptimal mungkin, walaupun untuk tingkat desain rangkaian mempunyai banyak ragam (Wibowo, 2010). Harkins et. al. (2005) menyatakan bahwa pengurutan menggunakan mikroprosesor lebih efisien dibandingkan 33

menggunakan FPGA, namun hal ini karena ada beberapa faktor yang mempengaruhinya, yaitu memory bandwidth, kecepatan clock, komputasional algoritma dan kemampuan algoritma untuk dipipeline. Sedangkan, Mihhailov et. al. (2010) menggunakan rekursi dalam membuat algoritma pengurutnya dan mengaplikasikan teknik optimasi algoritmik dan arsitektural sehingga didapatkan hasil yang lebih baik daripada berbasis perangkat lunak. Paper ini mengimplementasikan FPGA sebagai pengurut data masukan pada tingkat register transfer logic (RTL). Jumlah masukan data yang digunakan ada 4 buah yang masing-masing masukan data mempunyai panjang 8 bit (word). Field Programmable Gate Array (FPGA) FPGA merupakan piranti yang dapat diprogram berbentuk integrated circuit (IC) dan tersusun atas modul-modul logik bebas yang dapat dikonfigurasi. FPGA memiliki komponen logika yang dapat diprogram (programmable logic) yang terdiri dari logic blocks dan programmable interconnects. Logic blocks dapat diprogram untuk membuat fungsi-fungsi gerbang dasar seperti AND, OR, XOR ataupun yang lebih kompleks seperti decoder serta fungsi matematika sederhana, dan modul-modul logik tersebut terhubung melalui kanalkanal penjalaran yang dapat diprogram. (Wibowo, 2010). FPGA pada umumnya merupakan larik 2 dimensi logic blocks (slices) yang memiliki elemen memori, seperti flip-flop sederhana atau blok-blok memori yang lebih kompleks. Suatu hirarki dari programmable interconnects memungkinkan logic blocks untuk dapat saling berhubungan sesuai kebutuhan perancang sistem, seperti suatu breadboard yang dapat diprogram. Logic blocks dan programmable interconnects dapat diprogram oleh pemakai / perancang dalam mengimplementasikan berbagai macam fungsi logika, sehingga diberi istilah field-programmable. Pengertian terprogram (programmable) dalam FPGA, mirip dengan interkoneksi saklar dalam breadboard yang bisa diubah oleh perancang desain. Kelebihan dari FPGA adalah dapat dikonfigurasi oleh end user, tidak memerlukan proses fabrikasi 34

karena tersedia cara untuk mendukung chip customized - very large scale integration (VLSI) dalam mengimplementasikan logic circuit, instant manufacturing, very-low cost prototype dan pemrograman yang singkat untuk fungsi dan kemampuan yang setara dengan applied specific integrated circuit (ASIC). FPGA dapat diprogram menggunakan bahasa deskripsi Verilog dan very high speed integrated circuit hardware description language (VHDL). Perkembangan FPGA sampai saat ini berlangsung dengan cepat dan banyak macam keluarga FPGA dengan kebutuhan perancangan dan perangkat perancangan (design tools) yang berbeda. Perusahaan yang memproduksi FPGA diantaranya adalah Xilinx, Altera, ACTEL, ATMEL, dan PLESSEY Semiconductor. Xilinx memproduksi beberapa jenis FPGA, yaitu VIRTEX, SPARTAN, XC3000, XC4000 dan XC5000. Pendekatan untuk menggabungkan logic blocks dan interconnects dari FPGA dengan embedded microprocessor dan periperal-periperal lainnya telah dilakukan. Tujuannya sebagai pelengkap dari sistem pada sebuah chip yang dapat diprogram. Secara umum, FPGA akan lebih lambat jika dibandingkan dengan jenis chip yang lain, seperti Application-Specific Integrated Circuit (ASIC). Hal tersebut dikarenakan FPGA menggunakan daya yang besar dengan bentuk desain yang kompleks, walaupun demikian FPGA mempunyai harga yang murah, bisa diprogram mengikuti kebutuhan, dan kemampuan untuk diprogram ulang untuk mengkoreksi adanya bugs. Jenis FPGA dengan harga murah, biasanya tidak bisa diprogram dan dimodifikasi setelah proses desain dibuat (fixed-version). Chip FPGA yang lebih kompleks dapat diperoleh dari jenis FPGA yang dikenal dengan complex-programmable logic device (CPLD). FPGA pada awalnya dibuat sebagai pesaing dari CLPD dan bersaing pada bidang yang sama. Arsitektur FPGA Secara umum arsitektur bagian dalam dari IC FPGA terdiri atas tiga elemen utama yaitu Input/Output Blocks (IOBs), 35

Configurable Logic Block (CLB) dan Interkoneksi. Configurable Logic Blocks tersusun atas look-up-table based complex structure (struktur komplek berbasis tabel) dan flip-flop (FF) untuk implementasi rangkaian sekuensial. Programmable Interconnect berupa wire segments dan programmable switches yang menghubungkan antara Configurable Logic Blocks yang berbeda, sedangkan input/output block berperan sebagai interface antara external package pin dari device dan internal user logic. Gambar 1 mengilustrasikan arsitektur FPGA. Gambar 1. Arsitektur FPGA (Maxfield, 2004) Fungsi logik dan interkoneksi FPGA ditentukan oleh data yang tersimpan pada sel memori statik internal. Ada beberapa cara untuk membuat data konfigurasi ke dalam sel memori, yaitu dilakukan secara otomatis pada waktu catu daya diberikan maupun dengan membaca konfigurasi data dari eksternal serial atau byte paralel PROM (mode master) atau data dapat dituliskan pada FPGA dari external device ( mode slave dan peripheral). Proses Implementasi FPGA Rancangan rangkaian yang akan diimplementasikan ke dalam FPGA dideskripsikan menggunakan VHDL (Very High Speed Integrated 36

Circuit Hardware Description Language), kemudian melakukan langkah optimasi, pemetaan teknologi, penempatan dan penjalaran. Optimasi logik Langkah ini memodifikasi ekspresi Boole untuk mengoptimalkan penggunaan sumber daya dengan tujuan meminimalisasi area dan kecepatan eksekusi atau kombinasi keduanya. Pemetaan Teknologi Pemetaan teknologi mentransformasikan ungkapan Boole ke dalam FPGA yaitu logic blocks, tujuan optimasinya untuk mengoptimisasi area dengan meminimalkan penggunaan block dan mengoptimisasi tunda dengan meminimalkan jumlah stage pada critical path. Penempatan Salah satu penempatan berbasis simulated annealing digunakan untuk menempatkan masing-masing block dalam larik FPGA, sehingga meminimalkan panjang seluruh interkoneksi yang diperlukan untuk penempatan. Piranti Lunak Penjalaran Piranti lunak penjalaran bertugas mengatur FPGA s wire segments dan menentukan programmable switches untuk menghubungkan FPGA blocks, memastikan seluruh koneksi telah terbentuk dan meminimalkan propagation delay pada time-critical connections (bagian dari rangkaian yang mempunyai delay terpanjang yang sangat menentukan waktu tunda keseluruhan). Bagian Pemrograman Bagian pemrograman mengkonfigurasi chip setelah tahap penempatan dan penjalaran. Seluruh proses pemrograman memakan waktu beberapa menit sampai beberapa jam, tergantung besar program yang digunakan. Pemrograman FPGA berbeda dengan pemrograman 37

komputer yang sekuensial. Gambar 2 mengilustrasikan cara rekonfigurasi FPGA via port serial via PC. Gambar 2. Pemrograman FPGA melalui PC (Maxfield, 2004) VHDL bahasa pendukung FPGA VHDL adalah bahasa deskripsi perangkat keras yang mirip dengan bahasa tingkat tinggi, seperti C, Pascal, Fortran dan sebagainya. VHDL melukiskan perilaku rangkaian elektronik atau sistem pada tata algoritma, bukan implementasi. Kompiler perangkat keras modern dapat membaca deskripsi tingkat tinggi sistem elektronik dan menterjemahkannya menjadi konfigurasi bit string yang digunakan untuk mengkonfigurasi sebuah chip FPGA. Gambar 3 mengilustrasikan aliran VHDL. Masukan VHDL (Level RTL) Kompilasi Netlist (Level gerbang) Sintesis Optimasi Netlist teroptimasi (Level gerbang) Simulasi Place & Route Piranti Fisik Simulasi Gambar 3. Ringkasan aliran VHDL 38

Bagian kode VHDL terdiri dari 3 bagian pokok, yaitu deklarasi library, terdiri dari daftar semua library yang digunakan dalam desain; entity, menjelaskan pin-pin masukan dan keluaran dari rangkaian; dan architecture, terdiri dari kode VHDL yang sesuai untuk menjabarkan rangkaian. Sebuah library merupakan kumpulan potongan kode yang digunakan dalam pemrograman. Struktur library, biasanya ditulis dalam bentuk function, procedure atau component yang ditempatkan di dalam package yang dikompile pada library tujuan. Untuk mendeklarasikan library pada desain, diperlukan dua baris kode, yaitu nama library dan klausa. LIBRARY nama_library; USE nama_library.nama_paket.bagian_paket; Ada tiga paket library berbeda yang biasanya digunakan dalam sebuah desain, yaitu ieee.std_logic_1164 (dari library ieee), standar (dari library std) dan work (work library). Mergesort Sorter merupakan piranti yang tertanam algoritma untuk menyusun data masukan yang acak, kemudian mengurutkannya dengan membagi dua bagian masukan secara terpisah. Jika kedua masukan telah disusun, maka akan membentuk urutan data dari hasil penggabungan dua buah data masukan. Salah satu pengurutan cara yang digunakan adalah mergesort, cara kerja algoritma tersebut ditunjukkan pada gambar 4. 39

Masukan data : D0 6C 48 19 Masukan data tersebut dibagi menjadi dua : D0 6C 48 91 Kedua masukan data terbagi tersebut disusun sendiri menjadi, 6C D0 48 91 Setelah itu dibuat menjadi, 48 6C D0 91 48 6C D0 91 48 6C 91 D0 48 6C 91 D0 Sehingga nilai yang terurut adalah 48 6C 91 D0 Gambar 4. Ilustrasi mergesort Metodologi Penelitian Rancangan Global Rangkaian global dari pengurut (sorter) dalam paper ini menggunakan FPGA Xilinx Spartan-3E dengan 8-bit masukan dan keluaran. Sistem rangkaian pokok yang dirancang menggunakan VHDL terdiri dari shift register, multiplekser, rangkaian pembanding (compare) dan RAM. Komponen-komponen tersebut dibuat secara terpisah, kemudian dipanggil untuk digabungkan menjadi satu. 40

Komponen yang digunakan hanya memuat satu desain komponen saja, jika terdapat dua komponen yang sama dalam perancangan, maka cukup satu komponen saja yang dipanggil. Clock yang digunakan dalam perancangan mergesort dalam tingkat register transfer logic ini menggunakan 50 MHz atau sekitar 20 ns, sehingga waktu yang diperlukan untuk mengisi shift register sebesar 1280 ns. Input S=1 SHIFT REGISTER A B C D MUX MUX E F MUX Minim G MUX H J CMP Output Gambar 5. Rancangan modul mergesort 41

Gambar 5 menunjukkan rancangan modul seluruh rangkaian sorter. Prinsip kerjanya dengan memasukkan 4 masukan 8-bit sinyal acak yang dipilih melalui aktif enable pada shift register dan perpindahan sinyal dalam register dikendalikan melalui clock aktif tinggi. Setelah terpilih 4 sinyal masukan, masing-masing multiplekser akan memilih 2 sinyal masukan sebagai nilai kecil dan besar (jika dipilih S = 0 maka akan dipilih nilai yang kecil diantara keduanya, sedangkan jika dipilih S = 1 maka nilai yang besar yang akan dipilih). Misalkan jika S = 0 maka nilai yang kecil akan dipilih, kemudian nilai dari kedua multiplekser ini akan dibandingkan lagi melalui muliplekser berikutnya, untuk mencari nilai yang lebih kecil lagi. Jika nilai terkecilnya sudah terpilih maka nilainya akan dimasukkan dan disimpan pada buffer terendah yakni bit 0 sampai 7 dan akan dibandingkan melalui rangkaian pembanding dengan masukan multiplekser, jika keluaran dan masukan multipleksernya sama, maka nilai masukan lain akan dipilih dan dimasukkan pada buffer bit 8 sampai 15. Sedangkan, jika S = 1 maka nilai yang besar akan dipilih, kemudian nilai kedua multiplekser akan dibandingkan lagi sebagaimana pemilihan S = 0. Namun, untuk mencari nilai yang lebih besar perlu dimasukkan pada buffer bit 24 sampai 31, kemudian nilainya akan dibandingkan melalui rangkaian comparator, sehingga didapatkan nilai masukan terbesar kedua yang ditempatkan pada bit 16 sampai 23. Sinyal akan dikeluarkan dari buffer dengan cara clocking. Rangkaian Shift-Register Rangkaian shift-register yang dirancang mempunyai 8-bit data masukan dan 32-bit data keluaran (A,B,C dan D). Nilai awal pada sinyal tersimpan dalam rangkaian ini adalah 00000000 yang berupa heksadesimal. Port rangkaian ini selain terdapat port masukan dan keluaran juga terdapat port masukan clock dan enable, masing-masing merupakan 1-bit. Sinyal clock bertugas merambatkan setiap masukan 8-bit sehingga sinyal masukan merupakan masukan serial, sedangkan 42

enable digunakan untuk memilih 4 masukan 8-bit yang akan diurutkan (lihat gambar 6). Masukan A 8-bit B 8-bit C 8-bit D 8-bit 8-bit Clock Enable Gambar 6. Shift register Multiplekser Modul multiplekser bertugas untuk memilih nilai terkecil jika S = 0 dan untuk memilih nilai terbesar jika S = 1. Bagan dari rangkaian multiplekser ditunjukkan pada gambar 7. Masukan 1 Masukan 2 S Keluaran Gambar 7. Bagan Multiplekser Rangkaian pembanding (comparator) Rangkaian pembanding menggunakan prinsip seperti multiplekser. Prinsip kerja dari rangkaian ini adalah, jika nilai S = 0 maka nilai terkecil keluaran dari multiplekser akan dibandingkan dengan masukan multiplekser. Fungsi rangkaian ini untuk mencari nilai yang tidak sama, sehingga sinyal tersebut akan dimasukkan pada 43

urutan tempat sebelumnya, begitu juga jika nilai S = 1, namun untuk pemilihan nilainya menggunakan nilai yang besar (lihat gambar 8). Masukan 1 Masukan 2 Keluaran Gambar 8. Bagan rangkaian pembanding Rangkaian Keluaran Rangkaian keluaran sistem sorter ini menggunakan keluaran 8-bit, sehingga nilai yang terurut tadi akan dikeluarkan satu-persatu dari sinyal byte 0, byte 1, byte 2 dan byte 3. Rangkaian penyimpan data yang digunakan berdasarkan finite state machine (lihat gambar 9). B4 B3 B1 B0 24..31 16..23 8..15 0..7 Keluaran Gambar 9. Bagan rangkaian keluaran Hasil dan Pembahasan Penelitian ini menggunakan 4 masukan 8-bit yang bernilai acak yang dipilih datanya ketika masukan sinyal di-enable. Masukan 8-bit satu-persatu ditempatkan dan digeser seiring dengan clock rising edge sebagai data masukan pada sinyal shift register sinkron. Untuk memicu pengolahan data diperlukan selectable s, nilai s= 0 digunakan untuk memilih masukan 8-bit yang paling rendah dan nilai s= 1 digunakan untuk memilih masukan 8-bit yang paling tinggi. Sinyal masukan terpilih dan terkondisi tersebut dimasukkan dalam 44

suatu buffer, kemudian untuk sinyal masukan terendah kedua dan sinyal masukan terbesar kedua dibandingkan untuk mendapatkan sinyal terendahnya yang akan ditempatkan pada sinyal masukan 8-bit port 8-15 dari rangkaian berupa finite state machine. Isi data akan dikeluarkan satu-persatu dari register seiring dengan clock. Diagram bentuk gelombang dari mergesort ditunjukkan pada gambar 10. Gambar 10. Diagram bentuk gelombang dari mergesort 4x8-bit Gambar 10 menggunakan clock sebesar 20ns dan waktu yang diperlukan sebelum eksekusi sinyal data masukan sebesar 5ns. Sinyal reset rst direndahkan untuk mendapatkan rangkaian finite state machine (FSM). Sinyal select s dibuat bernilai tinggi agar multiplekser yang digabungkan dengan komparator mendapatkan data yang bernilai besar, sedangkan sinyal enable en digunakan untuk mengaktifkan rangkaian finite state machine agar keluaran data dapat diurutkan dari nilai yang terkecil ke nilai yang terbesar. Komponen yang diperlukan untuk membuat mergesort ini terdiri dari 1 FSM, 34 register flip-flop dan 6 komparator, yang terdiri dari 1 8-bit komparator sama dan 5 8-bit komparator lebih besar. Konsumsi FPGA yang digunakan 26 slices flip-flop dari 9.312 (1%), 112 4-masukan LUT dari 9.312 (1%), 73 slices dari 4,656 (1%). Konsumsi komponen pada FPGA ditunjukkan pada gambar 11. 45

Gambar 11. Floorplan dari rangkaian mergesort Waktu yang diperlukan untuk kerja rangkaian mergesort ini sebesar 16,029ns, yang terdiri dari waktu logik sebesar 10,885ns (67,9%) dan waktu jalar 5,144ns (32,1%). Kesimpulan Penelitian ini dapat disimpulkan bahwa untuk membuat mergesort 4x8-bit pada tingkat register transfer logic yang mengimplementasikan FPGA dihasilkan sekitar 1% komponen yang dimiliki oleh FPGA Spartan-3E dan mempunyai waktu eksekusi logik sebesar 10,885ns dan waktu eksekusi jalar 5,144ns. 46

Daftar Pustaka Harkins, J., El-Ghazawi, T., El-Araby, E., Huang, M. (2005). Performance and Analysis of Sorting Algorithms on the SRC 6 Reconfigurable Computer. MAPLD International Conference. Maxfield, C. M. (2004). The Design Warrior s Guide to FPGAs. USA: Newnes. Mihhailov, D., Sklyarov, V., Skliarova, I., Sudnitson, A. (2010). Optimization of FPGA-based Circuits for Recursive Data Sorting. 12 th Biennial Baltic Electronics Conference (BEC2010), 129-132. Sungun, S., Şenol, Y, Gündüzal, P. (2006). Minimal Sorting Network Realization on FPGA for Genetic Programming. Erciyes Üniversitesi Fen Bilimleri Enstitüsü Dergisi, 22(1-2), 26-36. Wibowo, F. W. (2010). Implementasi FPGA untuk Pengukuran Daya Listrik. Seminar Nasional Fisika (SNF 2010), FI106-1 FI106-6. Wibowo, F. W. (2010). The Conservative Structure of Synthesizing Read Only Memory Design Using VHDL on FPGA. International Seminar on Industrial Engineering and Management, 4, 231-235. 47