1iverilog-vpi(1) Version 12.0 (stable) iverilog-vpi(1)
2
3
4
6 iverilog-vpi - Compile front end for VPI modules
7
8
10 iverilog-vpi [options] sourcefile...
11
12
14 iverilog-vpi is a tool to simplify the compilation of VPI modules for
15 use with Icarus Verilog. It takes on the command line a list of C or
16 C++ source files, and generates as output a linked VPI module. See the
17 vvp(1) man page for a description of how the linked module is loaded by
18 a simulation.
19
20 By default the output is named after the first source file. For exam‐
21 ple, if the first source file is named foo.c, the output becomes
22 foo.vpi.
23
24
26 iverilog-vpi accepts the following options:
27
28 -llibrary
29 Include the named library in the link of the VPI module. This
30 allows VPI modules to further reference external libraries.
31
32
33 -Ldirectory
34 Add directory to the list of directories that will be searched
35 for library files.
36
37
38 -Idirectory
39 Add directory to the list of directories that will be searched
40 for header files.
41
42
43 -Ddefine
44 Define a macro named define.
45
46
47 --name=name
48 Normally, the output VPI module will be named after the first
49 source file passed to the command. This flag sets the name
50 (without the .vpi suffix) of the output vpi module.
51
52
54 When built as a native Windows program (using the MinGW toolchain), by
55 default iverilog-vpi will attempt to locate the MinGW tools needed to
56 compile a VPI module on the system path (as set by the PATH environment
57 variable). As an alternative, the user may specify the location of the
58 MinGW tools via the following option.
59
60
61 -mingw=path
62 Tell the program the root of the MinGW compiler tool suite. The
63 vvp runtime is compiled with this compiler, and this is the
64 compiler that iverilog-vpi expects to use to compile your
65 source code. If this option accompanies a list of files, it
66 will apply to the current build only. If this option is pro‐
67 vided on its own, iverilog-vpi will save the path in the reg‐
68 istry and use that path in preference to the system path for
69 subsequent operations, avoiding the need to specify it on the
70 command line every time.
71
72
74 iverilog-vpi includes additional flags to let Makefile gurus peek at
75 the configuration of the iverilog installation. This way, Makefiles
76 can be written that handle complex VPI builds natively, and without
77 hard-coding values that depend on the system and installation. If used
78 at all, these options must be used one at a time, and without any other
79 options or directives.
80
81
82 --install-dir
83 Print the install directory for VPI modules.
84
85
86 --cflags
87 Print the compiler flags (CFLAGS or CXXFLAGS) needed to compile
88 source code destined for a VPI module.
89
90
91 --ldflags
92 Print the linker flags (LDFLAGS) needed to link a VPI module.
93
94
95 --ldlibs
96 Print the libraries (LDLIBS) needed to link a VPI module.
97
98
99 Example GNU makefile that takes advantage of these flags:
100
101 CFLAGS = -Wall -O $(CFLAGS_$@)
102 VPI_CFLAGS := $(shell iverilog-vpi --cflags)
103 CFLAGS_messagev.o = $(VPI_CFLAGS)
104 CFLAGS_fifo.o = $(VPI_CFLAGS)
105 messagev.o fifo.o: transport.h
106 messagev.vpi: messagev.o fifo.o
107 iverilog-vpi $^
108
109
111 Steve Williams (steve@icarus.com)
112
113
115 iverilog(1), vvp(1), <http://iverilog.icarus.com/>, <http://mingw-
116 w64.yaxm.org/>,
117
118
120 Copyright © 2002-2017 Stephen Williams
121
122 This document can be freely redistributed according to the terms of the
123 GNU General Public License version 2.0
124
125
126
127 Jan 29th, 2017 iverilog-vpi(1)