Man Linux: Main Page and Category List


       iverilog-vpi - Compile front end for VPI modules


       iverilog-vpi [--name=name] sourcefile...


       iverilog-vpi  is  a tool to simplify the compilation of VPI modules for
       use with Icarus Verilog. It takes on the command line a list  of  C  or
       C++  source files, and generates as output a linked VPI module. See the
       vvp(1) man page for a description of how the linked module is loaded by
       a simulation.

       The  output  is  named after the first source file. For example, if the
       first source file is named foo.c, the output becomes foo.vpi.


       iverilog-vpi accepts the following options:

               Include the named library in the link of the VPI  module.  This
               allows VPI modules to further reference external libraries.

               Add  directory  to  the list of directories that will be search
               for header files.

               Define a macro named define.

               Normally, the output VPI module will be named after  the  first
               source  file  passed  to  the  command. This flag sets the name
               (without the .vpi suffix) of the output vpi module.

               This flag causes the program to print the install directory for
               VPI  modules,  then  exit. It is a convenience for makefiles or
               automated plug-in installers.

       --cflags, --ldflags and -ldlibs
               These flags provide compile time information.


       The PC port of  iverilog-vpi  includes  two  special  flags  needed  to
       support  the more intractable development environment. These flags help
       the program locate parts that it needs.

               Tell the program the root of the Mingw compiler tool suite. The
               vvp  runtime  is  compiled  with this compiler, and this is the
               compiler that iverilog-vpi  expects  to  use  to  compile  your
               source code. This is normally not needed, and if you do use it,
               it is only needed once. The compiler will save the path in  the
               registry for use later.

               Set  for  the  use  during  compilation  the root if the Icarus
               Verilog install. This is the place where you  installed  Icarus
               Verilog  when  you  ran  the  installer. This flag is also only
               needed once, and the path is stored in the registry for  future


       The  UNIX  version  of  iverilog-vpi  includes  additional flags to let
       Makefile gurus peek at the configuration of the iverilog  installation.
       This  way,  Makefiles  can  be  written  that handle complex VPI builds
       natively, and without hard-coding values that depend on the system  and
       installation.   If  used  at  all,  these options must be used one at a
       time, and without any other options or directives.

               Print the compiler flags (CFLAGS or CXXFLAGS) needed to compile
               source code destined for a VPI module.

               Print the linker flags (LDFLAGS) needed to link a VPI module.

               Print the libraries (LDLIBS) needed to link a VPI module.

       -m32    On  64bit systems that support it (and support vvp32) this flag
               requests a 32bit  vpi  binary  instead  of  the  default  64bit

       Example GNU makefile that takes advantage of these flags:

           CFLAGS = -Wall -O $(CFLAGS_$@)
           VPI_CFLAGS := $(shell iverilog-vpi --cflags)
           CFLAGS_messagev.o = $(VPI_CFLAGS)
           CFLAGS_fifo.o = $(VPI_CFLAGS)
           messagev.o fifo.o: transport.h
           messagev.vpi: messagev.o fifo.o
                iverilog-vpi $^


       Steve Williams (


       iverilog(1),        vvp(1),       <>,


       Copyright ©  2002-2009 Stephen Williams

       This document can be freely redistributed according to the terms of the
       GNU General Public License version 2.0

                               April 17th, 2009                iverilog-vpi(1)