Apa yang dimaksud dengan Field programmable gate array (FPGA)?

8 Mei 2024 

Penyusun

Josh Schneider

Senior Writer

IBM Blog

Ian Smalley

Senior Editorial Strategist

Apa itu field programmable gate array (FPGA)?

Field programmable gate array (FPGA) adalah jenis sirkuit terpadu serba guna, yang, tidak seperti perangkat logika tradisional seperti sirkuit terpadu khusus aplikasi (ASIC), dirancang agar dapat diprogram (dan sering kali dapat diprogram ulang) agar sesuai dengan berbagai tujuan, terutama komputasi kinerja tinggi (HPC) dan pembuatan prototipe.

Frasa “field programmable” atau bidang yang dapat diprogram mengacu pada kemampuan FPGA untuk diprogram "di lapangan" atau setelah chip dirilis dari pabriknya. Xilinx, sebuah produsen teknologi, pertama kali memperkenalkan FPGA pada tahun 1985.

FPGA dapat disesuaikan agar sesuai dengan beberapa contoh penggunaan, termasuk tujuan yang baru muncul atau eksperimental, tanpa perlu memodifikasi atau mengubah perangkat kerasnya secara fisik. Fleksibilitas untuk dapat dikonfigurasi ulang ini dicapai melalui serangkaian blok logika yang dapat diprogram tetap (PLB) dan interkoneksi fleksibel yang dapat dikonfigurasi untuk melakukan operasi yang kompleks atau berfungsi sebagai gerbang logika sederhana. FPGA juga mencakup elemen memori, mulai dari flip-flop bit tunggal hingga rangkaian memori yang sangat padat, untuk penyimpanan data digital di dalam perangkat.

FPGA bernilai tinggi karena kombinasi kinerja tinggi dan keserbagunaannya yang ekstrem. FPGA sangat berguna dalam aplikasi yang membutuhkan kinerja tinggi, latensi rendah, dan fleksibilitas real-time. Untuk alasan ini, FPGA biasanya digunakan dalam industri telekomunikasi, otomotif, dan kedirgantaraan.

Desain 3D bola yang menggelinding di lintasan

Berita + Insight AI terbaru 


Temukan insight dan berita yang dikurasi oleh para pakar tentang AI, cloud, dan lainnya di Buletin Think mingguan. 

Field programmable gate arrays (FPGA) vs. sirkuit terpadu khusus aplikasi (ASIC)

FPGA dan ASIC melayani tujuan yang berbeda.

ASIC dikembangkan dan dioptimalkan untuk aplikasi tertentu dan tidak dapat dikonfigurasi ulang. Berbagai elemen sirkuit internalnya (transistor) disusun dalam struktur yang tetap dengan interkoneksi tetap dan tidak dapat diubah (kabel) di antara elemen tersebut.

Karena ASIC hanya memiliki satu tujuan, hanya elemen logika yang dibutuhkan untuk tujuan tersebut yang diintegrasikan; misalnya, jika pengalian titik mengambang tidak dibutuhkan, maka tidak akan disertakan ke dalam desain.

Sebaliknya, FPGA dapat dikonfigurasi dan dikonfigurasi ulang untuk aplikasi potensial apa pun. Seperti ASIC, elemen sirkuit internalnya disusun dalam struktur tetap (blok logika yang dapat diprogram atau PLB) tetapi dengan interkoneksi yang dapat dikonfigurasi ulang di antaranya. Elemen logika dalam FPGA dipilih untuk mendukung berbagai macam aplikasi, tetapi akan mengalami “pakai atau hilang” ketika elemen logika tertentu tidak digunakan. Jika pengali floating-point tidak diperlukan untuk aplikasi tertentu, tetapi FPGA memiliki pengali tersebut, maka sumber daya tersebut tidak terhubung dan merupakan "ruang yang terbuang" dalam FPGA.

Meskipun kedua perangkat dapat memiliki ratusan juta transistor, sebuah ASIC dapat menggunakan transistor tersebut untuk memberikan efisiensi dan kinerja tinggi, namun dengan mengorbankan fleksibilitas. Biaya NRE di muka untuk mengembangkan ASIC bisa selangit, sementara biaya unit bisa relatif rendah.

