Icarus Verilog & GTKWave
This tutorial is intended for those taking CSC258 who want to compile and test Verilog code on their personal machines without having to use Quartus. The provided commands are intended for Linux and should serve only as reference material.
sudo apt-get install iverilog sudo apt-get install gtkwave
iverilog -o simple.vvp simple.v simple_tb.v
In this specific example, we are testing a Verilog module called
simple.v. The test cases are contained in the file
simple_tb.v, it can be named arbitrarily; although it is called
moduldename_tb.v by convention. We specify our output file to be
Running the Simulation
You should have something output in the form of
VCD info: dumpfile simple.vcd opened for output. A is 1010, B is 0011. A is 1100, B is 0101.
Viewing in Graph Form
Once GTKWave has launched
- locate the
SSTtab top-left of the screen and expand all
- Locate the desired test case and click
- Bottom-left of the screen should display a chart with Type and Signal
- Drag whichever one you'd like to analyse over to the Signals tab
function! SetupVerilogEnvironment() map <F5> :! iverilog -o %:r.vvp %:r.v %:r_tb.v && vvp %:r.vvp && gtkwave %:r.vcd <ENTER> endfunction if has("autocmd") autocmd Filetype verilog call SetupVerilogEnvironment() endif
*This is by no means a comprehensive guide, feel free to add/correct anything in this tutorial.