FPGA (Field Programmable Gate Array) adalah jenis rangkaian terpadu (IC) yang terdiri dari matriks sel-sel logika yang dapat dikonfigurasi oleh pengguna agar berfungsi sebagai rangkaian yang sesuai dengan yang diharapkan. Implementasinya dapat digunakan untuk menerapkan algoritma, prosesor, filter digital atau interrupt controller berbasis FPGA. FPGA yang mempunyai kapasitas yang lebih besar, memungkinkan bagi pengguna untuk membuat system-on-chip (SoC) yang kompleks dan mengandung beberapa komponen yang saling berhubungan.
Proses rekayasa konfigurasi FPGA (firmware) melibatkan 3 cara konfigurasi masukan, yaitu menggunakan skematik, hardware description language (HDL), dan diagram finite state. Biaya pengembangan firmware FPGA yang relatif rendah dan kemampuannya yang dapat diprogram berulang kali, maka tidak mengherankan jika FPGA telah menaklukkan pasaran dalam bidangnya. Beberapa perbedaan antara FPGA dan ASIC (Application Specific Integrated Circuit) diringkas menurut tabel berikut ini,
FPGA |
ASIC |
|
|
Hal ini mengakibatkan FPGA digunakan dalam produk yang bervolume rendah, di mana biaya desain merupakan bagian penting dari anggaran yang ada. Sebaliknya, desain ASIC sering digunakan untuk produk volume besar, dimana biaya yang besar (diukur dalam jutaan dolar) dapat menutup biaya produksi dengan penjualan besar-besaran.
- Kinerjanya maksimum untuk suatu teknologi semikonduktor
- Biaya produksi yang rendah (untuk volume besar)
- Konsumsi daya yang rendah