Makalah FPGA




 Apa itu FPGA???
 

Defenisi Field-Programmable Gate Array (FPGA)
 
Field-Programmable Gate Array (FPGA) merupakan sebuah IC digital yang sering digunakan untuk mengimplementasikan rangkaian digital. FPGA (Field Programable Gate Array) juga merupakan gerbang gerbang digital dimana interkoneksi antar masing masing gerbang tersebut dapat dikonfigurasi antara satu sama lainnya, dan dapat dirancang sesuai dengan keinginan dan kebutuhan user atau pemakai tanpa melalui tahap burn. FPGA juga bisa dibilang processor atau  embedeed controller.
FPGA berbentuk komponen elektronika dan semikonduktor yang terdiri dari komponen gerbang terprogram (programmable logic) dan sambungan terprogram (interkoneksi). Komponen gerbang terprogram yang dimiliki meliputi jenis gerbang logika biasa (AND, OR, NOT) maupun jenis fungsi matematis dan kombinatorik yang lebih kompleks, seperti decoder, adder, subtractor, multiplier, dll. Blok-blok komponen di dalam FPGA bisa juga mengandung elemen memori (register) mulai dari flip-flop sampai pada RAM (Random Access Memory). FPGA sangat sesuai untuk pemrosesan komputasi dari algoritma integrasi numerik.
Keuntungan implementasi FPGA digunakan untuk meningkatkan efisiensi rancangan dengan cara mengurangi pemakaian pemrograman perangkat lunak (software). FPGA mempunyai koreksi error yang kecil dan merupakan teknologi yang bebas (technology-independent) untuk diimplementasikan dalam berbagai algoritma. Kinerja aplikasi FPGA lebih cepat dibandingkan dengan aplikasi mikrokontroler, karena FPGA hanya mensintesis perangkat keras (hardware) saja, sementara mikrokontroler mengeksekusi instruksi perangkat lunak (software) yang digunakan untuk mengendalikan perangkat keras (hardware), sehingga waktu tunda yang diimplementasikan hanya memakan waktu tunda perambatan (propagation delay) saja. Pemodelan FPGA membutuhkan informasi terkait dengan tingkat perbedaan abstraksi dan jenis model yang digunakan. Seorang perancang FPGA harus mampu mengambil beberapa tahapan pemodelan untuk memastikan hasil model rancangannya melalui model simulasi yang telah disediakan oleh vendor FPGA masing-masing.
Program tersebut nantinya akan dibuat oleh user menggunakan software yang ada untuk kemudian disimulasikan. Setelah simulasi berjalan lancar dan berhasil, program tersebut siap untuk didownload ke dalam FPGA, begitu mudah, efisien dan sederhana. Jika program tersebut gagal untuk disimulasikan, maka user/pemakai hanya perlu menyusun ulang program dalam komputer sesuai yang dibutuhkan dan ketika siap, download lagi program tersebut ke FPGA, begitu untuk seterusnya. FPGA ini bersifat volatile, yang artinya ketika sumber daya yang menyuplainya dicabut maka secara otomatis FPGA akan kehilangan fungsinya. Jadi FPGA ini tidak mampu menyimpan program ketika supply tenaganya dicabut. User/pemakai harus mendownload ulang program ke dalam FPGA lagi untuk mengimplementasikan program tersebut.

Hal-hal yang bisa digunakan dengan FPGA
  • Anda bisa mengisi-ulang (memprogram-ulang) FPGA sebanyak yang Anda inginkan – tidak terbatas – dengan berbagai macam fungsi logik yang Anda inginkan.
  • Jika Anda melakukan kesalahan pada rancangan Anda, cukup betulkan kesalahan tersebut, lakukan kompilasi ulang kemudian unduh (download) lagi.
  • Rancangan Anda bisa bekerja lebih cepat dibandingkan dengan rancangan yang Anda buat dengan komponen-komponen biasa, karena, dengan FPGA, hampir semua rangkaian terimplementasi di dalam chip.
  • FPGA (secara umum, kecuali yang dilengkapi Flash PEROM) akan kosong saat tidak dikenai catu-daya (seperti RAM). Anda harus mengunduh ulang rangkaian Anda agar bisa berfungsi kembali seperti semula.
