Categories
FPGA

Implementasi FFT (Fast Fourier Transform) 16-Titik pada FPGA ALTERA Keluarga FLEX-10K menggunakan VHDL

Oleh Agfianto Eko Putra dan Eka Budi Santosa.

Telah dilakukan implementasi FFT 16-titik berbasis FPGA Altera keluarga FLEX-10K menggunakan deskripsi VHDL . Implementasi FFT ini didasarkan pada algoritma Radix-2 Decimation-In-Frequency. Implementasi dilakukan pada 2 (dua) macam FPGA Altera Keluarga FLEX-10K, yaitu EPF10K20TC144-3 (FLEX-10K) dan EPF10K30ETC144-1 (FLEX-10KE). Analisis pewaktuan, untuk FPGA tipe EPF10K20TC144-3, menunjukkan bahwa sistem mampu diberikan detak (clock) hingga 26,73 MHz dan melakukan proses FFT 16-titik dalam waktu 16,75 mikrodetik. Sedangkan tipe EPF10K30ETC144-1, maksimum frekuensi detak-nya adalah 60,97MHz dan melakukan proses yang sama dalam waktu 7,35 mikrodetik.

Selengkapnya bisa diunduh di sini

Categories
Pembelajaran

Artikel apa saja yang perlu saya tulis di 2010?

Sebelumnya saya banyak mengucapkan terima kasih, jazakumullah atas partisipasi rekan2 semua penggemar website saya dalam diskusi di komentar-komentar tiap-tiap artikel…

Ada baiknya, saya memohon keikhlasan Anda untuk memberikan saran-saran kepada saya, artikel-artikel apa saja yang perlu saya tulis untuk membantu dan bermanfaat bagi Anda , walaupun saya juga tidak bisa janji memenuhi semua, namun minimal ada rencana-rencana artikel yang bisa saya terbitkan di sepanjang tahun 2010 nantinya, selain dari rencana-rencana artikel dari saya pribadi…

Sebelum dan sesudahnya saya ucapkan ribuan bahkan jutaan bahkan tak berhingga terimakasih kepada Anda yang sudah berkenan menuliskan saran-saran melalui komentar di artikel ini…

Monggo, silahkan…

Categories
FPGA

Rancangan Audio Otomotif dengan FPGA Altera Cyclone

Pendahuluan

Acuan Rancangan Audio Otomotif Altera® Automotive Audio Reference Design mendemokan bagaimana Altera Cyclone™ FPGAs dapat digunakan dalam suatu pengolahan audio dalam sektor otomotif. Acuan rancangan berjalan pada papan pengembang Nios®, edisi Cyclone® atau Cyclone II, dengan papan DAC (digital-to-analogue converter) delapan-kanal Santa Cruz.

Acuan rancangan memiliki fitur sebagai berikut:

  • Masukan audio dalam format WAV tersimpan dalam kartu compact flash (CF).
  • Ekualiser grafik tujuh-pita
  • Keluaran audio mono tengah, sub-mono, stereo depan dan stereo samping (enam kanal)
  • Tundaan jalur (hingga 10 md) untuk kompensasi tundaan depan atau samping.
  • Ekualiser hingga enam-pita untuk masing-masing kanal luaran
  • Mendukung laju pencuplikan audio digital standar, seperti 44,1 dan 48 kHz.
Categories
DSP FPGA

Mengapa menggunakan FPGA untuk aplikasi PSD?

It is no accident that FPGAs serve an increasingly vital role in the design and development of today’s most demanding digital signal processing (DSP) systems. Superior performance, system-level cost- and powerefficiency, faster time to market and unrivaled flexibility are the hallmarks of FPGA-based DSP designs – value propositions that havefound increasingly appreciative reception among leaders in markets like the communications industry.

Ada 5 (lima) alasan menggunakan FPGA untuk aplikasi-aplikasi Pemrosesan Sinyal Digital atau PSD:

  1. Kemampuan untuk menangani beban komputasi yang begitu berat
    FPGA membolehkan Anda membangun suatu arsitektur paralel dengan kemampuan laju pencuplikan sama dengan laju detak/clock Anda. Keuntungannya adalah sebuah sistem dengan kemampuan bisa mencapai 500MSPS. Unjuk kerja seperti ini sangat ideal untuk membuat sebuah sistem kanal tunggal dengan laju pencuplikan sangat cepat atau laju pencuplikan rendah untuk ratusan kanal.
  2. Menghilangkan tugas-tugas intensif dari prosesor PSD
    dan menyelamatkan siklus-siklus penting untuk implementasi fungsi-fungsi yang lain.
  3. Kustomisasi arsitektur Anda agar sesuai dengan algoritma ideal Anda
    Dengan FPGA, Anda memperoleh sebuah larik MACs atau Pengali untuk melakukan implementasi arsitektur tap-tunggal atau -banyak. Kemampuan FPGA yang bisa dikonfigurasi-ulang, artinya, sekali Anda mengembangkan algoritma Anda, Anda bisa membuat arsitektur ideal untuk implementasi algoritma Anda.
  4. Mengurangi ongkos sistem
    FPGA membolehkan Anda memadukan komponen-komponen lain yang dibutuhkan di dalam sistem, sehingga bisa mengurangi biaya total sistem. Misalnya, penerima-pengirim serial RapidIO, antarmuka PCI express, glue logic dan lain sebagainya.
  5. Efisiensi daya
    Teknologi FPGA saat ini sudah didukung dengan low power technology, sehingga Anda tidak perlu kawatir dengan daya yang dibutuhkan, karena memang sangat rendah.

Semoga bermanfaat…

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…