Larik gerbang yang dapat diprogram lapangan
Field-programmable gate array (sering disingkat FPGA) adalah komponen elektronik yang digunakan untuk membangun sirkuit digital yang dapat dikonfigurasi ulang. Itu berarti FPGA berbeda dengan gerbang logika, karena gerbang logika memiliki fungsi yang tetap. Sebaliknya sebuah FPGA memiliki fungsi yang tidak terdefinisi pada saat pembuatannya. Sebelum FPGA dapat digunakan dalam sirkuit, FPGA harus diprogram, yaitu dikonfigurasi ulang.
FPGA adalah sirkuit terintegrasi dalam kategori perangkat logika yang dapat diprogram atau PLD. FPGA adalah kinerja tertinggi, paling fleksibel dan juga paling mahal dari jenis PLD. Kelemahan FPGA dibandingkan dengan PLD lainnya adalah bahwa FPGA tidak mengingat desainnya ketika daya dilepas. Oleh karena itu, FPGA memerlukan chip memori konfigurasi terpisah yang menyimpan desain FPGA. Ketika daya diberikan kembali ke FPGA, bagian tetap dari FPGA membaca konfigurasi dari chip memori konfigurasi. Setelah FPGA dikonfigurasi, FPGA akan dapat melakukan fungsi yang diberikan oleh desain.
FPGA berbeda dengan mikroprosesor atau mikrokontroler. FPGA dalam bentuk dasarnya tidak mampu menjalankan perangkat lunak. Hanya ketika FPGA diberi konfigurasi yang mengandung arsitektur-prosesor maka ia memiliki kemampuan untuk menjalankan perangkat lunak.
Produsen FPGA menyediakan perangkat lunak teknik untuk Windows dan kadang-kadang juga Linux, untuk mengembangkan desain untuk FPGA. Desain biasanya ditulis dalam file komputer yang dapat dibaca manusia yang disebut Bahasa Deskripsi Perangkat Keras (HDL). Yang paling populer adalah VHDL dan Verilog. Bahasa deskripsi perangkat keras sangat sebanding dengan bahasa pemrograman. Tetapi tujuan HDL adalah untuk merancang sirkuit logika digital sementara bahasa pemrograman merancang perangkat lunak.
Perangkat lunak rekayasa FPGA harus menerjemahkan kode HDL abstrak ke dalam elemen logika yang tersedia di FPGA yang dipilih. Itu disebut sintesis logika. Kemudian dilakukan proses place and route untuk memposisikan elemen-elemen logika dalam FPGA. Hasilnya adalah bitfile yang dapat diprogram ke dalam FPGA atau memori konfigurasi. Hal ini biasanya dilakukan dengan programmer USB yang terhubung ke port JTAG FPGA.
Karena FPGA adalah sirkuit terpadu, produsen FPGA dapat memutuskan untuk menambahkan komponen sirkuit terpadu lain yang umum digunakan. Bagian-bagian tetap ini disebut core. Ini misalnya pengontrol Ethernet atau bahkan arsitektur prosesor lengkap. Untuk segmen pasar yang berbeda seperti pertahanan, medis, komunikasi, dan robotika, produsen FPGA mencoba menambahkan set core tambahan yang paling berharga ini.
Struktur internal
FPGA umumnya dibangun di atas elemen logika yang dapat diprogram dan interkoneksi yang dapat diprogram. Salah satu blok bangunan elemen logika adalah Lookup Table (LUT) yang dapat diprogram. LUT dapat diprogram untuk menghasilkan nilai apa pun yang diberikan nilai input. Dengan cara ini, LUT dapat diprogram untuk menjadi semua jenis logika dengan jumlah input dan output yang sama. Misalnya, LUT 2-input, 1-output dapat diprogram untuk meniru logika 2-input AND, OR, NAND, NOR, XOR, dll. Output dari LUT ini dapat disimpan menggunakan register atau dihubungkan ke input LUT lainnya. Dengan menggunakan mux yang dapat diprogram, FPGA dapat diprogram untuk memilih output yang terdaftar atau tidak terdaftar. Kombinasi LUT, register, dan mux ini adalah struktur umum elemen logika.
Untuk menghubungkan elemen-elemen logika ini bersama-sama, digunakan transistor pass. Transistor dapat diprogram untuk menghubungkan sinyal atau tidak, sehingga memberikan FPGA kemampuan untuk menghubungkan elemen-elemen logika bersama-sama secara sangat spesifik. Misalnya, jika output dari satu elemen logika akan memberi makan input yang lain, transistor pass dapat diprogram untuk menghubungkan kedua kabel ini bersama-sama dan cocok dengan logika yang ditentukan. Antara elemen logika dan transistor pass, kompiler dapat mengambil deskripsi perangkat keras dari HDL, membuat logika untuk elemen logika, dan menghubungkannya bersama-sama menggunakan transistor pass.
Pertanyaan dan Jawaban
T: Apa yang dimaksud dengan field-programmable gate array (FPGA)?
J: Field-programmable gate array (FPGA) adalah komponen elektronik yang digunakan untuk membangun sirkuit digital yang dapat dikonfigurasi ulang. Ini memiliki fungsi yang tidak terdefinisi pada saat pembuatan dan harus diprogram, atau dikonfigurasi ulang, sebelum dapat digunakan dalam suatu rangkaian.
T: Apa perbedaan FPGA dengan gerbang logika?
A: FPGA berbeda dari gerbang logika karena gerbang logika memiliki fungsi tetap sedangkan FPGA memiliki fungsi yang tidak ditentukan pada saat pembuatan.
T: Apa jenis sirkuit terintegrasi yang merupakan FPGA?
A: FPGA adalah sirkuit terintegrasi dalam kategori perangkat logika yang dapat diprogram atau PLD.
T: Apa saja kekurangan menggunakan FPGA dibandingkan dengan PLD lainnya?
J: Salah satu kelemahan menggunakan FPGA dibandingkan dengan PLD lainnya adalah bahwa mereka tidak mengingat desain mereka ketika daya dilepas, sehingga mereka memerlukan chip memori konfigurasi terpisah yang memegang desain. Mereka juga lebih mahal daripada jenis PLD lainnya.
T: Bagaimana cara memprogram FPGA?
J: Untuk memprogram FPGA, para insinyur menggunakan perangkat lunak teknik untuk Windows atau Linux untuk mengembangkan desain yang ditulis dalam bahasa deskripsi perangkat keras seperti VHDL dan Verilog. Perangkat lunak ini kemudian menerjemahkan kode ini ke dalam elemen logika yang tersedia pada FGPA yang dipilih dan memposisikannya dengan proses place and route yang menciptakan bitfile yang dapat diprogram ke dalam memori konfigurasi atau langsung ke FGPA itu sendiri dengan programmer USB yang terhubung ke port JTAG-nya.
T: Apakah mikroprosesor dan mikrokontroler mirip dengan FGPA?
J: Tidak, mikroprosesor dan mikrokontroler berbeda dengan FGPA karena dalam bentuk dasarnya tidak dapat menjalankan perangkat lunak; hanya ketika diberi konfigurasi yang mengandung arsitektur prosesor, ia memiliki kemampuan ini.