FPGA untuk Merancang Hardware
Kita membuat program kemudian dikompile dan di download ke Flash ROM nya mikrokontroler. Misalkan Kapasitas Flash ROM mikrokontroller kita adalah 4KB sementara program yang kita kompile hanya 1 KB. Berarti sisa 3 KB bukan? Sisa ini sebenarnya mubazir dan wasting cost (biaya produksi dan material pembuatan IC). Dengan FPGA kita bisa merancang sistem digital yang benar-benar sesuai keperluan kita. Butuh memory 1KB ya cukup dirancang 1 KB saja.
FPGA untuk Merancang Mikrokontroler
Misalkan kita mau membuat jam digital. Kalau kita menggunakan mikrokontroller maka kira2 peripheral apa saja yang akan digunakan? paling-paling hanya timer dan I/O, itu saja bukan? Lalu jika mikrokontroller yang kita gunakan memiliki 3 buah timer, 3x8 bit I/O, ADC, SPI, I2C dll. Sementara peripheral yang kita gunakan cuma I/O dan timer maka sisanya nganggur dan tidak terpakai juga kan? Ini juga wasting resources. Dengan FPGA kita bisa merancang sebuah sistem cukup dengan peripheral timer dan I/O saja. Lebih hemat resources kan?
FGPA Lebih Presisi daripada Mikrokontroler
Misalkan kita mau membuat penjumlah 8-bit. Jika menggunakan mikrokontroller kita memerlukan satu siklus mesin dengan perintah misal ADD Rx,Ry dimana satu siklus mesin ini setara dengan periode sumber clock dan tergantung arsitektur mikrokontrolernya. Sebagai contoh dengan XTAL 1 MHz dan AVR maka dibutuhkan 1/1=1 us. Namun jika kita merancang rangkaian penjumlah 8-bit menggunakan FPGA mungkin hanya dibutuhkan 2-3 delay gate atau setara kurang lebih 2-3 ns saja. Dengan demikian waktu eksekusi FPGA menjadi lebih cepat. Bisa sampai 1000x lebih cepat, hebat bukan?
FGPA Dieksekusi Paralel, Mikrokontroler Dieksekusi Sekuensial
Dengan FPGA kita bisa merancang sistem digital secara paralel daripada sekuensial. Ini contoh eksekusi paralel di FPGA. Misal kita memiliki program berikut :
begin statement1; statement2; statement3; end
Jika menggunakan mikrokontroller maka program diatas akan dikerjakan satu persatu (program akan dikerjakan secara sekuensial dari statement1 kemudian statement2 baru kemudian statement3). Namun jika menggunakan FPGA bisa dirancang semua statement diatas dieksekusi secara bersamaan.Sehingga kalau kita punya instruksi berikut :
B=A+4; C=B+2;
belum tentu hasilnya C=A+6 karena pada saat B sedang dihitung maka C juga sudah mulai dihitung. Jadi saat menghitung C=B+2 nilai variabel B belum tentu berisi B=A+4. Tergantung mana yang lebih cepat eksekusinya. Timing semacam ini perlu diperhatikan, jadi tidak semudah sistem sekuansial bukan?
FGPA untuk Membuat Prototype Hardware
Catatan, FPGA adalah reconfigurable. Artinya arsitektur sistem digital kita bisa dirubah dan diprogram ulang sesuai keinginan. Inilah alasanya mengapa FPGA cocok untuk prototyping. Misal sekarang kita butuh memory 1KB lalu ternyata dikemudian hari kita butuh menjadi 4 KB atau misalnya sekarang butuh 1 timer tapi dikemudian hari menjadi butuh 3 timer maka dengan mudah kita bisa mengkonfigurasi semua sesui kebutuan. Dengan catatan kapasitas gate yang tersedia dalam FPGA masih mencukupi. menyenangkan bukan? semua serba sesuai kebutuhan.
FGPA Lebih Mahal daripada Mikrokontroler
Pilihan FPGA menjadi tidak mudah dan kurang familiar mengingat harganya lebih mahal dibandingkan kebanyakan mikrokontroler dan kompleksitas dalam perancangannya. FPGA lebih cocok untuk prototyping sistem digital (terutama yang membutuhkan komputasi yang komplex yang tidak mampu diselesaikan mikrokontroler). Setelah sistem yang kita rancang jadi maka selanjutnya desain tersebut bisa di produksi masal dengan murah dalam bentuk single chip atau sebuah IC. Misal saja kita merancang sistem kendali Lift dengan FPGA, setelah jadi kemudian desain tersebut diproduksi masal di pabrik dan dijual dengan nama IC 74DTEUGM12. Bagaimana keren juga kan?
FGPA Level Hardware, Mikrokontroler Level Software
Ini sebagai pertimbangan. Beberapa waktu yang lalu, membuat sistem digital dengan PFGA jauh lebih sulit daripada menggunakan mikrokontroler. Level mempelajari FPGA lebih hardware daripada mikrokontroler (hardware bukan berarti solder menyolder tetapi lebih berarti menyentuh level arsitektur sistemnya). Kecuali untuk sistem digital yang memang sangat mudah untuk dibuat. Untuk saat ini mempelajari FPGA tidak terlalu susah lagi. Banyak tool yang menyediakan jasa high language programming seperti Handel-C, System C dan Impulse C yang menggunakan bahasa C. Namun demikian pemahaman sistem digital secara mendasar dan mendalam lebih diperlukan ketika kita mempelajari FPGA dibandingkan pada saat kita mempelajari Mikrokontroler.
Satu lagi, kita bisa membuat mikroprosesor atau mikrokontroler dengan arsitektur sendiri, dengan jumlah register sendiri, dengan kapasitas memory sendiri, dengan peripheral sendiri, semua serba sendiri bahkan kompilernya juga buatan kita sendiri karena bahasa mesin/mnemonic-nya harus sesuai dengan desain kita. Kalo anda bisa silahkan di produksi dengan label mikrokontroller DTE8535, tentu asik bukan? :D
Perbedaan lain tentang FGPA dan Mikrokontroler bisa dibaca juga di Apa Sih Bedanya FPGA (Field Programmable Gate Array) dan Mikrokontroler 1.
Thanks ilmunya gan!
BalasHapus