Tuesday, October 11, 2011

Resume FPGA

FPGA adalah Rangkaian Digital yang terdiri dari gerbang logika digital yang memiliki interkoneksi sehingga dapat dikonfigurasi antara satu dengan yang lainnya.

FPGA dapat dipakai di
1. ASIC (Application spesific Integrated circuit) merupakan IC yang dimodifikasi untuk tujuan tertentu,contoh : chip untuk RAM di PC. Dan dipakai juga di Custom Silicon.
2. DSP (Digital Signal Processor), sekarang sering dipakai pada Image Processing.
3. Embedded Microkontroler, merupakan sebagai penghitung daya.
4. Physical Layer Communication, antara layer fisik dan layer protocol.
5. Reconfigurable Computing, untuk akselerasi hardware, hardware simulation.

Sifat-sifat dari FPGA yaitu :
1. Progam dapat disusun ulang berkali-kali.
2. FPGA dapat didownload berulang-ulang tanpa batas.
3. Bersifat volatile
4. Hampir semua rangkaian terimplementasi kedalam chip
5. Lebih murah dalam design rangkaian.

Bila dilihat dari bentuknya, FPGA tak berbeda jauh dari bentuk-bentuk IC-IC lainnya. Hanya saja, bila dilihat dari isinya FPGA memiliki bagian yang berbeda-beda dengan komponen IC pada umumnya. Berikut isi dari FPGA tersebut :

1. Configure Logic Blocks (CLB), bagian inilah yang akan memproses segala bentuk rangkaian logika yang dibuat user/pemakai.
 
 
GAMBAR DARI CLB

2. I/O Blocks, sebagai interface antara external pin dari device dan internal user logic.
3. Programmable Inteconnect, Bagian ini berisi wire segments dan programmable switches, selain itu bagian ini juga akan menghubungkan antara CLB satu dengan yang lainnya yang berfungsi sebagai saklar.

Isi dari CLB adalah sebagai berikut :
1. Look Up Table (LUT)

Merupakan sejenis RAM (Randoo 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. Data Flip Flop (DFF).
    Seperti yang diketahui, flip flop (Bistable Multivibrator) aldalah 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 Data Flip Flop. Rangkaian DFF ini berfungsi sebagai rangkaian logika.

3. Multiplexer 2 ke 1.
    Merupakan piranti digital yang bekerja sebagai switch atau saklar yang menghubungkan data dari n masukkan ke sebuah keluaran. Multiplexer berfungsi sebagai memilih beberapa input untuk hanya menjadi satu output saja. Di dalam FPGA, terdapat rangkaian Multiplexer 2 ke 1 yang artinya, multiplexer tersebut memiliki 2 buah input dan 1 buah output.

Produk yang dibuat perusahaan membuat hardware dan software FPGA
1. Cypress
2. Lattice
3. Actel
4. Plessey
5. Xilinc
6. Altera
    Altera memiliki pengembangan produk lagi seperti :
        - SPARTAN
        - XC3000      
        - XC4000
        - XC5000
        - XC7000
7. Quicklogic

Perkembangan FPGA bergantung dengan :
1. Bertambah nya CLB ukuran FPGA ikut bertambah.
2. Inputan LUT bertambah tetapi ukuran FPGA tidak bertambah.

LUT kalau dibuka terdiri dari 4 slice. Tiap slice nya terdapat dua logic cell, 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

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 chains berfungsi 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.

Konfigurasi FPGA

Sebuah FPGA (Field Programmable Gate Array) dapat terbagi atas dua kondisi yaitu kondisi awal (configuration mode) dan kondisi pemakai (user mode). Ketika pertama kali FPGA dihidupkan, maka otomatis keadaan FPGA ini berada dalam kondisi awal. Hal ini disebabkan karena FPGA masih dalam keadaan awal, fresh dan belum terdapat suatu program apa pun di dalamnya. Untuk menggunakan FPGA tersebut maka perlu adanya proses download program oleh pemakainya (user). Proses mendownload program ke dalam FPGA bertujuan untuk mengirimkan berkas-berkas bilangan biner (0 dan 1) melalui beberapa pin khusus. Setelah proses download dilakukan dan FPGA kemudian telah siap digunakan, maka inilah yang sering disebut kondisi pemakai. Pada kondisi ini FPGA telah aktif dan program yang didownload ke dalamnya dapat digunakan. Inilah yang dinamakan konfigurasi atau pengaturan pada FPGA.
Bila pada kondisi pemakai, maka otomatis di dalam FPGA telah terdapat program. Program tersebut dibuat, diuji dan disimulasikan dahulu menggunakan PC (komputer). Setelah itu baru proses download program dilakukan. Pada umumnya terdapat 3 cara yang biasa digunakan untuk mendownload program ke dalam FPGA yaitu :
1.    Pemakai dapat mendownload langsung program ke dalam FPGA menggunakan kabel yang disambungkan ke PC. Program tersebut dibuat dan diolah menggunakan PC (komputer) dan ketika siap digunakan, baru didownload ke FPGA melalui kabel.
2.    Pemakai dapat menggunakan microkontroller pada board yang ada, dengan firmware yang cukup guna mengirimkan data ke dalam FPGA.
3.    Pemakai dapat menggunakan “boot-PROM” pada board yang ada, yang dihubungkan ke FPGA, dan mengatur FPGA tersebut supaya secara otomatis bekerja tanpa proses download dulu ke dalamnya (Perusahaan-perusahaan FPGA pada umumnya memiliki spesifikasi khusus untuk tambahan boot-PROMS).

Dari ketiga cara di atas, cara pertama adalah yang paling sering dan banyak digunakan. Selain itu, cara pertama cukup mudah dan efisien untuk dilakukan. Jadi, ketika pemakai telah mendownload program ke dalam FPGA maka tidak lagi diperlukan PC (komputer). FPGA akan bekerja sesua dengan program yang telah didownload ke dalamnya tanpa perlu lagi terhubung dengan PC (komputer).

Implementasi FPGA :
1. Computer Aided Design (CAD) merupakan perancangan pada komputer
2. Design Entry
3. Masuk ke Optimus Logic : Memodifikasi ekspresi boolean untuk optimalkan penggunaan logic.
4. Teknologi Mapping, Mentransformasi dari ekspresi boolean ke cirkuit logic block
5. Placement, penempatan algoritma yang digunakan ke masing-masing blok.
6. Routing Software, yaitu mengatur wire segment (PI) dan menentukan programmable switch untuk penghubung antar blok. Hasil dalam routing bentuknya bit string.
7. Programming unit, adalah mengkonfigurasi chip setelah placement dan routing tuntas.

1 comment:

  1. maaf mbak sebelumnya, masuk kan link gunadarma gimana ya??
    ini bukan tugas softskill kok mbak..

    ReplyDelete