Categories
FPGA

Algoritma Aritmatika Terdistribusi (Implementasi FPGA)

Aritmatika terdistribusi merupakan algoritma komputasi yang dapat melakukan perkalian dengan menggunakan bantuan tabel look-up. Aritmatika terdistribusi sering digunakan pada komputasi penjumlahan-perkalian atau sum-of-products yang banyak dijumpai pada algoritma penapis PSD dan fungsi-fungsi transformasi frekuensi. Ironisnya, pada saat ini belum banyak perancang komputasi PSD menggunakan (bahkan mendengar) algoritma ini (Mintzer, 1992). Jika perancangan fungsi-fungsi PSD dalam deskripsi VHDL dilakukan pada tingkat RTL, justru algoritma ini perlu diperhitungkan dan digunakan karena dapat mengefisiensikan algoritma fungsi PSD yang akan diimplementasikan.

Misalnya, pada kasus tapis digital, jumlah perkalian aritmatika yang menyatakan tanggap dari suatu sistem linear serta invarian terhadap waktu dapat dinyatakan dalam bentuk:

(1)

dengan:

  • y(n) = tanggap sistem;
  • xk(n) = peubah masukan ke-k pada waktu-n;
  • Bk = faktor bobot atau koefisien masukan ke-k yang konstan untuk semua n.

Pada aplikasi tapis digital, konstanta Bk merupakan koefisien penapis sedangkan peubah xk adalah sumber masukan data tunggal. Proses penjumlahan-perkalian menggunakan Aritmatika Terdistribusi digantikan dengan langkah-langkah atau prosedur tabel look-up yang dapat diimplementasikan dengan mudah menggunakan CLB (ROM) dari FPGA.

Dimulai dengan mendefinisikan format angka dari peubah masukan menjadi 2’s complement, dengan demikian peubah xk dapat dituliskan

(2)

dengan B adalah lebar bit data dan xkb adalah sebuah peubah biner dan dapat diasumsikan sebagai angka 0 dan 1. Sebuah bit tunggal yang menyatakan tanda bilangan dinyatakan oleh xk0. Persamaan (1) disubstitusikan ke dalam persamaan (2), sehingga menghasilkan

(3)

atau dapat dituliskan secara keseluruhan

Masing-masing bentuk yang terdapat di dalam tanda kurung menyatakan suatu operasi biner AND yang melibatkan sebuah bit dari peubah masukan dan semua bit konstanta dan tanda “+” menyatakan operasi aritmatika penjumlahan. Faktor eksponensial menyatakan faktor skala kontribusi dari masing-masing total penjumlahan. Tabel look-up dibuat berdasarkan bit skala yang sama untuk semua peubah masukan, hal ini sekaligus menyatakan cara pengalamatan-nya (gambar 1), yang dapat diakses jumlah total masing-masing persamaan di dalam tanda kurung, sebagaimana terlihat pada gambar 2, yang dinamakan sebagai DALUT (Distributed Arithmetic Look-Up Table).

DALUT yang sama dapat dikonfigurasikan secara time-shared (penggunaan-waktu bersama) dalam struktur komputasi serial atau dapat direplikasikan sebanyak B kali untuk komputasi paralel.

Gambar 1. Pengalamatan DALUT, AK dimasukkan ke dalam penjumlahan untuk xkb = 1

Gambar 2. Isi DALUT, angka 0 s/d 8 dan seterusnya menunjukkan alamat DALUT

Operasi aritmatika sekarang telah berkurang menjadi operasi penjumlahan, pengurangan dan penyekalaan biner. Skala dengan 2 pangkat N dapat diimplementasikan dengan melakukan pergeseran kode biner ke kanan sebanyak N bit, sedangkan penjumlah penuh (Full Adder) hanya memerlukan dua operan, yaitu penambah dan yang ditambah, untuk menghasilkan jumlah dan sisa (sum and carry). Sedangkan implementasi ROM dapat dilakukan dengan CLB (Mintzer, 1993).

