Oleh = Mochammad Haldi Widianto

Apa Itu FPGA?

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,

Gambar 1. FPGA

  • Sifat FPGA

FPGA ini bersifat volatile, yang artinya ketika sumber daya yang menyuplainya dicabut maka secara otomatis FPGA akan kehilangan fungsinya. FPGA ini tidak dilengkapi dengan memory.

Jadi FPGA ini tidak mampu menyimpan program ketika supply tenaganya dicabut. User atau pemakai harus mendownload ulang program ke dalam FPGA lagi untuk mengimplementasikan program tersebut.

  • Pengaplikasian FPGA

Pengaplikasian teknologi FPGA ini sangatlah luas, baik di bidang elektronika, instrumentasi, navigasi, kesehatan, industri dan lain sebagainya. Contoh pengaplikasian teknologi FPGA antara lain:

Alat Bantu Dengar; teknologi FPA digunakan untuk membuat alat bantu dengar yang lebih murah namun lebih powerfull.

Mesin penjual otomatis atau Vending Machine.

Lampu lalu lintas

dan lain sebagainya.

Struktur internal FPGA terdiri dari beberapa komponen utama, antara lain:

  1. Configurable Logic Blocks (CLBs): Merupakan blok dasar dalam FPGA yang dapat dihubungkan dan diprogram untuk melakukan berbagai fungsi logika. Setiap CLB terdiri dari lookup tables (LUTs), flip-flops, dan elemen-elemen lainnya yang memungkinkan mereka untuk menjalankan berbagai operasi logika yang kompleks.
  2. Routing Fabric: FPGA memiliki jaringan interkoneksi yang kompleks, memungkinkan CLB untuk dihubungkan satu sama lain. Ini memberikan fleksibilitas dalam mengatur aliran data dan sinyal di dalam FPGA, sesuai dengan desain yang diinginkan pengguna.
  3. Input/Output Blocks (IOBs): Blok ini memungkinkan FPGA untuk berkomunikasi dengan perangkat eksternal. IOBs mendukung berbagai standar I/O, memungkinkan FPGA untuk berinteraksi dengan komponen lain dalam sistem digital, seperti memori, prosesor, atau perangkat input/output lainnya.
  4. Memori Internal: Beberapa FPGA juga memiliki blok memori internal, seperti block RAM (BRAM), yang dapat digunakan untuk menyimpan data sementara selama operasi.
  5. Dedicated Hardware Blocks: FPGA modern biasanya dilengkapi dengan blok perangkat keras khusus, seperti Digital Signal Processing (DSP) blocks, yang dirancang untuk menangani operasi matematika secara lebih efisien, serta blok clock management untuk pengaturan sinyal jam yang presisi.

Cara Kerja FPGA

FPGA bekerja berdasarkan prinsip pemrograman ulang, yang berarti pengguna dapat mendesain konfigurasi logika yang diinginkan dan kemudian mengunduhnya ke dalam FPGA. Proses ini dilakukan menggunakan bahasa deskripsi perangkat keras (HDL), seperti VHDL atau Verilog. HDL digunakan untuk menggambarkan bagaimana logika harus diimplementasikan dalam FPGA.

Berikut adalah langkah-langkah umum dalam proses kerja FPGA:

  1. Desain Sistem: Pengguna mendesain sistem digital menggunakan HDL, menggambarkan bagaimana sinyal harus diproses dan logika apa yang diperlukan untuk operasi tertentu.
  2. Sintesis: Setelah desain dibuat, kode HDL disintesis menjadi netlist, yaitu representasi logika dasar yang dapat dimengerti oleh perangkat keras FPGA. Proses sintesis ini mengubah desain logika menjadi gate dan flip-flop yang dapat dipetakan ke dalam FPGA.
  3. Place and Route: Netlist kemudian dipetakan ke dalam CLB dan interkoneksi di FPGA. Proses ini menentukan bagaimana komponen logika akan ditempatkan di dalam FPGA dan bagaimana mereka akan terhubung satu sama lain melalui jaringan interkoneksi internal.
  4. Program FPGA: Setelah desain selesai, bitstream (file konfigurasi) dihasilkan dan diunduh ke FPGA. FPGA kemudian dikonfigurasi untuk bekerja sesuai dengan desain yang telah dibuat.
  5. Eksekusi: FPGA menjalankan desain yang telah diunduh, dan mulai memproses data sesuai dengan logika yang telah ditetapkan.

