Port of Icarus Verilog to Microsoft Visual Studio .Net 2003

The file below includes all additional sources necessary to build the Icarus Verilog tools using the MSVC 7.1. The port was done by me, Dmitri Varsanofiev ( icarus [AT] varsanofiev.com ), to further my own nefarious goals ☺. The files of this port that are written by me are in public domain to the maximum extent possible that is compatible with the original Icarus code by Steven Williams (under GPL) and other copyrights used.

Download the .ZIP file (35KB)

Installation Instructions, Fair Warnings, etc.

  1. Install a copy of source distribution of the Icarus Verilog on your hard drive. This code works with at least the 12/02/2003 and 1/18/2004 snapshots. Unpack it into some directory, say, ICARUS.
  2. Install CYGWIN in the \cygwin subdirectory on the same drive. Warning: if you use another directory, you will have to change project files (this is one of the TODOs). Another warning: we will use flex and bison from the package - by default these are not installed (forewarned is forearmed).
  3. Create a subdirectory in ICARUS, say, MSVC.
  4. Copy the .ZIP file above into MSVC and unpack.
  5. Build the only solution in the MSVC directory. You will need the VS .Net 2003 to do it.
  6. Enjoy! The docs are on the original Icarus site.

If It Does Not Compile

  1. Blame me ☺
  2. Look for the list of inelegancies in the TODO.txt - some of these might have caught up with me.
  3. Particular potential gotcha's:


The solution currently consists of 8 projects. Note that I did not port all the parts of the original Icarus.

  1. iverilog: top command line interface ("driver")
  2. ivlpp: verilog preprocessor
  3. ivl: verilog compiler
  4. tgt-vvp: compiler plug-in that generates code for the vvp interpreter
  5. vvp: verilog interpreter
  6. vpi: interpreter plug-in that supports standard verilog packages
  7. libivl: verilog library for use by other projects
  8. draw_tt: a simple code generation utility for use by other projects