2009-11-27 18:25:50 +01:00
|
|
|
.TH iverilog-vpi 1 "April 17th, 2009" "" "Version %M.%m.%n %E"
|
2002-05-28 07:21:30 +02:00
|
|
|
.SH NAME
|
|
|
|
|
iverilog-vpi - Compile front end for VPI modules
|
|
|
|
|
|
|
|
|
|
.SH SYNOPSIS
|
|
|
|
|
.B iverilog-vpi
|
2009-08-10 15:34:18 +02:00
|
|
|
[\-\-name=\fIname\fP]
|
2002-05-28 07:21:30 +02:00
|
|
|
\fIsourcefile\fP...
|
|
|
|
|
|
|
|
|
|
.SH DESCRIPTION
|
|
|
|
|
.PP
|
2009-11-03 21:59:19 +01:00
|
|
|
\fIiverilog\-vpi\fP is a tool to simplify the compilation of VPI
|
2002-05-28 07:21:30 +02:00
|
|
|
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 \fBvvp\fP(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 \fIfoo.c\fP, the output becomes
|
|
|
|
|
\fIfoo.vpi\fP.
|
|
|
|
|
|
|
|
|
|
.SH OPTIONS
|
2009-11-03 21:59:19 +01:00
|
|
|
\fIiverilog\-vpi\fP accepts the following options:
|
2002-05-28 07:21:30 +02:00
|
|
|
.TP 8
|
|
|
|
|
.B -l\fIlibrary\fP
|
|
|
|
|
Include the named library in the link of the VPI module. This allows
|
|
|
|
|
VPI modules to further reference external libraries.
|
|
|
|
|
|
2007-11-29 19:16:07 +01:00
|
|
|
.TP 8
|
|
|
|
|
.B -I\fIdirectory\fP
|
|
|
|
|
Add \fIdirectory\fP to the list of directories that will be search for
|
|
|
|
|
header files.
|
|
|
|
|
|
|
|
|
|
.TP 8
|
|
|
|
|
.B -D\fIdefine\fP
|
|
|
|
|
Define a macro named \fIdefine\fP.
|
|
|
|
|
|
2002-07-05 19:17:20 +02:00
|
|
|
.TP 8
|
|
|
|
|
.B --name=\fIname\fP
|
|
|
|
|
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.
|
2002-11-23 01:51:53 +01:00
|
|
|
|
2003-10-14 02:40:06 +02:00
|
|
|
.TP 8
|
|
|
|
|
.B --install-dir
|
|
|
|
|
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.
|
|
|
|
|
|
2007-11-29 19:16:07 +01:00
|
|
|
.TP 8
|
|
|
|
|
.B --cflags, --ldflags and -ldlibs
|
|
|
|
|
These flags provide compile time information.
|
|
|
|
|
|
2002-11-23 01:51:53 +01:00
|
|
|
.SH "PC-ONLY OPTIONS"
|
|
|
|
|
|
2009-11-03 21:59:19 +01:00
|
|
|
The PC port of \fIiverilog\-vpi\fP includes two special flags needed to
|
2002-11-23 01:51:53 +01:00
|
|
|
support the more intractable development environment. These flags help
|
|
|
|
|
the program locate parts that it needs.
|
|
|
|
|
|
|
|
|
|
.TP 8
|
|
|
|
|
.B -mingw=\fIpath\fP
|
|
|
|
|
Tell the program the root of the Mingw compiler tool suite. The
|
|
|
|
|
\fBvvp\fP runtime is compiled with this compiler, and this is the
|
2009-11-03 21:59:19 +01:00
|
|
|
compiler that \fIiverilog\-vpi\fP expects to use to compile your source
|
2003-07-15 05:49:22 +02:00
|
|
|
code. This is normally not needed, and if you do use it, it is only
|
2002-11-23 01:51:53 +01:00
|
|
|
needed once. The compiler will save the \fIpath\fP in the registry for
|
|
|
|
|
use later.
|
|
|
|
|
|
|
|
|
|
.TP 8
|
|
|
|
|
.B -ivl=\fIpath\fP
|
|
|
|
|
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 use.
|
|
|
|
|
|
2003-08-26 06:45:47 +02:00
|
|
|
.SH "UNIX-ONLY OPTIONS"
|
|
|
|
|
|
2009-11-03 21:59:19 +01:00
|
|
|
The UNIX version of \fIiverilog\-vpi\fP includes additional flags to
|
2003-08-26 06:45:47 +02:00
|
|
|
let Makefile gurus peek at the configuration of the \fIiverilog\fP
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
.TP 8
|
|
|
|
|
.B --cflags
|
|
|
|
|
Print the compiler flags (CFLAGS or CXXFLAGS) needed to compile source
|
|
|
|
|
code destined for a VPI module.
|
|
|
|
|
|
|
|
|
|
.TP 8
|
|
|
|
|
.B --ldflags
|
|
|
|
|
Print the linker flags (LDFLAGS) needed to link a VPI module.
|
|
|
|
|
|
|
|
|
|
.TP 8
|
|
|
|
|
.B --ldlibs
|
|
|
|
|
Print the libraries (LDLIBS) needed to link a VPI module.
|
|
|
|
|
|
2003-10-14 02:40:06 +02:00
|
|
|
.TP 8
|
|
|
|
|
.B -m32
|
|
|
|
|
On 64bit systems that support it (and support vvp32) this flag
|
|
|
|
|
requests a 32bit vpi binary instead of the default 64bit binary.
|
|
|
|
|
|
2003-08-26 06:45:47 +02:00
|
|
|
.P
|
|
|
|
|
Example GNU makefile that takes advantage of these flags:
|
|
|
|
|
.IP "" 4
|
2009-08-10 15:34:18 +02:00
|
|
|
CFLAGS = \-Wall \-O $(CFLAGS_$@)
|
2003-08-26 06:45:47 +02:00
|
|
|
.br
|
2009-08-10 15:34:18 +02:00
|
|
|
VPI_CFLAGS := $(shell iverilog-vpi \-\-cflags)
|
2003-08-26 06:45:47 +02:00
|
|
|
.br
|
|
|
|
|
CFLAGS_messagev.o = $(VPI_CFLAGS)
|
|
|
|
|
.br
|
|
|
|
|
CFLAGS_fifo.o = $(VPI_CFLAGS)
|
|
|
|
|
.br
|
|
|
|
|
messagev.o fifo.o: transport.h
|
|
|
|
|
.br
|
|
|
|
|
messagev.vpi: messagev.o fifo.o
|
|
|
|
|
.br
|
|
|
|
|
iverilog-vpi $^
|
|
|
|
|
|
2002-05-28 07:21:30 +02:00
|
|
|
.SH "AUTHOR"
|
|
|
|
|
.nf
|
|
|
|
|
Steve Williams (steve@icarus.com)
|
|
|
|
|
|
|
|
|
|
.SH SEE ALSO
|
|
|
|
|
iverilog(1), vvp(1),
|
2002-11-23 01:51:53 +01:00
|
|
|
.BR "<http://www.icarus.com/eda/verilog/>",
|
|
|
|
|
.BR "<http://www.mingw.org>",
|
2002-05-28 07:21:30 +02:00
|
|
|
|
|
|
|
|
.SH COPYRIGHT
|
|
|
|
|
.nf
|
2009-11-03 21:59:19 +01:00
|
|
|
Copyright \(co 2002\-2009 Stephen Williams
|
2002-05-28 07:21:30 +02:00
|
|
|
|
2004-10-04 03:10:51 +02:00
|
|
|
This document can be freely redistributed according to the terms of the
|
2002-05-28 07:21:30 +02:00
|
|
|
GNU General Public License version 2.0
|