Download - Introduction to FPGA
1
MODUL 2 PENGENALAN DESAIN MENGGUNAKAN FPGAYogi Salomo Mangontang Pratama (13511059)
Asisten: Tanggal Percobaan: 3/10/2012
EL2195-Praktikum Sistem DigitalLaboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika
Abstrak
Percobaan kedua mengenai Pengenalan Desain Menggunakan FPGA meliputi beragam percobaan yang bertujuan memperkenalkan perancangan sistem digital yang bertujuan untuk FPGA. Percobaan perancangan dilakukan dengan merancang 4-bit ADDER, baik secara skematik maupun menggunakan VHDL. Serta kemudian hasil rancangan disimulasikan baik pada Quartus, Modelsim menggunakan test bench, maupun diaplikasikan secara langsung kepada papan FPGA.
Kata kunci : FPGA, skematik, VHDL, Quartus, testbach.
1. PENDAHULUAN
Percobaan kali ini bertujuan untuk memperkenalkan perancangan digital. Perancangan dilakukan baik secara skematik maupun VHDL. FPGA yang digunakan adalah DE2, software perancangan yang digunakan adalah QUARTUS II 9 sp.2 Web Edition, serta Modelsim untuk melakukan testbench.
Adapun tujuan dari praktikum ini antara lain :
1. Mempelajari teknik perancangan rangkaian digital dengan target FPGA.
2. Dapat melakukan perancangan rangkaian digital dengan target FPGA baik menggunakan pendekatan skematik maupun bahasa VHDL.
2. STUDI PUSTAKA
2.1 FPGA
FPGA development board adalah sebuah alat yang berfungsi untuk mensimulasikan hasil rancangan digital dalam bentuk LED
ataupun seven segment, yang perancangannya dilakukan dengan software QUARTUS, dengan tahapan umum sebagai berikut :
1. Buat desain dengan text editor ataupun graphic editor
2. Simpan desain yang telah dibuat
3. Menentukan desain mana yang dijadikan Project
4. Menentukan device yang akan dihubungkan
5. Kompilasi dan membuat simbol-simbol standar
6. Periksa apakah perlu disimulasi. Apabila tidak, langsung lanjut ke langkah delapan
7. Buat waveform dan simulasikan
8. Menentukan koneksi Pin dan Kompilasi
9. Download ke device
Berbagai jenis FPGA board antara lain DE1, DE2, DE2 70, ALTERA UP2.
2.2 FULL ADDER
Full Adder adalah komponen yang berfungsi untuk menambahkan bit pada rangkaian digital. Keunggulan Full Adder dari Half Adder adalah kemampuannya menampung dan menjumlahkan bit CARRY-in (Cin) yang berasal dari CARRY-out (Cout) tahapan sebelumnya. Secara matematis, rumus dari Full Adder antara lain :
S=Cin⊕ (A⊕B )
C out=Cin (A⊕B )+(A .B)
Dengan tabel kebenaran berupa :
2
A B Cin S Cout
0 0 1 0 00 0 0 1 00 1 1 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1TABEL 2.2.1 Tabel Kebenaran Full Adder
Terdapat beberapa jenis rangkaian Full Adder, antara lain Parallel Adder, Look Ahead Carry Adder, dan Carry Save Adder.
3. METODOLOGI
Alat-alat yang digunakan dalam percobaan ini antara lain :
1. Komputer yang telah ter-install program Quartus II
2. FPGA development board, tipe ALTERA UP2 atau DE1 beserta perlengkapannya yang meliputi :
Board FPGA tipe UP2, DE1, DE2, atau DE2-70
Catu Daya+ Kabel dan konektor tambahan
Kabel downloader ‘ByteBlaster II’ dan USB-Blaster.
3.1 PERCOBAAN 2A : MENDESAIN FULL ADDER DENGAN SKEMATIK
3.1.1 Membuat Projek Baru Menggunakan Quartus II 9.0 sp2
Web Edition
3.1.2 Memilih dan Menempatkan Komponen
Buat suatu folder baru dalam folder PraktikumSisdig ( jika belum ada
buatlah terlebih dahulu. Dan dalam folder tersebut buat dua folder
yang bernama Tutorial 1 dan Tutorial 2
Jalankan Quartus II 9.0 sp2 Web Edition, klik File -> New Project
Wizard, kemudian klik Next pada jendela Introduction
Klik Finish karena untuk langkah berikutnya menggunakan setting yang default
Lewati jendela bagian Add Files dengan mengklik Next, kemudian pada bagian "Family" dan
"Available Device" masukkan nama yang sesuai dengan yang tertera pada manual board dari
masing-masing kelompok
Pada bagian directory, tekan tombol "..." yang ada di sebelah kanan dan carilah folder yang telah
dibuat sebelumnya kemudian tekan tombol Open, dan pada bagian nama project dan top level entity
tuliskan nama yang sama dengan folder
3
3.1.3 Menambahkan Hubungan untuk Membentuk Net
3.1.4 Pelabelan Net dan pin I/O
3.1.5 Menetapkan I/O pin pada kaki FPGA
klik File -> New kemudian pilih Block Diagram/ Schematic file sebagai pilihan desain kemudian
klik OK. Simpan file tersebut sebagai Tutorial2.bdf
Pilih File -> Page Setup kemudian pilih letter
sebagai ukuran kertas
Buka jendela Symbol Tools dengan mengklik ikon bergambar gerbang
AND pada bagian kiri jendela
cari komponen XOR pada folder primitives dan klik dua kali pada nama komponen tersebut. cari posisi yang tepat kemudian klik 1 kali pada posisi tersebut untuk
menempatkan gerbang XOR. Tekan Esc bila telah selesai
Ulangi langkah di atas untuk menempatkan gerbang AND 2 masukan,
gerbang OR 2 masukan, serta gerbang NOT sesuai yang dibutuhkan
Buka kembali jendela Symbol Tools kemudian buka folder Pin, pilih jenis
Input maupun Output dan tempatkan sesuai dengan rankaian yang diinginkan
Pilih Orthogonal Node Tool pada bagian toolbar yang memiliki simbol
siku untuk menggambarkan kabel
Arahkan pointer mouse ke salah satu sisi yang akan dihubungkan lalu klik kiri dan tahan sampai ke ujung
lain yang diinginkan, kemudian lepas tombol mouse anda
Bentuk sebuah rangkaian sesuai dengan referensi gambar yang
terdapat dalam modul praktikum
Klik dua kali pada tiap port input dan output kemudian rubah nama dari pin sesuai yang ada
pada gambar. A B C untuk input dan SUM CARRY A_OUT B_OUT C_OUT untuk output. nilai port
masukan biarkan default bernilai VCC
4
3.1.6 Pembuatan Netlist untuk simulasi
3.1.7 Membuat Waveform masukan
Simpan skematik kemudian pilih Processing -> Start -> Start Analysis & Synthesis atau klik CTRL+K.
Pastikan tidak ada error!
Pilih Assignment -> Pin planner, akan terbuka sebuah jendela baru dimana sebelah atas akan ada gambar FPGA dengan posisi kaki-kakinya dan di bawah ada
daftar berisi port input-output skematik kita
Klik Direction untuk mengurutkan pin. kemudian pada kolom Location double-klik kiri kolom yang sebaris dengan port yang akan ditinjau dan akan
muncul daftar kaki FPGA yang bisa dipakai
Pada percobaan ini kita menggunakan switch sebagai input dan LED pada 7Segment untuk keluaran. Pada DE2 apabila switch berada di bawah berarti bernilai
0 dan di atas bernilai 1
Sementara LED 7-Segment bernilai 1 saat menyala dan 0 saat mati. Hubungkan port dengan kaki FPGA yang sesuai kaki komponen yang telah dilampirkan
pada referensi
Klik Processing -> Simulator Tool, kemudian ubah Simulation Mode menjadi Functional, klik Generate Functional Simulation Netlist. Pastikan tidak ada error!
Klik pada check box di sebelah kiri "Overwrite Simulation input file with simulation result" agar setiap kita melakukan simulasi hasilnya langsung
ditampilkan pada file simulasi kita
Klik tombol Open pada bagian bawah jendela Simulator Tool. anda akan mendapatkan jendela baru yang
memiliki nama default waveform1.vwf
Klik kanan pada bagian kolom Name jendela tersebut dan pilih Insert -> Insert Node or Bus -> Node Finder.
Pilih bagian Filter -> Pins: all kemudian klik kiri pada tombol List
Klik kanan pada tombol >> untuk mensimulasikan seluruh port. Klik
detach window kemudian simpan file simulasi ini dengan nama Tutorial1.vwf
Klik Simulator Tool, kemudian pada kolom simulation input pilih file
Tutorial1.vwf sebagai input simulasi
5
3.1.8 Mengimplementasikan Desain
3.2 MENDESAIN FULL ADDER DENGAN PENDEKATAN BAHASA VHDL
3.2.1 Membuat Projek Baru Kembali
3.2.2 Memasukkan Desain VHDL
Klik File -> Open kemudian pilih Tutorial1.vwf untuk membuka kembali file yang telah
dibuat, kemudian klik kiri pada port masukan A pada kolom paling kiri file tersebut
Perhatikan pada bagian Project Navigator, bagian yang tadinya abu-abu menjadi biru (aktif). Klik
tombol Overwrite Clock untuk memberikan pulsa segiempat dengan periode tertentu
Pada jendela Clock, pilih Time Period -> Period kemudian isi
periode sebesar 10ns
Ulangi langkah-langkah di atas untuk port masukan B, dengan nilai Periode sebesar 20ns, dan untuk C
dengan periode sebesar 40ns
Pada jendela Simulator Tool pilih tombol Start untuk memulai simulasi. amati
hasil simulasi pada jendela Tutorial1.vwf dan analisa hasil yang didapatkan
Klik Processing -> Start Compilation untuk melakukan kompilasi terhadap file
Siapkan board FPGA Anda, pasang kabel catu daya dan kabel programmer pada
tempatnya masing-masing dan nyalakan board tersebut
Klik Tools -> Programmer untuk konfigurasi. Klik tombol Hardware Setup, pada bagian Hardware, klik USB-Blaster
untuk DE2, pada bagian Mode, pilih JTAG
Klik Add File dan carilah file Tutorial1.sof kemudian klik Open
apabila file teresebut tidak terlihat pada jendela utama
Sorot nama file, lakukan checklist pada kolom "Prgram/Configure", kemudian klik tombol Start untuk memprogram
FPGA
Coba kombinasikan masukan dari switch 1-3 yang merepresentasikan
masukan A, B, dan C. Analisa hasil yang didapat kemudian catat pada BCL
Buat project baru seperti yang telah dijelaskan pada langkah-langkah sebelumnya, beri nama dan top level entity : "modul2vhdl" kemudian simpan
pada directory Tutorial2
Klik Next, leewatkan jendela yang dapat digunakan untuk menambahkan file pendukung, lalu
kemudian pada bagian "Family" dan "Available Device pilih yang sesuai dengan FPGA Anda
6
3.3 MENDESAIN 4-BIT RIPPLE CARRY ADDER DENGAN VHDL
3.4 MENDESAIN 4-BIT ADDER DENGAN SKEMATIK
3.5 SIMULASI SEDERHANA MENGGUNAKAN MODELSIM
3.5.1 Memulai Simulasi dengan Menggunakan Modelsim ALTERA STARTER EDITION 6.4a
Klik File -> New , kemudian pilih VHDL File sebagai pilihan desain dan klik OK. Klik Detach Windows, lalu simpan file tersebut sebagai modul2vhdl.vhd
Anda akan mendapatkan jendela kosong tempat untuk menuliskan kode VHDL Anda, ketikkan
script yang telah diberikan pada modul praktikum kemudian simpan dengan menekan CTRL + S
Ulangi langkah-langkah pada Percobaan 2A mulai dari menetapkan I/O pin pada kaki FPGA. Catat
segala kejadian dan perbedaan dengan percobaan sebelumnya kemudian lakukan analisa
Buatlah folder dan project baru dengan nama project dan top-level
entity adder4bit.
Tambahkan file VHDL pada project tersebut dan tuliskan kembali kode
yang tertera pada Modul Praktikum, kemudian simpan file
Lakukan Simulasi secara fungsional seperlunya dan lihat apakah adder4bit bekerja seperti yang diharapkan. Catat
hasil percobaan dan lakukan analisis
Buat Project baru dengan nama project dan top-level entity adder4bit2
Kopi file pendukung yang bernama FullAdder.bsf dan FullAdder.bdf dari website labdasar ke dalam folder proyek
Anda
Tambahkan file skematik kosong ke dalam project Anda. Ketika membuka Symbol Tool, Anda akan mendapati
direktori baru yang bernama project, di dalamnya terdapat blok yang bernama FullAdder dan merupakan representasi
skematik dari file pendukung yang kita gunakan
Gunakan blok tersebut dan symbol lainnya untuk membuat rangkaian seperti pada gambar yang tertera pada modul
praktikum
Lakukan simulasi secara fungsional dan lihat apakah hasilnya sama dengan ketika menggunakan VHDL. Catat
hasil percobaan dan analisis segala yang terjadi pada percobaan
7
3.5.2 Menjalankan Simulasi dengan Menggunakan Modelsim ALTERA STARTER EDITION 6.4a
3.6 MEMBUAT TESTBENCH
Bukalah program Modelsim ALTERA STARTER EDITION 6.4a. Setelah muncul tampilan awal,
pilih Close untuk menutupnya
Klik File -> Change Directory pada baris menu untuk mengubah direktori folder kerja
Klik File -> New -> Library untuk membuat library baru. Atur dan isilah jendela yang muncul.
Library name adalah nama library yang diberikan pada directory ini, sedangkan Library Physical Name adalah nama directory yang digunakan
Klik Compile -> Compile untuk meng-compile desain yang ingin disimulasikan. Tentukan file yang ingin disimulasikan lalu klik
compile, jika telah selesai, klik Done
Klik Simulate -> Start Simulation. Pada jendela yang muncul, piilih file yang akan disimulasikan, kemudian pilih OK.
Right Click -> Add -> To Wave -> All item in region untuk menambahkan wave yang akan kita lihat hasil simulasi di
window simulator
Right Click -> Clock untuk membuat stimulus. Masukkan nilai periode clock simulasi sebesar 50ps untuk sinyal A dan biarkan
parameter lain disetting dalam keadaan default, setelah itu pilih OK. tambahkan 2 sinyal lain dengan cara yang sama
namun dengan periode 100ps untuk B dan 200ps untuk C.
Klik Tools -> Run untuk menjalankan simulasi, ambil gambar sinyal hasil simulasi yang
muncul kemudian sertakan dalam laporan. Lakukan analisis terhadap hasil yang didapat
Right Click -> No Force dan jalankan kembali simulasi, ambil gambar sinyal hasil yang
didapat dan lakukan analisis
Right Click -> Force dan jalankan kembali simulasi, ambil gambar sinyal hasil yang
didapat dan lakukan analisis
Buatlah folder baru pada direktori yang ada sebelumnya, tambahkan file testbench dan file DUT (Device Under Test) dengan mengetikkan kode yang terdapat pada modul praktikum dan menyimpannya pada direktori
tersebut.
Lakukan proses compile file tersebut dengan cara seperti langkah 1 pada percobaan 2A-a dan 2A-b, kemudian
lakukan simulasi seperti langkah2-3 pada percobaan 2A-b
Klik Tools -> Run untuk menjalankan simulasi. Ambil gambar sinyal hasil simulasi tersebut dan sertakan dalam
laporan. Lakukan analisis terhadap hasil tersebut
Lakukan modifikasi pada stimulus generator dengan cara mengubah script yang telah disimpan sebelumnya pada bagian yang mendefinisikan periode clock, seperti yang
tertera pada modul praktikum
Simpan perubahan yang terjadi pada file tersebut, kemudian compile kembali dan simulasi pada file yang
telah dimodifikasi seperti pada langkah 2. Setelah proses simulasi berjalan, hentikan simulasi dengan mengklik
Simulate -> End Simulation. Catat dan analisis hasil simulasi serta perbedaannya dengan yang sebelumnya
8
3.7 MELAKUKAN PROSES TAPPING SINYAL DARI SEBUAH DESAIN
3.8 MEMBUAT SCRIPT UNTUK MELAKUKAN SIMULASI
4. HASIL DAN ANALISIS
4.1 MENDESAIN FULL ADDER DENGAN SKEMATIK
Pada percobaan 4.1 kami melakukan percobaan mengenai perancangan suatu Full Adder dengan pendekatan skematik. Full Adder yang kami rancang memiliki 3 masukan ( A, B, dan C) serta 5 keluaran ( SUM, CARRY, A_OUT, B_OUT, C_OUT).
Dimana masing-masing input dan output dihubungkan kaki-kaki FPGA sebagai berikut :
Lakukan modifikasi pada file DUT dengan cara mengubahnya menjadi seperti scripts yang tertera
pada modul praktikum
Simpan perubahan yang terjadi pada file tersebut. Lakukan kembali compile dan simulasi pada file yang
telah dimodifikasi seperti pada langkah 2 pada percobaan c
Tambahkan wave pada jendela simulasi yang kemudian dimunculkan oleh program setelah langkah sebelumnya selesai dilakukan. caranya dengan Right
Click -> Add -> To Wace -> Selected Items
Klik Tools -> Run untuk menjalankan simulasi, kemudia ambil gambar sinyal hasil simulasi,
kemudian sertakan dalam laporan, serta lakukan analisis
Pada direktori percobaan sebelumnya, lakukan modifikasi pada file bernama sim.do dengan
mengetikkan script yang terdapat pada modul praktikum
Pada jendela transcript yang terdapat pada jendela program Modelsim ALTERA STARTER EDITR 6.4a,
ketik "do sim.do". Setelah itu, klik kanan file modul2vhdl pada jendela library dan pilih Simulate
Tambahkan wave pada jendela simulasi dengan melakukan Right Click -> Add -> To Wave -> All tiem
in region. Kemduian buat sinyal stimulus secara manual seperti pada langkah 4 pada percobaan 2A-b
Pada jendela transcript akan muncul script, tambahkan script yang terdapat pada modul
praktikm sebagai modifikasi pada baris paling bawah file sim.do, lalu simpan perubahan file tersebut
Kembali lakukan "do sim.do" kemudian jalankan ksimulasi dengan memilih menu Tools-> Run. Ambil gambarnya kemudian analisis dan sertakan dalam
laporan
Ubah file.do menjadi seperti yang tertera pada modul praktikum
Lakukan simulasi degan menggunakan testbench pada percobaan 2B. Catat
hasilnya, sertakan dalam laporan, dan lakukan analisis dari haisl yang diperoleh
9
A SW[3] AE14B SW[4] AF14C SW[5] AD13SUM Seven
Segment0[0]
AF10
CARRY Seven Segment0[1]
V13
A_OUT Seven Segment 0[3]
AD11
B_OUT Seven Segment 1[6]
AB24
C_OUT Seven Segment1[0]
V20
TABEL 4.1.1 Tabel Hubungan input output rangkaian dengan kaki-kaki FPGA
Pada percobaan ini kami menghubungkan output dengan LED Seven-Segment dan input dengan switch. Dimana pada switch input, posisi switch di bawah artinya nilai yang diberikan LOW atau 0, dan bila di atas, nilainya HIGH atau 1. Sementara outputnya bernilai 0 pada saat lampu LED Seven Segment mati dan bernilai 1 saat LEDnya menyala. Untuk menguji apakah rangkaian yang kami buat benar, kami memasukkan 4 kombinasi dan menerima keluaran sebagai berikut :
A B C Output0 0 1
0 1 0
1 0 0
1 1 1
TABEL 4.1.2 Tabel keluaran dari FPGA
Adapun keterangan dari gambar di atas adalah :
Gambar 4.1.1 Keterangan
Dan setelah melakukan pengecekan terhadap tabel kebenaran Full Adder (Tabel 2.2.1) didapatkan data yang sesuai. Hal ini berarti kami telah berhasil menghasilkan suatu Full Adder yang benar.
4.2 MENDESAIN FULL ADDER DENGAN PENDEKATAN BAHASA VHDL
Pada Percobaan kedua ini kami kembali melakukan perancangan Full Adder, tapi mencoba melakukannya dengan pendekatan VHDL. Yaitu dengan mengetikkan kode yang ada pada modul praktikum.
Setelah melakukan proses perancangan, kami melakukan simulasi dengan waveform yang menghasilkan bentuk demikian :
Gambar 4.2.1 Waveform VHDL dari Full Adder
Arti dari grafik ini adalah, kami mensimulasikan input dari Full Adder ini dengan suatu gelombang yang periodenya ditentukan terlebih dahulu. Adapun arti dari grafik gelombang, saat di bawah, artinya nilainya LOW atau 0, sementara saat di atas nilainya HIGH atau 1. Setelah disimulasikan oleh software, dihasilkan
10
pula waveform dari outputnya dengan arti yang sama.
Setelah melakukan perhitungan dan perbandingan dengan TABEL 2.2.1, kami mengamati bahwa waveform dari Full Adder kami benar dan nilainya sesuai.
Setelah itu kamipun mencoba mengaplikasikannya kepada FPGA untuk melihat hasil keluarannya. Kami menyambungkannya dengan spesifikasi sebagai berikut :
A SW[3] AE14B SW[4] AF14C SW[5] AD13COUT Seven
Segment0[0]
AF10
S Seven Segment0[1]
V13
TABEL 4.2.1 Hubungan Input Dengan Kaki FPGA
Dan hasil yang kami dapatkan pada FPGA antara lain:
A B C Output0 0 1
0 1 1
1 0 1
1 1 1
TABEL 4.2.2 Output dari FPGA
Dan setelah mendapatkan hasil ini, kami memeriksa kembali dengan menghitung dan membandingkan hasil yang kami dapat dengan TABEL 2.2.1 dan kami mendapatkan hasil yang sesuai. Hal ini
berarti perancangan Full Adder kami dengan VHDL berjalan dengan baik dan benar.
4.3 MENDESAIN 4-BIT RIPPLE CARRY ADDER DENGAN VHDL
Pada percobaan kali ini kami mencoba merancang sebuat 4-BIT Adder yang berfungsi untuk menambahkan 2 buah angka dengan jumlah 4 bit. Dan pada percobaan kali ini dilakukan dengan menggunakan VHDL, kami mengetikkan kode yang diberikan pada modul praktikum ke jendela VHDL design, dan kemudian menyimpan dan melakukan simulasinya.
Berdasarkan hasil simulasi yang kami peroleh, kami ingin memeriksa kebenaran dari waveform tersebut, dan melakukannya dengan mengambil satu contoh.
Bila kita perhatikan bagian yang paling kiri dari waveform, itu merupakan penjumlahan dari 12 dan 8 yang apabila dalam biner dapat dituliskan sebagai :
GAMBAR 4.3.1 Waveform 4BIT Adder VHDL
1100 + 1000 = 10100
Dimana 0 paling kanan merupakan S0, 0 kedua merupakan S1, 1 yang tengah merupakan S2, dengan 0 di kirinya adalah S3, dan 1 yang paling kiri adalah COUT. Dan
11
dengan mengingat bentuk 0 dan 1 pada waveform, dapat kita amati bahwa nilai dari seluruh output yang diperoleh sesuai dengan perhitungan. Hasil perhitungan ini mewakili keseluruhan waveform yang dapat kita lihat nilainya adalah benar.
Hal ini berarti rancangan yang kami buat berhasil dengan baik dan benar.
4.4 MENDESAIN 4-BIT ADDER DENGAN SKEMATIK
Pada percobaan kali ini kami kembali merancang sebuah 4-BIT Adder akan tetapi kali ini dengan pendekatan skematik, setelah sebelumnya menambahkan file pendukung baru ke dalam direktori skematik Quartus. File pendukung ini gunanya adalah untuk mempermudah dalam perancangan, sehingga tidak perlu lagi mendefinisikan adder itu sendiri.
Setelah rancangan selesai dan disimpan, kami melakukan simulasi dengan waveform, dan hasil yang kami peroleh antara lain :
GAMBAR4.42 Waveform 4BIT Adder Skematik
Untuk menguji kebenaran dari Waveform ini, kami melakukan perhitungan terhadap
gelombang paling kiri, yang merepresentasikan
10 + 5 = 15
1010 + 0101 = 01111
Dimana 0 merupakan COUT dan angka 1 mulai dari kiri adalah S3, S2, dan S1. Bila kita melihat waveform, dengan mengingat cara pembacaan waveform ( gelombang di atas berarti HIGH atau 1 dan di bawah berarti LOW atau 0) dapat kita amati bahwa waveform tersebut bernilai benar. Hal ini mengindikasikan bahwa 4BIT Adder yang kami buat berhasil dengan baik dan benar.
4.5 SIMULASI SEDERHANA MENGGUNAKAN MODELSIM
Pada Percobaan ini kami mencoba melakukan kompilasi file VHDL menggunakan Modelsim yang merupakan compiler fungsional. Setelah mengetikkan script yang ada pada modul praktikum, kami menjalankan simulasi pada Modelsim ini dan mendapatkan hasil sebagai berikut :
No force
GAMBAR 4.5.1 Wave dengan No Force
Force
12
GAMBAR 4.5.2 Wave dengan Force
Apabila dibandingkan dengan hasil simulasi pada percobaan yang sebelumnya, simulasi kali ini memberikan hasil yang sama, hal ini berarti Modelsim dapat melakukan fungsi yang sama dengan Quartus.
Akan tetapi bila kita amati, tidak terdapat perbedaan antara hasil simulasi yang Force dengan yang Non-Force. Sementara berdasarkan teori, seharusnya dengan diberikannya Force, akan terjadi dampak yang dapat merubah bentuk wave yang ada pada rangkaian. Hal ini berarti ada yang tidak benar dalam pengerjaannya, dan menurut analisis kemungkinan hal ini terjadi disebabkan oleh belum dideklarasikannya tipe force yang diberikan(freeze, drive, deposit, dll.) sehingga tidak terjadi dampak apapun meskipun kami memberikan Force.
4.6 MEMBUAT TESTBENCH
Pada percobaan ini, kami mencoba cara lain untuk memberikan input kepada rangkaian digital dengan cara yang berbeda dari memasukkan input satu-satu, yaitu dengan membuat file Design Under Test (DUT). Setelah kami membuat scriptnya dan menjalankan, maka kami mendapatkan hasil sebagai berikut :
GAMBAR4.6.1Wave dengan script pertama
Kemudian kami merubah skrip data stimulusnya dan kemudian menghasilkan gelombang seperti pada gambar :
GAMBAR4.6.2Wave dengan script kedua
Dapat kita amati bahwa pada proses yang pertama, nilai A, B, dan C berubah menjadi inversnya dalam tiap periode yang diberikan kepada masing-masing input, sementara pada proses kedua setelah waktu yang diberikan, nilai inputnya menjadi HIGH atau 1 sampai akhir simulasi, hal ini berarti Modelsim menjalankan dengan baik script yang diberikan dan testbench terbentuk dengan berhasil, sesuai dengan keinginan.
4.7 MELAKUKAN PROSES TAPPING SINYAL DARI SEBUAH DESAIN
Pada percobaan ini kami ingin melihat bagaimana sinyal sesungguhnya dari rangkaian digital kami, tanpa harus memberikan kombinasi masukan terlebih dahulu. Setelah melakukan proses tapping, kami mendapatkan hasil seperti yang tertera pada gambar :
GAMBAR 4.7.1 Wave dengan proses Tapping
Dapat kita amati bahwa grafik di atas merupakan simulasi dasar dari rumus rangkaian digital yang kita miliki, dimana inputnya meningkat secara kontinyu mulai dari 000, 001, dst. Hal ini merupakan bukti bahwa proses tapping berjalan dengan baik.
13
4.8 MEMBUAT SCRIPT UNTUK MELAKUKAN SIMULASI
Pada percobaan ini membuat skrip untuk menjalankan simulasi dengan sendirinya. Adapun skrip yang akan diketik adalah :
# Resume macro file
onbreak {resume}
# Menghapus library yang telah dibuat jika ada
if [file exists work] {
vdel -all
}
# Membuat library
vlib work
# Compile
vcom modul2vhdl.vhd
#stimulus generator
force -freeze sim:/modul2vhdl/a 1 0, 0 {25 ps} -r 50
force -freeze sim:/modul2vhdl/b 1 0, 0 {50 ps} -r 100
force -freeze sim:/modul2vhdl/cin 1 0, 0 {100 ps} -r 200
Dan hasilnya adalah :
Dapat diamati bahwa hasil wave yang dikembalikan sesuai dengan yang diberikan sehingga script simulasi ini berjalan dengan baik.
5. KESIMPULAN
Perancangan suatu rangkaian digital dapat dilakukan dengan baik dengan VHDL maupun secara skematik. Keduanya akan mengembalikan hasil yang sama, akan tetapi tiap-tiap metode memiliki kelebihan dan kekurangan masing-masing. Dengan skematik kita dapat membuat rangkaian sesuai dengan gambaran dan dapat melihat langsung bagaimana bentuk rangkaiannya, sementara dengan VHDL kita tidak perlu memikirkan bentuk rangkaiannya, sehingga akan lebih bermanfaat dalam perancangan rangkaian yang kompleks.
Modelsim dan Quartus dapat menjalankan simulasi dengan baik. Akan tetapi terdapat perbedaan antara keduanya. Yang membedakan Modelsim dari Quartus adalah pada Modelsim kita dapat melakukan manipulasi terhadap rangkaian yang kita buat, yaitu dengan menggunakan force, sehingga kita dapat melakukan debugging dengan lebih baik. Selain itu pada Modelsim juga terdapat Simulator Tool yang tidak kita temukan pada Quartus.
6. DAFTAR PUSTAKA
Brown, Steven dan Varesnic, Zvonko. 2005. Fundamental Of Digital Logic with VHDL Design.
Hutabarat, Mervin, dkk, Modul Praktikum Sistem Digital, Institut Teknologi Bandung, Bandung, 2010