• Tidak ada hasil yang ditemukan

Pengenalan FPGA oleh Iman Taufik Akbar

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pengenalan FPGA oleh Iman Taufik Akbar"

Copied!
14
0
0

Teks penuh

(1)

Pengenalan FPGA

oleh Iman Taufik Akbar

Tutorial singkat ini akan membahas mengenai FPGA (Field Programmable Gate Array). Adapun FPGA yang akan digunakan adalah produk dari Digilent yang menggunakan Xilinx Virtex-5. Berikut adalah penampakan dari development kit tersebut:

Anda terlebih dahulu perlu mengunduh perangkat lunak pendukung untuk development board tersebut yaitu digilent adept, dan dapat Anda temukan pada link berikut ini:

(2)

Berikut ini adalah tampilan halaman yang akan Anda temukan pada link tersebut:

Unduh sesuai dengan sistem operasi yang Anda gunakan. Pada tutorial ini digunakan v2.13.1 untuk sistem operasi Microsoft Windows. Setelah itu, lanjutkan dengan proses instalasi yang tampilannya seperti ini:

(3)

Bisa terlihat pada gambar instalasi tersebut, pada sudut kanan atas bagian “Connect” berisi informasi bahwa development kit yang digunakan belum terkoneksi (“No Device Connected”). Untuk

melakukan koneksi, terlebih dahulu geser saklar pada development kit ke posisi off (lingkaran merah pada gambar), lalu pasang konektor mikro USB pada development kit yang ditandai dengan tulisan “DIGILENT USB” (lingkaran hijau pada gambar). Berikut ini adalah gambarnya:

Setelah itu, pilihlah kaki adaptor yang sesuai dengan yang Anda gunakan, lalu pasang dengan cara menggesernya sesuai dengan arah panah pada gambar berikut ini hingga terdengar suara “klik”.

(4)

Setelah kabel adaptor terpasang, lanjutkan dengan menggeser saklar ke posisi “On”. Dan kembali ke proses instalasi perangkat lunak. Masih pada jendela instalasi, pada bagian “Connect”, pilih “Genesys” seperti pada gambar berikut ini:

Setelah proses inisialisasi selesai, lanjutkan dengan fitur pengetesan. Pada window instalasi, pilih tab “Test” seperti pada gambar berikut:

(5)

Pada bagian tersebut, Anda cukup menekan tombol “Start Test”, maka proses instalasi akan melakukan test pada development board seperti pada gambar berikut ini:

Pada gambar di atas, bisa terlihat bahwa ketika test dimulai, semua led indikator pada development board menyala (dengan catatan semua saklar berada pada posisi di atas). Selain itu, terlihat juga pada LCD muncul tulisan “GENESYS User Test Started”. Dari sini, Anda dapat mencoba untuk

menggeser saklar SW0 hingga SW7 untuk melihat apa yang akan terjadi dengan indikator led dan LCD. Selain itu Anda juga dapat menekan tombol BTN0, BTN1 dan BTN3 untuk melihat apakah tombol-tombol tersebut berfungsi dengan baik. Perlu dicatat bahwa untuk BTN3, Anda dapat menggesernya ke arah atas, bawah, kiri dan kanan.

Setelah proses instalasi selesai, Anda dapat melanjutkan dengan memilih bahasa pemrograman yang akan digunakan. Bahasa yang umum digunakan untuk pemrograman FPGA adalah VHDL dan Verilog. Jika dilihat secara sepintas, Verilog agak mirip dengan bahasa C, sedangkan VHDL lebih mirip dengan bahasa pemrograman Ada. Adapun untuk teks editor, Anda dapat menggunakan teks editor yang Anda sukai, namun untuk memudahkan, Anda dapat menggunakan teks editor bawaan dari IDE Xilinx ISE. Anda dapat mengunduh aplikasi Xilinx ISE Design Suite (pada saat tutorial ini dibuat v14.7) pada halaman berikut ini:

http://www.xilinx.com/support/download.html

Perlu diingat bahwa aplikasi tersebut adalah aplikasi berbayar, namun tetap dapat digunakan dengan batasan waktu eksekusi binary yang dihasilkan dari proses kompilasi. Selain aplikasi tersebut, terdapat juga aplikasi lain yaitu Xilinx ISE WebPack Design Software yang sifatnya Free dan cukup untuk development. Aplikasi Xilinx ISE WebPack dapat diunduh pada halaman berikut ini:

(6)

Setelah mengunduh aplikasi Xilinx ISE Design Suite ataupun Xilinx ISE WebPack, Anda perlu untuk mengunduh reference manual dari development kit yang digunakan. Berikut ini adalah halaman dimana Anda dapat mengunduh reference manual tersebut:

http://www.digilentinc.com/Data/Products/GENESYS/Genesys_RM_VC.pdf

Setelah mengunduh reference manual tersebut, Anda dapat memulai dengan melihat wiring diagram untuk input dan output (I/O) development kit yang digunakan. Pada reference manual tersebut, terdapat pada halaman 18 untuk referensi Switch, Reset, BTN, dan Led seperti pada gambar berikut ini:

Dengan melihat gambar di atas, kita dapat mengetahui wiring diagram antara Switch, BTN, maupun Led dengan FPGA Xilinx Virtex yang digunakan oleh development kit ini. Selanjutnya adalah memulai proses pemrograman. Adapun format standar untuk pemrograman menggunakan bahasa VHDL adalah sebagai berikut:

(7)

Bahasa pemrograman VHDL tidak mengenal case sensitive, jadi “A” sama dengan “a” dan lain sebagainya. Untuk program pertama yang akan kita buat adalah program untuk menyalakan led LD0 yang berada pada alamat AG8 seperti yang dapat dilihat pada gambar wiring diagram di halaman terdahulu. Pada aplikasi ISE Designer, pilih menu File -> New Project. Lalu masukkan nama dan lokasi dimana file akan disimpan seperti pada gambar berikut ini:

Setelah itu, tekan tombol Next, dan pada halaman berikutnya akan muncul tampilan seperti ini:

Pada halaman ini, beberapa informasi yang harus diisi dapat dilihat pada informasi yang disertakan bersama development kit. Informasi tersebut diantaranya, family Virtex5, device XC5VLX50T, package FF1136, dan preferred language diisi VHDL. Untuk lebih lengkapnya mengenai cara membaca label IC

(8)

FPGA Xilinx, dapat dilihat pada ebook Xilinx Virtex-5 FPGA Packaging and Pinout Specification yang dapat diunduh pada link berikut ini:

http://www.xilinx.com/support/documentation/data_sheets/ds202.pdf

Setelah menekan tombol Next pada halaman tersebut, akan muncul halaman ringkasan mengenai informasi yang telah dimasukkan, pada halaman ini tekan tombol Finish. Sekarang, kita akan mulai melakukan pemrograman. Pada bagian toolbar, pilih menu Project -> New Source. Kemudian pilih VHDL module, dan masukkan nama file, lalu tekan tombol Next, maka akan muncul halaman entity. Pada halaman entity cukup tekan tombol Next karena untuk program awal ini tidak akan digunakan, lalu terakhir tekan tombol Finish. Berikut ini adalah listing program yang akan kita gunakan:

Setelah menuliskan program di atas, kita harus menentukan lokasi Led0. Caranya adalah, pilih menu Project -> New Source -> Implementation Constraints File. Kemudian masukkan nama file pada text

(9)

box Filename. Tekan tombol Next lalu tekan tombol Finish. Setelah itu, masukkan pada teks editor baris berikut ini:

Setelah itu simpan semua file dengan memilih menu Save All. Lalu pada tab Design, pilih Generate Programming File dan double klik serta tunggu beberapa saat hingga selesai. Jika telah selesai, maka pada panel Design akan terlihat bahwa Synthesize, Implement Design dan Generate Programming File akan berubah menjadi hijau semua, berikut ini adalah tampilan panel Design:

