Fix botched processing of MUX with constant select.
[sverilog.git] / cadpli / cadpli.txt
blob9aa16b8b5b7e07f527e8641e86a23840a14e0442
2 CADENCE PLI1 MODULES
4    Copyright 2003 Stephen Williams
5    $Id: cadpli.txt,v 1.2 2003/02/17 00:01:25 steve Exp $
7 With the cadpli module, Icarus Verilog is able to load PLI1
8 applications that were compiled and linked to be dynamic loaded by
9 Verilog-XL or NC-Verilog. This allows Icarus Verilog users to run
10 third-party modules that were compiled to interface with XL or
11 NC. Obviously, this only works on the operating system that the PLI
12 application was compiled to run on. For example, a Linux module can
13 only be loaded and run under Linux.
15 Icarus Verilog uses an interface module, the "cadpli" module, to
16 connect the worlds. This module is installed with Icarus Verilog, and
17 is invoked by the usual -m flag to iverilog or vvp. This module in
18 turn scans the extended arguments, looking for +cadpli= arguments. The
19 latter specify the share object and bootstrap function for running the
20 module. For example, to run the module product.so, that has the
21 bootstrap function "my_boot":
23     vvp -mcadpli a.out -cadpli=./product.so:my_boot
25 The "-mcadpli" argument causes vvp to load the cadpli.vpl library
26 module. This activates the -cadpli= argument interpreter. The
27 -cadpli=<module>:<boot_func> argument, then, causes vvp, through the
28 cadpli module, to load the loadable PLI application, invoke the
29 my_boot function to get a veriusertfs table, and scan that table to
30 register the system tasks and functions exported by that object. The
31 format of the -cadpli= extended argument is essentially the same as
32 the +loadpli1= argument to Verilog-XL.
34 The integration from this point is seamless. The PLI application
35 hardly knows that it is being invoked by Icarus Verilog instead of
36 Verilog-XL, so operates as it would otherwise.
38 $Log: cadpli.txt,v $
39 Revision 1.2  2003/02/17 00:01:25  steve
40  Use a variant of ivl_dlfcn to do dynamic loading
41  from within the cadpli module.
43  Change the +cadpli flag to -cadpli, to keep the
44  plusargs namespace clear.
46 Revision 1.1  2003/02/16 02:44:47  steve
47  Add the cadpli HOWTO.