Categories
FPGA

Mengapa (harus) FPGAs?

Ada beberapa pilihan bagi para perancang dalam menentukan suatu platform perangkat keras untuk perancangan elektronik ter-kustom, mulai dari prosesor tertanam atau embedded processors, ASIC atau Application Specific Integrated Circuits, Programmable Micro-processors (atau yang lebih dikenal dengan mikrokontroler), FPGAs hingga PLDs atau Programmable Logic Devices. Keputusan untuk menjatuhkan pilihan pada suatu teknologi, seperti FPGA, hanya bergantung pada kebutuhan rancangan bukan karena pandangan individu atau pendapat pribadi.

Misalnya, jika suatu rancangan membutuhkan sebuah piranti ter-program dengan sering terjadi perubahan rancangan dan algoritma yang melibatkan berbagai macam operasi yang kompleks, seperti perkalian dan pengulangan, maka mungkin perlu menggunakan prosesor pemroses sinyal yang terdedikasi (dedicated signal processor), seperti DSP yang dapat diprogram-ulang secara mudah menggunakan bahasa tingkat tinggi seperti Bahasa C. Jika kebutuhan kecepatan tidak terlalu menuntut dan platform ringkas yang murah dibutuhkan, maka perlu menggunakan mikrokontroler seperti PIC, AVR dan lain sebagainya. Namun, jika perangkat kerasnya membutuhkan unjuk-kerja yang tinggi, katakanlah bisa beroperasi dengan frekuensi kerja 100 MHz, maka FPGA menawarkan solusinya dan sekaligus merupakan logik terprogram yang fleksibel dan dapat dipakai lagi (reusable).

Isu-isu lainnya yang perlu diperhatikan adalah tingkat optimasi kebutuhan rancangan perangkat keras. Misalnya, sebuah program bisa ditulis dalam Bahasa C, kemudian diunduh ke mikrokontroler, tetapi unjuk-kerjanya terbatas karena ketidak-mampuannya melakukan proes secara paralel (untuk fungsi-fungsi tertentu). Permasalahan ini dapat diselesaikan menggunakan FPGA, yaitu dengan memanfaatkan teknik proses paralel dan pipeline untuk meningkatkan unjuk-kerja dari rancangan yang bersangkutan.

Gampangnya begini, untuk menentukan pilihan suatu platform perangkat keras adalah dengan mengidentifikasi syarat-syarat rancangan dan kebutuhan perangkat keras yang diinginkan.

Misalnya, jika rancangan mensyaratkan detak (clock) yang digunakan adalah 100 MHz, maka FPGA merupakan platform yang paling sesuai. Namun, jika detaknya hanya sekitar 3 s/d 4 MHz, maka penggunaan FPGA bisa diibaratkan membunuh kecoa dengan bom (mungkin malah bom nuklir).

Jika rancangan membutuhkan opsi prosesor yang fleksibel, walaupun teknologi FPGAs saat ini mendukung untuk prosesor tertanam, mungkin ada baiknya menggunakan DSP atau Mikrokontroler. Jika rancangan membutuhkan perangkat keras dengan fungsi khusus, maka sebuah FPGA bisa dijadikan sebagai solusi.

Jika rancangan membutuhkan fungsi-fungsi perangkat keras yang khusus, seperti perkalian dan penjumlahan, maka DSP bisa jadi solusi, tetapi jika rancangan perangkat keras diinginkan bisa di-kustom, maka, sekali lagi, FPGA merupakan pilijan yang pas!

Jika rancangan membutuhkan blok-blok perangkat keras yang sederhana, maka PLD atau CPLD (Complex Programmable Logic Device) bisa jadi merupakan pilihan terbaik (compact, simple programmable logic), bagaimanapun juga, jika rancangan memiliki beberapa fungsi sekaligus atau kombinasi dari kontroler yang kompleks dengan fungsi-fungsi perangkat keras yang khusus, maka FPGA bisa jadi solusinya.

Contoh-contoh kasus yang telah diceritakan tersebut dapat bergantung pada kompleksitas perangkat kerasnya. Misalnya, sebuah kontroler VGA atau Video Graphics Array kemungkinan lebih membutuhkan FPGA dibandingkan PLD, hal ini terkait dengan kompleksitas perangkat keras yang terkait. Isu-isu lain yang masih berhubungan adalah fleksibilitas dan programabilitas. Jika sebuah FPGA digunakan dan beberapa sumber daya tidak digunakan untuk piranti tertentu (misalnya masih sisa 60%), maka jika terjadi perubahan atau peremajaan (update), masih ada sisa ruangan untuk mendukung beberapa perubahan-perubahan tersebut, di masa mendatang.

Menggunakan petunjuk yang sederhana ini, pilihan cerdas bisa dilakukan untuk menentukan platform yang sesuai dan terbaik dan juga sekaligus perangkat keras yang dipilih. Untungnya, banyak perangkat lunak sintesis (sintesa rangkaian dalam logik terprogram) pada saat ini mampu melakukan pengujian unjuk-kerja dan utilisasi (misalnya PLD atau FPGA) berbagai macam platform rancangan sebelum keputusan akhir pilihan perangkat kerasnya.

(sumber: Wilson, P.R., 2007, “Design Recipes for FPGAs“, Newness Publications)