Tutorial Desain VHDL menggunakan Software Quartus II
Oleh:
Susilo Wibowo, S.T, M.Eng.
Laboratorium Otomasi Industri dan Sistem Embedded
Jurusan Teknik Elektro
Universitas Surabaya
GASAL 2009-2010
Tutorial Desain VHDL menggunakan Software Quartus II
Oleh: Susilo Wibowo, ST, M. Eng.
Tutorial ini memberikan pengenalan umum pembuatan desain rangkaian digital
dengan menggunakan VHDL pada software Quartus II. Desain rangkaian digital
ini dapat diimplementasikan pada CPLD (Complex Programmable Logic Device)
dan FPGA (Field Programmable Gate Array).
Quartus II merupakan salah satu jenis CAD (Computer Aided Design) yang
mendukung bermacam-macam cara pembuatan/penulisan desain rangkaian digital,
salah satunya adalah VHDL. Gambar 1 di bawah ini menunjukkan alur umum
pembuatan desain rangkaian digital yang diimplementasikan pada FPGA
menggunakan CAD.
Gambar 1. Alur umum CAD
Alur dari CAD di atas terdiri dari:
Design Entry: Rangkaian digital yang dibuat dituliskan dengan
menggunakan VHDL.
Synthesis: Desain yang dibuat disintesakan ke dalam bentuk LE (Logic
Element) yang ada di dalam FPGA.
Functional Simulation: Rangkaian yang sudah disintesa diuji kebenaran
logikanya (fungsional). Tahapan simulasi ini mengabaikan semua faktor
timing/delay yang mungkin terjadi.
Fitting: CAD fitter software mengimplementasikan LE di dalam netlist
ke LE di FPGA. Proses ini juga memilih jalur kabel (wire) antara LE
yang dipakai di dalam FPGA.
Timing Analysis: menganalisa propagation delay dari semua jalur
rangkaian untuk menentukan performansi dari rangkaian.
Timing Simulation: Mensimulasikan rangkaian untuk memeriksa kebenaran
secara fungsional beserta faktor-faktor delay yang ada.
Programming and Configuration: Rangkaian yang dibuat diimplementasikan
/ diprogramkan pada IC FPGA.
Tutorial ini memperkenalkan fitur-fitur dasar dari software Quartus II yang
dipergunakan untuk mendesain, mensimulasikan dan mengimplementasikan
rangkaian digital dengan menggunakan VHDL hardware description language.
Pada tutorial ini akan memperkenalkan langkah-langkah desain sampai dengan
proses simulasi rangkaian yaitu sebagai berikut:
1. Membuat project.
2. Desain rangkaian menggunakan VHDL.
3. Mensintesa rangkaian yang telah ditulis dengan VHDL.
4. Melakukan proses fitting pada Altera FPGA
5. Menghubungkan input dan output dari rangkaian ke pin-pin dari IC FPGA.
6. Mensimulasikan rangkaian yang dibuat/didesain.
7. Memprogram chip FPGA pada DE1 board
I. Pendahuluan
Setiap rangkaian digital yang didesain dengan menggunakan software
Quartus II disebut project. Quartus II hanya bekerja pada satu project
pada saat yang sama dan menyimpan semua informasi project itu pada satu
direktori (folder). Langkah pertama dalam mendesain rangkaian adalah
membuat direktori untuk menyimpan semua file hasil desain. Pada
tutorial ini, direktori tersebut diberi nama introtutorial yang akan
berisi rangkaian sederhana yang diberi nama two-way light control.
Jalankan software Quartus II, anda akan melihat tampilan jendela
(window) seperti pada gambar 2. Window ini berisikan beberapa window
lain yang dipakai untuk mengakses semua feature dari software Quartus
II, pengguna dapat memilihnya dengan menggunakan mouse. Perintah-
perintah software Quartus II dapat diakses menggunakan menu bar di
bawah title bar. Contoh, pada gambar 2. click tombol kiri mouse pada
menu FILE maka akan membuka menu seperti pada gambar 3. Click tombol
kiri mouse pada pilihan EXIT akan menyebabkan anda keluar dari software
Quartus II. Pada umumnya, tombol kiri mouse dipakai untuk memilih
sesuatu.
Gambar 2. Jendela Utama software Quartus II (version 9.0)
Gambar 3. Menu FILE.
Untuk perintah yang mengakses dua atau lebih tingkatan menu,
menggunakan urutan Menu1 > Menu2 > Item (klik tombol kiri mouse pada
Menu1 kemudian klik Menu2 di dalam Menu1 dan klik Item di dalam Menu2).
Banyak perintah juga dapat diakses dengan memilih icon pada toolbar.
Software Quartus II juga menyediakan dokumentasi online yang dapat
menjawab pertanyaan-pertanyaan yang mungkin terjadi pada saat
penggunaan software ini. Dokumentasi ini dapat diakses melalui menu
HELP.
II. Membuat Project Baru
Untuk memulai bekerja pada suatu desain, software Quartus II
memberikan bantuan (Wizard) kepada pengguna dengan langkah-langkah
sebagai berikut:
1. Select File > New Project Wizard, window seperti pada gambar 4
muncul menanyakan nama dan direktori dari project.
Gambar 4. Jendela pertama New Project Wizard.
2. Tulis nama direktorinya dengan introtutorial (untuk tutorial ini)
atau nama lain sesuka anda. Project yang dibuat harus mempunyai
nama dan nama ini harus sama dengan nama top-level ENTITY pada
project. Tulislah LIGHT (untuk tutorial ini) sebagai nama dari
project dan top-level ENTITY seperti pada gambar 4. kemudian tekan
NEXT. Karena direktori introtutorial belum ada, software Quartus II
akan menampilkan jendela seperti pada gambar 5 yang menanyakan
apakah kita akan membuat direktori baru tersebut. Pilih YES, yang
akan membawa kita ke jendela baru seperti gambar 6.
Gambar 5. Quartus II dapat membuat direktori kerja secara otomatis
Gambar 6. Memilih file VHDL lain yang akan dipakai dalam project
3. Bantuan (Wizard) ini juga memberikan bantuan untuk menentukan file-
file yang sudah ada yang akan dipakai di dalam project. Dengan
asumsi bahwa tidak ada file yang dipakai maka kita klik NEXT yang
akan membawa kita ke jendela seperti gambar 7.
Gambar 7. Memilih IC FPGA yang dipakai dalam project
4. Pada jendela ini kita harus menentukan tipe dari devais yang
dipakai untuk implementasi rangkaian yang dibuat. Pada pilihan
target device family pilihlah Cyclone II. Pada pilihan list of
available devices pilihlah EP2C20F484C7 yaitu IC FPGA yang dipakai
pada Altera DE1 Development board. Klik NEXT yang akan memberikan
jendela seperti gambar 8.
Gambar 8. Menentukan EDA tools dari vendor lain.
5. Kita dapat memilih program (any third-party tools/EDA tools) yang
akan dipakai yang bukan merupakan buatan dari Altera. Karena kita
hanya akan menggunakan Quartus II tools, kita tidak perlu memilih
tools yang lain. Klik NEXT.
6. Ringkasan (summary) dari pengaturan (settings) yang kita lakukan
akan muncul seperti pada gambar 9. Klik FINISH, yang akan membawa
kita kembali ke jendela utama Quartus II tetapi dengan LIGHT sudah
tertulis sebagai project yang aktif seperti terlihat pada gambar
10.
Gambar 9. Ringkasan dari pengaturan New Project Wizard.
Gambar 10. Quartus II jendela utama project.
III. Mendesain Rangkaian Menggunakan VHDL
Pada tutorial ini, kita akan membuat rangkaian 2-way light
controller seperti pada gambar 11. Rangkaian ini dipakai untuk
mengendalikan satu lampu dari dua buah saklar yang berbeda X1 dan X2
dimana kondisi saklar tertutup dinyatakan sebagai logika 1 (HIGH).
Tabel kebenaran untuk rangkaian ini juga dapat dilihat pada gambar 11.
Dari tabel kebenaran ini sebenarnya terlihat bahwa rangkaian tersebut
mengimplementasikan fungsi Exclusive-OR. Tetapi untuk tutorial ini kita
akan memakai rangkaian seperti pada gambar 11. dengan input X1 dan X2
serta output F.
Gambar 11. Rangkaian 2-way light controller
Rangkaian pada gambar 11. itu dituliskan ke dalam bentuk kode VHDL
seperti pada gambar 12. Perhatikan bahwa nama ENTITY dari kode VHDL
harus LIGHT sama seperti yang dituliskan pada gambar 4 di atas (new
project wizard). Kode VHDL ini dapat ditulis menggunakan semua text
editor yang dapat menyimpan file dalam bentuk ASCII file atau dengan
menggunakan fasilitas Quartus II text editor. Meskipun nama filenya
dapat menggunakan sembarang nama, adalah suatu kebiasaan bagi praktisi
desainer rangkaian untuk menggunakan nama file sama dengan nama top-
level ENTITY. Nama file harus menggunakan ekstensi vhd yang menandakan
sebagai file VHDL. Jadi kita akan menggunakan nama LIGHT.vhd.
Gambar 12. Kode VHDL untuk 2-way light controller
III.1. Menggunakan Quartus II text editor
Pada bagian ini menjelaskan cara penggunaan Quartus II text
editor untuk membuat file VHDL yang akan disimpan dengan nama
LIGHT.vhd.
Pilih menu File > New untuk membuka jendela seperti gambar 13.
pilih VHDL file dan klik OK. Langkah ini akan membuka jendela text
editor. Langkah yang pertama adalah memberi nama untuk file yang
akan dibuat. Pilih menu FILE > Save as, akan muncul jendela seperti
gambar 14. Pada bagian Save as type, pilihlah VHDL file. Pada kotak
bagian nama file ketiklah LIGHT. Berikan tanda checkmark pada
bagian Add file to current project. Klik Save dimana file ini akan
disimpan di dalam direktori introtutorial dan akan muncul jendela
text editor seperti pada gambar 15. Tulislah kode VHDL pada gambar
12 dan kemudian simpanlah file ini dengan memilih menu File > Save
atau dengan mengunakan shortcut Ctrl-S.
Quartus II text editor mempunyai dua fitur yang membantu
kemudahan penulisan kode VHDL. Pertama, editor dapat menampilkan
tipe-tipe dari pernyataan VHDL yang berbeda menggunakan warna yang
berbeda. Kedua, editor dapat secara otomatis melakukan indent pada
teks di baris yang baru sehingga sesuai dengan teks baris
sebelumnya.
Gambar 13. Memilih jenis file VHDL
Gambar 14. Memberi nama file.
Gambar 15. Jendela Quartus II text editor
III.1.1. Menggunakan VHDL template
Para desainer rangkaian (terlebih yang baru belajar)
terkadang sulit mengingat syntax dari kode VHDL. Untuk membantu
para desainer, Quartus II text editor menyediakan kumpulan dari
VHDL template. Template ini memberikan bermacam-macam tipe
pernyataan VHDL seperti ENTITY declaration, CASE statement, dll.
III.2. Menambahkan file desain ke dalam project
Seperti yang telah disebut pada gambar 6, anda dapat
memberitahukan kepada software Quartus II file-file desain yang
mana yang dipakai sebagai bagian dari project. Untuk melihat daftar
dari file yang sudah termasuk di dalam LIGHT project dilakukan
dengan cara memilih Assignments > settings, muncul jendela seperti
pada gambar 16. Pada kotak di bagian kiri, klik pada item Files.
Cara yang lain untuk melakukan pemilihan ini adalah melalui menu
Project > Add/Remove Files pada jendela utama project.
Jika anda menggunakan Quartus II text editor untuk membuat file
VHDL dan sudah menandai kotak yang berlabelkan Add Flie to current
project seperti yang sudah dijelaskan pada bagian III.1. di atas,
file LIGHT.vhd sudah terdaftar di dalam project. Jadi, apabila anda
tidak menggunakan Quartus II text editor pada saat menuliskan file
LIGHT.vhd, anda harus meletakkan file LIGHT.vhd itu ke dalam
direktori introtutorial. Untuk menambahkan file ini ke dalam
project, pilihlah (klik) File name: ... button di gambar 16. untuk
menampilkan jendela baru seperti pada gambar 17. Pilihlah
(select/highlight) file LIGHT.vhd dan klik OPEN. File yang dipilih
akan tampil dalam Files window seperti pada gambar 16. Klik OK
untuk menambahkan file LIGHT.vhd ke dalam project.
Gambar 16. Jendela setting
Gambar 17. Memilih file.
IV. Mengkompilasi (compile) Rangkaian
Kode VHDL di dalam file LIGHT.vhd diproses oleh kompiler yang
menganalisa kode-kode yang ditulis, mensintesa rangkaian dan membuat
implementasi untuk chip target. Untuk menjalankan compiler, pilihlah
Processing > Start Compilation atau dengan meng-klik icon di
toolbar. Selama proses kompilasi berlangsung, proses dan hasil
kompilasi ini dilaporkan pada jendela bagian kiri dari jendela utama
Quartus II. Kompilasi yang sukses ataupun yang gagal diinformasikan
melalui pop-up box. Klik OK maka tampilan jendela Quartus II akan
seperti pada gambar 18. Jendela pesan (message) di bagian bawah
tampilan Quartus II menampilkan pesan-pesan selama proses kompilasi
berlangsung. Apabila terjadi error, pesan error juga ditampilkan di
sini.
Gambar 18. Tampilan setelah proses kompilasi berhasil
Ketika proses kompilasi selesai, Quartus II memberikan laporan
hasil kompilasi secara otomatis seperti terlihat pada gambar 18 di
atas. Hasil kompilasi ini juga dapat dibuka kembali di waktu lain
dengan memilih menu Processing > Compilation Report atau dengan memilih
icon (Compilation Report) di toolbar.
IV.1. Error
Software Quartus II selalu menampilkan pesan pada jendela pesan
selama proses kompilasi berlangsung. Jika file desain VHDL benar
maka akan muncul pesan yang menyatakan proses kompilasi sukses dan
tidak ada error dalam desain. Jika dalam proses kompilasi ditemukan
adanya error (meskipun hanya satu error saja) maka setiap pesan
yang berhubungan dengan error tersebut ditampilkan di jendela pesan
(lihat gambar 19). Apabila kita melakukan double-click pada pesan
error maka pernyataan VHDL di jendela text editor yang menyebabkan
error tersebut akan di Highlight (lihat gambar 20). Selain error,
kompiler mungkin juga memberikan pesan warning. Pernyataan VHDL
yang menyebabkan terjadinya warning ini dapat dicari dengan cara
seperti di atas (double-click pada pesan warning). Apabila kita
ingin mendapatkan informasi lebih dalam/jelas tentang pesan error
atau warning yang terjadi, dapat dilakukan dengan cara memilih
pesan tersebut kemudian menekan tombol F1.
Untuk mendemonstrasikan terjadinya error, bukalah file
LIGHT.vhd yang sudah anda tulis sebelumnya dan hapuslah tanda
semicolon (titik-koma) pada pernyataan yang mendefinisikan fungsi
f. Langkah ini dilakukan untuk mengilustrasikan error pengetikan
yang sering terjadi. Simpanlah perubahan ini dan lakukan proses
kompilasi kembali. Karena terdapat error maka software Quartus II
akan menampilkan sebuah jendela (pop-up window) yang menyatakan
bahwa proses kompilasi gagal. Setelah kita klik OK pada pop-up
window tersebut, Ringkasan laporan hasil kompilasi seperti yang
terlihat pada gambar 19 akan muncul yang menyatakan bahwa proses
kompilasi gagal.
Gambar 19. Laporan hasil kompilasi yang gagal
Gambar 20. Pernyataan VHDL yang berhubungan dengan error.
V. Menghubungkan Pin IC FPGA
Selama proses kompilasi, kompiler Quartus II bebas menentukan pin
IC FPGA yang dipilih sebagai input dan output dari desain anda. Pada
umumnya, desainer rangkaian harus menentukan sendiri pin-pin IC FPGA
yang dipakai sebagai input atau output dalam desain mereka. Hal ini
untuk menyesuaikan dengan desain tata letak komponen serta jalur
interkoneksi antar komponen dalam PCB (Printed Circuit Board) atau
untuk menyesuaikan dengan development board yang dipakai, misal: Altera
DE1 board. Tutorial ini dibuat dengan menggunakan Altera DE1 board
sebagai target dimana pin-pin dari IC FPGA sudah terhubung dengan
komponen-komponen yang sudah terangkai di dalam development board
tersebut.
Untuk melakukan pengaturan pin-pin IC FPGA yang dipakai, dilakukan
melalui fitur Assignment Editor dengan memilih menu Assignment >
Assignment Editor. Setelah pilihan ini dilakukan, akan muncul jendela
seperti pada gambar 21.
Gambar 21. Jendela Assignment Editor.
Pada bagian kategori (category) pilihlah pin kemudian double-click
pada kolom yang berlabelkan To pada bagian yang tertulis <>. Drop-
down menu seperti pada gambar 22 akan muncul. Pilihlah X1 sebagai pin
pertama yang akan di-assign sehingga X1 akan tampil pada tabel seperti
pada gambar 24. Setelah itu lakukan double-click pada kotak di sebelah
kanan dari X1 yaitu di kolom yang berlabelkan Location. Saat itu akan
muncul drop-down menu seperti pada gambar 23. Cari dan pilihlah
PIN_L22. Cara yang lain untuk melakukan proses ini adalah langsung
menuliskan nama dari pin IC pada kolom bagian Location. Lakukanlah
prosedur yang sama untuk mengatur input X2 ke PIN_L21 dan output f ke
PIN_R20. Hasil yang didapatkan akan tampak seperti pada gambar 24.
Gambar 22. Drop-down menu yang berisikan daftar input dan output rangkaian
Gambar 23. Daftar pin-pin IC FPGA pada Altera DE1 board
Gambar 24. Hasil dari pengaturan pin IC FPGA
Pin-pin IC FPGA pada Altera DE1 board sudah terangkai tetap
sedangkan pengguna DE1 board harus melakukan prosedur pin assignment
untuk setiap desain yang dibuat. Prosedur yang sudah dijelaskan di atas
akan sangat menyita waktu apabila banyak pin-pin yang dipakai dalam
desain (pin IC FPGA pada DE1 board sebanyak 484 pin) apalagi kalau
dalam setiap desain kita harus mengulang prosedur ini. Untuk itu
software Quartus II menyediakan satu fitur dimana user dapat melakukan
export atau import file pin assignment dari sebuah special file format
daripada membuatnya secara manual melalui prosedur assignment editor.
Special file format yang dapat dipergunakan untuk keperluan ini
disebut sebagai "comma separated value (CSV)" format yaitu format file
teks seperti pada umumnya yang berisikan nilai-nilai yang dipisahkan
dengan tanda koma. File format ini sering dipakai berhubungan dengan
program Microsoft Excel tetapi file ini dapat pula dibuat menggunakan
program editor teks ASCII biasa. Format file untuk contoh project
sederhana 2-way light controller adalah
To, Location
X1, PIN_L22
X2, PIN_L21
F, PIN_R20
Apabila lebih banyak pin yang dipakai, user hanya perlu menambahkan pin-
pin yang lain yang ditulis sebagai baris yang baru. File ini kemudian
di-import ke dalam project pada Quartus II.
Apabila user sudah membuat pin assignment untuk suatu project,
user dapat meng-export (menyimpan) pin assignment itu untuk dipakai
pada project yang lain. Untuk mencoba fitur ini bukalah kembali
assignment editor, yang akan memberikan tampilan seperti gambar 24 di
atas. Saat ini pilihlah menu File > Export yang akan membawa kita
kepada jendela (window) seperti gambar 25. Tampak di jendela ini bahwa
file LIGHT.csv siap untuk di-export. Klik export, maka file LIGHT.csv
akan disimpan di dalam direktori introtutorial.
Gambar 25. Meng-export pin assignment.
Selanjutnya, user dapat meng-import file pin assignment ini
melalui menu Assignment > Import Assignments. Langkah ini akan membuka
kotak dialog seperti pada gambar 26. Untuk memilih file csv yang akan
di-import, ketik nama file-nya lengkap dengan ekstension csv beserta
direktorinya kemudian pilih OK atau dapat pula dengan cara mencari
(browse) dan memilih file yang diinginkan.
Gambar 26. Meng-import file pin assignment.
Untuk memberikan bantuan kepada pengguna DE1 board (khususnya
untuk desain yang besar), Altera sudah menyediakan pin assignment
lengkap untuk DE1 board dalam file DE1_pin_assignment.csv yang terdapat
di dalam CD-ROM yang menyertai DE1 board atau juga dapat di-download
dari Altera DE1 webpage. Apabila user ingin memakai pin assignment ini
maka di dalam pembuatan desain, user harus menggunakan nama-nama yang
sama seperti yang terdapat pada file DE1_pin_assignment.csv.
VI. Mensimulasikan Desain
Sebelum mengimplementasikan rancangan desain ke dalam IC FPGA,
sebaiknya desain tersebut disimulasikan terlebih dahulu untuk memeriksa
kebenarannya. Software Quartus II dilengkapi dengan fitur simulasi yang
dapat dipakai untuk men-simulasi-kan fungsi/kerja dari rangkaian yang
didesain. Sebelum suatu rangkaian dapat di-simulasi-kan, terlebih
dahulu harus dibuat waveforms yang disebut sebagai test vectors untuk
membangkitkan sinyal-sinyal input dan menentukan output dari desain
juga kemungkinan diperlukannya test poin di dalam rangkaian yang ingin
diamati oleh desainer rangkaian. Simulator akan mengaplikasikan test
vector ini kepada rangkaian model dan mencatat semua respon yang
didapat. Kita akan menggunakan Quartus II waveform Editor untuk
menggambar test vector yaitu dengan melakukan langkah-langkah:
1. Buka jendela Waveform Editor dengan memilih File > New, yang akan
memberikan jendela seperti pada gambar 27. Pilihlah Vector Waveform
File dan klik OK.
Gambar 27. Mempersiapkan Waveform File.
2. Jendela Waveform Editor akan muncul seperti gambar 28. Simpanlah
file ini dengan nama LIGHT.vwf (perhatikan bahwa nama file ini
langsung ditampilkan). Aturlah panjang simulasi antara 0 s/d 200 ns
dengan memilih Edit > End Time dan ketiklah 200 ns di dalam kotak
dialog yang muncul. Pilihlah View > Fit in Window supaya dapat
melihat semua daerah antara 0 s/d 200 ns pada jendela simulasi
seperti pada gambar 29.
Gambar 28. Jendela Waveform Editor
Gambar 29. Waveform Editor setelah pengaturan panjang simulasi.
3. Proses berikutnya adalah memasukkan titik (node) input dan output
rangkaian yang akan disimulasikan. Klik Edit > Insert > Insert Node
or Bus untuk membuka jendela seperti pada gambar 30. User dapat
mengetik nama dari sinyal (pin) satu per satu pada kotak nama
tetapi prosedur ini dapat dilakukan lebih mudah dengan cara meng-
klik button Node Finder untuk membuka jendela baru seperti gambar
31. Fitur Node Finder ini mempunyai pilihan mode pencarian (filter)
titik (node) yang akan dicari. Karena yang akan kita pakai hanya
pin input dan output maka filter diatur untuk Pins: all. Kemudian
klik List button untuk mencari titik input dan output yang ada
dalam desain.
Pilihlah (Klik) sinyal X1 di dalam kotak Nodes Found dan klik Tanda
> untuk menambahkan sinyal X1 ke dalam kotak Selected Nodes.
Lakukan hal yang sama untuk sinyal X2 dan F, hasil pengaturan ini
akan tampak seperti pada gambar 32. Klik OK untuk menutup jendela
Node Finder dan kemudian klik OK pada jendela gambar 30 untuk
kembali ke jendela Waveform Editor seperti pada gambar 33. Jika
user melakukan urutan pengaturan sinyal berbeda dengan yang ada
pada gambar 33, user dapat melakukan pengaturan kembali dengan cara
memilih (klik) Node Name (pada kolom bagian Name). Sinyal
(Waveform) yang dipilih akan di-highlight, klik pada Waveform dan
bawalah ke atas atau ke bawah sesuai yang diinginkan oleh user.
Gambar 30. Kotak dialog untuk memasukkan Node atau Bus
Gambar 31. Jendela Node Finder awal.
Gambar 32. Jendela Node Finder setelah pencarian Node
Gambar 33. Jendela Waveform Editor dengan sinyal yang akan disimulasikan
4. Sekarang kita akan menentukan nilai logika dari sinyal input X1 dan
X2 selama simulasi berlangsung. Nilai logika output akan dihasilkan
secara otomatis dari simulator. Untuk mempermudah proses menggambar
Waveform, Tampilan Waveform Editor memberikan GUIDELINE vertikal
dan menyediakan fitur supaya GUIDELINE ini hanya bergeser pada GRID
tertentu dengan melakukan pengaturan melalui menu View > Snap to
Grid.
Perhatikan juga adanya garis vertikal berwarna biru (gambar 33)
yang dapat digeser secara horisontal dengan cara men-drag ujung
atasnya (kotak di atas garis). Garis referensi ini dipakai untuk
menganalisa pewaktuan (TIMING) dari rangkaian. Geserlah ke posisi 0
ns.
Waveform (bentuk sinyal) dapat digambar dengan menggunakan
Selection Tool yang diaktifkan dengan cara memilih icon pada
toolbar atau dengan memilih icon pada Waveform Editor Tool.
Untuk melakukan simulasi pada rangkaian yang besar/kompleks, adalah
penting untuk memilih atau memberikan kemungkinan-kemungkinan input
yang cukup valid (tidak terlalu banyak mengingat keterbatasan
panjang simulasi) yang dapat merepresentasikan semua kemungkinan
input yang mungkin terjadi.
Pada contoh tutorial ini kita dapat melakukan simulasi untuk semua
kemungkinan logika input yang ada (4 kemungkinan) seperti pada
gambar 11 di depan. Kita akan menggunakan 4 buah interval 50 ns
untuk mengaplikasikan 4 test vector. Kita dapat membuat/memberikan
bentuk sinyal input dengan cara memilih (klik) pada nama sinyal
(misal: X1). Ketika sinyal sudah dipilih, perintah edit di dalam
Waveform Editor dapat dipakai untuk menggambar bentuk sinyal.
Perintah tersebut dapat membuat nilai suatu sinyal menjadi LOW (0),
HIGH (1), unknown (X), HIGH impedance (Z), membalik logika (INV)
atau membuat sinyal CLOCK. Setiap perintah itu dapat diaktifkan
melalui menu Edit > Value atau melalui toolbar pada Waveform
Editor. Menu Edit juga dapat diakses dengan melakukan RIGHT-CLICK
pada Waveform Name.
Berikan logika 0 kepada X1 untuk interval waktu 0 s/d 100 ns.
Kemudian berikan logika 1 kepada X1 untuk interval waktu 100 s/d
200 ns. Pengaturan ini dilakukan dengan cara meng-klik mouse pada
permulaan interval dan membawanya (drag) sampai pada akhir interval
yang dikehendaki. Langkah ini akan menyebabkan interval yang
dipilih akan di-HIGHLIGHT kemudian pilih logika (0 atau 1) yang
diinginkan pada toolbar. Buatlah X2 berlogika 1 pada interval 50
s/d 100 ns dan juga interval 150 s/d 200 ns. Hasil pengaturan ini
akan tampak seperti pada gambar 34. Perhatikan bahwa output F
ditampilkan dengan nilai UNKNOWN pada saat ini karena baru akan
didapatkan setelah simulasi dijalankan. Simpanlah file ini.
Gambar 34. Pengaturan nilai logika input.
VI.1 Performing the Simulation
Rangkaian yang telah dibuat/didesain, dapat disimulasikan
dengan dua macam cara. Model simulasi yang pertama adalah simulasi
yang mengasumsikan/menganggap semua Logic Element dan jalur
Interkoneksi di dalam FPGA sebagai komponen ideal sehingga tidak
ada propagasi delay selama sinyal berjalan di dalam rangkaian
(delay = 0). Model simulasi ini disebut sebagai Functional
Simulation. Model simulasi yang kedua memperhitungkan semua
propagasi delay yang ada sehingga disebut sebagai Timing
Simulation. Pada umumnya Functional Simulation dipakai untuk
memeriksa kebenaran fungsi dari rangkaian yang dibuat. Simulasi ini
membutuhkan waktu yang lebih singkat karena simulasi dapat
dijalankan hanya menggunakan fungsi logika yang merepresentasikan
rangkaian.
VI.1.1 Functional Simulation
Untuk melakukan Functional Simulation, pilihlah menu
Assignments > Settings untuk membuka jendela Settings. Pada kotak
di bagian kiri jendela ini, pilihlah (klik) Simulator Settings
untuk mendapatkan jendela seperti pada gambar 35, pilihlah
FUNCTIONAL pada bagian Simulation Mode dan klik OK. Simulator
Quartus II akan mengambil input dan menghasilkan output seperti
yang didefinisikan pada file LIGHT.vwf. Sebelum menjalankan
prosedur Functional Simulation, user harus membuat netlist untuk
simulasi tersebut yaitu dengan cara memilih Processing > Generate
Functional Simulation Netlist. Simulasi dijalankan dengan memilih
Processing > Start Simulation atau memilih icon pada
toolbar. Pada akhir dari simulasi, Quartus II akan
menginformasikan bahwa simulasi sudah berhasil dan akan
menampilkan laporan hasil simulasi seperti pada gambar 36. Jika
jendela laporan simulasi tidak menampilkan seluruh jangkauan waktu
simulasi, klik pada jendela laporan untuk memilihnya dan pilihlah
View > Fit in Window. Perhatikan bahwa output f yang didapatkan
sesuai dengan gambar 11 di atas.
Gambar 35. Menentukan mode simulasi.
Gambar 36. Hasil dari Functional Simulation.
VI.1.2 Timing Simulation
Setelah mendapatkan bahwa rangkaian yang didesain sudah benar
secara fungsional, user harus melakukan Timing Simulation untuk
melihat bagaimana kerja rangkaian tersebut ketika
diimplementasikan secara nyata kepada IC FPGA yang dipakai.
Pilihlah Assignments > Settings > Simulator Settings untuk
mendapatkan jendela seperti gambar 35. tetapi pilihlah TIMING
sebagai mode simulasinya dan klik OK. Jalankan kembali simulator
yang akan memberika jendela Waveforms seperti pada gambar 37.
Perhatikan bahwa terjadi delay pada output f ketika sinyal input
X1 dan X2 berubah keadaan. Delay ini dihasilkan akibat propagasi
sinyal di Logic Element dan Interkoneksi di dalam IC FPGA.
Gambar 37. Hasil dari Timing Simulation.
VII. Memprogram dan Mengkonfigurasikan IC FPGA
IC FPGA harus diprogram dan dikonfigurasi untuk
mengimplementasikan rangkaian yang sudah dibuat. File konfigurasi sudah
dihasilkan oleh kompiler Quartus II Assembler module. Altera DE1 board
menyediakan dua cara konfigurasi yang disebut sebagai mode JTAG (Joint
Test Action Group) dan AS (Active Serial). Data konfigurasi dikirim
dari komputer ke board melalui kabel melalui USB port. Untuk melakukan
koneksi ini, USB-Blaster driver harus sudah ter-install. Sebelum
menggunakan Alter DE1 board, pastikan bahwa kabel USB terhubung dengan
baik dan saklar power supply sudah pada posisi on.
Pada mode JTAG, data konfigurasi dikirim langsung ke dalam IC
FPGA. Data konfigurasi pada mode JTAG ini akan tetap selama power
supply on. Mode yang kedua yaitu mode AS mengirimkan data konfigurasi
kepada devais konfigurasi pada DE1 board (Flash Memory) sehingga data
konfigurasi ini tidak akan hilang pada saat Power off. Data konfigurasi
ini dikirim ke IC FPGA pada saat Power-up atau Reconfiguration.
Pemilihan mode konfigurasi ini dilakukan dengan mengatur saklar
RUN/PROG pada DE1 board. Untuk mode JTAG, saklar diatur pada posisi RUN
sedangkan posisi PRO untuk memilih mode AS.
VII.1 JTAG Programming
Proses konfigurasi dan pemrograman dilakukan dengan mengatur
saklar RUN/PROG pada posisi RUN kemudian pilihlah menu Tools >
Programmer untuk membuka jendela seperti pada gambar 38. Pada
jendela pemrograman ini dilakukan pengaturan hardware pemrograman
dan mode yang dipakai. Pilihlah mode JTAG dan USB-Blaster sebagai
hardware pemrograman. Apabila USB-Blaster belum dipilih sebagai
default, perlu dilakukan hardware setup. Pilihlah USB-blaster pada
bagian "Currently selected hardware" di jendela pada gambar 39.
Gambar 38. Jendela pemrograman.
Perhatikan apakah configuration file "light.sof" sudah tampak pada
jendela gambar 38? Jika tidak maka pilihlah Add Flie button dan
pilihlah file tersebut. File ini adalah hasil kompilasi desain yang
berisikan data-data yang diperlukan untuk meng-konfigurasikan FPGA.
Ekstensi sof merupakan kepanjangan dari SRAM Object File. Pastikan
FPGA yang dipilih adalah EP2C20F484C7 yaitu FPGA yang ada di DE1
board. Pilihlah (click) kotak pilihan Program/Configure sehingga
jendela pada gambar 38 berubah menjadi seperti pada gambar 40.
Gambar 39. Jendela Hardware Setup.
Gambar 40. Jendela pemrograman yang baru.
Kemudian tekan tombol start pada jendela gambar 40. LED indikator pada
DE1 board akan menyala ketika data konfigurasi telah di-download
sempurna. Apabila terjadi error (proses pemrograman gagal), pastikan
DE1 board sudah mendapatkan supply daya dengan benar.
VII.2. Active Serial Mode Programming
Pada mode pemrograman ini, data konfigurasi akan di-download ke
chip (IC) konfigurasi yang terdapat pada DE1 board yaitu EPCS4. Untuk
melakukan konfigurasi, pilihlah Assignments > Device, jendela pada
gambar 41 akan terbuka, pilihlah tombol Device and Pin Options untuk
membuka jendela gambar 42. Setelah itu pilihlah Configuration tab untuk
mendapatkan jendela pada gambar 43. Pada kotak Configuration Device
pilihlah EPCS4 kemudian tekan OK. Setelah kembali ke jendela gambar 41,
pilihlah OK. Lakukan kompilasi ulang.
Gambar 41. Jendela pemilihan Device.
Gambar 42. Jendela Device and Pin options.
Gambar 43. Memilih Device konfigurasi.
Prosedur selanjutnya yang harus dilakukan adalah sama seperti pada mode
JTAG. Pilihlah Tools > Programmer untuk membuka jendela seperti gambar
38. Pada kotak Mode pilihlah Active Serial Programming. Jika mode
sebelumnya adalah mode JTAG, maka akan jendela peringatan seperti pada
gambar 44 yang menanyakan apakah anda akan menghapus semua Device.
Pilih Yes. Saat ini, jendela pemrograman seperti gambar 45 akan tampil.
Pastikan Hardware Setup menggunakan USB-Blaster. Jika file konfigurasi
belum terdaftar, tekan Add File. Jendela gambar 46 akan tampil.
Pilihlah file light.pof di dalam direktori introtutorial dan tekan
(click) Open. Hasil yang didapatkan adalah file light.pof akan
terdaftar pada jendela pemrograman. File ini adalah data konfigurasi
dari kompilasi desain yang akan di-download ke Device konfigurasi
EPCS4. Ekstensi .pof merupakan kependekan dari Programmer Object File.
Setelah kembali ke jendela pemrograman, pilihlah kotak pilihan
Program/Configure seperti pada gambar 47.
Gambar 44. Menghapus pilihan Device sebelumnya.
Gambar 45. Jendela pemrograman dengan mode Active Serial Programming.
Gambar 46. Memilih file konfigurasi.
Gambar 47. Jendela pemrograman yang baru.
Pindahkan posisi saklar RUN/PROG pada DE1 board ke posisi PROG. Tekan
tombol START pada jendela pemrograman (gambar 47). LED indikator pada
DE1 board akan menyala ketika data konfigurasi sudah selesai ditransfer
juga kotak progress pada gambar 47 akan memberikan menampilkan status
100% seperti tampak pada gambar 48.
Gambar 48. Jendela pemrograman setelah melakukan transfer data.
VIII. Pengujian Rangkaian
Setelah men-download data konfigurasi ke dalam FPGA, sekarang anda
dapat menguji rangkaian yang sudah dibuat. Rubahlah posisi saklar
RUN/PROG ke posisi RUN, cobalah semua kemungkinan logika untuk masukan
X1 dan X2 dengan mengatur posisi saklar SW1 dan SW2. Amati hasil
keluaran dari desain anda, bandingkan dengan tabel kebenaran pada
gambar 11.
Jika ingin melakukan perubahan pada rangkaian anda, tutuplah
jendela pemrograman. Kemudian ubahlah file VHDL anda, lakukan kompilasi
pada file VHDL yang baru (jangan lupa disimpan terlebih dahulu), dan
akhirnya ulangi prosedur pemrograman ke FPGA seperti yang telah
dijelaskan di atas.