Rangkaian FPGA / atau isi dari 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 atau biasa disebut saklar , selain itu bagian ini juga akan menghubungkan antara CLB satu dengan CLB lainnya.
4.      RAM (Random Access Memory) Merupakan tempat penyimpanan pada FPGA.

Isi dari CLB (Configure Logic Blocks)

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.


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 slice. Masing-masing slice berisi Shift Register, RAM, dan informasi input.


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.

Arsitektur FPGA

1.                  Antifuse merupakan lawan dari fase regular. Antifuse normalnya merupakan sebuah rangkaian terbuka sampai kita memaksakan suatu programing current melaluinya. Antifuse merupakan kebalikan dari sekring yaitu akan open circuit bila dilewati arus (saklar 5 mA).
2.                  Fine Grained adalah arsitektur FPGA pada suatu sistem yang memiliki komponen yang kecil.
3.                  Medium Grained adalah arsitektur FPGA pada suatu sistem yang memiliki komponen yang sedang.
4.                  Coarse Grained adalah arsitektur FPGA pada suatu sistem yang memiliki komponen yang besar.
5.                  MUX (Multiplexer) merupakan suatu komponen yang fungsinya sebagai penyeleksi data berdasarkan perintah untuk menampilkan data yang diinginkan. MUX memiliki benyak input data tetapi hanya memiliki sebuah output karena memiliki selector yang mengatur outputnya.
6.                  LUT (Look Up Table) merupakan sejenis RAM yang berkapasitas kecil, yang memegang peranan penting dalam proses implementasi fungsi-fungsi logika. Dimana LUT ini memiliki ciri khas yaitu dengan 4 buah inputan.
7.                  CLB (Configure Logic Block), untuk memproses segala bentuk rangkaian logika yang dibuat oleh user/pemakai.
8.                  LAB merupakan kumpulan dari CLB
9.                   Slices merupakan bagian isi dari LUT
10.              Fast Carry Chains adalah tipe jalur interkoneksi yang berfungsi dalam pembuatan fungsi-fungsi logika agar dapat berjalan dengan efisien.
11.              General Purpose I/O adalah pin generik yang dapat dikontrol melalui software.
12.              Prosesor Corses adalah inti dari sebuah prosesor yang melakukan tugas.
13.              Hard IP merupakan perwujudan fisik design IP yang terbaik untuk aplikasi plug and play
14.              Soft IP merupakan implementasi prosesor dalam sebuah bahasa HDL tanpa optimasi yang luas untuk arsitektur tujuan
15.              Firm IP merupakan implementasi HDL, tetapi sudah dioptimalkan untuk sebuah arsitektur FPGA tujuan
16.              System Gates adalah sebuah masukan yang digunakan untuk mepresentasikan antara satu dan lebih 20 gerbang logika sederhana, yang mempunyai 2 masukan.
17.              Clocking adalah sebuah clock pada FPGA, biasanya dibuat serempak bahwa setiap detak yang dihasilkan pada sebuah FPGA terjadi serentak akan mempengaruhi kondisi yang ada.

Proses FPGA

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.
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 cellcell yang saling berdekatan. Tipe jalur interkoneksi ini sering disebut “carry chains”. Carry chains berfungsi dalam pembuatan fungsi-fungsi logika agar dapat berjalan dengan efisien (minim penggunaan dan tingkat operasi yang tinggi).
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 ini biasa digunakan pada :

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

Alur Perancangan FPGA

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


Daftar Pustaka


Comments

sumberdipercaya said…
This comment has been removed by the author.