1 Tutorial NIOS II dengan Quartus II Buka Start Program Altera Quartus II Klik File New Project Wizard, tentukan lokasi folder tempat kita menyimpan p...
Tutorial NIOS II dengan Quartus II 9.0 1. Buka Start Program Altera Quartus II 9.0
2. Klik File New
Project
Wizard, tentukan lokasi folder tempat kita
menyimpan project kemudian beri nama project tersebut dan klik Next. Contoh seperti pada gambar dibawa: project diberi nama ProjectPertama dan di simpan di folder C:\altera\90\quartus\myproject\agusbj
3. Jika anda baru pertama kali membuat project ini maka klik Next untuk tampilan seperti berikut.
4. Pilih
keluarga
FPGA yang
anda
gunakan.
Sebagai
contoh
disini
saya
menggunakan FPGA Altera keluarga Cyclone III yaitu EP3C25F324C6 . Lalu klik Next.
5. Klik Next untuk tampilan berikut.
6. Akan muncul resume tentang project yang akan dibuat. Klik Finish.
7. Sekarang kita siap untuk membuat detil teknis project. Dalam setiap rancangan system digital, kita memerlukan Top-Level desain, yaitu kerangka desain pada level paling atas. Untuk kemudahan maka dalam tutorial ini saya berikan contoh Top-Level desain dengan menggunakan skematik (cara lain bisa juga dengan VHDL tetapi tidak digunakan dalam tutorial ini). Klik File New pilih Block
Diagram/Schematic File.
8. Klik tombol Symbol Tool kemudian cari symbol input di bagian primitives/pin seperti terlihat pada gambar kemudian beri nama CLOCK .
9. Lakukan hal yang sama untuk pin output dan beri nama LED[3..0] . Juga letakan simbol VCC di bagian di bagian primitives/other sehingga kesemuanya terlihat pada gambar dibawah. Jangan lupa simpan dulu top-level desain anda, klik File Save misal disimpan dengan nama ProjectPertama.bdf
10. Berikutnya kita akan mulai merancang system berbasis NIOS II. Klik menu Tools SOCP Builder. Akan terlihat tampilan sebagai berikut. Beri nama system kita dan pilih bahasa yang digunakan. Contoh beri nama mynios dan pilih VHDL .
11. Pada tab System Contens pilih Memories and Memory Controllers OnChip On-Chip Memory (RAM or ROM) lalu klik kanan Add
12. Isikan sebagai berikut dan biarkan parameter yang lain sesuai default lalu klik Finish.
Memory Type : RAM
Block Type : Auto
Data Width : 32
Total Memory Size : 20 KBytes
13. Lakukan hal yang sama untuk menambahkan soft-core prosesor NIOS. Isikan parameter berikut dan biarkan parameter yang lain sesuai default. Klik Finish.
Select a Nios II core : Nios II/s
Reset Vector Memory : onchip_memory2_0
Exception Vector Memory : onchip_memory2_0
14. Tambahkan pula JTAG UART di bagian Interface Protocols Serial JTAG UART dan biarkan semua sesuai default lalu klik Finish.
15. Tambahkan safeguard di bagian Peripherals Debug and Performance System ID Peripheral lalu klik Finish. Pada bagian sysid_0 klik kanan kemudian rename menjadi sysid.
16. Tambahkan Timer di bagian Peripheral Microcontroller Peripherals Interval Timer. Isikan Timer Period : 1 ms, Counter Size : 32 bits dan Hardware Options Presets : Full Featured
17. Tambahkan port I/O di bagian Peripheral Microcontroller Peripherals PIO. Pada tutorial ini port I/O dengan lebar 4 bit akan dihubungkan ke lampu LED. Sehingga isikan parameter Width : 4 dan Direction : Output ports
only .
18. Ubahlah nilai IRQ pada peripheral JTAG UART menjadi 16 sehingga tampilan keseluruhan peripheral yang telah ditambahkan seperti terlihat pada gambar berikut.
19. Quartus II versi 9.0 sebenarnya telah melakukan mapping memory dan IRQs secara otomatis. Namun anda dapat melakukanya secara manual dengan cara
System Auto-Assign Base Address dan System Auto-assign IRQs. 20. Simpan system nios desain file, klik File Save. 21. Langkah berikutnya adalah melakukan generation system untuk menghasilkan rangkaian yang sesuai dengan desain system nios diatas dalam VHDL. Caranya adalah klik tombol Generate. Jika tidak terdapat error maka akan muncul pesan “System generation was successful ” seperti terlihat pada gambar berikut.
22. Klik tombol Exit. 23. Untuk melengkapi Top-level desain pada jendal Quartus II, klik Symbol Tool kemudian pilih mynios di bagian project . Selanjutnya hubungkan port CLOCK dengan pin clk_0 , VCC pada pin reset_n dan port LED[3..0] pada pin
out_port_from_the_pio_0[3..0] seperti pada gambar berikut. Perhatikan bahwa gunakan Orthogonal Node Tool untuk menghubungkan pin clk_0 dan
resete_n sedangkan gunakan Orthogonal Bus Tool untuk jalur LED[3..0] .
24. Simpan Top-Level Desain, klik File Save. 25. Klik menu Assigments Pins. Isikan lokasi pin FPGA yang bersesuaian dengan hardware development board yang kita gunakan. Detil penempatan pin bisa dilihat pada panduan atau datasheet untuk development board yang digunakan. Pada tutorial ini penempatan pin seperti terlihat pada gambar berikut :
26. Proses selanjutnya adalah kompilasi atau synthesizing. Klik menu Processing Start Compilation. Jika tidak terdapat error maka akan dihasilkan file dengan ekstensi .sof (ProjectPertama.sof ) dan muncul pesan sebagai berikut.
27. Sampai disini hardware platform system yang kita rancang sudah selesai dan siap kita download ke dalam IC FPGA. Caranya adalah Klik Tools Programmer.
Akan muncul jendela baru seperti terlihat pada gambar diatas. Pastikan bahwa pada Hardware Setup sudah menunjuk pada USB-Blaster yaitu tool JTAG untuk mendownload file *.sof ke FPGA. Untuk mendownload klik tombol Start. 28. Sekarang kita sudah memiliki hardware yang siap untuk digunakan. Hardware yang kita buat sampai disini bisa di ibaratkan sebagai sebuah mikrokontroler. Untuk dapat bekerja tentu kita memerlukan program atau software didalamnya. Langkah berikut ini akan menjelaskan bagian perancangan softwarenya. Tools NIOS II adalah sebuah software development kit yang dirancang khusus untuk hal itu. 29. Klik Start Program Altera NIOS II 9.0. Akan muncul tampilan sebagai berikut.
30. Klik File New Nios II C/C++ Application. Beri nama program kita, contoh myfirstcode. Browse file *.ptf (mynios.ptf ) untuk SOPC Builder
System PTF File , dan pilih Blank Project pada bagian Select Project Template seperti gambar berikut lalu klik Finish.
31. Klik File New Source File. Isikan Source Folder dengan myfirstcode dan
Source File dengan myfirstcode.c lalu klik Finish.
32. Tuliskan kode berikut pada file myfirstcode.c lalu save. #include <stdio.h> #include "alt_types.h" #include "altera_avalon_pio_regs.h" #include "sys/alt_irq.h" #include "system.h" #include static alt_u8 count; int main() { printf("Hello from Nios II, I am agusbj! "); count = 0; while (1) { IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,~count); usleep(1000000); count++; } return 0; } 33. Lakukan setingan compiler sebagai berikut untuk meminimalkan ukuran file program sehingga cukup untuk memory yang telah disediakan oleh hardware. Klik kanan folder myfirstcode System Library Properties lalu klik OK.
Check Program never exits Uncheck Support C++ Uncheck Clean exit (flush buffers) Check Small C library
34. Untuk mengkompile program diatas klik kanan folder myfirstcode Build Project. 35. Jika tidak terdapat error maka akan muncul resume hasil kompilasi dan file dengan ekstensi *.elf (myfirstcode.elf ) seperti terlihat pada gambar berikut.
36. Sekarang kita akan mendowload hasil file kompilasi diatas (myfirstcode.elf ) kedalam hardware yang telah kita konfigurasi sebelumnya (seolah-olah seperti mikrokontroler). Klik Run Run… Klik kanan Nios II Hardware Add lalu klik tombol Run. 37. Jika program berhasil maka akan terlihat 4 lampu LED yang menyala berurutan merepresentasikan sebuah counter atau bilangan yang mencacah naik. Selain itu
pada tab Console juga akan muncul tulisan . "Hello from Nios II, I am agusbj!” sebagai respon dari perintah printf("Hello from Nios II, I am agusbj! ") seperti terlihat pada gambar dibawah. Perlu diketahui bahwa kita memilih peripheral JTAG UART, ini artinya USB-Blaster yang kita gunakan setelah selesai digunakan sebagai JTAG untuk mendownload program dan bitstream maka selanjutnya akan berfungsi sebagai UART sehingga kita dapat menerima data yang dikirimkan melalui perintah printf. Catatan: setingan stdout dan stdin harus sesuai.
38. Selamat mencoba semoga berhasil
Kunieda-Isshiki Laboratory, 5 November 2009 Agus Bejo