Field-Programmable Gate Array (FPGA) merupakan sebuah IC digital yang sering digunakan untuk mengimplementasikan rangkaian digital. FPGA berbentuk komponen elektronika dan semikonduktor yang terdiri dari komponen gerbang terprogram (programmable logic) dan sambungan terprogram (interkoneksi). Komponen gerbang terprogram yang dimiliki meliputi jenis gerbang logika biasa (AND, OR, NOT) maupun jenis fungsi matematis dan kombinatorik yang lebih kompleks, seperti decoder, adder, subtractor, multiplier, dll. Blok-blok komponen di dalam FPGA bisa juga mengandung elemen memori (register) mulai dari flip-flop sampai pada RAM (Random Access Memory). FPGA sangat sesuai untuk pemrosesan komputasi dari algoritme integrasi numerik. Keuntungan implementasi FPGA digunakan untuk meningkatkan efisiensi rancangan dengan cara mengurangi pemakaian pemrograman perangkat lunak (software). FPGA mempunyai koreksi error yang kecil dan merupakan teknologi yang bebas (technology–independent) untuk diimplementasikan dalam berbagai algoritme. Kinerja aplikasi FPGA lebih cepat dibandingkan dengan aplikasi mikrokontroler, karena FPGA hanya mensintesis perangkat keras (hardware) saja, sementara mikrokontroler mengeksekusi instruksi perangkat lunak (software) yang digunakan untuk mengendalikan perangkat keras (hardware), sehingga waktu tunda yang diimplementasikan hanya memakan waktu tunda perambatan (propagation delay) saja. Pemodelan FPGA membutuhkan informasi terkait dengan tingkat perbedaan abstraksi dan jenis model yang digunakan. Seorang perancang FPGA harus mampu mengambil beberapa tahapan pemodelan untuk memastikan hasil model rancangannya melalui model simulasi yang telah disediakan oleh vendor FPGA masing-masing. [Wikipedia]
Pengertian terprogram (programmable) dalam FPGA adalah mirip dengan interkoneksi saklar dalam breadboard yang bisa diubah oleh pembuat desain sesuai kebutuhan pengguna. Dalam FPGA, interkoneksi ini bisa diprogram kembali oleh pengguna maupun pendesain di dalam lab atau lapangan (field). Oleh karena itu jajaran gerbang logika (Gate Array) ini disebut field-programmable. Jenis gerbang logika yang bisa diprogram meliputi semua gerbang dasar untuk memenuhi kebutuhan yang manapun. [Wikipedia]
Secara umum alur-kerja saat menggunakan FPGA sebagai berikut:
- Anda menggunakan komputer untuk menentukan atau mendeskripsikan suatu fungsi logik yang diinginkan.
Anda bisa melakukannya dengan menggambar rangkaian atau diagram blok atau membuat berkas teks yang mendeskripsikan fungsi suatu rangkaian menggunakan bahasa deskripsi perangkat keras atau hardware description language (HDL); - Anda mengkompilasi fungsi logik tersebut melalui komputer, menggunakan perangkat lunak dari vendor FPGA-nya (yang biasanya tersedia gratis di Internet).
Hasilnya berupa berkas biner yang dapat di-uanggah ke-dalam FPGA yang bersangkutan; - Anda sambungkan komputer dengan papan FPGA Anda kemudian anda unggah berkas biner ke FPGA…
Gampang khan! Seketika FPGA Anda memiliki fungsi logik sebagaimana yang Anda inginkan!
Ingat selalu bahwa…
- Anda bisa mengisi-ulang (mengkonfigurasi-ulang) FPGA sebanyak yang Anda inginkan – tidak terbatas – dengan berbagai macam fungsi logik yang Anda inginkan…
- Jika Anda melakukan kesalahan pada rancangan Anda, cukup betulkan kesalahan tersebut, lakukan kompilasi ulang kemudian uanggah (upload) lagi… jadi dech…!
- Rancangan Anda bisa bekerja lebih cepat dibandingkan dengan rancangan yang Anda buat dengan komponen-komponen biasa, karena, dengan FPGA, hampir semua rangkaian terimplementasi di dalam chip…
- FPGA (secara umum, kecuali yang dilengkapi Flash PEROM) akan kosong saat tidak dikenai catu-daya (seperti RAM).
Siapa vendorFPGAs?
Minimal ada 5 perusahaan besar yang memproduksi FPGA. Dua yang pertama merupakan pemain utama di pasar FPGA:
- Xilinx yang punya nama besar dalam dunia FPGA, masih memimpin dalam densitas dan teknologi.
- Altera (sudah diakuisisi oleh Intel) merupakan pemain kedua di dunia FPGA.
- Lattice, Actel, Quicklogic adalah perusahaan-perusahaan yang lebih kecil dan punya “pasar khusus”.
Informasi selengkapnya bisa Anda unduh dalam bahasa indonesia atau bahasa inggris. Atau melihat video penjelasan berikut ini…