Daftar Pustaka

  • Mintzer, L., 1993, “The Role of Distributed Arithmetic in FPGA-based Signal Processing”, Xilinx Inc., San Jose, California, USA.
Categories
FPGA

Convergence and Digitization

We are transitioning from an industrial-based analog economy to an information-based digital economy. The momentum for this transition is been fueled by a number of converging factors.

  • Converging media: Digitization of data, voice, video, and communications is driving consumer product convergence. Convergence is happening in everyone’s backyard with incredible computing power being embedded within everyday consumer appliances. The digital revolution, be it from vinyl players changing to MP3 players or from analog TV to digital TV (recently, TVRI has trial broadcasted Digital TV in Jakarta), is occurring very rapidly. Data, video, and voice can now be transmitted over the same backbone due to the digital revolution.
  • Internet based lifestyles: As quickly as the Internet came into our lives it has become omnipresent. Families are becoming more aware of how the Internet can be used in their homes, and companies are also increasingly using it as a commercial channel. The Internet serves as the technology platform that enables an entirely new generation of consumer applications, including voice and video communications, e-commerce solutions, personalized news services, home security and automation, utilities resource management, and entertainment title distribution. The availability of such a wide variety of applications is changing the way people relate to the Internet itself. “Internet Lifestyles” is a new way of thinking that has resulted in the formation of an organization called the Internet Home Alliance. The principle behind this new organization is that consumers want to enjoy the benefits of the Internet lifestyle without worrying about the technology that enables it to work. The Alliance is bringing new levels of comfort, convenience, and security by creating the necessary infrastructure. Installation and support from various companies provide integrated services, eliminating the need for multiple points of consumer contact.
  • Deregulation: There is a heavy deregulation of global infrastructure industries such as telecommunications, utilities, and cable. These companies are developing new ways of improving their business by using the Internet and increasing revenues through additional services to the home.
  • Digitization of consumer products: For some time now, there has been a trend towards the digitization of consumer products. A product that is digital is one which is synonymous with higher quality, greater accuracy, higher reliability, faster speed, lower power, and lower cost. Simply stated, anything that is digital is better. The digitization of consumer products has not only led to the improvement of existing products, but it has also lead to the creation of a whole new class of products that never before existed. PVRs (Personal Video Recorders) are revolutionizing the way we watch TV, satellite modems are bringing faster Internet access to the home, and MP3 players have revolutionized portable digital music.

Source:

  • Dhir, Amit, 2001, “The Home Networking Revolution: A Designer’s Guide“, Xilinx, Inc.
  • Xilinx: Market Solutions (click here)
Categories
FPGA

Purwarupa Mikroprosesor berbasis FPGA ALTERA EPF10K10 dengan Deskripsi VHDL

ABSTRACT

It has been designed and implemented an FPGA-based microprocessor prototype using Altera EPF10K10 and VHDL description then compiled and simulate using MAX+Plus II software. The microprocessor prototype is implementing using the Wizard A-01 development board and its assembly program stored in ROM. To decode and execute the instruction, it used Control Unit, which will send control signal to other components. The 16 instructions is implementing in this microprocessor prototype. This microprocessor prototype has 8-bit data bus and 4-bit address bus, implemented using 375 logic cells, operating at 14.72 MHz clock (maximum) and 3.68 MIPS.

PENDAHULUAN

Mikroprosesor telah berkembang menjadi bagian penting dalam dunia elektronika. Untuk menggunakan mikroprosesor, pengguna tinggal menyusun suatu program dengan memanfaatkan instruksi mesin (assembly) yang dimiliki oleh mikroprosesor tersebut. Adanya komponen register serta Arithmetic and Logic Unit (ALU) memungkinkan mikroprosesor dapat menjalankan berbagai macam komputasi, mulai dari komputasi sederhana hingga yang kompleks.