Sampai pada langkah ini, terdapat dua jenis file yang telah dibuat, yaitu file berjenis *.vhd yang digunakan untuk menuliskan program, dan file berjenis *.ucf dimana kita menuliskan alamat I/O yang akan kita gunakan yaitu pada contoh ini Led0 berada pada pin AG8. Selanjutnya adalah melakukan upload program yang telah kita buat tersebut ke development kit. Untuk itu, kita akan menggunakan aplikasi Digilent Adept. Pada tab Config, pilih Browse, lalu arahkan ke lokasi dimana project yang kita buat tadi berada dan pilih file yang memiliki ekstensi *.bit, lalu tekan tombol Open. Setelah itu, kembali pada tab Config pada aplikasi Digilent Adept, tekan tombol Program dan tunggu hingga prosesnya selesai. Secara normal, apabila proses download ke FPGA telah selesai, maka led berwarna merah yang posisinya dekat tombol reset akan menyala seperti pada gambar berikut:

(10)

Sekarang, kita dapat melihat hasil eksekusi program yang telah kita buat tadi, yaitu led pada Led0 akan menyala seperti ini:

Pada program selanjutnya, kita akan menyalakan led dari Led0 hingga Led7. Berikut ini adalah listing programnya:

library IEEE;

use IEEE.STD_LOGIC_1644.ALL;

entity Led0_Led7 is port(

LED: out std_logic_vector(7 downto 0)); end Led0_Led7;

architecture Behavioral of Led0_Led7 is begin

LED <= (others => '1'); end Behavioral;

(11)

Dan berikut ini adalah listing untuk implementation constraints:

NET “LED<0>” LOC = “AG8”; NET “LED<1>” LOC = “AH8”; NET “LED<2>” LOC = “AH9”; NET “LED<3>” LOC = “AG10”; NET “LED<4>” LOC = “AH10”; NET “LED<5>” LOC = “AG11”; NET “LED<6>” LOC = “AF11”; NET “LED<7>” LOC = “AE11”;

Setelah menuliskan ke-dua file tersebut, lanjutkan dengan langkah generate dan download hasilnya ke development kit, maka lampu LD0 hingga LD7 akan menyala semua seperti pada gambar berikut ini:

Pada gambar di atas, bisa terlihat bahwa led LD0 hingga LD7 semuanya menyala, walaupun switch SW0 hingga SW7 dalam posisi off. Kembali merujuk pada wiring diagram pada beberapa halaman di depan, switch tersebut tidak terhubung langsung dengan led, melainkan terhubung dengan IC FPGA. Selanjutnya kita akan membuat program yang akan menyalakan led berdasarkan posisi switch. Maksudnya led LD0 akan menyala jika switch SW0 berada pada posisi “on” dan seterusnya hingga LD7 dan SW7. Listing programnya dapat dilihat pada halaman selanjutnya:

(12)

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL;

