Field-programmable gate array (FPGA) adalah chip logika komputer yang tidak diprogram oleh pabrikan. Ini berarti dapat diprogram setelah pembelian. Ada ribuan opsi untuk penyesuaian yang tersedia pada FPGA biasa. Entitas yang dapat diprogram ini adalah gerbang, juga dikenal sebagai blok logika atau file tabel pencarian (LUT).
Karena jumlah blok logika pada FPGA terlalu banyak untuk dibuat secara manual, blok logika dibuat melalui program perangkat lunak. Pemrogram kemudian dapat memilih dari berbagai kategori untuk menyesuaikannya untuk sistem tertentu. Mereka dapat menggunakan program mereka sendiri untuk berinteraksi dengan program pada chip FPGA dan membuat perubahan.
Saat memprogram FPGA, beberapa elemen yang saling berhubungan dapat digunakan untuk mengkonfigurasi blok logika sesuai kebutuhan. Isi dari LUT berbeda-beda, tergantung pada cara mereka diprogram. Beberapa melakukan fungsi tunggal sementara yang lain mampu melakukan berbagai tugas yang lebih kompleks. Beberapa FPGA mungkin juga mengandung elemen analog dan digital. Chip ini sering juga memiliki kemampuan untuk memungkinkan elemen-elemen ini berfungsi bersama.
LUT dihubungkan oleh jaringan kabel. Tergantung pada fungsi yang diperlukan, kabel dapat berjalan melalui file dalam garis lurus, atau jaringan koneksi diagonal yang lebih kompleks. Sebuah LUT dapat dihubungkan ke beberapa file lain melalui beberapa koneksi kabel. File juga dapat dihubungkan oleh serangkaian kabel yang disebut carry atau rantai perutean khusus yang membantu memindahkan hanya jenis informasi tertentu sehingga dapat diproses lebih cepat.
Untuk memprogram fungsi logika dengan FPGA, pertama-tama harus diuraikan dalam file teks atau visual. Kemudian informasi tersebut diunduh ke dalam perangkat lunak yang disertakan dengan FPGA. Setelah proses itu selesai, fungsinya biasanya operasional.
Meskipun FPGA lebih mahal daripada chip logika bawaan, ini dapat membantu menghemat sumber daya karena pengguna dapat memprogram agar sesuai dengan kebutuhan spesifik mereka. Hal ini dapat mengurangi kebutuhan kerja ekstra dan waktu tambahan yang dibutuhkan untuk menampung chip yang tidak dibuat khusus. Chip yang dapat diprogram juga dapat lebih mudah digunakan, karena fungsi penggunanya, seperti menu, dapat disesuaikan.
Sirkuit larik gerbang yang dapat diprogram lapangan adalah alternatif dari sirkuit terintegrasi khusus aplikasi (ASIC). Sirkuit ini sudah terpasang sebelum meninggalkan pabrik. Mereka adalah komponen tingkat papan, yang bertentangan dengan elemen tingkat gerbang yang dapat diprogram di lapangan.