Menurut Turley (2002) Kendala yang dihadapi dalam perancangan mikroprosesor adalah mahal dan lamanya fabrikasi. Untuk mengatasi kendala waktu dan biaya fabrikasi, mikroprosesor dapat diimplementasikan dalam Field Programmable Array (FPGA). FPGA merupakan piranti yang bersifat dapat dikonfigurasi-ulang (reconfigurable). FPGA memiliki komponen kombinasional dan sekuensial dalam tiap sel logik-nya, sehingga memungkinkan FPGA dapat digunakan untuk implementasi rangkaian kombinasional dan rangkaian sekuensial. Dengan teknologi FPGA, implementasi rancangan sistem digital dapat dilakukan secara cepat (Maxfield, 2004).

Tujuan penelitian ini adalah merancang dan mengimplementasikan sebuah mikroprosesor sederhana (purwarupa mikroprosesor) dalam FPGA menggunakan deskripsi VHDL (VHSIC Hardware Description Language).

(informasi selengkapnya bisa diunduh disini)

Categories
FPGA

Implementasi Prototipe Sistem Kontrol Elevator Berbasis FPGA Menggunakan VHDL

Pendahuluan

Pada perkembangan saat ini elevator memiliki sistem kontrol yang canggih. Fasilitas yang ada semakin kompleks dan sistem kontrolnya menjadi semakin rumit. Elevator saat ini sudah dilengkapi sistem kontrol yang menggunakan PLC, mikrokontroler maupun mikroprosesor. Sedangkan FPGA merupakan media alternatif yang dapat digunakan implementasi sistem kontrol elevator tersebut.

Dalam penelitian ini dibuat prototipe rangkaian sistem kontrol elevator sederhana, yang rancangannya dibuat dengan deskripsi VHDL dan diimplementasikan pada FPGA Altera keluarga FLEX-10K seri EPF10K10. Perangkat lunak yang digunakan adalah MAXplus+II. Sistem kontrol elevator ini digunakan untuk mengendalikan elevator 12 lantai.

Perancangan Sistem Kontrol Elevator

Sistem kontrol elevator yang dibuat dapat mengendalikan 12 lantai. Masukan kontrol berupa sinyal yang mewakili posisi tiap lantai dan sinyal keluaran berupa lantai tujuan. Sistem kontrol bekerja sebagai berikut: elevator akan bergerak pada satu arah selama masih ada permintaan lantai pada arah yang sama dan jika tidak ada permintaan lantai pada arah yang sama, elevator akan berhenti dan menjadi idle, atau berubah arah jika ada permintaan lantai dengan arah yang berlawanan.

Secara umum arsitektur VHDL dari sistem kontrol elevator mengarah pada penggunaan sistem memori. Masukan dari luar sistem akan diidentifikasikan sebagai masukan yang mengisi alamat memori dengan sinyal bit satu dan kemudian akan diakses oleh sistem kontrol. Untuk memudahkan perancangan sistem kontrol dibagi dalam beberapa blok, sebagaimana ditunjukkan pada Gambar 2, yang komunikasi antar blok-nya digunakan beberapa sinyal.

(informasi selengkapnya bisa diunduh disini)

Categories
FPGA

Prototipe Pengatur Lampu Lalu-lintas berbasis FPGA ALTERA EPF10K10 Menggunakan VHDL

Abstrak

Telah dibuat sebuah Pengatur Lampu Lalu Lintas berbasis FPGA dengan menggunakan kode VHDL. Sistem pengatur lalu lintas ini terbagi menjadi dua mekanisme, yaitu kontrol otomatis dan kontrol manual, yang masing-masing terdiri dari beberapa modul yang diimplementasikan dengan VHDL. Pengatur lampu lalu lintas ini dapat mengatur waktu interval nyala lampu sehingga tidak stagnan, melainkan adaptif, baik itu berdasarkan waktu jam digital (kontrol otomatis), maupun berdasarkan pengaturan yang didefinisikan oleh pengguna (kontrol manual). Alat ini dapat bekerja dipersimpangan dengan jumlah n-jalur, misalnya perempatan, pertigaan, dan sebagainya. Hal ini dikarenakan modul terbagi menjadi modul lalu lintas inti dan modul lalu lintas unit. Rancangan alat memakai Embedded Array Block (EAB) dalam FPGA Altera EPF10K10 sebagai memori dengan penggunaan Memory Bits sebesar 96 dan Memory Utilized 1%, hasilnya menggunakan perancangan berbasis VHDL membutuhkan 327 Logic Elements atau 56% dari kapasitas total logic Element (LE) di dalam FPGA Altera EPF10K10.

