1 .TH iverilog-vpi 1 "$Date: 2004/10/04 01:10:53 $" Version "$Date: 2004/10/04 01:10:53 $"
3 iverilog-vpi - Compile front end for VPI modules
12 \fIiverilog-vpi\fP is a tool to simplify the compilation of VPI
13 modules for use with Icarus Verilog. It takes on the command line a
14 list of C or C++ source files, and generates as output a linked VPI
15 module. See the \fBvvp\fP(1) man page for a description of how the
16 linked module is loaded by a simulation.
18 The output is named after the first source file. For example, if the
19 first source file is named \fIfoo.c\fP, the output becomes
24 \fIiverilog-vpi\fP accepts the following options:
27 Include the named library in the link of the VPI module. This allows
28 VPI modules to further reference external libraries.
32 Add \fIdirectory\fP to the list of directories that will be search for
37 Define a macro named \fIdefine\fP.
41 Normally, the output VPI module will be named after the first source
42 file passed to the command. This flag sets the name (without the .vpi
43 suffix) of the output vpi module.
47 This flag causes the program to print the install directory for VPI
48 modules, then exit. It is a convenience for makefiles or automated
52 .B --cflags, --ldflags and -ldlibs
53 These flags provide compile time information.
57 The PC port of \fIiverilog-vpi\fP includes two special flags needed to
58 support the more intractable development environment. These flags help
59 the program locate parts that it needs.
63 Tell the program the root of the Mingw compiler tool suite. The
64 \fBvvp\fP runtime is compiled with this compiler, and this is the
65 compiler that \fIiverilog-vpi\fP expects to use to compile your source
66 code. This is normally not needed, and if you do use it, it is only
67 needed once. The compiler will save the \fIpath\fP in the registry for
72 Set for the use during compilation the root if the Icarus Verilog
73 install. This is the place where you installed Icarus Verilog when you
74 ran the installer. This flag is also only needed once, and the path is
75 stored in the registry for future use.
77 .SH "UNIX-ONLY OPTIONS"
79 The UNIX version of \fIiverilog-vpi\fP includes additional flags to
80 let Makefile gurus peek at the configuration of the \fIiverilog\fP
81 installation. This way, Makefiles can be written that handle complex VPI
82 builds natively, and without hard-coding values that depend on the
83 system and installation. If used at all, these options must be
84 used one at a time, and without any other options or directives.
88 Print the compiler flags (CFLAGS or CXXFLAGS) needed to compile source
89 code destined for a VPI module.
93 Print the linker flags (LDFLAGS) needed to link a VPI module.
97 Print the libraries (LDLIBS) needed to link a VPI module.
101 On 64bit systems that support it (and support vvp32) this flag
102 requests a 32bit vpi binary instead of the default 64bit binary.
105 Example GNU makefile that takes advantage of these flags:
107 CFLAGS = -Wall -O $(CFLAGS_$@)
109 VPI_CFLAGS := $(shell iverilog-vpi --cflags)
111 CFLAGS_messagev.o = $(VPI_CFLAGS)
113 CFLAGS_fifo.o = $(VPI_CFLAGS)
115 messagev.o fifo.o: transport.h
117 messagev.vpi: messagev.o fifo.o
123 Steve Williams (steve@icarus.com)
127 .BR "<http://www.icarus.com/eda/verilog/>",
128 .BR "<http://www.mingw.org>",
132 Copyright \(co 2002 Stephen Williams
134 This document can be freely redistributed according to the terms of the
135 GNU General Public License version 2.0