Revision history for Perl extension SystemC::Vregs
The contributors that suggested a given feature are shown in [].
* Vregs 1.260 3/1/2005
*** With -v2k attribute, use localparam instead of parameter.
*** Add Doxygen comments to C++ sources.
* Vregs 1.250 1/13/2005
** NEWS is now renamed Changes, to support CPAN indexing. [Offer Kaye]
*** Support Unicode decoding in Perl 5.8.0
*** Support latex2html documents.
**** Fix 64-bit compile warnings.
* Vregs 1.246 10/23/2004
*** Support Star Office documents.
* Vregs 1.245 7/22/2004
*** Add operator!= to enum classes for GCC 3.0
*** Support parsing of Netscape Composer documents. [Reed Lawson]
* Vregs 1.244 1/27/2004
**** Documentation fixes.
* Vregs 1.243 10/30/2003
*** Add before_any_file rule.
**** Documentation fixes. [Mike Castle]
* Vregs 1.242 9/4/2003
** Allow classes to have fields which are expanded from other classes.
For an example, see "ExClass" in vregs_spec.doc. [John DeRoo]
*** Add CRESET_ defines for the default values of non-zero, non-bool fields.
[John DeRoo]
* Vregs 1.241 6/9/2003
*** Added error if a derived class is extended to more words then its base
class. Use the '-stretchable' attribute on the base class to disable this.
Also check at runtime the word set methods, unless -stretchable is used.
*** Added enum values to parameter files
These include a enum declaration for Synopsys and the author's
verilog-mode for emacs. This allows the enumeration values to be
decoded into verilog strings. [John DeRoo]
**** With vspec --rm switch, remove MS Word change bar comments
This enables use of wvHtml to convert MSWord doc files to html.
**** Attributes in special columns of register bits are now passed
through into .vregs files. [Tom Levergood]
**** Fix structs referencing structs declared later in the same package.
**** Add/drop leading 0s in define values to make correctly widthed numbers.
* Vregs 1.240 12/13/2002
** Added subclassing of enumerations.
A enumeration can now reference another enumeration, and all values under the
lower enumeration will be included in the upper enumeration.
** Added a castHBytep() or castNBytep() method to each structure.
For safety, use it in place of reinterpret_cast<uint8_t*>(&struct)
to avoid endian-ness mistakes.
** Added support for registers wider then 32 bits.
** Renamed "vregs" executable to "vreg" to avoid Win2K conflict
with uppercase directory by the same name.
** Allow -descfunc attribute on enums to create a function to get description name
*** Added error when a struct of one endian-ness inherits a struct of
opposite endian-ness. Use "-[no]netorder" on derived type to fix it.
**** Fixed propagation of attributes across wildcarded classes.
**** Fixed decimal reset values in VregsRegInfo classes.
* Vregs 1.230 8/8/2002
** Added --noregtest attribute to registers, for suppressing testing.
*** Added _hash.pm output file, for easy conversion of enum
values to/from text descriptions.
*** Make m_w data storage protected. Use w() accessors instead.
**** Warn about empty bit descriptions.
**** Added dump() methods for internal debugging.
* Vregs 1.210 3/11/2002
*** Allow duplicate enumeration values. The ascii() method will
print the first sorted enumeration text.
**** Fix ORing in of ranged addresses. [Greg Waters]
* Vregs 1.200 11/26/2001
** Allow replacement of enumeration before/after rules.
*** Fixed bug where enumerations in registers would cause wrong
reset value in _info.cpp
*** Made sizes in vregs_info be a 64 bit integer.
** Added macros for compile-time hooks to add debugging checks, listed
below. See them in include/VregsClass.h.
*** Define VREGS_ENUM_DEF_INITTER(badValue) to make the default ctor
for enum-classes initialize the enum. Otherwise it's undefined.
*** Define VREGS_SETFIELD_CHK(str,val,u_max) to validate the argument
before stuffing it into struct.field "str". Otherwise Vregs classes
silently truncate the argument.
*** Define VREGS_STRUCT_DEF_CTOR(TypeName, numWords) if you want structs
to have a default constructor, e.g. to initialize the words to
0xdeadbeef. Otherwise Vregs structs are initially undefined (just
like a C++ array of uint32_t).
**** Changed enumeration ascii() default to "?E" instead of "%E"
* Vregs 1.100 10/18/2001
** Added rules for .cpp files: before_enum_cpp,
after_enum_cpp, before_class_cpp, after_class_cpp.
*** Made RBASEA_ and RBASEAE_ defines from common prefix
exising across multiple registers. RBASEAM_ is a power-of-two
mask for extracting that range.
*** Classes which have a smaller base class now have the
correct sizeof(), previously they would have the base's sizeof.
*** Non-contiguous fields are now postfixed with a number instead
of prefixed. Thus CR1_Reg_Field and CR2_Reg_Field become
CR_Reg_Field_1 and CR_Reg_Field_2.
*** Fields that extend beyond 32 bits now get additional defines
with the word number enclosed in them. This allows for easy
extraction from 32-bit busses.
**** Comment columns in register definitions now become attributes.
This allows other parsers to pick off the fields they need.
**** Fixed E_ enum defines to be in hex, not decimal.
* Vregs 1.000 9/03/2001
** First publicized release.
*** Added ENUM ascii() methods to cpp instead of inlined .h
* Vregs 0.1 6/27/2001
**** Package Released as Beta
----------------------------------------------------------------------
$Revision: 1.5 $$Date: 2005-03-01 18:13:37 -0500 (Tue, 01 Mar 2005) $$Author: wsnyder $
----------------------------------------------------------------------
This uses outline mode in Emacs. See C-h m [M-x describe-mode].
Copyright 2001-2005 by Wilson Snyder. 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.
Local variables:
mode: outline
paragraph-separate: "[ \f\n]*$"
end: