The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Verilog::SigParser - Signal Parsing for Verilog language files

SYNOPSIS

  use Verilog::SigParser;

  my $parser = new Verilog::SigParser;
  $string = $parser->unreadback ();
  $line   = $parser->line ();
  $parser->parse_preproc_file ($pp);

DESCRIPTION

The Verilog::SigParser package builds upon the Verilog::Parse function to provide callbacks for when a signal is declared, a module instantiated, or a module defined. For a higher level interface to this package, see Verilog::Netlist.

The external interface to Verilog::SigParser is described in the Verilog::Parser module. You will probably want to use the preprocessing option of Verilog::Parser with this package.

In order to make the parser do anything interesting, you must make a subclass where you override one or more of the following methods as appropriate:

$self->module ( $keyword, $name, ignored, $in_celldefine )

This method is called when a module is defined.

$self->port ( $name )

This method is called when a module port is defined.

$self->task ( $keyword, $name )

This method is called when a module is defined.

$self->function ( $keyword, $name )

This method is called when a function is defined.

$self->signal_decl ( $keyword, $signame, $vector, $mem, $signed )

This method is called when a signal is declared. The first argument, $keyword is ('input', 'output', etc), the second argument is the name of the signal. The third argument is the vector bits or "". The fourth argument is the memory bits or "".

$self->instant ( $module, $cell )

This method is called when a instantiation is defined. The first parameter is the name of the module being instantiated, and the second parameter is the name of the cell.

$self->pin ( $name, $connection, $index )
$self->ppdefine ( $defvar, $definition )
$self->attribute ( $keyword, $text )

Scanned an attribute (future: Verilog-2001) or meta-comment. The parser inspects the first word of each comment line (//key rest to end of line) or comment block (/*key rest */). It calls $self-attribute( prev_keyword, meta_text ) if the first word has a true value in hash $self-metacomment>.

BUGS

This is being distributed as a baseline for future contributions. Don't expect a lot, the Parser is still naive, and there are many awkward cases that aren't covered.

DISTRIBUTION

The latest version is available from CPAN and from http://www.veripool.com/verilog-perl.html.

Copyright 2000-2005 by Wilson Snyder. This package is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License or the Perl Artistic License.

AUTHORS

Wilson Snyder <wsnyder@wsnyder.org>

SEE ALSO

Verilog::Parser, Verilog::Language, Verilog::Netlist, Verilog::Getopt