Salah satu keunggulan FPGA adalah kemampuannya untuk diprogram ulang dengan cepat. Jika ada perubahan dalam desain, pengguna dapat mengubah kode HDL, mensintesis ulang, dan memprogram FPGA tanpa perlu mengganti perangkat keras. Ini sangat berbeda dari Application-Specific Integrated Circuits (ASIC), yang merupakan sirkuit tetap yang dirancang untuk aplikasi spesifik dan tidak dapat diprogram ulang.

Kelebihan Teknologi FPGA

FPGA memiliki sejumlah keunggulan yang membuatnya unggul dalam berbagai aplikasi industri. Beberapa di antaranya adalah:

  1. Fleksibilitas dan Programabilitas: FPGA memungkinkan pengguna untuk mengubah desain sistem kapan saja tanpa harus memproduksi ulang perangkat keras. Ini sangat berguna dalam penelitian dan pengembangan, di mana perubahan desain sering kali diperlukan.
  2. Eksekusi Paralel: FPGA dapat menjalankan banyak operasi logika secara bersamaan, berbeda dengan CPU yang menjalankan instruksi secara sekuensial. Ini memberikan kecepatan yang lebih tinggi dalam aplikasi yang membutuhkan pemrosesan paralel, seperti pengolahan gambar, video, atau sinyal.
  3. Kinerja yang Dapat Disesuaikan: Karena FPGA dapat dikonfigurasi ulang, kinerja sistem dapat dioptimalkan untuk aplikasi tertentu. Pengguna dapat mengatur jalur sinyal, clock, dan logika sehingga perangkat keras dapat bekerja secara efisien sesuai dengan kebutuhan.
  4. Biaya Pengembangan Lebih Rendah: Dibandingkan dengan ASIC, yang memerlukan biaya besar untuk merancang dan memproduksi, FPGA memungkinkan pengembangan yang lebih murah, terutama dalam tahap prototipe. Pengguna tidak perlu berinvestasi dalam produksi chip yang mahal karena FPGA dapat diprogram ulang dan digunakan untuk berbagai proyek.
  5. Keamanan dan Isolasi Fungsional: FPGA juga memberikan keuntungan dalam hal keamanan, karena dapat diisolasi secara fisik dalam sebuah sistem, sehingga mencegah manipulasi atau serangan dari luar. Selain itu, logika yang diterapkan di FPGA dapat dirahasiakan dan hanya diketahui oleh pengembang.

Aplikasi FPGA

