Anda di halaman 1dari 6

ISI FPGA Seperti yang diketahui, Field Programmable Gate Array atau yang lebih dikenal dengan FPGA

merupakan sebuah IC digital yang dapat diprogram sesuai dengan kehendak pemakainya. FPGA berkembang sejak sekitar tahun 1980-an. Awal mula dari adanya FPGA ini tidak lepas dari adanya alat elektronik, yaitu transistor. Transistor merupakan alat semikonduktor yang dipakai sebagai penguat, sebagai komponen pemutus dan penyambung(switching), dan stabilisasi tegangan. Pada umumnya, transistor ini berfungsi sebagai saklar arus listrik yang hendak masuk ke suatu rangkaian elektronik. Perkembangan selanjutnya, adalah munculnya IC (Integrated Circuit) sekitar tahun 1950-an. Komponen elektronik ini lebih dikenal sebagai otak dari sebuah peralatan elektronika seperti televisi, handphone, computer, dsb. Kemudian berturut-turut muncul komponen lain, seperti DRAM, SRAM, microprocessor, ASIC hingga sampai pada FPGA.

Gambar FPGA Bila dilihat dari segi bentuknya, FPGA tak berbeda jauh dengan bentuk IC-IC lainnya. Hanya saja, bila dilihat dari isinya FPGA memiliki bagian yang berbeda dengan komponen IC pada umumnya. Berikut isi dari FPGA pada umumnya: 1. Configure Logic Blocks (CLB). Bisa dikatakan, bagian inilah yang akan memproses segala bentuk rangkaian logika yang dibuat oleh user/pemakai. 2. I/O Blocks. Sebagai interface antara external pin dari device dan internal user logic 3. Programmable Interconnect. Bagian ini berisi wire segments dan programmable switches, selain itu bagian ini juga akan menghubungkan antara CLB satu dengan CLB lainnya. Sebagian besar FPGA memiliki arsitektur seperti di atas. Entah itu FPGA produksi Xilinx ataupun dari Altera. Bila berbeda pun tak akan sampai menimbulkan perbedaan yang terlalu signifikan.

Cara kerja FPGA

FPGA (Field Programmable Gate Array) merupakan sebuah IC digital sering digunakan untuk implementasi rangkaian digital. IC digital ini pada umumnya terdiri atas 3 bagian yaitu configure logic blocks (CLB), I/O Blocks, dan Programmable Interconnect. Baik FPGA buatan Xilinx maupun Altera memiliki 3 bagian seperti yang disebutkan di atas.

Gambar Isi FPGA buatan Xilinx Sebuah FPGA tersusun dari sebuah bagian yang bernama logic-cell (Logic Blocks), yang kemudian pada perkembangannya saling terhubung satu sama lain. Kumpulan-kumpulan dari logic cell ini berjumlah ratusan bahkan ribuan dan membentuk sauatu fungsi yang kompleks. Sebuah logic cell pada dasarnya terdiri atas sebuah lookup table(LUT), D flip-flop, dan sebuah multiplekser 2 ke 1.

Gambar Isi Logic Cell 1. Look Up Table (LUT) merupakan sejenis RAM (Random Acces Memory) yang berkapasitas kecil. Di dalam FPGA, LUT ini memegang peranan penting dalam proses implementasi fungsi-fungsi logika. Selain itu, LUT ini berciri khas memiliki input sejumlah 4 buah. 2. D Flip Flop. Seperti yang diketahui, flip-flop (Bistable Multivibrator) dalah suatu rangkaian sel biner yang memiliki dua buah output yang saling berkebalikan keadaannya (0 atau 1). Di dalam FPGA, terdapat sebuah jenis flip-flop yaitu D flip-flop atau Data flip flop. Rangkaian D flip-flop ini berfungsi sebagai rangkaian logika sekuensial dimana di dalamnya terdapat peralatan memori dan pewaktu. 3. Multiplekser 2 ke 1. Sebuah multipleser adalah piranti digital yang bekerja sebagai switch (saklar) yang menghubungkan data dari n masukkan ke sebuah keluaran. Multiplekser berfungsi untuk memilih beberapa input untuk hanya menjadi 1 output saja. Di dalam FPGA, terdapat rangkaian multiplekser 2 ke 1 yang artinya, multiplekser tersebut memiliki 2 buah input dan 1 buah output.