entity Switch_LED is port(

SW0 : in STD_LOGIC := '1'; SW1 : in STD_LOGIC := '1'; SW2 : in STD_LOGIC := '1'; SW3 : in STD_LOGIC := '1'; SW4 : in STD_LOGIC := '1'; SW5 : in STD_LOGIC := '1'; SW6 : in STD_LOGIC := '1'; SW7 : in STD_LOGIC := '1'; LED0 : out STD_LOGIC := '1'; LED1 : out STD_LOGIC := '1'; LED2 : out STD_LOGIC := '1'; LED3 : out STD_LOGIC := '1'; LED4 : out STD_LOGIC := '1'; LED5 : out STD_LOGIC := '1'; LED6 : out STD_LOGIC := '1'; LED7 : out STD_LOGIC := '1'; end Switch_LED;

architecture Behavioral of Switch_LED is begin LED0 <= SW0; LED1 <= SW1; LED2 <= SW2; LED3 <= SW3; LED4 <= SW4; LED5 <= SW5; LED6 <= SW6; LED7 <= SW7; end Behavioral;

(13)

NET “LED0” LOC = “AG8”; NET “LED1” LOC = “AH8”; NET “LED2” LOC = “AH9”; NET “LED3” LOC = “AG10”; NET “LED4” LOC = “AH10”; NET “LED5” LOC = “AG11”; NET “LED6” LOC = “AF11”; NET “LED7” LOC = “AE11”;

NET “SW0” LOC = “J19”; NET “SW1” LOC = “L18”; NET “SW2” LOC = “K18”; NET “SW3” LOC = “H18”; NET “SW4” LOC = “H17”; NET “SW5” LOC = “K17”; NET “SW6” LOC = “G16”; NET “SW7” LOC = “G15”;

Setelah itu, seperti langkah-langkah sebelumnya, generate lalu upload ke development kit. Hasilnya adalah sebagai berikut:

Bisa terlihat bahwa led LD0, LD2, LD4, dan LD6 kondisinya menyala, sedangkan LD1, LD3, LD5 dan LD7 berada dalam kondisi padam sesuai dengan posisi saklar SW0, SW2, SW4 dan SW6 yang berada pada posisi “on” serta SW1, SW3, SW5 dan SW7 yang berada pada posisi “off”.

Langkah selanjutnya adalah mencoba melakukan sedikit optimisasi program yang telah kita buat tersebut. Berikut ini adalah listring program dengan sedikit optimisasi:

(14)

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity switch_led is port(

led : out std_logic_vector (7 downto 0);

sw : in std_logic_vector (7 downto 0) := (others => '1')); end switch_led;

architecture Behavioral of switch_led is begin led(0) <= sw(0); led(1) <= sw(1); led(2) <= sw(2); led(3) <= sw(3); led(4) <= sw(4); led(5) <= sw(5); led(6) <= sw(6); led(7) <= sw(7); end Behavioral;

Adapun untuk file implementation constraints, tidak mengalami perubahan. Selanjutnya, untuk

menguji listring di atas, lakukan seperti langkah-langkah sebelumnya yaitu dengan generate lalu upload ke development kit.

Referensi

Dokumen terkait

Tujuan dilakukan pengawasan selama berlangsungnya proses pengolahan yaitu untuk mencegah terlanjur diproduksinya obat yang tidak memenuhi.. Laboratorium pengujian IPC terletak

Pekerjaan pemasangan rambu-rambu tambang yang harus dikerjakan oleh pihak kontraktor ataupun perusahaan yang meliputi : papan blok, pita elevasi, pita batas lahan, pita

Tujuan penelitian ini adalah mengetahui struktur dan komposisi tumbuhan di kawasan Rawa Pening, adanya perbedaan struktur dan komposisi tumbuhan antara area litoral dan

Sedangkan penentuan karakter morfologi dan pewarnaan gram bakteri simbion, dilakukan berdasarkan Microbiology Laboratory Manual dan menunjukkan bahwa morfologi sel bakteri

23 Tahun 2002 Tentang Perlindungan Anak (Studi Kasus Di Desa Urek-urek Kecamatan Gondanglegi Kabupaten Malang), Skripsi, Jurusan: Al-Ahwal al – Syakhsyiah,

Seminar yang dilakukan di kantor Pusat Penelitian dan Pengembangan Geologi Kelautan (P3GL) 6irebon, dilakukan dalam a6ara peringatan hari %usantara yang ke &amp; pada tanggal

Hasil penelitian menunjukkan bahwa ada lima sikap ilmiah yang dikembangkan di kelas V dalam pembelajaran IPA di MI Ma’arif NU 01 Pasir Kulon, diantaranya yaitu sikap ingin

Kelas S3 : Lahan mempuyai faktor pembatas yang sedang, lebih dari satu faktor dan faktor pembatas ini akan sangat berpengaruh terhadap produktivitasnya, faktor pembatas