ModelSim Tutorial
ModelSim Tutorial
Tutorial
Pendahuluan
ModelSim adalah tool yang digunakan untuk mensimulasikan hasil
design HDL, dengan melakukan simulasi rancangan dapat terverifikasi
fungsinya.
Setelah Create New File diklik akan muncul dialog box, isilah nama file
dengan and_behaviour , kemudian type file VHDL, folder file disimpan
pada Top Level.
Setelah itu pada workspace akan tampak file yang kita create,
kemudian ketikkan pada text editor text VHDL berikut:
1 library IEEE;
2 use IEEE.std_logic_1164.all;
3
4 entity and_behaviour is
5 port ( A : in std_logic;
6 B : in std_logic;
7 Y : out std_logic
8 );
9 end entity and_behaviour;
10
11 architecture behaviour of and_behaviour is
12 begin
13 Y <= A and B;
14 end behaviour;
Pada saat menambahkan file baru file belum di set sebagai type vhdl
maka kita harus menset dengan cara workspace set file
Kompilasi
Sebelum disimulasikan pada waveform editor file .vhd harus di-compile
terlebih dahulu. Untuk meng-compile file vhd klik compile button
jika kompilasi sukses maka akan muncul tanda ( ) hijau pada
workspace dan pada prompt transcript
# Compile of and_behaviour.vhd was successful.
Kompilasi juga dapat dilakukan pada prompt dengan perintah vcom
nama_file.
Simulasi
Lakukan hal yang sama seperti juga untuk sinyal b kemudian klik
–run . Sampai tahap ini kita telah mensimulasikan memberi input
nilai a dan b dengan 0 kemudian hasilnya akan bernilai 0, amati pada
waveform editor.
• Ulangi langkah diatas untuk nilai seperti tabel kebenaran AND.
• amati hasil simulasi apakah sesuai dengan tabel kebenaran?
a\b 0 1
0 0 0
1 0 1
Tabel kebenaran AND
Kita dapat menyimpan hasil simulasi kita pada file berekstensi *.do
sehingga jika kita ingin melihat hasil simulasi kita kita dapat
memanggilnya tanpa mengulangi simulasi.
Untuk membuat file berekstensi do klik File> New > Source > Do
kemudian copy-kan command2 hasil simulasi kita pada text editor :
vsim work.and_behaviour
add wave sim:/and_behaviour/*
force -freeze sim:/and_behaviour/a 0 0
force -freeze sim:/and_behaviour/b 0 0
run
force -freeze sim:/and_behaviour/b 1 0
run
force -freeze sim:/and_behaviour/a 1 0
force -freeze sim:/and_behaviour/b 0 0
run
force -freeze sim:/and_behaviour/b 1 0
run
Membuat TestBench.
file .do umumnya hanya jalan pada ModelSim, agar simulasi kita dapat
dijalankan pada tools lain kita harus membuat TestBench.
Pada waveform editor klik tombol restart atau ketik restart pada prompt.
Kemudian klik kanan sinyal a dan pilih create/modify Waveform.
Kemudian pada dialog box yang muncul pilih Constant untuk pattern;
Start Time : 0 dan End Time : 100 klik next, dan pada dialog berikutnya
isi value dengan 0 dan klik finish, maksudnya kita membuat sinyal
konstan bernilai 0 pada selang waktu 0 – 100 ns.
LATIHAN
Latihan 1.
Simulasikan fungsi gerbang OR dengan langkah seperti pada tutorial
diatas.
a\b 0 1
0 0 0
1 0 1
Tabel kebenaran OR
Untuk menambah file .vhd baru kedalam project : File > Add to
Project > New File.
Untuk menambah file .vhd yang sudah ada kedalam project : File > Add to
Project > Existing File.
Latihan 2
Simulasikan rangkaian mux kemudian amatilah hasil simulasi.
a y
b
sel
Rangkaian mux
sel y
0 a
1 b
Latihan 3
Simulasikan rangkaian adder/penjumlahan dengan memberikan input
yang berbeda-beda kemudian amatilah hasil simulasi.
Hint :
Input : a , b : std_logic_vector( 7 downto 0).
Output : sum: std_logic_vector( 7 downto 0).
Syntax : sum <= a + b;
Latihan 4
Simulasikan rangkaian subtractor/pengurangan.
Hint : pada operasi biner pengurangan/subtractor dapat dilakukan
dengan penjumlahan dengan negasi.
Untuk negasi dapat dilakukan dengan 2’complemen yaitu menginvers
nilai kemudian menambahkan 1.
0101(b) 5(d)
0011(b) 3(d) -
0010(b) 2(d)
0101(b) 5(d)
1101(b) -3(d) +
0010(b) 2(d)
Hint :
Input : a , b : std_logic_vector( 7 downto 0).
Output : result : std_logic_vector( 7 downto 0).
Signal : b_compl : std_logic_vector( 7 downto 0)
Syntax :
b_compl <= (not a)+ "00000001";
result <= a + b_compl;
Latihan 5
Simulasikan rangkaian comparator/pembanding.
input result
A = B 1
A /= B 0
ModelSim
1 2
3
Bar simulasi. 10 5 6 7 8
9
1. workspace : berisi project, library, sim, dan file untuk mempermudah mengolah
desain.
2. objects : sinyal yang disimulasikan.
3. text editor : untuk mengedit text baik vhdl, verilog, do, tcl, dll.
4. prompt : command prompt untuk menginput command dengan text.
5. compile : tombol kompilasi.
6. compile –all: untuk meng-compile seluruh file pada project.
7. simulate : untuk mensimulasikan file yang telah dicompile.
8. break : untuk menghentikan simulasi.
9. restart : untuk mengulang simulasi.
10. run : untuk menjalankan simulasi selama periode tertera (100ns).
ENJOY HDL
proc and_behaviour {} {
if {[winfo exists .behav]} {
destroy .behav}
toplevel .behav
wm geometry .behav 150x200+2+2
buat_kanvas .behav.i
pack .behav.i
create_run_buttons .behav.i}
set rb $obj.a_1
button $rb -command "force -freeze /and_behaviour/a 1 0 " -text " 1 "
pack $rb
$obj.c create window 1c 3c -window $rb
set rb $obj.b_0
button $rb -command "force -freeze /and_behaviour/b 0 0 " -text " 0 "
pack $rb
$obj.c create window 3c 2c -window $rb
set rb $obj.b_1
button $rb -command "force -freeze /and_behaviour/b 1 0 " -text " 1 "
pack $rb
$obj.c create window 3c 3c -window $rb
set rb $obj.run
button $rb -command "run" -text " Run "
pack $rb
$obj.c create window 2c 4c -window $rb
}