Mengenal FPGA

Tuesday, October 11, 2011

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.
Isi 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.

Isi CLB (Configurable Logic Block)
Diatas sudah dijelaskan tentang FPGA yang berisi banyak CLB. Selanjutnya saya akan menjelaskan apa isi dari CLB tersebut.

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.

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.

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).
Alur Perancangan FPGA
FPGA diimplementasikan dengan sistem CAD (Computer Added Design). Berikut adalah jalur perancangan FPGA.


Jalur Perancangan FPGA
1. 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.
2. Logic Implementation (Gabungan dari Merge & Transalate dan Optimize Equation)
untuk mengoperasikan bilangan boolean untuk mengoptimalkan penggunaan logic.
3. Mapping
Transformasi ekspresi boolean ke dalam bentuk circuit pada FPGA logic block.
4. Placement
Setelah mapping, dilakukan penempatan algoritma yang digunakan ke masing-masing block.
5. Routing Software
Mengatur programmable interconnect / wire segment dan menentukan programmable switch untuk menghubungkan antar block.
6. Programming Unit
Mengkonfigurasi setelah placement dan routing tuntas

0 comments: