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

FreeBSD Manual Pages


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

       iverilog-vpi - Compile front end	for VPI	modules

       iverilog-vpi [options] 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.

       By  default  the	output is named	after the first	source file. For exam-
       ple, if the first source	 file  is  named  foo.c,  the  output  becomes

       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  searched
	       for library files.

	       Add  directory to the list of directories that will be searched
	       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.

       When built as a native Windows program (using the MinGW toolchain),  by
       default	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.

	       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 current build only. If	this  option  is  pro-
	       vided  on  its own, iverilog-vpi	will save the path in the reg-
	       istry 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.

       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 install directory for VPI modules.

	       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.

       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),   <>,	<http://mingw->,

       Copyright (C)  2002-2017	Stephen	Williams

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

				Jan 29th, 2017		       iverilog-vpi(1)


Want to link to this manual page? Use this URL:

home | help