PENDAHULUAN

Semakin meningkatnya jumlah kendaraan bermotor di indonesia dalam beberapa tahun terakhir ini mengakibatkan meningkatnya arus lalu lintas. Alat pengatur lalu lintas yang umum digunakan adalah pengatur lampu lalu lintas (traffic light). Fungsi pengatur lampu lalu lintas adalah untuk pengaturan, pengarahan atau peringatan pada pengendara maupun pejalan kaki dengan memakai tanda lampu lalu lintas sebagai petunjuk berhenti atau berjalan. Penempatan lampu lalu lintas pada persimpangan jalan ditujukan agar kemacetan yang umumnya banyak terjadi pada persimpangan jalan yang merupakan tempat bertemunya beberapa arus lalu lintas dapat dikurangi. Selain penempatan lampu lalu lintas yang tepat, pengaturan waktu siklus (cycle time) juga mutlak diperlukan karena pengaturan waktu siklus yang kurang tepat akan menyebabkan ketertundaan yang tinggi dan antrian yang panjang sehingga menimbulkan rasa ketidaknyamanan bagi para pemakai jalan. Hal ini banyak terlihat di beberapa persimpangan daerah ibukota yang padat, banyak pengaturan fase dan waktu siklus yang sudah tidak sesuai dengan kondisi persimpangan, namun masih saja dipakai sehingga kemacetan akibat waktu tundaan yang tinggi dan antrian panjang pun tidak terelakkan, diikuti oleh pelanggaranpelanggaran lalu lintas.

Pelanggaran terhadap lampu lalu lintas tidak hanya terjadi pada jam-jam puncak kesibukan, pada jam-jam saat arus lalu lintas sepi juga sering terjadi pelanggaran lalu lintas yaitu kecenderungan para pengguna jalan untuk tidak mematuhi lampu lalu lintas karena waktu siklus yang terlalu lama dan volume kendaraan pada persimpangan sangat kecil. Untuk itu perlu dikembangkan pengatur lampu lalu lintas yang memiliki waktu siklus dan fase yang dapat diatur dari waktu ke waktu selama 24 jam. Sehingga jumlah tundaan yang tinggi, antrian yang panjang dan jumlah pelanggaran lalu lintas yang tinggi dapat dikurangi seminimal mungkin. Pengembangan pengatur lampu lalu lintas ini amat penting, karena hasilnya dapat mempengaruhi kehidupan sehari-hari masyarakat. Efisiensi sistem juga merupakan hal yang penting untuk setiap kota besar.

Untuk itu, maka dirancang sebuah alat pengatur lampu lalu lintas berbasis FPGA Altera EPF10K10 menggunakan VHDL. FPGA atau Field Programmable Gate Array adalah rangkaian digital terintegrasi yang terdiri dari blok logika yang dapat dikonfigurasi dan dapat diprogram, serta blok interkoneksi yang dapat dikonfigurasi diantara blok-blok ini. Papan pengembangan FPGA yang digunakan dalam perancangan adalah Wizard FLEX-A01 Experiment Board, yang merupakan papan pengembang FPGA berbasis RAM tipe EPF10K10LC84 (Keluarga Flex 10K) dari ALTERA dengan kapasitas 10.000 gerbang (gates) logika dan 576 logic element serta 6.144 bit RAM dengan Konektor JTAG untuk koneksiByteblaster.

Perancangan ini dilakukan dengan menggunakan kode VHDL atau VHSIC (Very High Speed Integrated Circuits) Hardware Description Language. VHDL adalah sebuah Hardware Description Language (HDL) yang mampu mendeskripsikan sifat atau watak rangkaian atau sistem digital dan merupakan HDL pertama yang mendapat standarisasi dari Institute of Electrical and Electronic Engineers (IEEE) melalui IEEE 1076 dan sebagai tambahan standar, IEEE 1164.