FPGA digunakan dalam berbagai aplikasi industri dan komersial. Beberapa contoh penggunaan FPGA adalah sebagai berikut:

  1. Pemrosesan Sinyal Digital (DSP): FPGA sangat berguna dalam aplikasi pemrosesan sinyal digital, seperti komunikasi nirkabel, radar, dan pemrosesan audio. FPGA dapat memproses sinyal secara real-time dengan latensi yang sangat rendah, membuatnya ideal untuk aplikasi yang membutuhkan kecepatan tinggi dan akurasi tinggi.
  2. Akselerasi Perangkat Keras: Dalam aplikasi komputasi berat, seperti kecerdasan buatan dan pembelajaran mesin, FPGA dapat digunakan untuk mempercepat perhitungan tertentu. Misalnya, FPGA sering digunakan sebagai akselerator dalam pusat data untuk mempercepat pemrosesan algoritma AI, seperti jaringan saraf tiruan.
  3. Jaringan dan Telekomunikasi: FPGA digunakan dalam infrastruktur jaringan untuk mengimplementasikan protokol komunikasi, pengolahan data, dan pengelolaan paket jaringan. FPGA memungkinkan pengembang untuk mengadaptasi perangkat keras sesuai dengan standar jaringan yang terus berkembang, seperti 5G.
  4. Kontrol Otomasi Industri: Dalam industri manufaktur, FPGA digunakan untuk mengontrol mesin dan sistem otomatisasi. Karena dapat diprogram untuk merespons secara real-time, FPGA sangat cocok untuk sistem kontrol yang memerlukan keputusan cepat dan presisi tinggi.
  5. Pengembangan Prototipe ASIC: Banyak perusahaan semikonduktor menggunakan FPGA sebagai platform prototipe sebelum memproduksi chip ASIC. FPGA memungkinkan mereka untuk menguji desain dan fungsionalitas sebelum menginvestasikan biaya besar dalam produksi chip khusus.
  6. Pengolahan Video dan Gambar: FPGA juga banyak digunakan dalam pengolahan video, termasuk kompresi video, pengenalan wajah, dan pengenalan pola. Kemampuan FPGA untuk memproses data gambar secara paralel memungkinkan penanganan volume data yang besar dengan latensi rendah, sangat berguna dalam sistem kamera pengawas dan sistem multimedia.

Perbandingan FPGA dengan Teknologi Lain

FPGA sering dibandingkan dengan dua teknologi utama lainnya, yaitu CPU dan ASIC. Berikut adalah perbandingan antara ketiganya:

  1. FPGA vs CPU: CPU dirancang untuk menjalankan instruksi sekuensial dengan sangat cepat, sementara FPGA lebih cocok untuk aplikasi yang membutuhkan pemrosesan paralel. FPGA dapat jauh lebih efisien dalam aplikasi yang memerlukan banyak operasi logika sederhana yang berjalan secara bersamaan. Namun, CPU lebih fleksibel dalam hal menjalankan berbagai jenis program perangkat lunak.
  2. FPGA vs ASIC: ASIC dirancang untuk aplikasi tertentu dan tidak dapat diprogram ulang. FPGA lebih fleksibel dan lebih murah untuk pengembangan prototipe, tetapi ASIC biasanya menawarkan kinerja yang lebih tinggi dan lebih hemat daya dalam aplikasi yang telah ditetapkan. ASIC lebih cocok untuk produk massal, sementara FPGA lebih berguna untuk pengembangan dan aplikasi yang membutuhkan fleksibilitas tinggi.
  3. FPGA vs GPU: GPU (Graphics Processing Unit) sangat efisien dalam pemrosesan data paralel, terutama dalam aplikasi grafik dan pembelajaran mesin. Namun, FPGA menawarkan kustomisasi yang lebih tinggi dan dapat disesuaikan untuk aplikasi tertentu. FPGA sering kali lebih hemat daya dibandingkan GPU dalam aplikasi tertentu, terutama dalam akselerasi perangkat keras.

Masa Depan FPGA

Teknologi FPGA terus berkembang dengan cepat, terutama dengan munculnya FPGA yang dilengkapi dengan prosesor ARM atau blok kecerdasan buatan khusus. FPGA masa depan diperkirakan akan semakin terintegrasi dengan sistem on-chip (SoC), menawarkan lebih banyak fleksibilitas dalam hal komputasi heterogen. Selain itu, dengan semakin meningkatnya kebutuhan akan akselerasi perangkat keras dalam kecerdasan buatan, komputasi awan, dan sistem komunikasi 5G, permintaan untuk FPGA diperkirakan akan terus meningkat.

Referensi:

  1. https://id.wikipedia.org/wiki/FPGA
  2. https://ndoware.com/sekilas-tentang-fpga.html