# Getting Started with Icarus Verilog

    * Getting Started with Icarus Verilog

    Icarus Verilog is a Verilog compiler. It is suitable for use as a
    simulator, and, to some degree, synthesizer. Icarus Verilog runs under
    Linux and a variety of UNIX systems, as well as Windows as a command
    line tool, so the instructions are generally applicable to all
    environments. Note that this is only a quick start. For more detailed
    documentation, see the manual page for the iverilog command.

    * Hello, World!

    The first thing you want to do as a user is learn how to compile and
    execute even the most trivial design. For the purposes of simulation,
    we use as our example *the* most trivial simulation:

      module main;

      initial
        begin
          $display("Hello, World");
          $finish ;
        end

      endmodule

    By a text editor (or copy hello.vl from the Icarus Verilog examples
    directory) arrange for this program to be in a text file, "hello.vl".
    Next, compile this program with a command like this:

    	% iverilog -o hello hello.vl

    The results of this compile are placed into the file "hello", as the
    "-o" flag tells the compiler where to place the compiled result. Next,
    execute the compiled program like so:

    	% vvp hello
    	Hello, World

    And there it is, the program has been executed. So what happened? The
    first step, the "iverilog" command, read and interpreted the source
    file, then generated a compiled result. The compiled form may be
    selected by command line switches, but the default form is the VVP
    format, which is actually run by the "vvp" command.

    The "iverilog" and "vvp" commands are the only commands that users
    use to invoke Icarus Verilog. What the compiler actually does is
    controlled by command line switches. In our little example, we asked
    the compiler to compile the source program to the default vvp form,
    which is in turn executed by the vvp program.

    * Windows Install

    The easiest way to install under Windows is to get a precompiled
    installer for the version you wish to install. Icarus Verilog is
    distributed for Windows users as a self-installing .exe. Just execute
    the installer and follow the instructions. During the install, take
    note of the directory where the program is installed: for example,
    C:\iverilog is a good place to install.

    Once the binary is installed, you need to add the bin directory to
    your execution path. The executables you need are in C:\iverilog\bin,
    where the "C:\iverilog" part is actually the root of where you
    installed the package. The programs are in the bin subdirectory. Put
    this directory in your PATH environment variable, and the above
    commands become accessible to you at the command line prompt, or even
    in batch files.

    * Linux Install

    Under Linux, the install is even easier. For RedHat and Mandrake based
    systems, there is the appropriate RPM file. Just install the package
    with the "rpm -U <file>" command. Debian users should get Icarus
    Verilog packages from the main Debian software site.

    * Install From Source

    In this case, see README.txt and other documentation that comes with
    the source.