Setiap logic cell tersebut dapat dihubungkan dengan logic cell lainnya melalui jalur/koneksi yang ada. Setiap cell hanya mampu bekerja secara sederhana dan ringkas, Namun bila antara satu cell saling terhubung satu sama lain sebuah fungsi-fungsi logika yang kompleks pun dapat terbentuk.

Gambar Logic Cell yang Terhubung satu sama lain Proses Suatu ketika ingin mengimplementasikan rangkaian sederhana, misalnya rangkaian Full Adder ke dalam FPGA. Seperti yang diketahui, rangkaian full adder biasanya terdiri atas gerbang logika AND, gerbang logika OR dan gerbang logika XOR. Lalu bagaimana proses implementasinya ke dalam FPGA? Bahwa telah disebutkan bahwa setiap FPGA terdiri atas ratusan bahkan ribuan logic cell. Rangkaian Full Adder tadi akan didownload ke dalam FPGA untuk menempatkan masing-masing bagian dari Full Adder ke dalam logic cell. Kemudian antara satu logic cell yang satu dengan yang lain saling terhubung melalui jalur interkoneksi membentuk fungsi logika layaknya seperti rangkaian full adder.

Gambar Logic Cell yang Terhubung satu sama lain Hal yang sama juga terjadi pada rangkaian-rangkaian rumit lainnya seperti rangkaian jam digital, scan key, dsb. Sebagai tambahan untuk tujuan jalur interkoneksi antar cell, FPGA memiliki jalur

penghubung singkat diantara cell-cell yang saling berdekatan. Tipe jalur interkoneksi ini sering disebut carry chains. Carry chainsberfungsi dalam pembuatan fungsi-fungsi logika agar dapat berjalan dengan efisien (minim penggunaan dan tingkat operasi yang tinggi).

Gambar Logic Cell yang Terhubung satu sama lain denga cary chains Dengan demikian, dalam menggunakan cary chains apabila rangkaian yang hendak diimplementasikan ke dalam FPGA adalah rangkaian digital yang sederhana, maka logic cell yang digunakan pun akan minimun dan memiliki lokasi yang saling berdekatan satu sama lain. Hal yang sebaliknya pun berlaku. Sehingga penggunaan logic cell di dalam FPGA akan efektif dan efisien.

FPGA Pins

Pada umumnya, bentuk sebuah FPGA tergantung pada vendor pembuatnya. Masing-masing vendor memiliki ciri khas untuk setiap FPGA ciptaannya. Misalkan saja vendor Xilinx dengan produknya yang terkenal yaitu Spartan dan Virtex. Atau vendor Altera dengan FPGA buatannya yakni Cyclone dan Stratix. Masing-masing dari jenis FPGA tersebut memiliki ciri

khas dan keistimewaan tersendiri. Hal tersebut juga nampak pada jumlah pin/kaki yang pada masingmasing FPGA tersebut. Secara umum, pin FPGA terbagi atas 2 jenis yaitu : pin asli (dedicated pins) dan pin untuk pengguna (user pins). Dari kedua jenis pin. Tersebut, hampir sekitar 20% s/d 30% pin pada FPGA termasuk jenis pin asli (dedicated pins). Jenis dedicated pins ini mengandung arti bahwa pin ini memang sengaja diciptakan vendor pembuat FPGA dengan tujuan tertentu. Selain itu, jenis pin ini dapat dikategorikan menjadi beberapa golongan :

Power pins, Pin untuk daya atau pin untuk ground Configuration pins, Pin yang digunakan untuk download FPGA Clock pins, Pin ini digunakan untuk menghasilkan sinyal detak (clock) yang nantinya akan