(informasi selengkapnya bisa diunduh disini)

Categories
FPGA

Vending Machine Control System Prototype using ALTERA FPGA EPF10K10

Abstract

The objective of this project is to design and build an FPGA based vending machine control system prototype using VHDL desig and modular approach. Vending Machine has its own comparative advantages compared with conventional purchasing mechanism; it provides better accessibility and practicality, not to mention anonymity and limitless purchasing time. These advantages become apparent in big metropolis city where the demand over practicality to purchase daily needs such as beverages and snacks is high. Vending machine is designed with the fixed control over its nominal money input and its product price and variety, due to the user’s demand. This control system has tendency to be static and hard to modify neither its nominal money input nor its product price and variety. Thus, it is proposed to design the decent, easily configured and modified control system by the user so that it can be applied respectably to the needs.

The FPGA based Vending Machine’s control system is designed using VHDL design and modular approach. This approach is held with the main principal of dividing the whole system into modules implemented through VHDL. Eventually these modules will be integrated and compiled using the Max+plusII software. The design runs smoothly on the ALTERA EPF10K10 development board.

Introduction

Vending Machine is one of the most practical selling device applicable in many countries. The history of vending machine began at 215 BC when a mathematician named Hero designed the tool for a temple in Alexandria, Egypt, to pour holly water if people put on a bronze coin. Basically almost every product can be sold through vending machine, include foods and drinks. Even in 1980 in Paris, the vending machine which sells wine, beer and liquor existed. In countries like Japan, with rapid development of vending machine, it can be found variety and amount of this device which sells clothes, flowers, milk, cigarette, stamp, condom, cologne, baseball card, book, bait, comic book, cassette, and CD, lottery ticket, camera and film. In many developed country like Germany, France, and Singapore, almost all of the train ticket selling is through vending machine.

In Indonesia, along with the trend of growing number of population and the growing activities and business in which creates the escalating demand over practicality, the presence of vending machine would be very helpful. Vending machine has its own comparative advantages such as practicality accessibility, not to mention how it provides anonymity and limitless time of transaction. These advantages considered significantly important in big metro cities and also in student cities, where practically in purchasing beverages and drinks becomes priority.

Typically Vending machine is designed with fixed control over its nominal money input and its product price and variety, due to the user’s demand. This control system has tendency to be static and hard to modify neither its nominal money input nor its product price and variety. Thus, this project is to design the decent, easily configured and modified control system by the user so that it can be applied respectably to the needs. The Vending Machine’s control system is designed based on FPGA and using VHDL design approach.

(More information? Download here…)

Categories
FPGA

Prototipe Kunci Digital Berbasis FPGA menggunakan VHDL dan Verilog

Dewasa ini sistem keamanan rumah menjadi hal yang penting untuk diperhatikan. Saat ini kunci konvensional yang masih dipakai secara luas dinilai kurang praktis dan aman. Berdasarkan hal ini telah dirancang sebuah kunci digital. Dengan kunci digital ini, masing-masing pengguna tidak perlu membawa kunci satusatu, cukup mengingat nomor PIN saja. Kunci digital ini juga lebih mudah diganti PIN-nya sewaktu-waktu.

Kunci digital dirancang berbasis FPGA. Rancangan dibuat dalam modulmodul dengan deskripsi VHDL dan Verilog, kemudian digabungkan secara skematik dengan perangkat lunak MAX+PlusII. Rancangan telah berjalan dengan baik pada piranti Altera FLEX-10K.

Kunci digital yang berhasil dibuat cukup aman karena dapat diset hingga satu juta kombinasi angka masukan. Rancangan yang dibuat hanya menggunakan sumber daya blok logika pada FPGA, sedangkan blok embeded-nya tidak digunakan. Rancangan dengan VHDL membutuhkan 243 sel logika sedangkan rancangan dengan Verilog membutuhkan 270 sel logika.

(informasi selengkapnya bisa diunduh disini)

