   This is the SystemC Vregs Package, aka Vregs.

Copyright
=========

   This package is Copyright 2001 by Wilson Snyder
<wsnyder@wsnyder.org>.

   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.

Summary
=======

   The publicly licensed Vregs package provides a means for extracting
registers, classes, enumerations, and defines from documentation.  Vregs
then extracts header files for C++, Verilog, and Perl.

   Being very object oriented, the program can easily be extended to
support additional output languages and output files.  You can download
Vregs from the link off of http://www.veripool.com/vregs.html

   Vregs does not require SystemC or C++ to be useful, though some of
the generated header files are only useful in object oriented languages
like C++.

Description
===========

   Vregs converts documentation to C++, Verilog, and perl headers.

   First, you write your specification using the example documentation
in Microsoft Word format in vregs_spec.doc, or using any editor that can
produce HTML code.  Vregs only cares about the general table layout, not
style and font issues; almost any program will do, both Microsoft Word
and Adobe Framemaker have been used in the past.

   When the document is ready for conversion, save the document as
HTML.  Microsoft Word annoyingly opens the HTML after saving; be sure
to exit the HTML version immediately.

   You then run Vregs, which reads the HTML code and writes out a .vspec
file, which contains a summary of the extracted information.  This file
can be examined for errors, or edited standalone.  Vregs also produces
header fields with #defines for all of the constants and magic numbers
in the spec.

   Vregs can be customized to change the code it creates using
templates; see 'man vregs' for details.

Obtaining Distribution
======================

   The latest version is available at `http://www.perl.org/CPAN/'

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

   You will also need to have installed Bit::Vector, HTML::TableExtract,
and Verilog::Language from CPAN.  If you wish, simply try and install
Vregs and it will tell you what prerequisites are missing.

Supported Systems
=================

   This version of Vregs has been built and tested on:

   * i386-linux

   It should run on any system with Perl.

Installation
============

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

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

  3. Type `make' to compile.

  4. Type `make test' to check the compilation.  Note that
     vregs_spec.doc with this distribution is converted into the files
     in the test_dir directory.

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

  6. Install `vregs-mode.el' in your Emacs site-lisp directory.

  7. Add the `include' directory to your project's build path, if you
     wish to use the register information classes produced by Vregs.

  8. Examine the example document under vregs_spec.doc and
     vregs_spec.html.


