EEC 281 Verilog Notes

Currently, we are using only the Cadence NCVerilog simulator. Because complex issues may arise with the simulator and waveform viewer tools, I strongly recommend using Cadence rather than another verilog simulator such as Modelsim or Vivado--if you do, you will be on your own if you encounter tool-related bugs.

If you experience problems starting the tools in our environment, email the course TA or me (Bevan Baas) or ECE IT support.



Cadence NC and Simvision

Quick start tutorial files

This tutorial uses the following files: Copy these files into your local working directory. Type "make [enter]" to see commands written for you as make targets. Edit Makefile and change "CHANGE_ME_TO_YOUR_TOP_LEVEL_MODULENAME" to your top-level module name--"tbenc" in this example. You can also copy the file tbench.sv as an example of a viewer configuration file.

Run ncverilog on tutorial files and start simulator

More Documentation

Using viewer configuration files




Icarus verilog and GTKWave

Icarus verilog and GTKWave are available on the web free of charge and may be installed on a number of platforms including MacOS and linux. Unfortunately, we don't have any installation tips other than the links here. Use NCVerilog if at all possible. Below are some notes from Eric Work, and here is a Makefile he has written for Icarus.

Installation instructions

NOTE: The following procedures requires a resonable amount of knowledge about the GNU/Unix toolchain used for C/C++ development as well as being familar with a unix shell. It is recommended that you have used configure and make in a Unix environment previously.

Installing Icarus Verilog and GTKWave for MacOS X

Installing Icarus Verilog and GTKWave for Windows



EEC 281 | B. Baas | ECE Dept. | UC Davis
2025/02/03  Updated to unified Makefile, changed instructions
2025/01/22  Removed VCS and verilog documentation sections
2020/02/06  Minor edits (BB)
2020/01/27  Minor edits (BB)
2019/03/12  Minor edits (BB)
2018/02/16, 16:30  Minor updates, moved link to Pitfall page to top level page
2017/01/24, 16:00  Updates to page intro
2007/01/31, 23:45  Updated paths from /net/pizza/3/... to /net/pizza/8/...
2005/02/11         Installation process added (from Eric Work)
2005/02/02         First pass
2005/01/25, 12:45  Added "ssh" login info
2005/01/24, 15:45  Added "setenv CDS_*" to environment additions list
2005/01/21, 11:10  Filled out list of linux ECE machines
2005/01/20, 20:30  A number of updates including abc.v and tbench.sv
2005/01/20, 14:00  First pass
This document was written by Bevan Baas and Ryan Apperson with valuable help from Victor Yip.