1 Verilog Perl
**************

This is the Verilog Perl Package.

1.1 Copyright
=============

This package is Copyright 2000-2006 by Wilson Snyder
<wsnyder@wsnyder.org>.

   This program is free software; you can redistribute it and/or modify
it under the terms of either the GNU General Public License or the Perl
Artistic License.

   This code is provided with no warranty of any kind, and is used
entirely at your own risk.

1.2 Description
===============

This package provides functions to support writing utilities that use
the Verilog language.  See `man Verilog::Language' and `man vrename'
after installation.

   Included is `vrename', a program for renaming signals, modules, and
parameters across many verilog files at once.

   `vppp' is a Verilog preprocessor.  Low level classes allow
preprocessing inside of Perl or C++ programs as a standard stream.

   `vhier' will report hierarchy information, such as all files in a
design.

   Also included is `vpm' to convert macros that look like pli calls,
such as $info, into different Verilog code.  This enables programs like
Verilint and Synopsys dc_shell to ignore the macros (as they ignore pli
calls), but have the simulator do something special with them.

   For example:

           $uinfo (0, "Welcome to a VPMed file\n");

   becomes

           ... $write ("[%0t] -I:example.v:0012: Welcome to a VPMed file\n",$time); ...

   where the filename and line number of the message have been added
along with the timestamp.

1.3 Complete Parsing
====================

The lower level parsing routines do not keep behavioral statements, or
bit connectivity within busses.  If you're looking for a front end that
keeps all information, you may want to consider using the C++ front end
that is part of Verilator.  See
`http://www.veripool.com/verilator.html'.

1.4 Obtaining Distribution
==========================

Verilog-Perl is part of the L<http://www.veripool.com/> free Verilog
EDA software tool suite.  The latest version is available from
`http://www.perl.org/CPAN/', and from
`http://www.veripool.com/verilog-perl.html'.

   Download the latest package from that site, and decompress.  `gunzip
Verilog-Perl_version.tar.gz ; tar xvf Verilog-Perl_version.tar'

   You may also want to try the AUTO features present in
L<http://www.veripool.com/verilog-mode.html>Verilog-Mode.

1.5 Supported Systems
=====================

This version of Verilog has been built and tested on:

   * sparc-sun-solaris2.5.1

   * i386-linux

   * i686-w2k-cygwin

   It should run on any system with Perl, G++ and Flex.

1.6 Installation
================

  1. `cd' to the directory containing this README notice.

  2. Type `perl Makefile.PL' to configure Verilog for your system.

  3. Type `make' to compile Verilog.  Some Solaris users have had
     trouble with "open" being redefined.  If this happens, try editing
     the Makefile to change _FILE_OFFSET_BITS to 32 instead of 64.

  4. Type `make test' to check the package.  If you don't have
     Synopsys' VCS, the test will print a warning, which you can ignore.

  5. Type `make install' to install the programs and any data files and
     documentation.

  6. Look at `t/60_vpm.t' to see how to use `vpm' in your build
     methodology.


