Programmable Logic Devices — FPGAs dan Mikrokontroller

FPGAs (Field-Programmable Gate Arrays) adalah salah satu jenis piranti yang dapat “diprogram”. Istilah “diprogram” sebetulnya tidak cocok untuk FPGAs. Yang lebih cocok adalah “direkonfigurasikan”. FPGAs adalah suatu matriks yang tersusun atas blok-blok. Masing-masing blok dapat direkonfigurasikan. FPGAs adalah piranti digital, bukan analog. Komponen sistem digital di antaranya adalah rangkaian kombinasi, rangkaian sekuensial, dan interkoneksi. Pada umumnya rangkaian kombinasi terdiri atas gerbang AND, OR, NOT, XOR, dsb. namun FPGAs tidak menyediakan itu. FPGAs hanya menyediakan sebuah memori sebagai komponen kombinasi. Kita tahu bahwa rangkaian kombinasi dapat diimplementasikan dalam bentuk memori, di mana alamat memori mewakili input dan isi memori mewakili output rangkaian kombinasi tersebut. Oleh karena itu sebuah memori dengan jalur alamat 5 bit dan isi 1 bit dapat mengimplementasikan 4(empat)  G fungsi Boole dengan output 1-bit, tentu saja pada saat yang berbeda. Dari 4(empat) G fungsi Boole tersebut, beberapa akan ekivalen. Pada blok di dalam FPGAs juga disediakan 2 (dua) buah D-type flip-flop yang bersifat edge-triggered (yaitu kejadian – event – yang merubah state diinisiasi oleh perubahan clock dari 0 ke 1 atau dari 1 ke 0). Blia kejadian dipicu oleh perubahan clock dari 0 ke 1, maka flip-flop bersifat leading edge-triggered. Bila kejadian dipicu oleh perubahan clock dari 1 ke 0, maka flip-flop bersifat trailing edge-triggered. Selain itu ada interkoneksi dalam bentuk multiplexer yang dapat diprogram. Fungsi multiplexer dapat dituliskan sebagai F = not(S).I0 + S.I1. Bila selektor S bernilai 0, maka F = I0, dan bila S = 1, maka F= I1. Oleh karena itu multiplexer dapat berperanan sebagai interkoneksi yang dapat diprogram, tergantung pemilihan nilai S.

Leave a Reply