Categories
FPGA

Mengapa (harus) FPGAs?

Ada beberapa pilihan bagi para perancang dalam menentukan suatu platform perangkat keras untuk perancangan elektronik ter-kustom, mulai dari prosesor tertanam atau embedded processors, ASIC atau Application Specific Integrated Circuits, Programmable Micro-processors (atau yang lebih dikenal dengan mikrokontroler), FPGAs hingga PLDs atau Programmable Logic Devices. Keputusan untuk menjatuhkan pilihan pada suatu teknologi, seperti FPGA, hanya bergantung pada kebutuhan rancangan bukan karena pandangan individu atau pendapat pribadi.

Misalnya, jika suatu rancangan membutuhkan sebuah piranti ter-program dengan sering terjadi perubahan rancangan dan algoritma yang melibatkan berbagai macam operasi yang kompleks, seperti perkalian dan pengulangan, maka mungkin perlu menggunakan prosesor pemroses sinyal yang terdedikasi (dedicated signal processor), seperti DSP yang dapat diprogram-ulang secara mudah menggunakan bahasa tingkat tinggi seperti Bahasa C. Jika kebutuhan kecepatan tidak terlalu menuntut dan platform ringkas yang murah dibutuhkan, maka perlu menggunakan mikrokontroler seperti PIC, AVR dan lain sebagainya. Namun, jika perangkat kerasnya membutuhkan unjuk-kerja yang tinggi, katakanlah bisa beroperasi dengan frekuensi kerja 100 MHz, maka FPGA menawarkan solusinya dan sekaligus merupakan logik terprogram yang fleksibel dan dapat dipakai lagi (reusable).

Isu-isu lainnya yang perlu diperhatikan adalah tingkat optimasi kebutuhan rancangan perangkat keras. Misalnya, sebuah program bisa ditulis dalam Bahasa C, kemudian diunduh ke mikrokontroler, tetapi unjuk-kerjanya terbatas karena ketidak-mampuannya melakukan proes secara paralel (untuk fungsi-fungsi tertentu). Permasalahan ini dapat diselesaikan menggunakan FPGA, yaitu dengan memanfaatkan teknik proses paralel dan pipeline untuk meningkatkan unjuk-kerja dari rancangan yang bersangkutan.

Gampangnya begini, untuk menentukan pilihan suatu platform perangkat keras adalah dengan mengidentifikasi syarat-syarat rancangan dan kebutuhan perangkat keras yang diinginkan.

Misalnya, jika rancangan mensyaratkan detak (clock) yang digunakan adalah 100 MHz, maka FPGA merupakan platform yang paling sesuai. Namun, jika detaknya hanya sekitar 3 s/d 4 MHz, maka penggunaan FPGA bisa diibaratkan membunuh kecoa dengan bom (mungkin malah bom nuklir).

Jika rancangan membutuhkan opsi prosesor yang fleksibel, walaupun teknologi FPGAs saat ini mendukung untuk prosesor tertanam, mungkin ada baiknya menggunakan DSP atau Mikrokontroler. Jika rancangan membutuhkan perangkat keras dengan fungsi khusus, maka sebuah FPGA bisa dijadikan sebagai solusi.

Jika rancangan membutuhkan fungsi-fungsi perangkat keras yang khusus, seperti perkalian dan penjumlahan, maka DSP bisa jadi solusi, tetapi jika rancangan perangkat keras diinginkan bisa di-kustom, maka, sekali lagi, FPGA merupakan pilijan yang pas!

Jika rancangan membutuhkan blok-blok perangkat keras yang sederhana, maka PLD atau CPLD (Complex Programmable Logic Device) bisa jadi merupakan pilihan terbaik (compact, simple programmable logic), bagaimanapun juga, jika rancangan memiliki beberapa fungsi sekaligus atau kombinasi dari kontroler yang kompleks dengan fungsi-fungsi perangkat keras yang khusus, maka FPGA bisa jadi solusinya.

