Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
121 lines (78 sloc) 3.87 KB
Copyright 2001 Stephen Williams <>
Icarus Verilog source can be compiled with the mingw C/C++ compilers
to get a Windows binary that does not require the posix compatibility
cruft of the Cygwin.dll library. The configure scripts automatically
detect that the compilers in use are the mingw compilers and will
configure the Makefiles appropriately.
However, the mingw tools do not include all the other tools around the
compiler, including the shell interpreter for the configure script,
bison, flex, gperf, etc. Therefore, you still need Cygwin to compile
Icarus Verilog, even if you don't need the Cygwin compilers.
* Install Cygwin
So, step 1 is "Download and Install Cygwin." See the web page for instructions and the files to do
this. Cygwin *is* a kool package, and is worth having anyhow.
* Install mingw
The obvious step 2, then, is install the mingw compilers. These can be
found as the web page <>.
* Unpack Icarus Verilog source
Most of the remaining steps are best done in a Cygwin window. When you
installed Cygwin, a start menu entry was created to allow you to start
up the Cygwin window. I'll use the string "$ " to represent a command
prompt in this window, because that is the usual bash prompt.
Anyhow, unpack the compressed tar file (.tar.gz) of the source with a
command like this:
$ gunzip -d verilog-20010630.tar.gz | tar xvf -
This will create a directory "verilog-20010630" that contains all the
source. Descend into that directory, as that is where we will work
from now on.
$ cd verilog-20010630
* Select the mingw compilers
In your cygwin window, if you type "which c++" you will get the
response path "/usr/bin/c++" which is the cygwin compiler. This is not
the one we want to use, however. Tell the shell where the mingw
compilers are by setting the search path like so:
$ PATH=/cygdrive/d/mingw/bin:$PATH
This assumes that you installed mingw in D:\mingw. The actual programs
are in the bin directory under the root. After this command, check
that you are now getting the right compilers with this "which"
$ which c++
* Configure Icarus Verilog
Now we are all set to configure and compile Icarus Verilog. Choose a
destination path where you will want to install the binaries. I chose
on my system the directory "D:\iverilog". This choice is not
permanent, so don't get too much angst over it. Just choose a name
without white space.
Now, configure the source to make the makefiles and configuration
details. Run this command:
$ ./configure --prefix=/cygdrive/d/iverilog
Substitute your chosen directory for the prefix. This will cause the
makefiles to build and the source code to configure. The configure
program will detect that this is a mingw environment and set things up
to build properly.
* Compile Icarus Verilog
This, believe it or not, should be the easy part:
$ make
It could take a while. Now is a good time to go get some coffee or
take a tea break.
* Install Icarus Verilog
If the compile ran OK, then next you install Icarus Verilog in the
directory you have chosen. This is how:
$ make install
This is part of what the configure program did for you. The Makefiles
now know to put the files under the D:\iverilog (or whatever directory
you chose) directory, and away you go.
* Running Icarus Verilog
Finally, put the D:\iverilog\bin directory in your Windows path, and
you should be able to run the iverilog and vvp commands to your
heart's content.
Currently, the iverilog.exe uses the path to itself to locate the
libraries and modules associated with itself. In other words, if you
execute the D:\iverilog\bin\iverilog.exe program, it will locate its
subparts in the D:\iverilog directory and subdirectories below
that. This means you can move the Icarus Verilog installation by
simply moving the root directory and all its contents.
Something went wrong with that request. Please try again.