Oktober 18, 2011

FPGA (Field Programmable Gate Array)

FPGA (Field Programmable Gate Array)


apa sih itu FPGA,, untuk orang-orang awam pasti mendengar kata FPGA masih terdengar asing,  apakah FPGA itu semacam makanan yang di bungkus dengan daun pisang?? Ckckck … LOLs :D (tentu saja bukan).
Bahkan ane pun mahasiswa tingkat ke-3 jurusan system computer saja belum begitu mengenal  istilah FPGA, soalnya ini adalah materi baru buat ane gan, ane juga baru mendengar istilah FPGA.hee..
tapi tenang gan kata pepatah gak ada kata terlambat untuk belajar, Tapi karena sang dosen pembawaannya santai pada saat mengajar ,jadi ane coba berbaur dengan apa yang di ajarin sama sang dosen. Dari tiga kali pertemuan dikelas, mungkin ane bisa sedikit share beberapa materi ke agan-agan sekalian yang dijelaskan selama ini oleh sang dosen tentang FPGA.

1.Sejarah FPGA
FPGA dikembangkan sejak tahun 1984 oleh perusahaan Xilink yang kemudian dikembangkan oleh beberapa perusahaan misalnya, Altera, Lattice, dan QuickLogic. Dua perusahaan yang mendominasi produksi FPGA saat ini di seluruh dunia yaitu Xilink dan Altera.

2.Pengertian FPGA
Rangkaian digital (terdiri dari gerbang-gerbang logika) yang terinterkoneksi sehingga dapat terhubung satu dengan lainnya. FPGA sejenis dengan prototype, yaitu untuk membuat sebuah design permodelan. Intinya, PFGA ini merupakaan sebuah chip yang bisa diisi program dan bisa dijalankan dengan software khusus. Dilab kampus saya menggunakan FPGA merk Xilinx. Awal mula melihat bentuknya, saya agam bingung. Semacem rangkaian dengan banyak komponen diatas papan PCB. Berikut penampakan wujud PFGA Xilinx jenis Spartan 3E.
Xilinx Spartan 3E

Biasanya aplikasi PFGA dapat dikategorikan dalam 5 bagian, yaitu :
> ASIC (Application Specific Integrated Circuit) dan custom silicon, biasa digunakan di trafo.
> DSP (Digital Signal Processing), atau biasa disebut mikroprosessor.
> Embedded Microcontroller, untuk melakukan tugas khusus. Contohnya : sebagai saklar atau sebagai         penghitung daya pada trafo.
> Physical Layer Communication, untuk interkoneksi layer fisik denga layer protokol.
> Reconfigurable Computing, terdiri atas 2 yaitu : akselerasi hardware dan hardware simulation.

           
 3.Sifat – Sifat FPGA
FPGA mempunyai beberapa sifat, yaitu antara lain :
> Program dapat disusun kembali berulang ulang. Jadi intinya, program yang telah kita buat dalam FPGA bisa kita ubah atau kita edit.
> FPGA bersifat dapat didownload berulang-ulang tanpa batas. Inilah kelebihan FPGA yang paling dikenal. Jadi kita bisa menimpa program lama dengan program baru yang sudah diedit.
> Bersifat volatile. FPGA ini bersifat volatile, maka dari itu untuk menyimpan datanya, FPGA harus terus diberi daya. Bila kehilangan daya pada saat ingin mendownload, maka datanya pun bisa hilang.
> Hampir semua rangkaian terimplementasi didalam chip. PFGA terdiri dari banyak CLB (Configuable Logic Block) yang bisa menyimpan rangkaian-rangkaian logika dalam setiap blocknya. Jadi dalam satu chip bisa tertanam banyak rangkaian digital.
>  Lebih murah walaupun dalam produksi kecil dan lebih cepat dalam hal design rangkaian.

4.Isi Dari FPGA
Dalam satu chip FPGA terdapat :
Isi dari FPGA
a. CLB (Configurable Logic Blocks)
CLB merupakan bagian dari FPGA yang akan memproses segala bentuk rangkaian logika yang dibuat oleh user.
b. I/O Blocks
Sebagai interface antara external pin dari device dengan internal user logic
c. Programmable Interconnect
Merupakan wire-wire yang menghubungkan antara satu CLB dengan CLB lain.
d. RAM (Random Access Memory)
Merupakan tempat penyimpanan pada FPGA.

5.Isi CLB (Configurable Logic Block)
Diatas sudah dijelaskan tentang FPGA yang berisi banyak CLB. Selanjutnya saya akan menjelaskan apa isi dari CLB tersebut.
Isi dari CLB
a. LUT (Look Up Table)
Sejenis RAM yang berkapasitas kecil. Dalam FPGA, LUT berperan penting dalam proses implementasi fungsi-fungsi logika. LUT berciri khas mempunyai 4 buah inputan.
b. D-Flip Flop
Merupakan jenis 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.
c. 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.

6.Isi Dari LUT (Look Up Table)
LUT yang terdapat pada setiap CLB, terbagi lagi misinya menjadi 4 slices. Masing-masing slice berisi Shift Register, RAM, dan informasi input.
LUT berisi 4 slices

Misalnya 16×8 bit. Angka 16 menjelaskan tentang beasr RAMnya, dan 8 bit menjelaskan tentang shift registernya (banyaknya pencacahan).

7.Alur Perancangan FPGA
FPGA diimplementasikan dengan sistem CAD (Computer Added Design). Berikut adalah jalur perancangan FPGA.
Jalur Perancangan FPGA

> Design Entry
Bisa dalam bentuk text yaitu bahasa pemrograman VHDL (Very High Speed Integrated Hardware Description Language), maupun dalam bentuk shematic capture berupa gambar-gambar simbol gerbang logika yang disatukan sehingga menjadi rangkaian yang utuh.
> Logic Implementation (Gabungan dari Merge & Transalate dan Optimize Equation)
untuk mengoperasikan bilangan boolean untuk mengoptimalkan penggunaan logic.
> Mapping
Transformasi ekspresi boolean ke dalam bentuk circuit pada FPGA logic block.
> Placement
Setelah mapping, dilakukan penempatan algoritma yang digunakan ke masing-masing block.
> Routing Software
Mengatur programmable interconnect / wire segment dan menentukan programmable switch untuk menghubungkan antar block.
> Programming Unit
Mengkonfigurasi setelah placement dan routing tuntas.