Contoh-contoh kasus yang telah diceritakan tersebut dapat bergantung pada kompleksitas perangkat kerasnya. Misalnya, sebuah kontroler VGA atau Video Graphics Array kemungkinan lebih membutuhkan FPGA dibandingkan PLD, hal ini terkait dengan kompleksitas perangkat keras yang terkait. Isu-isu lain yang masih berhubungan adalah fleksibilitas dan programabilitas. Jika sebuah FPGA digunakan dan beberapa sumber daya tidak digunakan untuk piranti tertentu (misalnya masih sisa 60%), maka jika terjadi perubahan atau peremajaan (update), masih ada sisa ruangan untuk mendukung beberapa perubahan-perubahan tersebut, di masa mendatang.

Menggunakan petunjuk yang sederhana ini, pilihan cerdas bisa dilakukan untuk menentukan platform yang sesuai dan terbaik dan juga sekaligus perangkat keras yang dipilih. Untungnya, banyak perangkat lunak sintesis (sintesa rangkaian dalam logik terprogram) pada saat ini mampu melakukan pengujian unjuk-kerja dan utilisasi (misalnya PLD atau FPGA) berbagai macam platform rancangan sebelum keputusan akhir pilihan perangkat kerasnya.

(sumber: Wilson, P.R., 2007, “Design Recipes for FPGAs“, Newness Publications)

Categories
FPGA

Pengenalan FPGA

Field-Programmable Gate Array (FPGA) merupakan sebuah IC digital yang sering digunakan untuk mengimplementasikan rangkaian digital. 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 (ANDORNOT) 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 algoritme 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 (technologyindependent) untuk diimplementasikan dalam berbagai algoritme. 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. [Wikipedia]

Pengertian terprogram (programmable) dalam FPGA adalah mirip dengan interkoneksi saklar dalam breadboard yang bisa diubah oleh pembuat desain sesuai kebutuhan pengguna. Dalam FPGA, interkoneksi ini bisa diprogram kembali oleh pengguna maupun pendesain di dalam lab atau lapangan (field). Oleh karena itu jajaran gerbang logika (Gate Array) ini disebut field-programmable. Jenis gerbang logika yang bisa diprogram meliputi semua gerbang dasar untuk memenuhi kebutuhan yang manapun. [Wikipedia]

Secara umum alur-kerja saat menggunakan FPGA sebagai berikut:

  • Anda menggunakan komputer untuk menentukan atau mendeskripsikan suatu fungsi logik yang diinginkan.
    Anda bisa melakukannya dengan menggambar rangkaian atau diagram blok atau membuat berkas teks yang mendeskripsikan fungsi suatu rangkaian menggunakan bahasa deskripsi perangkat keras atau hardware description language (HDL);
  • Anda mengkompilasi fungsi logik tersebut melalui komputer, menggunakan perangkat lunak dari vendor FPGA-nya (yang biasanya tersedia gratis di Internet).
    Hasilnya berupa berkas biner yang dapat di-uanggah ke-dalam FPGA yang bersangkutan;
  • Anda sambungkan komputer dengan papan FPGA Anda kemudian anda unggah berkas biner ke FPGA…

Gampang khan! Seketika FPGA Anda memiliki fungsi logik sebagaimana yang Anda inginkan!

Ingat selalu bahwa…

  • Anda bisa mengisi-ulang (mengkonfigurasi-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 uanggah (upload) lagi… jadi dech…!
  • 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).

Siapa vendorFPGAs?

Minimal ada 5 perusahaan besar yang memproduksi FPGA. Dua yang pertama merupakan pemain utama di pasar FPGA:

  • Xilinx yang punya nama besar dalam dunia FPGA, masih memimpin dalam densitas dan teknologi.
  • Altera (sudah diakuisisi oleh Intel) merupakan pemain kedua di dunia FPGA.
  • Lattice, Actel, Quicklogic adalah perusahaan-perusahaan yang lebih kecil dan punya “pasar khusus”.

Informasi selengkapnya bisa Anda unduh dalam bahasa indonesia atau bahasa inggris. Atau melihat video penjelasan berikut ini…