This is the Verilog::Pli Perl Package. Copyright ========= This package is Copyright 1998 by Wilson Snyder . You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file, with the exception that it cannot be placed on a CD-ROM or similar media for commercial distribution without the prior approval of the author. This code is provided with no warranty of any kind, and is used entirely at your own risk. Description =========== This package provides access to Verilog PLI routines from within Perl. $NET{a_signal} = 1 do_stop(); See `man Verilog::Pli' after installation. Obtaining Distribution ====================== The latest version is available at `http://www.perl.org/CPAN/' Download the latest package from that site, and decompress. `gunzip Verilog-Pli_version.tar.gz ; tar xvf Verilog-Pli_version.tar' Supported Systems ================= This version of Verilog::Pli has been built and tested on: * sparc-sun-solaris2.5.1 It should run on any system with perl and VCS or other simulator. Installation ============ 1. `cd' to the directory containing this INSTALL notice. 2. Type `perl Makefile.PL' to configure Verilog::Pli for your system. 3. Type `make' to compile Verilog::Pli. 4. Type `make install' to install the programs and any data files and documentation. Interpreter =========== You will need a perl interpreter inside your simulator to make this package useful. 1. Read up on the perlembed manpage. 2. Make a program like `perl_boot.c', make a pli call for it. 3. Add a `initial $perlboot();' command in verilog to call the `perl_boot.c' program. 4. Link in Perl and the boot program with your simulator. In VCS, you need something like ` perl_boot.o -P pli_boot.tab [some_path]/DynaLoader.a [some_path]/libperl.a ' 5. You can easily write other PLI functions that call perl_eval_pv, allowing Verilog to invoke Perl routines. This package is not for the PLI novice. Unfortunately, I do not have the time to provide help on this part of the process. At some point I will make a real example; contributions to this are most welcome.