mengendalikan keseluruhan proses yang terjadi dalam FPGA. User Pins Sebagian besar pin yang ada dalam FPGA adalah jenis user pins. Jenis pin ini diciptakan vendor dengan tujuan menciptakan keleluasaan atau kebebasan bagi para pengguna FPGA untuk menentukan sendiri mana pin yang hendak dipakai. Nama yang lazim atau sering digunakan untuk pin jenis ini adalah pin I/O, yang artinya pin output-input. Jenis pin ini nantinya bisa diatur oleh pengguna sesuai keingginan dan kepentingannya. Selain itu, jenis pin juga bisa dijadikan input dan output untuk rangkaian yang dibuat oleh pengguna FPGA tersebut. Nantinya, jenis pin ini akan terhubung dengan IO cell di dalam FPGA. Perlu diketahui, IO cell ini diberi daya tegangan oleh pin VCCIO (termasuk jenis power pins). Seperti yang telah dijelaskan, isi FPGA terdiri atas 3 bagian yaitu Configure Logic Blocks (CLB), I/O Blocks, dan Programmable Interconnect. Jenis User pins ini akan terhubung pada I/O Blocks. IO Banks Salah satu jenis dedicated pins pada FPGA adalah power pins. Pada umumnya, sebuah FPGA memiliki beberapa pin yang sering dinamakan VCCIO (termasuk jenis power pins) yang semuanya tersebut, terhubung ke sebuah sumber teganan yang sama. Namun, hal tersebut tidak berlaku untuk untuk FPGA generasi yang baru. FPGA jenis ini memiliki sebuah konsep yang dinamakan user IO banks. Dalam konsep user IO banks pengguna FPGA dapat membagi IO menjadi beberapa kelompok yang masingmasing kelompok memiliki tegangan VCCIO tersendiri. Hal ini menjadikan FPGA dapat berperan sebagai pengubah dan penyalur tegangan. Misalkan saja jika sebuah bagian pada FPGA membutuhkan tegangan 3,3V dan bagian yang lain membutuhkan 2,5V maka dengan konsep user IO bank ini, FPGA dapat melakukannya. FPGA Power

Sebuah FPGA pada umumnya membutuhkan 2 tegangan untuk beroperasi yaitu : tegangan inti (core voltage) dan tegangan IO (IO voltage). Tiap tegangan ini masing-masing memiliki pin yang berbeda satu sama lain. Tegangan inti internal (sering disebut internal core voltage atau VCCINT). Tegangan ini digunakan sebagai sumber daya pada gerbang-gerbang logika dan flip-flop di dalam FPGA. Besarnya tegangan antara 5V (untuk jenis FPGA lama) s/d 3,3V, 2,5V, 1,8V, 1,5V (untuk jenis FPGA baru). Bahkan tegangannya bisa semakin rendah untuk produk FPGA terbaru. Dengan kata lain, tegangan jenis ini berbeda-beda tergantung FPGA yang digunakan. Tegangan IO (sering disebut IO voltage atau VCCIO) Tegangan ini digunakan sebagai sumber daya untuk blok-blok IO pada FPGA. Tegangan jenis ini haruslah cocok dan tepat dengan peralatan yang nantinya akan dihubungkan dengan FPGA. Misalkan FPGA akan dihubungkan dengan motor stepper. Dalam hal ini tegangan antara FPGA dengan motor stepper haruslah cocok dan tepat. Inilah yang sering disebut tegangan IO. Sebenarnya, FPGA sendiri memperbolehkan tegangan yang sama untuk VCCINT dan VCCIO (misalkan, pin untuk VCCINT dan VCCIO dapat saling terhubung bersama). Namun, kemudian cenderung dipisahkan yaitu tegangan rendah untuk inti (core voltage) dan tegangan tinggi untuk IO (IO voltage). Perlu diingat bahwa penamaan jenis tegangan untuk FPGA masing-masing vendor berbeda. Misalkan saja, tegangan internal sering dinamakan VCC untuk Xilinx dan VCCINT untuk Altera. Sedangkan tegangan IO sering dinamakan VCCO untuk Xilinx dan VCCIO untuk Altera.