From 41e54499c9647a2a86460bbeafc18e78a3538db7 Mon Sep 17 00:00:00 2001 From: steve Date: Sun, 16 Feb 2003 02:44:47 +0000 Subject: [PATCH] Add the cadpli HOWTO. --- cadpli/cadpli.txt | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 cadpli/cadpli.txt diff --git a/cadpli/cadpli.txt b/cadpli/cadpli.txt new file mode 100644 index 000000000..cd8553b64 --- /dev/null +++ b/cadpli/cadpli.txt @@ -0,0 +1,41 @@ + +CADENCE PLI1 MODULES + + Copyright 2003 Stephen Williams + $Id: cadpli.txt,v 1.1 2003/02/16 02:44:47 steve Exp $ + +With the cadpli module, Icarus Verilog is able to load PLI1 +applications that were compiled and linked to be dynamic loaded by +Verilog-XL or NC-Verilog. This allows Icarus Verilog users to run +third-party modules that were compiled to interface with XL or +NC. Obviously, this only works on the operating system that the PLI +application was compiled to run on. For example, a Linux module can +only be loaded and run under Linux. + +Icarus Verilog uses an interface module, the "cadpli" module, to +connect the worlds. This module is installed with Icarus Verilog, and +is invoked by the usual -m flag to iverilog or vvp. This module in +turn scans the extended arguments, looking for +cadpli= arguments. The +latter specify the share object and bootstrap function for running the +module. For example, to run the module product.so, that has the +bootstrap function "my_boot": + + vvp -mcadpli a.out +cadpli=./product.so:my_boot + +The "-mcadpli" argument causes vvp to load the cadpli.vpl library +module. This activates the +cadpli= argument interpreter. The ++cadpli=: argument, then, cause vvp, through the +cadpli module, to load the loadable PLI application, invoke the +my_boot function to get a veriusertfs table, and scan that table to +register the system tasks and functions exported by that object. The +format of the +cadpli= extended argument is essentially the same as +the +loadpli1= argument to Verilog-XL. + +The integration from this point is seamless. The PLI application +hardly knows that it is being invoked by Icarus Verilog instead of +Verilog-XL, so operates as it would otherwise. + +$Log: cadpli.txt,v $ +Revision 1.1 2003/02/16 02:44:47 steve + Add the cadpli HOWTO. +