FPGA ( Field-Programmable Gate Array )

Posted: 12 October 2011 in Tugas

FPGA atau Field-Programmable Gate Array adalah komponen elektronika dan semikonduktor yang mempunyai komponen gerbang terprogram (programmable logic) dan sambungan terprogram. Komponen gerbang terprogram yang dimiliki meliputi jenis gerbang logika biasa (AND, OR, XOR, NOT) maupun jenis fungsi matematis dan kombinatorik yang lebih kompleks (decoder, adder, subtractor, multiplier, dll.

Ada beberapa pengertian FPGA yaitu :

  • Rangkaian logika yang terinterkoneksi antara satu dengan yang lain dan bisa di program berulang-ulang.
  • Prototyping (pemodelan) dari sebuah rangakaian digital
  • Processor (untuk mengerjakan suatu pengerjaan tertentu)
Bahasa pemograman yang dipakai pada FPGA  adalah bahasa pemograman Verilog dan VHDL.
VHDL (Very High Speed Integrated Hardware Description Language) termasuk bahasa pemodelan yang digunakan untuk merancang atau memodelkan rangkaian digital. VHDL termasuk kedalam bahasa pemograman VHSIC (Very High Speed Integrated Circuit) .
Sifat/Kelebihan FPGA :

  • Dapat diprogram berulang-ulang
  •  Dapat didownload berulang-ulang
  • Bersifat volatile (bergantung dengan catudaya)
  • Hampir semua rangkaian digital sudah terintegerasi
  • Murah (very low cost)
  • Pemrograman yang singkat untuk fungsi dan kemampuan setara ASIC

Secara umum arsitektur bagian dalam dari IC FPGA terdiri atas tiga elemen utama yaitu Input/Output Blok ( IOB ), Configurable Logic Block (CLB) dan Interkoneksi.

Isi dari FPGA

  • CLB (Configurable Logic Blocks)
CLB merupakan bagian dari FPGA yang akan memproses segala bentuk rangkaian logika yang dibuat oleh user.
  •  I/O Blocks
Sebagai interface antara external pin dari device dengan internal user logic
  • Programmable Interconnect
Merupakan wire-wire yang menghubungkan antara satu CLB dengan CLB lain.
  • RAM (Random Access Memory)
Merupakan tempat penyimpanan pada FPGA.
Isi CLB (Configurable Logic Block)
  • 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.
  • 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.
  • 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.
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.
Maaf ya bu telat sibuk dari tadi ngerjain tugas lain ^_~

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s