FPGA menggunakan transistornya untuk memberikan efisiensi tinggi dan kinerja tinggi tetapi dengan fleksibilitas luar biasa. Biaya NRE di muka untuk mengembangkan FPGA bisa sangat rendah, sementara biaya unit umumnya lebih tinggi. Penting untuk dicatat bahwa ini bukan aturan yang kaku dan cepat. Di arena kinerja, misalnya, FPGA terbaru telah berevolusi untuk menghasilkan clock rate lebih dari 500 MHz dan umumnya dibuat pada geometri proses silikon yang canggih. Singkatnya, batas antara FPGA dan ASIC menjadi makin kabur dengan setiap generasi FPGA baru.

IBM Storage FlashSystem

IBM Storage FlashSystem: Mengoptimalkan VMware untuk biaya, kesederhanaan, dan ketahanan

Temukan cara IBM FlashSystem mengoptimalkan lingkungan VMware untuk efisiensi biaya, kesederhanaan, dan ketahanan. Sesi ini menyoroti bagaimana FlashSystem dapat meningkatkan keamanan data, aksesibilitas, dan kinerja, yang menjadikannya solusi ideal untuk infrastruktur TI modern.

Bagaimana cara kerja field programmable gate array?

FPGA menjadi perangkat keras yang dapat disesuaikan dengan mengonfigurasi PLB dan interkoneksi menggunakan bahasa deskripsi perangkat keras standar (HDL) seperti Verilog atau VHDL.

Fungsi berbasis FPGA spesifik, serta interkoneksi antara fungsi-fungsi tersebut, “dijelaskan” dalam HDL. Deskripsi dikompilasi untuk menghasilkan file konfigurasi FPGA. Dengan menggunakan bahasa deskripsi perangkat keras, dimungkinkan untuk menggunakan sumber daya FPGA bawaan (susunan memori, inti PCI, dan banyak lagi), serta membuat sirkuit logika yang disesuaikan (adder, multiplexer, dan fungsi khusus aplikasi lainnya) dari elemen FPGA yang lebih primitif.

Dalam proses yang dikenal sebagai sintesis, kode HDL diterjemahkan ke dalam netlist, sebuah deskripsi yang efektif tentang gerbang logika dan interkoneksi yang diperlukan untuk mengimplementasikan kode HDL. Netlist kemudian dipetakan ke PLB dan interkoneksi yang secara fisik membentuk sirkuit unik.

FPGA modern yang diproduksi oleh produsen seperti Intel dan Altera menawarkan berbagai fitur digital dan analog, termasuk kepadatan logika yang mengesankan, memori flash, prosesor tertanam, dan blok pemrosesan sinyal digital (DSP). FPGA dapat dikonfigurasi dan dikonfigurasi ulang dengan memodifikasi input dan output listrik, memilih sumber daya internal mana yang digunakan dan menentukan bagaimana sumber daya ini terhubung melalui sumber daya perutean yang dapat dikonfigurasi—hasil akhirnya adalah solusi perangkat keras khusus untuk menyelesaikan masalah tertentu.

Seperti halnya perangkat lunak, pengembangan desain FPGA yang kompleks dapat disederhanakan dengan menggunakan pustaka yang telah dirancang sebelumnya dari berbagai fungsi dan sirkuit digital, yang disebut sebagai inti kekayaan intelektual (IP). Pustaka ini tersedia untuk dibeli atau disewa dari vendor FPGA dan pemasok pihak ketiga yang sering mengkhususkan diri dalam mengembangkan berbagai fungsi.

Modul dan komponen Field programmable gate array

Selain komponen sirkuit tradisional seperti mikrokontroler dan konverter, untuk mencapai fungsi yang dapat dikonfigurasi ulang, perangkat FPGA modern menggunakan kombinasi berbagai elemen yang dapat diprogram.

