In our college labs, we use
Xilinx Vivado but for practising Verilog programming at home, at the beginner level that we are, we don’t really need to install
Vivado on our systems.
I will be using this tutorial for Ubuntu 18.04, but the same solution works on MacOS and Windows as well (link: https://www.swarthmore.edu/NatSci/mzucker1/e15_f2014/iverilog.html).
We will use the following software to code, compile, run, and visualise our
- ICARUS VERILOG(
It is a Verilog compiler developed by Stephen Williams. It has a feature complete compiler with a test suite available.
- VS Code
Visual Studio Code is a free code editor from Microsoft. With a plugin
Verilog HDLwritten for VS Code by Masahiro H, we have:
-> full Verilog syntax highlighting
-> code completion.
In other words, better code editing experience than even Vivado!
“GTKWave is a fully featured GTK+ based wave viewer for Unix, Win32, and Mac OSX which reads LXT, LXT2, VZT, FST, and GHW files as well as standard
Verilog VCD/EVCDfiles and allows their viewing.”
Verilog/iVerilog and GTKWave:
This can be done on Ubuntu in one easy command:
sudo apt install verilog gtkwave
There are two ways to go about this.
Install from the official website
- visit: https://code.visualstudio.com/
- run the file
Install using ubuntu-make
This is my preferred method. ubuntu-make is a tool, especially for developers. It keeps their development environments primed and updated automatically.
- visit: https://github.com/ubuntu/ubuntu-make
- add the daily build repo for ubuntu-make by running this command in terminal:
sudo add-apt-repository ppa:lyzardking/ubuntu-make
- update the repository and install ubuntu make:
sudo apt update
sudo apt install ubuntu-make
- Install VSCode:
umake ide visual-studio-code
Now we will look into installing Verilog HDL plugin and experience the Icarus Verilog simulation workflow.
I made a small tutorial video to show how easy this is:
Actually, I made a whole playlist of different circuits with this Workflow:
Hope you liked the post and found it helpful. You can use this environment and workflow to get a good practice with Verilog HDL. All the best!
Originally published at raveesh.me.