gEDA >> Documentation >> Icarus Verilog >> Getting Started

# 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:

"hello.vl"

      module main;

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

      endmodule

Download this program, or copy it from the Icarus Verilog examples directory. Next, compile it 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 The Icarus Verilog Compilation System and other documentation that comes with the source.