Elemen-elemen yang dapat diprogram ini terutama adalah blok logika yang dapat dikonfigurasi (CLB), interkoneksi yang dapat diprogram, perutean yang dapat diprogram, blok input/output yang dapat diprogram (IOB), memori on-chip, dan blok pemrosesan sinyal digital (DSP).

Blok logika yang dapat dikonfigurasi

Blok logika yang dapat dikonfigurasi (CLB) adalah komponen utama FPGA. CLB umumnya berisi beberapa elemen logika primitif (gerbang logika, tabel look-up kecil, flip-flop, multiplexer, dan banyak lagi). Di dalam CLB, flip-flop umumnya berfungsi sebagai elemen penyimpanan data utama, meskipun keluarga perangkat yang lebih baru mungkin juga menggabungkan elemen memori dangkal di dalam CLB.

Interkoneksi yang dapat diprogram

Hubungan yang dibangun dari segmen kawat yang digabungkan dengan sakelar yang dapat diprogram secara elektrik menyediakan jalur perutean antara blok logika FPGA. Kotak sakelar yang berisi beberapa sakelar semikonduktor dasar biasanya digunakan untuk membuat interkoneksi yang dapat diprogram FPGA. Interkoneksi ini memungkinkan output dari unit tertentu atau pad input untuk dihubungkan ke sel atau pad lain di dalam sirkuit.

Perutean yang dapat diprogram

Segmen kawat prafabrikasi digabungkan bersama (atau dibiarkan tidak terhubung) oleh interkoneksi yang dapat diprogram untuk memberikan infrastruktur perutean yang sepenuhnya dapat diprogram dalam FPGA. Sumber daya routing memiliki hubungan hierarkis, dengan kombinasi kabel panjang, sedang, dan pendek yang menjangkau berbagai “panjang” di dalam FPGA. Infrastruktur perutean yang dapat diprogram ini, diaktifkan oleh interkoneksi yang dapat diprogram, memungkinkan pengguna mengonfigurasi sumber daya FPGA untuk implementasi tugas atau aplikasi tertentu.

Blok input/output yang dapat diprogram (IOB)

Antarmuka antara FPGA dan perangkat eksternal lainnya diaktifkan oleh blok input/output (I/O) (IOB). IOB adalah sumber daya input dan output yang dapat diprogram yang dikonfigurasikan agar sesuai dengan protokol perangkat eksternal apa pun yang terhubung dengan FPGA. Semua sinyal yang masuk atau keluar dari FPGA melakukannya melalui pin perangkat dan IOB terkait.

Memori on-chip

FPGA paling awal hanya menggunakan flip-flop (FF) untuk mengintegrasikan memori ke dalam blok logika FPGA. Namun, seiring dengan meningkatnya kemampuan FPGA, desain yang makin kompleks membutuhkan memori on-chip khusus untuk buffering dan penggunaan ulang data. FPGA modern menggunakan susunan memori SRAM yang besar, tabel pencarian yang lebih kecil (LUT), dan elemen flip-flop tradisional untuk menyediakan penyimpanan yang diperlukan untuk aplikasi tertentu.

Blok pemrosesan sinyal digital (DSP)

Pada FPGA awal, satu-satunya sumber daya aritmatika yang tersedia adalah penjumlah sederhana; apa pun yang lebih kompleks dibangun dari elemen logika yang lebih primitif. Namun, seiring dengan kemajuan teknologi silikon, sumber daya aritmatika yang lebih kompleks dimasukkan ke dalam FPGA, yang berpuncak pada blok DSP FPGA modern. Blok DSP menyediakan sumber daya yang sangat dioptimalkan (seperti pengali, akumulator, dan lainnya) untuk mengimplementasikan fungsi aritmatika dengan kinerja tinggi.

Penggunaannya menghilangkan kebutuhan untuk mengimplementasikan fungsi-fungsi ini dalam CLB tujuan umum, sehingga membebaskan CLB untuk tujuan lain. Operasi seperti penyaringan digital, konvolusi, transformasi Fourier, operasi trigonometri, dan masih banyak lagi dapat memanfaatkan sumber daya ini untuk mendapatkan kinerja waktu nyata dalam berbagai aplikasi mulai dari pemrosesan radar, beamforming, pengenalan pola, dan masih banyak lagi.

