##################################################################
# Copyright (C) 2000 Greg London   All Rights Reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
##################################################################

Hardware::Vhdl::Parse.pm is currently in "beta" status

The Hardware::Vhdl::Parse.pm file contains a VHDL grammar.
This grammar is used by Parse::RecDescent to parse any
VHDL design file. You will need the latest version of 
Parse::RecDescent to use this grammar.

parser.pl is a script which uses this module to do the actual parsing.  
A test VHDL file is included called test1.vhd

to parse this file, type:

parser.pl test1.vhd

The parser.pl script doesn't do anything except parse the file.
There is another module called hierarchy.pm which spits out
the name of all instantiated components. There is a script,
called hierarchy.pl, that uses this module. To run this script,
type:

hierarchy.pl test1.vhd

this should print out:
INSTANCENAME DUT 



PLEASE NOTE: the script takes some time to simply load the grammar.
the it takes about a minute (yes, 60 seconds) to run the 
hierarchy.pl test1.vhd command shown above when run on an Ultra 60.
your performance may vary.

the Parse::RecDescent has some features which will eventually 
allow me to speed up this execution time. I'll get to that
when the grammar is ironed out.

status of grammar: Beta

once the grammar is in a released state, 
then I'll concentrate on tools that use the grammar. 

possible tool applications include: 
1) automatic build scripts, 
2) automatic synthesis scripts, 
3) hierarchical browswers,
4) lint type checking with a hardware slant,
   "hey buddy, you've got combinatorial logic driving a module output port"
   "you've got combinatorial paths that cross multiple hierarchy boundaries."
   "did you ever hear of clocking all your output ports"
5) a script that can go through a netlist,
	find all the signals,
	perform regular-expression renaming on the signals,
	and save the results as a new netlist.


If you have any corrections or questions,
please send them to me at
greg42@bellatlantic.net

thanks,
Greg London