Downloaded and integrated latest wiki documentation from the geda website.
[geda-gaf/whiteaudio.git] / docs / wiki / geda_icarus_vpi_mp.html
blob4d094149410381dc38408dcd38a4291b3d919348
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
4 lang="en" dir="ltr">
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7 <title>geda:icarus_vpi_mp</title>
8 <meta name="generator" content="DokuWiki Release rc2007-05-24" />
9 <meta name="robots" content="index,follow" />
10 <meta name="date" content="2007-05-24T22:27:24-0400" />
11 <meta name="keywords" content="geda,icarus_vpi_mp" />
12 <link rel="search" type="application/opensearchdescription+xml" href="http://geda.seul.org/wiki/lib/exe/opensearch.php" title="geda Wiki" />
13 <link rel="start" href="http://geda.seul.org/wiki/" />
14 <link rel="contents" href="http://geda.seul.org/wiki/geda:icarus_vpi_mp?do=index" title="Index" />
15 <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="http://geda.seul.org/wiki/feed.php" />
16 <link rel="alternate" type="application/rss+xml" title="Current Namespace" href="http://geda.seul.org/wiki/feed.php?mode=list&ns=geda" />
17 <link rel="alternate" type="text/html" title="Plain HTML" href="http://geda.seul.org/wiki/_export/xhtml/geda:icarus_vpi_mp" />
18 <link rel="alternate" type="text/plain" title="Wiki Markup" href="http://geda.seul.org/wiki/_export/raw/geda:icarus_vpi_mp" />
19 <link rel="stylesheet" media="all" type="text/css" href="lib/exe/css" />
20 <link rel="stylesheet" media="screen" type="text/css" href="lib/exe/001css" />
21 <link rel="stylesheet" media="print" type="text/css" href="lib/exe/002css" />
22 </head>
23 <body>
24 <div class="dokuwiki export">
28 <h1><a name="compile_front_end_for_vpi_modules_man-page" id="compile_front_end_for_vpi_modules_man-page">Compile front end for VPI modules man-page</a></h1>
29 <div class="level1">
30 <pre class="code">iverilog-vpi(1) $Date: 2004/10/04 01:10:53 $ iverilog-vpi(1)
34 NAME
35 iverilog-vpi - Compile front end for VPI modules
38 SYNOPSIS
39 iverilog-vpi [--name=name] sourcefile...
42 DESCRIPTION
43 iverilog-vpi is a tool to simplify the compilation of VPI modules for
44 use with Icarus Verilog. It takes on the command line a list of C or
45 C++ source files, and generates as output a linked VPI module. See the
46 vvp(1) man page for a description of how the linked module is loaded by
47 a simulation.
49 The output is named after the first source file. For example, if the
50 first source file is named foo.c, the output becomes foo.vpi.
53 OPTIONS
54 iverilog-vpi accepts the following options:
56 -llibrary
57 Include the named library in the link of the VPI module. This
58 allows VPI modules to further reference external libraries.
61 --name=name
62 Normally, the output VPI module will be named after the first
63 source file passed to the command. This flag sets the name
64 (without the .vpi suffix) of the output vpi module.
67 --install-dir
68 This flag causes the program to print the install directory for
69 VPI modules, then exit. It is a convenience for makefiles or
70 automated plug-in installers.
73 PC-ONLY OPTIONS
74 The PC port of iverilog-vpi includes two special flags needed to sup-
75 port the more intractable development environment. These flags help the
76 program locate parts that it needs.
79 -mingw=path
80 Tell the program the root of the Mingw compiler tool suite. The
81 vvp runtime is compiled with this compiler, and this is the
82 compiler that iverilog-vpi expects to use to compile your
83 source code. This is normally not needed, and if you do use it,
84 it is only needed once. The compiler will save the path in the
85 registry for use later.
88 -ivl=path
89 Set for the use during compilation the root if the Icarus Ver-
90 ilog install. This is the place where you installed Icarus Ver-
91 ilog when you ran the installer. This flag is also only needed
92 once, and the path is stored in the registry for future use.
95 UNIX-ONLY OPTIONS
96 The UNIX version of iverilog-vpi includes additional flags to let Make-
97 file gurus peek at the configuration of the iverilog installation.
98 This way, Makefiles can be written that handle complex VPI builds
99 natively, and without hard-coding values that depend on the system and
100 installation. If used at all, these options must be used one at a
101 time, and without any other options or directives.
104 --cflags
105 Print the compiler flags (CFLAGS or CXXFLAGS) needed to compile
106 source code destined for a VPI module.
109 --ldflags
110 Print the linker flags (LDFLAGS) needed to link a VPI module.
113 --ldlibs
114 Print the libraries (LDLIBS) needed to link a VPI module.
117 -m32 On 64bit systems that support it (and support vvp32) this flag
118 requests a 32bit vpi binary instead of the default 64bit
119 binary.
122 Example GNU makefile that takes advantage of these flags:
124 CFLAGS = -Wall -O $(CFLAGS_$@)
125 VPI_CFLAGS := $(shell iverilog-vpi --cflags)
126 CFLAGS_messagev.o = $(VPI_CFLAGS)
127 CFLAGS_fifo.o = $(VPI_CFLAGS)
128 messagev.o fifo.o: transport.h
129 messagev.vpi: messagev.o fifo.o
130 iverilog-vpi $^
133 AUTHOR
134 Steve Williams (steve@icarus.com)
137 SEE ALSO
138 iverilog(1), vvp(1), &lt;http://www.icarus.com/eda/verilog/&gt;,
139 &lt;http://www.mingw.org&gt;,
142 COPYRIGHT
143 Copyright © 2002 Stephen Williams
145 This document can be freely redistributed according to the terms of the
146 GNU General Public License version 2.0
150 Version $Date: 2004/10/04 01:10:53 $ iverilog-vpi(1)</pre>
152 </div>
153 </div>
154 </body>
155 </html>