Jenis-jenis Field programmable gate array

FPGA tersedia dalam beberapa varietas berbeda yang menawarkan berbagai jenis konfigurabilitas, konsumsi daya, elemen yang dapat diprogram, dan memori on-chip.

  • FPGA berbasis antifuse: FPGA yang dapat dikonfigurasi tetapi tidak dapat dikonfigurasi ulang. Mereka menggunakan elemen yang dapat diprogram satu kali yang disebut antifuse, yang dikonfigurasikan dengan menerapkan tegangan tinggi untuk membuat koneksi antara kabel internal. FPGA berbasis antifuse hanya dapat dikonfigurasi sekali dan tidak dapat dikonfigurasi ulang.
  • FPGA berbasis SRAM: Jenis FPGA ini sangat serbaguna dan dapat dikonfigurasi saat dijalankan. FPGA berbasis SRAM menggunakan memori akses acak statis (SRAM) untuk menyimpan instruksi konfigurasinya dan memerlukan memori eksternal untuk menyimpan kode konfigurasi.
  • FPGA berbasis flash: Tidak seperti FPGA berbasis SRAM, FPGA berbasis flash menyimpan konfigurasinya dalam memori flash yang tidak mudah berubah, yang memiliki manfaat tambahan karena dapat diprogram ulang.
  • FPGA berbasis EEPROM: Variasi FPGA ini mirip dengan FPGA berbasis flash, tetapi memori hanya-baca yang dapat diprogram yang dapat dihapus secara elektronik (EEPROM) menyimpan konfigurasi FPGA. Kedua gaya itu tidak mudah berubah dan dapat diprogram ulang.
  • FPGA Hybrid: FPGA hybrid menyediakan berbagai tingkat kinerja, operasi berdaya rendah, dan keserbagunaan melalui kombinasi berbagai elemen yang dapat diprogram, seperti blok logika berbasis SRAM atau flash.
  • FPGA system-on-chip: FPGA system-on-chip (SoC) mengintegrasikan logika yang dapat diprogram dengan inti prosesor keras, menggabungkan fungsionalitas dari FPGA dan SoC, sebuah chip silikon tunggal yang menggabungkan beberapa chip pemrosesan sistem seperti CPU, GPU, dan RAM menjadi satu unit.

Contoh penggunaan Field programmable gate array

Memiliki sifat serbaguna secara alami, FPGA sangat cocok untuk berbagai aplikasi.

Aplikasi radar

FPGA disukai untuk pemrosesan sinyal dan akuisisi data karena kemampuan pemrosesan paralel berkecepatan tinggi.

Kendaraan udara tak berawak (UAV)

Algoritma pemrosesan sinyal berkecepatan tinggi membuat FPGA sangat cocok untuk melakukan kontrol penerbangan, pemrosesan sensor, dan tugas komunikasi yang digunakan pada pesawat tanpa awak seperti drone.

Sistem kontrol industri (ICS)

Sistem kontrol industri yang digunakan untuk memantau infrastruktur seperti jaringan listrik, kilang minyak, dan pabrik pengolahan air menggunakan FPGA yang dapat dengan mudah dioptimalkan untuk memenuhi kebutuhan unik berbagai industri. Dalam industri yang sangat penting ini, FPGA dapat digunakan untuk mengimplementasikan berbagai otomatisasi dan fitur enkripsi berbasis perangkat keras untuk keamanan siber yang efisien.

Pembuatan prototipe ASIC

Meskipun FPGA adalah solusi yang berguna untuk tugas-tugas yang membutuhkan fleksibilitas, ASIC yang dikhususkan untuk tugas tertentu sering kali lebih cocok untuk operasi standar. Saat sistem baru dikembangkan, FPGA sangat berguna untuk mengembangkan dan membuat prototipe ASIC baru untuk teknologi yang sedang berkembang.

Pusat data

FPGA menambah nilai pada pusat data dengan memfasilitasi bandwidth tinggi, server latensi rendah, jaringan, dan infrastruktur penyimpanan.