TUTORIAL PEMROGRAMAN PADA FPGA XILINX VIRTEX 5 ML506 BOARD A. Pendahuluan Virtex-5 ML506 Board merupakan salah jenis FPGA yang menggunakan prosesor Virtex-5. Virtex 5 merupakan salah satu produk dari Xilinx. Beberapa fitur dari Virtex-5 ML506 Board adalah sebagai berikut: a. Xilinx Virtex-5 FPGA : XC5VSX50T-1FFG1136 (ML506) b. DIP switches, LEDs, pushbuttons, dan rotary encoder c. RS-232 serial port (DB9) d. LCD 16x2 karakter e. PS/2 mouse dan keyboard konektor f. USB interface chip dan peripheral ports g. Baterai Lithium h. JTAG downloader i. Power indicator LED [7] Gambar 1. Virtex-5 ML506 Board http://www.fpgadeveloper.com Virtex-5 ML506 Board dapat diprogram dengan menggunakan bahasa pemrograman VHDL, MATLAB dan C. Tapi pada tutorial ini yang dibahas hanya pemrograman menggunakan bahasa pemrograman. Hal ini dikarenakan menurut penulis, pemrograman pada FPGA (khususnya Xilinx Virtex-5 ML506 Board) yang menggunakan bahasa pemrograman C masih sedikit tutorialnya atau bahkan tidak ada yang versi bahasa Indonesia. Hal ini mendorong untuk membuat tutorialnya supaya bisa membantu rekan-rekan yang mau belajar memrogram FPGA menggunakan bahasa C. 1 P a g e H e n d y B r i a n t o r o 2 0 1 3
Pada pemrograman C pada Virtex-5 ML506 Board ini terdapat 2 tahap pemrogramannya, yaitu tahap pemrograman MicroBlaze dan tahap pemrograman SDK (Software Development Kit). Pemrograman MicroBlaze ini merupakan pemrograman untuk mendefinisikan fungsi dari pin-pin IC Virtex-5. Pendefinisian fungsi pin IC Virtex-5 ini tergantung dari kebutuhan dari pengguna dalam menggunakan Virtex-5 tersebut. Fungsi yang biasanya digunakan adalah untuk fungsi I/O dan fungsi komunikasi data. Fungsi I/O di antaranya untuk LED, dipswitch dan LCD sedangkan fungsi komunikasi data diantaranya adalah untuk komunikasi serial dan Ethernet. Dan fungsi yang digunakan pada tutorial ini adalah fungsi I/O. Kemudian untuk pemrograman SDK (Software Development Kit), yaitu pemrograman untuk memberikan suatu program apa yang harus dilakukan oleh Virtex-5 ML506 Board. Pada pemrograman SDK (Software Development Kit) ini, program pengkodean siklik diberikan. Pada pemrograman SDK (Software Development Kit) terdapat beberapa tipe bahasa pemrograman yang bisa diterapkan, salah satunya adalah bahasa pemrograman C. Ada beberapa langkah yang harus dilakukan baik untuk pemrogram MicroBlaze dan pemrograman SDK (Software Development Kit). Berikut adalah langkah-langkah yang harus dilakukan. 2 P a g e H e n d y B r i a n t o r o 2 0 1 3
B. Pemrograman MicroBlaze Pada Virtex-5 ML506 Board Pada pemrograman MicroBlaze ini, menggunakan perangkat lunak Xilinx Platform Studio. Sedangkan versi yang digunakan pada tutorial ini adalah versi 13.4. Gambar 2 menunjukkan tampilan awal dari Xilinx Platform Studio version 13.4. Gambar 2. Tampilan awal perangkat lunak Xilinx Platform Studio Untuk membuat MicroBlaze, pilih Menu Create New Project Using Base System Builder pada Menu Getting Started. Setelah itu akan muncul jendela baru dengan nama Create New Project Using BSB Wizard dan memasukkan nama proyek dan tipe Interconnect (pilih yang PLB System). Gambar 3 menunjukkan tampilan Create New Project Using BSB Wizard. Gambar Error! No text of specified style in document.. Tampilan Create New Project Using BSB Wizard 3 P a g e H e n d y B r i a n t o r o 2 0 1 3
Setelah menekan OK maka akan tampil tampilan dari konfigurasi yang akan diterapkan pada Virtex-5 ML506 Board. Gambar 4 menampilkan tampilan konfigurasi awal. Kemudian memilih pilihan I would like to create a new design dan menekan tombol Next. Gambar 4. Tampilan awal konfigurasi Setelah itu memilih Board yang digunakan, kita memilih Virtex-5 ML506 Board. Dan menekan tombol Next. Tampilan ditunjukkan pada Gambar 5. Gambar 5. Tampilan memilih Board yang digunakan 4 P a g e H e n d y B r i a n t o r o 2 0 1 3
Setelah menekan tombol Next maka akan muncul tampilan untuk memilih sistem prosesor yang digunakan. Karena sistem prosesor tunggal sudah cukup maka memilih Single-Processor System. Setelah itu menekan tombol Next lagi. Tampilan pemilihan sistem prosesor ditunjukkan pada Gambar 6. Gambar 6. Tampilan pemilihan sistem prosesor Setelah itu akan muncul tampilan konfigurasi prosesor. Maka konfigurasinya kita memilih Microblze untuk tipe prosesor, 125 Mhz untuk besar clock frekuensi dan 8KB untuk Local Memory. Setelah itu menekan tombol Next. Tampilan konfigurasinya ditunjukkan pada Gambar 7. 5 P a g e H e n d y B r i a n t o r o 2 0 1 3
Gambar 7. Tampilan konfigurasi prosesor Kemudian akan muncul konfigurasi peripheral yang akan dimasukkan ke Virtex-5 ML506 Board. Kita tekan tombol Next. Tampilan konfigurasi ditunjukkan pada Gambar 8. Gambar 8. Tampilan konfigurasi konfigurasi peripheral Selanjutnya akan muncul konfigurasi cache. Kita tekan tombol Next. Tampilan konfigurasi ditunjukkan pada Gambar 9. 6 P a g e H e n d y B r i a n t o r o 2 0 1 3
Gambar 9. Tampilan konfigurasi cache Setelah akan muncul jendela Summary dan centang pada pilihan Save Base System Builder (.bsb) Setting File. Kita tekan tombol Finish dan konfigurasi selesai. Tampilan konfigurasi ditunjukkan pada Gambar 10. Gambar 10. Tampilan Summary dari konfigurasi. 7 P a g e H e n d y B r i a n t o r o 2 0 1 3
Kemudian akan hasil konfigurasi yang telah dibuat. Setelah itu maka dilakukan proses update konfigurasi tersebut ke Virtex-5 ML506 Board dengan cara memilih menu Device Configuration Update Bitstream dan proses update akan berjalan. Tampilanya ditunjukkan pada Gambar 11. Gambar 11. Tampilan hasil konfigurasi Setelah melakukan update bitstream maka dilakukan export konfigurasi tersebut ke SDK (Software Development Kit). Caranya dengan memilih menu Project Export Hardware Design in SDK dan memilih Export Only. Sesuai yang ditunjukkan pada Gambar 12 dan Gambar 13. Dan pemrograman Microblaze sudah selesai dan dilanjutkan ke pemrograman SDK (Software Development Kit). Gambar 12. Tampilan melakukan export konfigurasi tersebut ke SDK (Software Development Kit) 8 P a g e H e n d y B r i a n t o r o 2 0 1 3
Gambar 13. Tampilan memilih Export Only C. Pemrograman SDK (Software Development Kit) Pada Virtex-5 ML506 Board Pemrogram dilanjutkan dengan pemrograman SDK (Software Development Kit) pada Virtex-5 ML506 Board. Perangkat lunak yang digunakan adalah Xilinx Software Development Kit (Xilinx SDK). Untuk membuka Xilinx Software Development Kit, bisa langsung menuju ke Start Xilinx Software Development Kit. Sesuai dengan Gambar 14. Setelah memilih, maka akan muncul tampilan awal seperti pada Gambar 15. Kemudian pilih OK. Gambar 14. Tampilan Menu Start Gambar 15. Tampilan awal Xilinx Software Development Kit 9 P a g e H e n d y B r i a n t o r o 2 0 1 3
Setelah itu akan muncul program Xilinx SDK. Untuk mengawali project maka pilih File New Xilinx C Project sesuai tampilan seperti Gambar 16. Gambar 16. Tampilan untuk mengawali project Kemudian tampil form New Hardware Project dan mengisi form project name, location, target hardware specification sesuai Gambar 17. Kemudian pilih Finish. Gambar 17. Tampilan New Hardware Project 10 P a g e H e n d y B r i a n t o r o 2 0 1 3
Kemudian muncul Form New Project dan isi sesuai dengan Gambar 18. Pilih Next. Gambar 18. Form New Project 11 P a g e H e n d y B r i a n t o r o 2 0 1 3
Kemudian tampil Form baru dan pilih Finish. Sesuai dengan Gambar 19. Gambar 19. Form New Project Cari folder src pada folder belajar1, kemudian klik kanan pilih New Source File. Seperti pada Gambar 20. 12 P a g e H e n d y B r i a n t o r o 2 0 1 3
Gambar 20. New source file Kemudian tampil form New Source File, isikan Source File sama dengan nama foldernya, yaitu belajar1.c. Kemudian tekan Finish. Gambar 21. Form New Source File Setelah itu akan muncul lembar kerja belajar1.c. Masukkan code sesuai dengan Gambar 22. Code tersebut merupakan code untuk mengirimkan data berupa tulisan Hello World secara serial k PC. 13 P a g e H e n d y B r i a n t o r o 2 0 1 3
Gambar 22. Lembar kerja belajar1.c Kemudian klik kanan pada folder belajar1. Pilih Generate Linker Script seperti pada Gambar 23. Gambar 23. Generate Linker Script Muncul form Generate a linker script dan tekan tombol Generate. 14 P a g e H e n d y B r i a n t o r o 2 0 1 3
Gambar 23. Form Generate a linker script Yang terakhir pilih menu Xilinx Tools Program FPGA Kemudian tekan Program sesuai dengan Gambar 25. Gambar 24. Program FPGA 15 P a g e H e n d y B r i a n t o r o 2 0 1 3
Tampilan di TeraTerm pada Gambar 26. Gambar 25. Program FPGA Gambar 26. Tampilan di TeraTerm 16 P a g e H e n d y B r i a n t o r o 2 0 1 3