Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
iverilog-vpi(1) 	      Version 13.0 (stable)		 iverilog-vpi(1)

NAME
     iverilog-vpi - Compile front end for VPI modules

SYNOPSIS
     iverilog-vpi [options] sourcefile...

DESCRIPTION
     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.

     By default 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.

OPTIONS
     iverilog-vpi accepts the following options:

     -llibrary
	     Include the named library in the link of the VPI module.  This  al-
	     lows VPI modules to further reference external libraries.

     -Ldirectory
	     Add  directory to the list of directories that will be searched for
	     library files.

     -Idirectory
	     Add directory to the list of directories that will be searched  for
	     header files.

     -Ddefine
	     Define a macro named define.

     --name=name
	     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.

PC-ONLY OPTIONS
     When built as a native Windows program (using the MinGW toolchain), by  de-
     fault iverilog-vpi will attempt to locate the MinGW tools needed to compile
     a	VPI module on the system path (as set by the PATH environment variable).
     As an alternative, the user may specify the location of the MinGW tools via
     the following option.

     -mingw=path
	     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. If
	     this option accompanies a list of files, it will apply to the  cur-
	     rent  build  only.  If  this  option  is provided on its own, iver-
	     ilog-vpi will save the path in the registry and use  that	path  in
	     preference  to  the system path for subsequent operations, avoiding
	     the need to specify it on the command line every time.

INFORMATIONAL OPTIONS
     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 direc-
     tives.

     --install-dir
	     Print the install directory for VPI modules.

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

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

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

     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 $^

AUTHOR
     Steve Williams (steve@icarus.com)

SEE ALSO
     iverilog(1),	vvp(1),       <https://steveicarus.github.io/iverilog/>,
     <http://mingw-w64.yaxm.org/>,

COPYRIGHT
     Copyright (C)  2002-2026 Stephen Williams

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

				 Jan 13th, 2026 		 iverilog-vpi(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=iverilog-vpi&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help