Icarus Verilog

The Icarus Verilog Wiki[]

NOTE: This website is hopelessly out of date, and should not be used. The current documentation is at https://steveicarus.github.io/iverilog/index.html and that link is now versioned along with the source.

This is the main page for the Icarus Verilog[1] documentation. From here, branch out to the different sorts of documentation you are looking for. In all cases, the documentation is in wiki form, so that you can update or improve it (although I encourage discussion first before making major changes.)

This wiki in general presumes at least a basic working knowledge of the hardware description language Verilog. For basic information about the purpose and provenance of the language itself, the best starting point is the Wikipedia article here. If you are looking to learn the language in detail, then there are many books on the subject.

And of course ultimately it all comes down to the official language reference, IEEE Std 1364-2005 (not free) from the IEEE. Recently IEEE 1800-2012 version of SystemVerilog LRM (which is a superset of 1364 LRM) is made available free via GET program, see: http://cvcblr.com/?p=844

The "ABOUT" page has more information about this wiki, including pointers to editing tutorials.

The Icarus Verilog home page is at iverilog.icarus.com.

Installation Guide[]

The Installation Guide has details on where to get Icarus Verilog and how to install it.

User Guide[]

This describes the basics of how to use Icarus Verilog, including a description of its basic features and how they apply to Verilog design.

Developer Guide[]

This describes how you to can be an Icarus Verilog developer, including developer specific tips on getting and working with the source.


Freeform to-do list/comment board/soap box for a less constrained flow of ideas on the ongoing development of Icarus Verilog.


Brief definitions of common terms related to Icarus Verilog.