Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > a4a4f06267fb46715b2cca04bb19bd31 > files > 160

covered-0.7.7-1.fc13.x86_64.rpm

Covered-Related NEWS
====================

    * 10/24/2009

Stable release covered-0.7.7 made.  This is a bug fix release only.

  - Fixed compilation warnings when compiling on 64-bit Mac OS X and Debian-based platforms.
  - Updates to build scripts to help downstream Debian releases builds.
  - Fixed bug 2880705.  $Id: keywords containing newlines are now handled properly.  Additionally, fixing issues
    with multiply instantiated modules within a generate block.
  - Fixed bug 2881869.  Fixed a stack overflow issue in the gen_item_resolve function that would cause segmentation
    faults when too many items were being generated within a single generate block.
  - Fixed bug 2882433.  Fixed the "ERROR! Parameter used in expression but not defined in current module" error
    when a generated module instance has a parameter override of a parameter with the same name as the parameter
    within the module that contains the generate block.
 
    * 8/24/2009

Stable release covered-0.7.6 made.  This is a bug fix release only.

  - Fixed misspelling in report generator code (misspelling showed up in text reports)
  - Fixed issues with performing module merging with modules containing generate blocks configured differently
    for different instantiations of the same module.

    * 8/2/2009

Stable release covered-0.7.5 made.  This is a bug fix release only.

  - Fixed bug 2808818.  If a generate variable name collided with a reg/wire name, Covered was not emitting an error.
  - Fixed bug 2808820.  If no signal was used from the dumpfile and at least one signal needs information from the
    dumpfile, Covered needed to signal a user error.
  - Fixed bug 2812321.  Parameterized/generated modules could get incorrect coverage calculated for them.
  - Fixed bug 2812495.  Fixed a crash issue.  There is another part to this bug report that is not fixed, however.
  - Fixed bug 2813405.  A design run with the -g score option caused the GUI to freeze when viewed.
  - Fixed bug 2813948.  Fixed assertion issue with merging scored and unscored CDD files.

    * 6/17/2009

Stable release covered-0.7.4 made.  This is a bug fix release only.

  - Updated regression files for the new 2.4 version of the OVL.
  - Fixed bug 2804585.  Memory reads in LHS part selects were not being marked for memory coverage.
  - Fixed issue with VPI usage in a VCS simulation with generate statements.
  - Fixed bug 2805191.  Automatic tasks/functions that manipulate variables outside of the task/function
    can cause incorrect toggle coverage for those signals.
  - Fixed bug 2806855.  Generate blocks generating module instantiations could lead to score command
    errors (segfaults, internal assertion errors, etc.)

    * 6/4/2009

Stable release covered-0.7.3 made.  This primarily fixes a few bugs in the compile of Covered "out of the box".  It
seems that even with the regression testbench, things can still slip through the cracks :(  Anyhow, please use this
release instead of the 0.7.2 release.

    * 5/29/2009

Stable release covered-0.7.2 made.  This is primarily a bug fix release with a few new features added to the CLI.  Here
are the details of the changes.

  - Fixed bug 2791651.  Memory deallocation errors occurred when syntax errors were being reported by the parser.
  - Fixed bug 2791599.  Whitespace prior to a `line or #line directive were not being handled properly.
  - Fixed bug 2794588.  If a module was specified in a -v option after its directory was specified by the -y option
    to the score command, the module was not found for parsing.
  - Fixed bug 2794684.  If a normal (not generate) case statement within a generate block will output the case expression
    to be output to the CDD more than once, leading to internal assertion errors when the CDD file is read.
  - Fixed bug 2795088.  When a CDD file is opened from the wizard GUI window, the open file window can be placed behind the
    wizard window.  Instead the wizard window should disappear once a selection button has been clicked.
  - Fixed bug 2795086.  If the user clicked on the global exclusion reason listbox when it is empty, a Tcl/Tk error message
    box was raised.
  - Fixed bug 2795089.  If the GUI detailed combinational logic window is used to view several expressions one after the
    other, Covered can segfault.
  - Fixed bug 2795583.  Score command segfaults when a module is instantiated within a generate block and overrides a
    parameter value within the module.
  - Fixed bug 2795640.  Variables instantiated within a generate block caused issues with Covered when simulated with VCS.
  - Fixed bug where memory elements being assigned via non-blocking assignments were not being evaluated, leading to
    incorrect coverage output.
  - CLI updates/fixes:
      - When the 'debug on' command is specified, a line specifying that the debug mode is now on is output (previously
        nothing was output (because the debug mode was off).
      - Changed the 'debug on' command to 'debug less' and 'debug more' where the prior only outputs the executed statements
        and timestep information during simulation while the latter outputs what 'debug on' used to output (extremely verbose).
      - Fixed bug 2795209.  When an unknown CLI command was specified, a memory error occurred.
      - Fixed bug 2795215.  Status bar was attempting to be output during simulation when debug mode was turned on.  This
        created some unreadable/messy output.
      - Changed the 'goto <num>' command to 'goto time <num>'.
      - Added 'goto line [<filename>:]<num>' command which simulates until the specified line number is about to be simulated.
      - Added 'goto expr <signal> <bool_op> <value>' command which simulates until the given expression evaluates to
        a value of true.
      - Added support for handling the Ctrl-C interrupt when the score command is simulating with the -cli option specified.
        In this case, simulation will immediately stop and return a CLI prompt which will allow the user to continue interacting
        with the simulation.
  - Updated user guide documentation to include the changes made to the CLI.

    * 5/7/2009

Stable release covered-0.7.1 made.  This is a bug fix release only.  Here are the details:

  - Fixed bug 2782473.  CDD files being merged from different testbenches but with similar leading hierarchy 
    (but different top-level modules) which would lead to internal assertion errors.
  - Fixed bug 2785453.  Wires declared in generated named scopes were not handled correctly by Covered in VPI mode of operation,
    leading to inaccurate coverage information.
  - Fixed bug 2786986.  An always block with a part select in the sensitivity list was triggering on the entire signal change
    rather than the specific part select, leading to a potential degradation in performance and inaccuracy in coverage information.
  - Allow time variable types to be included for coverage.
  - Fixing permission issue with the install-sh script that some people would get after first downloading and installing.
  - Updated README and INSTALL files to be more accurate.
  - Fixed coverage accuracy issue for code that uses variable part selects in LHS of expressions. 

    * 4/26/2009

Stable release covered-0.7 made.  This description contains only the changes made between the 11/19/2008 and this release.
This is primarily a bug fix period.  Here are the details:

  - Added many new diagnostics to help with C source code coverage.
  - Fixed memory leak issue when profiling output is directed to unwrittable file.
  - Fixed bug 2423290.  Arithmetic right shift operator was not acting like a logical right shift operator when
    the left operand was an unsigned value.
  - Fixed bug 2471776.  The $time system call was not returning the correct value if the timescale was not 1-to-1.
  - Fixed bug 2482797.  If an unpacked dimension is accessed for a memory read, memory read coverage is not output
    correctly (not reported as being read).
  - Fixed bug 2446877.  Big endian signals were not being handled correctly from the VCD file.
  - Fixed bug 2502095.  Named blocks within generate statements generating wrong code.
  - Adding support for line order reporting when included files contain coverage information.
  - Fixed bug 2562345.  Timescales were not being handled properly in a DOS-formatted file.
  - Fixing issue where text following an `ifdef, `ifndef and `elsif was being parsed incorrectly.
  - Fixed bug 2565447.  Added support for LAND and LOR "static" operators to allow these operator types to be used
    in generate blocks.
  - Fixed bug 2565347.  Added missing support for $signed and $unsigned system function operators.
  - Fixed issue where a user-defined system call is found in the logic and Covered issues an error message.
  - Fixed bug 2565259.  Fixed a bug with preprocessor's handling of `include filenames.
  - Fixed bug 2565405.  Signed input/output signals were not parsed correctly.
  - Fixed bug 2422415.  Fixed simulation/coverage issue with comma-separated case items.
  - Fixed bug 2614516.  Added support for != operator in "static" expressions.
  - Fixed bug with obfuscation global option.
  - Fixed bug which produced segmentation fault when the $Id: NEWS,v 1.55.2.8 2009/10/25 04:31:42 phase1geo Exp $ keyword is found in a Verilog source file.
  - Fixed bug 2617354.  Fixed parameter handling in generate blocks.
  - Added capability to ignore race condition checking on a per-module basis.  Enhanced the -rI option to allow an optional
    module name (i.e., "-rI=foobar") to be specified to achieve this functionality.
  - Updated user documentation
  - Cleaned up all splint warnings
  - Fixed bug 2722062.  When an error is found within a Covered command run, Covered will now return a value of 1 (EXIT_FAILURE)
    instead of a value of 0.
  - Fixed bug 1899674.  When the score command is run to perform VCD scoring (after the CDD file was created with the score command)
    and the CDD file was found to be empty, an internal assertion error was output instead of a readable user error message.
  - Fixed bug 2779785.  Segmentation fault occurred when reporting certain Verilog styles (error in code generator).
  - Fixed bug 2781023.  Segmentation fault occurred when reporting certain Verilog styles (error in combinational logic
    underline functionality).
  - Performed various non-functional code cleanup.

    * 11/19/2008

Development release covered-20081119 made.  This development release adds support for more complex CDD merging (previously
only CDDs with the same DUT hierarchy could be merged).  Now different (including overlapping) blocks from different
parts of the design can be merged together as well as shared modules from different designs.  Includes a few bug fixes and
documentation updates for the merge command.  The following is a list of the changes that went into this development release.

  - Added new merge capabilities that allow two or more CDD files with different top-most scored modules to be merged
    together.  Also added ability to merge two similar modules from different designs.
  - Fixed bug 2223054.  Remove false positive combinational logic cases when non-zero values are within concatentations ({})
    and conditional expressions (?:).
  - Fixed bug 2253402.  Removed help_wrapper.tcl sourcing in Tcl/Tk scripts (this file was removed in the covered-20081030
    development release).
  - Fixed bug 2311710.  Segfault would occur if a combinational logic expression was excluded/included via the GUI when
    in instance reporting mode.
  - Updated merge command documentation to describe new merging capabilities in User's Guide.
  - Enhanced the configuration scripts to work with new versions of Icarus Verilog (include files for IV moved to a new
    location).  These changes should be backward compatible for older versions of IV.
  - Added several new diagnostics to regression suite to verify new functionality.

Note that CDD files generated with this version of Covered will not be backwards compatible with previous versions of
Covered.  This development release marks the last of the feature additions that will go into the upcoming 0.7 stable release
of Covered.  This branch is now in feature freeze and only bug fixes, regression updates and documentation changes will go
into this branch.  You may consider this development release to be a beta version of the 0.7 stable release due to be released
later this year.

    * 10/30/2008

Development release covered-20081030 made.  This development release is primarily a language support release in that
now Covered handles real numbers and has support for several built-in system task/function calls.  A few bug fixes
have also been included along with documentation updates.  Here's the rundown of the changes:

  - Fixed bug 2158297.  When initialized registers are output in a coverage report, a segmentation fault occurred.
  - Fixed bug 2158626.  Initialized registers could report missing toggle coverage information in several instances.
  - Removed register initialization statements from line coverage. 
  - Added full support for real numbers (real, realtime and shortreal) as both mathematical values as well as delay values.
  - Added support for runtime plus arguments to score command (also added the ability to specify plusargs to the New CDD
    creation wizard in the GUI).
  - Added functional support for the following built-in system task/function calls:  $bitstoreal, $bitstoshortreal, $rtoi,
    $test$plusargs, $itor, $value$plusargs, $shortrealtobits, $realtobits
  - Added the ability to allow the following built-in system task/function calls such that logic blocks containing these
    will now be able to be considered for coverage:  $swrite, $dumpports, $ferror, $swriteb, $dumpportsall, $fflush, $swriteh,
    $dumpportsoff, $fgetc, $swriteo, $dumpportson, $fgets, $dumpportslimit, $ungetc, $dumpportsflush
  - Outputs an error if the value specified for the -P option to the score command is specified incorrectly.
  - Fixed timescale issues
  - Fixing time 0 problems for VPI mode of operation
  - Fixed toggle coverage results for automatic functions/tasks.
  - Updated User Guide per these changes
  - Enhanced regression suite to verify new functionality.

    * 10/07/2008

Development release covered-20081006 made.  This development release is both a feature and a bug fix release.  The main
feature additions include a new "exclude" command which allows the user to exclude coverage points from the command-line
and provide (optional) reasons for the exclusion which are saved in the CDD file and can be output in reports.  Exclusion
reasons can also be specified now using the GUI.  Additionally, support for the $time, $random, $urandom, $urandom_range
and $srandom system functions are provided along with handling of several system tasks (see User's Guide for a detailed
list of supported system tasks/functions) such that logic blocks containing these will not be automatically excluded from
coverage consideration.  The following is a detailed list of the changes that has gone into this development release of
Covered.

  - Added a new "exclude" command which allows coverage points in the design to be excluded (with an optional exclusion
    reason provided)/included.  You can also display the current exclusion status and reason for a given coverage point using
    this command.
  - Added a new -x option to the report command that will display the exclusion ID for the various coverage points that
    is used for excluding/including coverage points via the new "exclude" command.
  - Added a new -e option to the report command that will display excluded coverage points and their reasons for exclusion
    to the report file.
  - Added ability in GUI to create generic exclusion reasons in the Preferences window which can be used when providing
    exclusion reasons in the GUI for common exclusions.
  - Added ability in GUI to provide exclusion reasons when excluding a coverage point.
  - Fixing issue with the use of the kfmclient for help viewing (KDE).
  - Fixed bug 2095796.  When the root expression in the verbose combinational logic window is excluded, the highlight colors
    were not changing to indicate that the line is "covered".
  - Fixed bug 2095799.  When a memory element was excluded, the colors in the verbose memory window were not adjusted to indicate
    that the memory was "covered".
  - Updated covered.spec (RPM build file) to match current state of Covered.
  - Fixed bug 2104947.  Missed indexed memory operations are not output in the report file correctly.
  - Fixed bug 2104924.  Indexed memory operations were not emitting correct coverage information in combinational logic coverage.
  - Fixed bug 2106313.  The !== operation result was not correct.
  - Cleaned up splint warnings in source code.
  - Fixed bug 2112858.  "Multi-tiered" merging was not reporting the correct contributing coverage files.
  - Fixed bug 2112509.  Support added to merge files with the same basename but different directories (relative pathnames are used).
  - Fixed bug 2112613.  Multi-expressions that were marked to be excluded were output in the report files as both excluded
    and uncovered.
  - Fixed memory issues with obfuscation code and made minor performance enhancements with this functionality.
  - Fixing issue with rank command when an invalid option was specified (output incorrect output message previously).
  - Added module version parsing support to parser.  If this information is specified in an $Id..$ string within a comment,
    it is extracted and saved in the CDD.
  - Fixed bug 2122019.  Added documentation for the -m option to the score command.
  - Added new -er option to the merge command which specifies how to resolve exclusion reasons that are specified for the
    same coverage point in two CDD files that are being merged.  See user guide for more information.
  - Added new "Merging" preference pane to GUI that allows the user to specify how the GUI will resolve exclusion reasons when
    reading and merging in CDD files (much like the -er option to the merge command).
  - Fixed bug 2123730.  Error in parsing unsized constants (i.e., 'h0) in some instances (ex. "assign a = #1 'h0;").
  - Fixed bug 2123300.  Toggle and FSM coverage points are not properly merged.
  - Fixed bug 2124635.  If the current GUI metric state is set to "Toggle", no opened files exist and a preference change causes
    an error to occur stating that the current functional unit could not be found.
  - Fixed bug 2125451.  Fixed VPI usage errors.
  - Fixed bug 2127185.  An "if" statement with an empty true scope caused a segmentation fault.
  - Fixed bug 2127678.  Fixed assertion error in db_close function when LXT2-style dump scoring.
  - Fixed bug 2127687.  Fixed memory leaks when using the LXT2-style dump scoring.
  - Fixed bug 2129623.  X values between 0/1 values should not impede on toggle coverage (i.e., 0->X->1 should be considered as a
    toggle from 0->1 while 0->X->0 is treated as no toggle change (conservative approach)).
  - Fixed bug 2133113.  Error message displayed when Konqueror browser is used to view help information.
  - Created new banner graphic for Covered and integrated this into the GUI.
  - Fixed bug 2136474.  An internal Covered error was displayed when forever blocks were used within fork..join.
  - Fixed bug 2127674.  LXT-style dump information in documentation should have been specified as LXT2 (LXT not supported).
  - Fixed bug 2127694.  Task/function port handling caused errors in some instances.
  - Adding functional support for the $time, $random, $urandom, $urandom_range and $srandom system functions.
  - Adding coverage handling support for $dumpall, $dumpfile, $dumpflush, $dumplimit, $dumpvars, $dumpoff, $dumpon, $fdisplay,
    $fmonitor, $fstrobe, $fwrite, $history, $key, $list, $log, $monitor, $monitoroff, $monitoron, $nokey, $nolog, $printtimescale,
    $showscopes, $showvariables, $showvars, $strobe, $timeformat, $write, and $fclose.
  - Added -conservative option to the score command to force Covered's parser to remove logic blocks from coverage consideration
    if they contain code that could potentially lead to coverage inaccuracies.
  - Added -Wignore option to the score command to suppress warning information from output.
  - Fixed bug 2124669.  When multiple files are opened simultaneously in the GUI, no design output was displayed in the GUI.
  - Fixed bug 2131171.  If a block is removed from coverage consideration, no warning message was output to indicate that this
    was being done and why.
  - Added -dumpvars option to the score command which will generate a top-level module that will contain the necessary $dumpfile
    and $dumpvars calls to most effeciently gain coverage for a design that is being scored via a VCD/LXT2 dumpfile.  See
    the User's Guide for more information.
  - Added the support for the -dumpvars option to the GUI new CDD creation wizard.
  - Deprecated the -vpi_ts option to the score command.  This option is now called -top_ts and can be used with either the
    -vpi or -dumpvars options.
  - Added lots of new diagnostics to the regression suite to verify new functionality and to improve code coverage in
    Covered's source code.
  - Updated necessary documentation in User's Guide and manpage.

Note that the CDD version numbers have changed in this release, making them incompatible with CDD files created from older
versions of Covered.

    * 8/26/2008

Development release covered-20080826 made.  This development release contains several new features, bug fixes, GUI
enhancements and additions, documentation overhaul and testsuite enhancements.  One major feature is the new "rank"
command which allows you to specify multiple CDD files to it and it will select an "optimal" subset of CDD files
needed to achieve the same amount of coverage that all of the files together provide, ranked in the order that these
CDD files should be run in simulation to achieve the most coverage in the fastest amount of time.  A big thanks to
Ed Spittles (ed.spittles@gmail.com) for his recommendation and insight for this feature.  I think you'll like what
you see as the time for a new stable release draws nearer (I'm planning on an end-of-the-year release date for the new
0.7 stable release).  As you can see, Covered development has been very busy since the last development release.
Please give this a try and report those bugs!  Here's a list of the changes going into this work:

  - Fixed bug 1980954.  Single-bit expression elaboration could lead to segfault.
  - Fixed bug 1981073.  Parameterized port specified twice (once with port direction, once with type specification)
    lead to a memory leak.
  - Fixed bug 1982530.  The empty string "" was not being handled correctly, leading to a segfault.
  - Added full support for the use of NULL statements ";"
  - Added configuration checks for the lex (flex) and yacc (bison) code generators.
  - Added many new diagnostics to cover holes in the regression suite as found by performing C source code coverage.
  - Added a new "rank" command (there are now four main commands to Covered) which allows multiple CDD files to be
    ranked in terms of coverage gained.  Generates a report specifying its results and correlating coverage statistics.
    - Has the ability to show which CDD files are unnecessary in terms of adding new coverage information.  This
      reduction capability allows users to reduce the size (runtime) of their regressions.
    - Ranks the "needed" list of CDD files in the order that their simulations should be run (in terms of regression).
      This information can be useful for creating "quick" regressions that need to hit as much logic as possible (but
      not necessarily all) in a relatively short period of time for the purposes of design change confidence.
    - Has the ability to allow user's to specify a list of CDD files that MUST be included in the final list of CDDs
      to run.
  - Added -f options to all of the commands (previously, only the score command had this option) which allows a file
    to be specified containing more command-line options.
  - Fixed some issues pertaining to -m32 compiler option support (on 64-bit systems).
  - Fixed bug 1986510.  The compiler error message "lxt2_read.c:1394: error: extended registers have no high halves"
    when compiling with the -O3 option to the 4.1.x (and later) GCC compilers.
  - Added ability to create/run regression tests using a perl script (rather than only via Make rules).
  - Fixed segmentation fault when the global -D option was specified and the input CDD file was empty.
  - Fixed bug 1997423.  If a fully covered signal was output in toggle coverage when the -c option is specified to
    the report command, the signal was not being output.
  - Cleaned up all -Wall GCC warning messages.
  - Fixed bug 1994896.  Array overflow condition in new vector code causing segfaults.
  - Optimized --enable-debug enabled code (runs almost as fast now as without the --enable-debug mode).
  - Reduced the number of files in the regression directories.
  - Fixed bug 2000732.  Valgrind reported error in new vector code.
  - Fixed memory leak issue for command option files that contain environment variable references that are not set
    in the environment.
  - Fixed bug 2001894.
  - Fixing splint and GCC -Wextra warnings/errors.
  - Added -m option to the score command which allows the user to specify a message to be associated with a created
    CDD file (the contents of this message can be most anything -- the information is currently not being used by
    Covered but may in the future).
  - Added -d and -ext options to the merge command (these options exist in the rank command as well) to allow the
    user to specify a directory and extension to use for finding CDD files to merge.
  - Fixed CDD file format to remove memory allocation errors when many CDD files are merged into a single CDD file.
  - Fixed bug 2054686.  Toggle, memory and combinational logic coverage points within an unnamed block were not being
    reported in the GUI and ASCII reports.
  - GUI changes
    - Refreshed the look of the GUI, replacing many widgets with better/newer widgets.  The GUI is now reliant on
      Tcl/Tk versions of 8.4 (preferable 8.5) and newer (it used to be backward compatible to 8.3).
    - Replaced most of the listbox widgets with the new tablelist widget (this new widget needs to be downloaded and
      installed in the user's Tk library prior to using Covered's GUI).
    - Added a "general" pane to the preferences window that allows the user to modify general components of the GUI.
    - Added a starting "wizard" window that pops up on startup to allow the user to quickly do various tasks.  This
      window can be turned off via a checkbutton in its window and/or the general preferences pane.
    - Added the ability to create new CDD files from the GUI (rather than having to use the command-line score
      command) via a new "New CDD Creation" wizard accessible from the File > Generate menu (or from the new
      wizard window).
      - Ability to create a score command option file from the GUI after options have been selected (this file can
        be loaded by later references to the New CDD Creation wizard and/or the -f option to the score command.
    - Added the ability to rank two or more CDD files from the GUI (rather than having to use the new command-line
      rank command) via a new "Rank CDDs" wizard accessible from the File > Generate menu (or from the new wizard
      window).
      - Ability to create a rank command option file from the GUI after options have been selected (this file can
        be loaded by later references to the Rank CDDs wizard and/or the -f option to the rank command.
      - Ability to use currently loaded CDD files in the GUI to the rank list.
      - Includes the ability to view this generated report file directly in the GUI via a new file viewer window.
    - Reworked the entire ASCII report generation functionality to work as a wizard window (like the New CDD and Rank CDDs
      wizards).  Removed "ASCII Report Options" pane from the preferences panel.  This feature is accessible via
      the File > Generate menu option.
      - Ability to create a report command option file from the GUI after options have been selected (this file can
        be loaded by later references to the ASCII Report Generation wizard and/or the new -f option to the report
        command.
      - Added ability to view this file information directly in the GUI via a new file viewer window.
    - Fixing memory errors when Tcl/Tk script fails/errors.
    - Fixed bug 1989398.  Toggle coverage results were not being
    - Added support for tooltips to many of Covered's widgets.  Tooltips can be turned on/off in the preferences
      window.
    - Added ability for GUI to remember window placements, tablelist column sizes/positions/states and other miscellaneous
      state information while it is being used and, optionally, between application uses.  The ability to remember
      this information between application runs is configurable in the preferences window.
    - Added full support for instance-based coverage accumulation in the GUI.  The user can now select either mode
      in the GUI and get immediate results.  Additionally, coverage exclusions are transferable between modes (excluding
      a coverage point when in module mode will exclude all instances, but excluding a coverage point in an instance will
      only exclude the module coverage information if all instances of that module are excluded).
    - Updated the Next (-->) and Previous (<--) buttons in all windows to use new graphical buttons.
    - Updated the search widgets to use a more graphical, modern approach.
    - Fixed bug 2054689.  In verbose combinational logic coverage window, when expression was excluded, the highlighted logic
      did not change to hit colors.
    - Fixed bug 2060873.  Excluded subexpression was not outputting its coverage information in the lower window when later
      selected.
    - Fixed other various memory leak bugs in GUI.
  - Switched user guide and GUI documentation from HTML and HTML help formats, respectively, to a single, unified document
    in DocBook format.  This ties all of Covered user documentation to a single set of source files for easier maintenance.
    Removed support for HelpSystem in GUI.

    * 5/30/2008

Development release covered-20080530 made.  This development release is primarily a scoring optimization
release.  The structures used for vectors was completely reconstructed to achieve 2-3x performance improvement
over the last development release.  I am now seeing scoring runtimes that almost match those of Cver.  A few
bugs were also fixed in this release.  The following is a list of these changes.

  - Fixed bug 1950946.  If a value was supplied to the global -P option, the command-line parser got
    confused and skipped the next option/command on the line.
  - Fixing various memory deallocation issues when user errors are reported.
  - Rewrote vector and expression operation functions to make use of more efficient coverage calculations.
  - Coded vector structure to use unsigned longs to make best use of performance optimizations on current machines.
    Added capability to vector read functions to be able to translate CDD files written by a 32-bit machine to 64-bit
    format and vice-versa.
  - Rewrote FSM arc structure and functionality to improve performance of FSM coverage calculations.  The new
    structure also allows the input and output states to be of different bit widths.
  - Added several new diagnostics to regression suite to improve Covered's internal code coverage and to verify new
    code cases.
  - Fixed bug 1966994.  Merged coverage files were appending score command-line arguments to the new CDD file which
    created memory allocation problems and unnecessarily increased the size of the CDD file.
  - Fixed bug 1965927.  Multi-line defines were causing problems with line numbers in reports.
  - Fixed bug 1979698.  Embedded, empty begin..end block causes top-level block to be diregarded from coverage
    consideration.

This is a substantial improvement in speed, so please give it a try and please report any bugs that you may find.

    * 4/15/2008

Development release covered-20080415 made.  This development release contains several code optimizations,
memory leak fixes, and GUI improvements.  The following is a list of these changes.

  - Bug fixes from 0.6.2 stable release.
  - Fixed all memory leak issues with regressions and added code instrumentation and some post-processing
    scripts to automatically verify that there are no memory leaks for regression runs.
  - Code reduction in parser
  - Modified the way that vectors were being assigned to fix memory leak issues with their deallocation.
  - Optimized coverage accumulation during scoring in expression functions.
  - Optimized unknown and not-zero factoring of vectors to improve scoring speed
  - Added new diagnostics to regression suite to verify fix for LHS expression calculation
  - Optimized vector operation functionality to improve scoring speed.
  - Removed the LAST expression operator type (internally used type that is no longer needed due to the
    optimization improvements)
  - Updated several components of the GUI, including the module/instance listbox (now contains summary
    information including hit, miss, total, hit percent and coverage color in background), removed the
    summary window (no longer needed due to module/instance listbox change), substituted home-made
    window resizing handles for Tcl/Tk 8.4/.5 panedwindow types, substituted "-->" and "<--" buttons for
    graphical buttons to improve look, and several other aesthetic and functional changes.
  - Fixed several issues/bugs with GUI.

Of particular note is that the CDD version is now incompatible with other versions of Covered.  Also, I am planning
on only supporting the GUI for Tcl/Tk versions of 8.4 or newer (I used to support 8.3 but the Tcl/Tk homepage no
longer offers these older versions and I am taking advantage of some of the newer widgets available in these versions).
The GUI also requires that the tablelist (version 4.8) Tk widget be installed in the auto_path.  Additionally,
the GUI documentation is not up-to-date with this release, but will be updated by the next development release.
Give the new performance improvements a try and be sure to check out the improved GUI report analyzer!
I am planning on working on some (hopefully) major improvements in performance to the score command for the
next development release as well as adding full support for instance coverage viewing in the GUI as well as
some advanced coverage merging capabilities that will allow the user to get graded test information as well!
As always, have fun and be sure to log those bugs!

    * 3/14/2008

Development release covered-20080314 made.  This development release contains a slew of new features,
score optimizations, bug fixes and documentation/regression updates/additions.  The following is a list
of these changes.

  - Bug fixes from 0.6.1 stable release.
  - Added -ef option to score command to allow the user to exclude final blocks from coverage consideration.
  - Added -ep option to score command to allow the user to pay attention to inline pragmas which allow the
    user to exclude certain code from coverage consideration (more control than other -e? options).
  - Fixed bug in toggle reporting where the exclusion property was not being handled correctly.
  - Changed metric mode selection in GUI to a tk_optionMenu widget instead of using radio buttons (minimizes
    this information in the GUI and makes it somewhat less confusing as to which mode of operation we are in).
  - Added metric mode selection widget to summary window to allow the user to navigate all metrics in that
    window alone (events are synchronized between the main window and the summary window).
  - Fixed several aesthetic issues with the GUI running on Mac OS X.
  - Removed exit() calls within the code and replaced them with an exception handling scheme using the
    cexcept (http://cexcept.sourceforge.net) project.  This allows us to much more cleanly exit in terms of
    memory, file streams and temporary files.
  - Added support for race condition embedded pragmas to allow the user to skip checking certain blocks of
    logic (-rP option to score command).
  - Removed for loop control assignments from race condition checking consideration.
  - Added support for $finish and $stop system calls.  These are handled correctly by the score command and
    no longer cause blocks containing them to be excluded from coverage consideration on their merit alone.
  - Optimized simulator which will become quite apparent for larger designs.
  - Updated user documentation and man pages to match new features.

Please note that CDD files created by this development release will not be backwards compatible with other
releases of Covered -- generate new CDD files for merging/reporting with this version of Covered.  Have fun
and let's see those bug reports!

    * 3/14/2008

Stable release covered-0.6.1 made.  Bug fix release only -- here are the stats:

  - Fixed bug 1899711.  Making reading from FIFOs allowable instead of just FILEs.
  - Fixed bug 1899735.  Line coverage does not pay attention to exclusion property in generated reports.
  - Fixed bug 1899768.  Fixed simulation segfault issue caused by an empty default case of a case statement.
  - Fixed bug 1899674.  Outputting meaningful error message when a read CDD file is found to be empty.
  - Fixed bug 1898164.  Fixing background colors of FSM states/arcs when preference colors are changed.
  - Fixed bug 1914056.  Fixing segmentation fault which occurred if the body of a task is the null statement.
  - Updated regression suite per these changes.

    * 1/30/2008

Stable release covered-0.6 made.  This release has been finally made after almost a year since the last
stable release was made.  Many coding improvements have been made for performance optimization and portability.
Better debug features have been added along with a host of bug fixes.  Please check out the following list
for a high-level view of what has been added to this release since the last stable release.

  - Added support for unnamed scopes and the ability to create variables within these scopes.
  - Modified simulator memory handling to optimize performance.
  - Added support for a CLI debugging environment when scoring simulations (only available if Covered is built with the --enable-debug option).
  - Added accumulated summary coverage information to generated reports for each metric.
  - Fixed some compilation warnings dealing with large static values being assigned to unsigned long long variables.
  - Added the ability to simulate and get coverage for automatic tasks/functions.
  - Added ability to read/write file sizes that extend beyond 2G in size.
  - Added support for embedded type information within for loops (i.e., for( int i=0; ... )).
  - Started adding const information to function input pointers that will not be modified (small performance enhancement that the compiler can take advantage of).
  - Added initial parsing capability for structs/unions.
  - Added built-in profiling facility to generate profiling reports of Covered's internal functions (useful for enhancing/fixing performance problems in commands)
  - Added several performance enhancements to Covered's score command (achieved 8x speedup in one simulation)
  - Added additional build support to get VPI libraries to compile on more architectures.
  - Lots of bug fixes.
  - Added "Debugging" section to user guide to document the usage of the CLI, verbose debugging output generator and profiler.
  - Updated user guide and development documentation
  - Enhanced regression suite

    * 1/20/2008

Development release covered-20080120 made.  This is primarily a bug fix release over the last development
release and also includes some enhancements to the CLI.  Additionally, Covered has been run under splint
to remove some potential issues.  This release is meant to be a beta testing ground for the upcoming 0.6
stable release as it gets a pre-0.6 release into the hands of the general public.  Please report any bugs
found with this release as soon as possible so that I can get a 0.6 stable release available.  The
following is a list of changes in this release:

  - Fixed code to run splint clean with the -weak option as well as a reduced set of the -standard option
    (the shell script in the src directory contains the command-line that was run with splint if you want
    to know exactly which checks were performed/not performed with splint).
  - Fixed several bugs and potential bugs in code found by the splint utility. 
  - Added capability of running in VPI mode on Mac OS X (Icarus Verilog works at this point).
  - Fixed 'next' command in CLI to work as intended
  - Added 'goto' command in CLI to allow the user to jump to a specific timestep
  - Added 'expr' command in CLI to allow the user to view a given expression by its Covered ID and its
    current state/value.
  - Renamed several CLI commands to make them easier to remember and reduces amount of typing required.
  - Added status bar for step, next and goto commands in CLI to help the user understand if/when
    progress was being made by the simulator.
  - Fixed bugs with regards to the '!!' command in CLI (this should now work as intended).
  - Fixed bug 1875180 which would lead to incorrect simulation results and would possibly cause a 
    Covered simulation to go into an "infinite loop".
  - Added new diagnostics to regression suite.
  - Documentation updates per changes. 

    * 1/3/2008

Development release covered-20080103 made.  This is primarily a bug fix and performance enhancement
release over the last development release of Covered with a few new feature additions.
The following changes are included in this release.

  - Added support for embedded type information within for loops (i.e., for( int i=0; ... )).
  - Started adding const information to function input pointers that will not be modified (small
    performance enhancement that the compiler can take advantage of).
  - Added initial parsing capability for structs/unions.
  - Updated all trevorw@charter.net e-mail addresses to new phase1geo@gmail.com e-mail address.
  - Fixed VCD parsing error (bug 1832592).
  - Added built-in profiling facility to generate profiling reports of Covered's internal functions
    (useful for enhancing/fixing performance problems in commands)
  - Added several performance enhancements to Covered's score command (achieved 8x speedup in one
    simulation)
  - Added "Debugging" section to user guide to document the usage of the CLI, verbose debugging output
    generator and profiler.
  - Fixed bug 1858408.  This bug occurred when using newer versions of the OVL as well.
  - Fixed bug 1861986.
  - Added new diagnostics to verify additional functionality.

    * 9/6/2007

Development release covered-20070906 finally made.  Several severe changes to support CLI-style
runtime debugging, unnamed scope handling, some resimulation optimizations, automatic function/task
handling, and lots of bug fixes have gone into this release.  The following changes are included in
this release.

  - Added support for unnamed scopes and the ability to create variables within these scopes.
  - Modified simulator memory handling to optimize performance.
  - Fixed bug 1688487:  The writability check on a -o file was accidentally removing the file if it
    previously existed
  - Added support for a CLI debugging environment when scoring simulations (only available if Covered
    is built with the --enable-debug option).
  - Fixed bug 1698806:  Function calls made within operations were causing those operations to not get
    bit-sized correctly.
  - Added accumulated summary coverage information to generated reports for each metric.
  - Fixed some compilation warnings dealing with large static values being assigned to unsigned long long
    variables.
  - Fixed bug with handling embedded scopes within generate blocks.
  - Added the ability to simulate and get coverage for automatic tasks/functions.
  - Added ability to read/write file sizes that extend beyond 2G in size.
  - Fixed bug 1709984:  Adding ability to enter defined values inside of covered_fsm attributes (to
    match the documentation).
  - Fixed memory leak bug in parser code.
  - Fixed bug 1687409:  Memory allocation information at end of score command written as a 32-bit signed
    value -- changed to an unsigned long long value.
  - Fixed error output when Tcl/Tk fails in initializing the Tcl/Tk environment.
  - Fixed bug 1788991:  Memory corruption bug due to memory (multi-dimensional array) accesses.

Lots of somewhat major changes to the simulation core and elaboration code have been made (hopefully for
the better).  This development release is a springboard for adding further SystemVerilog support for some
other features of the language.  Have fun and let's log those bugs!

    * 12/05/2006

Development release covered-20061205 made.  A few updates to the core code to properly support VPI
usage were necessary which is why this is not a stable release.  At this point, regressions are fully
passing with Icarus Verilog, Cver and VCS in both dumpfile and VPI modes of operation -- an important
milestone for the upcoming 0.5 stable release.  There is still additional testing of existing
functionality that needs to be done as well as finishing the GUI documentation support using the new
HelpSystem documentation reader utility before I would consider Covered ready for a new stable release.
The following changes are included in this release.

  - Updated User Guide documentation to complete the list of score command options, document the -b
    option to the report command, and include a FAQ item that addresses the question of the difference
    between the stable releases and development releases.
  - Updated regression Makefiles to allow testing of VPI, LXT and VCD modes of operation.
  - Added Cver runs to regression Makefiles
  - Started integrating the HelpSystem 1.5 Tcl/Tk widget into Covered's GUI to allow better and faster
    documentation browsing for GUI information.
  - Updated parser error output to make it easier to read.
  - All bug fixes contained in the 0.4.8 stable release were applied to this release.
  - Fixed bugs 1589519, 1589524 and 1589546 which are related to parser errors with the "signed" keyword.
  - Fixed bug 1590104.  A more meaningful error message is displayed if the -i option to the score
    command is misused (or not used when it should be).
  - Fixed bug 1599869.  Uncovered "disable" statements are now handled properly by the report command.
  - Lots of fixes to the VPI code were made as well as the core simulator to support correct behavior
    when running in this mode, including:
    - Added proper support for delay queueing
    - Added 64-bit time support to core (originally this was just 32-bit).
    - Added complete support for `timescale directive handling. 
    - Added -vpi_ts option to score command-line to allow the user to specify a timescale for
      the generated top-level file created for VPI usage.
    - Added support for time and integer types to make cbChangeValue callbacks.
    - Added configuration support for detecting 8, 16, 32 and 64-bit types.
    - Removed the usage of the iverilog-vpi script to create the Covered VPI module for Icarus Verilog,
      using a normal call to the linker to create the appropriate shared object (allows for debug output
      to be used in this mode).

Consider this development release to be a 0.5-beta release.  If all goes well, the next release should be
the new 0.5 stable release!  As always, have fun and log those bugs!

    * 10/20/2006

Development release covered-20061020 made.  The major additions in this release is the support for
memories/multi-dimensional arrays and bitwise coverage support.  Associated with this functional
support, I have also created a new memory coverage metric that is available for usage in both the
report command as well as the GUI.  Memory coverage currently answers the following questions about
a given memory:

1.  What entries in the memory were written?
2.  What entries in the memory were read?
3.  What is the toggle information for each entry in the memory?

I plan to add a few more coverage points to memory coverage including:  where any entries read before
they were written? and where any entries written and read simultaneously?  However, I am open to more
ideas on memory coverage information that people would like to see.  Read the accompanying User's Guide
and GUI User's Guide for more information on memory coverage and how to understand the coverage output
from both the report command and GUI.  The following is a list of changes made from the last development
release.

  - Fixed bug in code that removes statements from coverage consideration that were created by a
    generate block.
  - Fixed bug in race condition checker for generated items
  - Fixed bug with multiply-and-assign (i.e., a *= b) operation
  - Fixed bug in gen_item_resolve function where an instance was incorrectly being placed into a new
    instance tree.
  - Fixed parsing bug when a named begin/end block was empty
  - Fixed bug in statement removal algorithm and optimized this process significantly
  - Fixed several memory leak issues
  - Added support for bitwise coverage information for vectored combinational expressions (i.e., given
    the following code:  

      reg  [3:0] a, b, c;
      always @(posedge clock) c <= a & b;

    You can get combinational logic coverage detail that would be equivalent to:

      always @(posedge clock)
        begin
         c[0] <= a[0] & b[0];
         c[1] <= a[1] & b[1];
         c[2] <= a[2] & b[2];
         c[3] <= a[3] & b[3];
        end

    This information is attainable using the new -b option to the report command.
  - Adding parsing support for SystemVerilog "program" blocks (the contents within these blocks are ignored
    for coverage purposes).
  - Added support for SystemVerilog "final" blocks
  - Updated GUI syntax highlighter to match all of the keywords that are currently detectable by the lexer
  - Cleaned up extraneous comments from diagnostic Verilog files (should make the diagnostic tarball quite
    a bit smaller).
  - Added full parsing and handling support for memories and multi-dimensional arrays
  - Added memory coverage metric to report command and GUI viewer
  - Documentation updates to all user documentation for changes related to this release
  - Fixed missing images in User Guide
  - Added parsing and handling support of increment and decrement operators (both ++a and a++ varieties)
    within expressions (i.e., if( a++ == b ) ...)
  - Added proper support for the "wait( ... )" statement
  - Optimized VPI version of Covered which should cause simulators to run faster than previously when interacting
    with Covered through its VPI.
  - Fixed bug with posedge and negedge handling within Covered to make it completely compliant with the LRM
    (previously X->1 or Z->1 would not cause a posedge event to trigger and likewise for the negedge)
  - Fixed several linking errors with the VPI library
  - Added parsing support for unpacked arrays of non-registers for SystemVerilog enabled modules
  - Fixed segmentation fault issue that occurred with generate blocks
  - Fixed most compiler warnings (when using the -Wall operation to the compiler)
  - Fixed bug with generating instances
  - Fixed bug when merging two CDD files that contain full hierarchy
  - Increased maximum bit width of signals from 1024 bits to 65536 bits
  - Removed pragma comment parser from preprocessor as these are handled by the actual parser

This development release can be considered the beta release to a 0.5 stable release.  The development
branch will be mostly in "feature freeze" mode at this point.  Only bug fixes, documentation updates and
testing updates will be performed until we snap the new stable release.  So give this version a try and
log those bugs!

    * 09/04/2006

Development release covered-20060904 made.  This is primarily an enhanced language support release
containing support for the Verilog-2001 'generate' block and support for some SystemVerilog constructs.
All bug fixes from the stable release branch have also been included in this release as well.  Some
updates to the GUI (to match changes made on the score command side).  The following is a list of
changes made from the last development release

  - Complete parsing/simulation support for generate blocks include generate for, if/else and
    case constructs.
  - Fixed bug in hierarchically referencing items within an array of instances.
  - Added -g option to score command to allow the user to specify on either a global or modular
    level which Verilog generation to consider for that design.  This allows a block of logic written
    with Verilog-1995 in mind to use names that would be keywords in Verilog-2001 or SystemVerilog,
    as an example.
  - Removed "manstyle" type documentation in user's guide as this tool is no longer used for this
    project.  This change should be transparent to the user, however.
  - Fixed scoping/hierarchical referencing rules to match the Verilog LRM properly.
  - Added parsing/handling support for SystemVerilog always_comb, always_ff and always_latch blocks.
  - Added parsing support for 'unique' and 'priority' SystemVerilog keywords before if and case
    statements (Covered doesn't need to do anything with them, however).
  - Added parsing/handling support for 'do .. while' SystemVerilog loops.
  - Added parsing/handling support for new SystemVerilog data types, including:  byte, bit, logic,
    char, shorting, int and longint.
  - Added -rI option to the score command which allows the user to completely bypass the race
    condition checking phase of the score command.
  - Added -B global option which obfuscates all identifying names from Covered's output (for use
    in providing debugging information to the developer's of Covered).
  - Added parsing/handling support for operate-and-assign SystemVerilog operators, including:
    +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, <<<=, >>>=, ++ and --.  These can be used wherever
    their counterparts can be used (including generate for loops).
  - Added proper handling of Verilog-1995 delayed blocking assignments (i.e., "a = #5 b;" or
    "a = @(posedge clk) c;").  Previously, the delay was being incorrectly ignored which could
    have lead to infinite looping of always/forever blocks or could calculate incorrect coverage
    information.
  - Added parsing support for SystemVerilog .name and .* port lists.
  - Added partial parsing/handling support for SystemVerilog 'typedef' usage.  This should work for
    enumerations but not other data types at this point.
  - Added parsing/handling support for SystemVerilog 'enum' constructs.  These should be fully
    supported with the exception of their built-in '.first', '.last', '.next', '.prev', '.num' and
    '.name' methods.
  - Added full support of handling Verilog-1995 repeated delay blocking assignments (i.e.,
    "a = repeat(5) @(posedge clk) b;".  These were previously being treated as normal blocking
    assignments.
  - Added keyword highlighting support in GUI for Verilog-2001 and SystemVerilog keywords depending
    on the -g value specified for a particular module.
  - Added parsing support for SystemVerilog assertion, property and sequence blocks.  These constructs
    are ignored by the parser but should not cause a parsing error now.
  - Added parsing support for SystemVerilog multi-dimensional arrays.  These are ignored by the
    parser but should not cause an error.
  - Added full support for the SystemVerilog $root global space -- though limited testing has
    been performed with this at this point.
  - Added -s option to the report command to suppress the output for modules/instances that contain
    no coverage information.
  - Updated all user documentation to match changes made for this development release.
  - Lots of new diagnostics added to regression suite to verify the majority of these changes.

There you have it.  A lot of enhancements made for language support for Verilog-1995, Verilog-2001
and SystemVerilog.  Some of the additions for SystemVerilog, especially typedefs and $root global
space, have not been fully verified to work and may still be a bit buggy, but everything else should
be expected to work as advertised.  Please submit any bugs that you find.  The next development
release should contain support for some more language enhancements, including full support for
typedef and enumeration usage, support for memories, multi-dimensional arrays, structs and unions.
I will also be looking at adding support for bitwise coverage information (for vectored calculations).
As always, have fun!

    * 07/08/2006

Development release covered-20060708 made.  This new development release for the future 0.5 stable
release contains several enhancements to the GUI.  The primary differences are the changes to the File
menu, the ability to exclude/include coverage cases for all metrics, and a new look for the preferences
window.  See the following notes regarding GUI changes made.

  - Added ability to open/merge more than one file at a time (only available if Tk version is >= 8.4)
  - Added ability to save a changed/merged CDD.
  - Added ability to close all opened CDD files so that new CDD(s) can be opened/merged regardless of
    the design without needing to exit and restart the GUI.
  - Added ability to generate ASCII reports from the GUI (includes the ability to set reporting options)
  - Added ability to exclude/include coverage cases for all metrics
  - Changed the look of the preferences window to be more tabular for purposes of minimizing desktop
    space for this window even as the number of options increases.
  - Added missing GUI elements to preferences window and summary window for assertion coverage
  - Updated README file to inform where to find documentation for the GUI.
  - Moved some VCS-only diagnostics to shared simulator diagnostic pool due to enhancements in IV
  - Updated all GUI documentation and images to match the current state of the GUI.
  - Added an RPM spec file to the CVS tree which will be used to generate RPMs for future stable releases
  - Fixed bug in score command that caused a segfault when two or more signals were declared using
    the same parameter in their range description (i.e., reg [FOO:0] a, b;).

The coverage exclusion/inclusion work is the primary reason for creating this development release.
All coverage information and GUI elements are automatically updated whenever a coverage case for a metric
is changed to either exclude it from coverage consideration or include it (because it was previously
excluded).  The file menu changes were badly needed as well and are required to properly support the
exclusion/inclusion work (this allows exclusions to be saved/merged).  Please report any bugs that crop
up in this area.  Thanks!

    * 05/30/2006

Development release covered-20060530 made.  This new development release for the future 0.5 stable
release contains a lot of new features and enhancements over the 0.4.x releases.  The changes are listed
below (Note:  the major feature additions are noted with an asterisk (*)).  Please note that all bug fixes
that were made to the stable releases (up and including 0.4.4) are included in this development release
as well.

  * Added support for FSM coverage output in the GUI
  * Added support for assertion coverage in the GUI and ASCII report mechanism
  * Added Covered VPI module which can now allow Covered to score a design while the simulation is
    executing (only the Icarus Verilog, Cver and VCS simulators are supported at this time).
  * Added support to Covered merge command to merge two or more CDD files with one command (previously
    only two CDD files could be merged at a time).
  - Added support to allow coverage handling of blocks that contain the $display system call (previously
    any block containing one of these system calls was disregarded for coverage).
  - Added ability for Covered to automatically remove the need for OVL assertions when the "-A ovl" option
    is not specified to Covered's score command.
  - Added support for environment variable substitution in the configuration file that is passed to
    Covered's score command with the -f option.
  - Added support to allow Covered's GUI to be started from any directory and work properly (previously
    Covered's GUI had to be started in the same directory as the design was scored from).
  * Added syntax highlighting to all Verilog source code in the GUI (added support in Preferences window
    to allow the user to specify different colors for the syntax highlighter).
  * Causing all Verilog source code to be preprocessed before being displayed in the file viewer (fixed
    bugs with defined values not being highlighted correctly).
  - Updated all user guide, GUI and man documentation to match the current state of Covered.
  - Added many new diagnostics to the test suite to verify the new functionality.

Lots of cool new features to give a go.  You can consider these new features to be a beta version -- not
all features have been completely verified to work at this point.  So please report any bugs that you find
with this new version.  Have fun!

    * 5/27/2006

Stable release covered-0.4.4 made.  This release contains a bug fix to proper handle hierarchical
referencing of parameter values.  This feature was technically not supported in the past but caused
an internal assertion error when this was performed.  The feature is now fully supported.

    * 4/21/2006

Stable release covered-0.4.3 made.  This release contains a bug fix to the statement connection function that
caused segmentation faults during the score command.  Also added support for big endian wires/regs.  This 
information was being ignored by the parser and, consequently, was not being handled correctly by Covered's
internal simulator, leading to incorrect coverage information.  The lack of this support was also causing
an internal error in the memory allocation routine when scoring the dumpfile.

    * 4/17/2006

Stable release covered-0.4.2 made.  This release contains a bug fix that caused an assertion error in the
binding.c source file to occur.  The reason for this assertion was a syntax error in the parser that caused
problems when more than one task call was made in a statement block.  Also added support for multi-line
definitions (i.e., a '\' character used at the end of a definition line).  This was missing but was not meant
to be missing.

    * 4/4/2006

Stable release covered-0.4.1 made.  This release contains one bug fix that causes an assertion error when
compiling designs that use a concatenation operation on the left-hand-side of assignment statements.  If
you are experiencing this problem with the 0.4 release, it is recommended that you use this new release
instead.

    * 3/29/2006

Stable release covered-0.4 made.  In addition to all of the features, optimizations and bug fixes
that have gone into the development releases from the 0.3 stable release, the following features, updates
and bug fixes have been added.

  - Fixed bug with a statement connection issue that causes lines of code to be not considered for
    coverage that should have been.
  - Fixed bug in report command where combinational expressions were not being output to match the original
    Verilog code.
  - Added CDD file viewer window to GUI to allow the user to see which CDD files are currently loaded/merged.
  - Fixed bug in combinational logic verbose viewer which caused the window to resize dependent upon
    the location of the cursor (this was an annoyance)
  - Changed the output of simple combinational logic to change to unary combinational logic output if either
    the left or the right expression was a constant value (eliminates unachievable combinational logic cases
    from being output leading to more accurate coverage results).
  - Removed combinational expressions that contain only constant values from being considered for coverage.
  - Updated simple combinational logic output in reports to be as concise as possible for AND and OR type
    expressions.
  - Removed duplication of information in CDD files for race conditions.
  - Fixed bug in GUI dealing with showing race conditions
  - Fixing bug in GUI pertaining to the next/previous buttons in the combinational logic detail viewer.  Previously,
    clicking on one of these buttons would only advance you to the next uncovered line.  Now it will advance
    you to the next uncovered statement.
  - Updated development, user and GUI documentation to reflect the above changes and to bring them up-to-date
    with the rest of the tool.

Please see the ChangeLog file for all changes made from the 0.3 stable release to the 0.4 stable release.
Lots of enhancements, features, optimizations, bug fixes, performance improvements and documentation improvements
are contained in this stable release, making it very worth while for any Covered users to get their hands on
it.

    * 2/18/2006

Development release covered-20060218 made.  A lot of work has gone into adding a lot more Verilog-2001
support, added Verilog-1995 support, GUI improvements/fixes, user documentation additions/updates,
adding LXT dumpfile support and the usual bug fixes.  I have also removed the diagnostic directory from
the Covered tarball and am making it available as its own tarball since it is growing by leaps and bounds
these days.   The following is a list of the changes in this release from the past release.

  - Added support for the following Verilog 2001 constructs:
    - `ifndef, `elsif and `line preprocessor directives
    - Constant function support
    - Explicitly named parameter overrides
    - Correct support for localparam
    - Implicit (wildcard) sensitivity lists (@*)
    - Support for signed values (integers are now treated as signed values) and proper handling of
      signed expressions
    - Immediate register assignment (ex. reg a = 1'b0)
    - Variable multi-bit selects (ex. a[b+:10] or a[b-:2])
    - Exponential power operator (**)
    - Arithmetic shift operators (>>> and <<<)
    - Inline parameters (i.e., parameters placed before a module port list)
    - Inline port declarations (ex.  module foo ( input wire [1:0] a, ... );)
    - "Null" parameter overrides (ex.  foo #(0,,2) bar (...);)
    - Arrays of instances
    - Added more support for attribute locations
  - Added support for using LXT/LXT2 -style dumpfiles instead of just VCD files
  - Fixing bug to properly bind to the appropriate task, function or named block when there
    are two or more of this functional units with the same name.
  - Changed all error information to get sent to stderr regardless of the output mode we are in
  - Added left shift, right shift, exponential power, and constant function call operators to list
    of valid operators to be used in constant expressions.
  - Fixed bug for resolving parameter values that are used in tasks, functions or named blocks but
    are not declared there (they are declared in the parent module).
  - Added full support for hierarchical referencing
  - Added full support for escaped names (ex. wire \some_name[0] ;)
  - Added support for performing bit selection on RHS of parameter assignments
  - Added full support for sizing parameters (ex. "parameter [2:0] foo = 0;")
  - Fixed ASCII report output to display uncovered toggle signals in line order (this was inverted
    for some reason).
  - Fixed bug in score command-line parser to not segfault if file given in -f option is empty
  - Fixed several bugs in GUI
  - Added additional features for report GUI
    - Added summary report window with ability to see modules/instances ordered by coverage
      percentage for a given metric in either increasing or decreasing order (coverage information
      is also color-coded to make it easy to tell which modules are "fully covered", "covered well
      enough", or "not covered well enough").
    - Added preferences window and removed preferences menu -- improved method of color selection
      and added a coverage "good enough" selector used in the summary window
    - Changed toggle coverage source code browser to only underline one instance of an uncovered
      signal (this position is first implicit or explicit declaration of the signal) to improve
      readability.
    - Added configuration file read/write support for storage of Covered's preferences
    - Added help buttons to toggle detail, combinational logic detail, preferences and summary window
      to allow online help pages to be displayed for the current window
    - Added GUI online help pages for toggle window, combinational logic window, preferences window
      and summary window as well as updated all out-of-date information.
    - Added navigational GUI elements to help the user find the next/previous uncovered line from any
      window.  Also added a search GUI element for finding any string in the source code window.
  - Updates to user guide and development documentaiton to bring things up-to-date.

  In summary, there have been lots of features added to both the score command and GUI report tool.
  The CDD files generated from this release are not backward compatible with older releases.  I plan
  to make this version the next stable release once it has had some more test time applied to it.
  So please submit those bugs!

    * 1/9/2006

Development release covered-20060109 made.  It has been almost a year since the last development
release of Covered, but in the meantime there has been a lot of work put into the score command
of Covered during this time to fix bugs, add more coverage support for various Verilog constructs,
simulate more accurately, remove memory corruption/estrangement and improve the run-time speed
of the score command.  I think that user's of Covered will appreciate the enhancements.  Documentation
updates have been made and build problems have been fixed (Covered now compiles cleanly for
Fedora Core 3 builds).  I plan to revisit Covered's GUI in the next release to fix various bugs
and improve the usability.  The following is a description of what has changed in this release from the
last release:

  - Blocking assignments in covered blocks are now performed by Covered's simulation core instead of
    being taken from the dumpfile to improve simulation/coverage accuracy.
  - Fixed lots bugs with statement block removal
  - Added patch to parser.y to fix compiling problems with bison-2.0.
  - Increased space for module/instance name in reports
  - Added full support for the following Verilog constructs:
    - tasks and task calls
    - functions and function calls
    - named begin/end blocks
    - fork/join
    - event types and event triggers
    - hierarchical referencing (both relative and top-of-tree scoping)
    - initial blocks
    - for, repeat and while looping
    - block disabling
  - Fixed bug with net_decl_assign statements (the line, start column and end column information was
    incorrect, causing problems with the GUI output).
  - Fixed implicit signal creation in binding functions.
  - Fixed binding with merge command. 
  - Added --enable-debug configuration option to remove verbose outputting code from compilation.
    This significantly improves run-time performance.
  - Better race condition reporting
  - Lots of fixes related to bad memory accesses and memory leaks (found using the valgrind utility).
  - Removed Tcl/Tk from source files if HAVE_TCLTK is not defined.
  - Added ability to exclude functions, tasks and named begin/end blocks with the -e score command
  - Added ability to exclude all continuous assignments from coverage consideration with -ec score command
  - Added ability to exclude all always blocks from coverage consideration with -ea score command
  - Added ability to exclude all initial blocks from coverage consideration with -ei score command
  - Fixed problem with race condition checker statement iterator to eliminate infinite looping.
  - Also fixed expression assigment when static expressions are used in the LHS
  - Fixed bug for signals that are on the LHS side of an assignment expression but are not being
    assigned (bit selects) so that these are NOT considered for race conditions.
  - Added simulation performance statistical information to end of score command when the -S option is
    specified to the score command (this will probably only be useful for Covered developers but may
    be interesting/useful for users later on).
  - Fixing bug in expression_assign function -- removed recursive assignment when the LHS expression
    is a signal, single-bit, multi-bit or static value (only recurse when the LHS is a CONCAT or
    LIST).
  - Fixing bug in report help information when Tcl/Tk is not available
  - Lots of improvements to simulator to increase performance (this will be quite noticeable!)
  - Documentation updates
  - Regression suite enhancements (lots of new diagnostics added for testing new Verilog constructs as well
    as testing bug fixes).
  - Added cleanup function at exit which now automatically removes the temporary files that Covered creates
    from the pre-processing step even when something goes drastically wrong while this file is opened.

Note:  The format of the generated CDD files has changed quite a bit in format so you will not be able
to merge CDD files generated from older versions of Covered with CDD files generated from newer versions
of Covered (Covered will display an error message to the user stating this reason).  As always, please
e-mail any bugs/problems found with this new release!

    * 2/8/2005

Development release covered-20050208 made.  This release primarily contains support for detecting
and handling race conditions with the DUT.  Added flags to the score command control the behavior
of Covered when these race conditions are detected.  Additionally, the race condition information
is saved to the CDD file for reporting purposes in both the text reports as well as the GUI.  This
feature is not only useful to logic designers but also sets up Covered to provide better coverage
results going forward as well as allows Covered to gain coverage for some constructs that are
currently not supported.  A few other bugs are fixed in this release as well as documentation
updates for the race condition usage.  The following is a description of what has changed in this
release:

  - Added support for detecting/handling race conditions in DUT
  - Added ability to report race conditions to report command
  - Fixing bug in file search algorithm.  When a file was specified with a -v option after it
    had already been included, an error was being reported and parsing stopped.  In this case, it
    now just ignores the duplicate include.
  - Fixed preprocessor to ignore protected areas of code.
  - Fixed library extension command-line parser.
  - Changed was data is stored on a bit-basis for certain data types to use unions.  Eases coding
    and improves performance of score command just a bit.
  - Added support for Verilog strings as static values.  Strings can also be used in FSM value assignment
    from command-line or from inline attribute.
  - Ran -Wall compiler flag to clean up code.
  - Added race condition run to regression
  - Updated man page, User Guide and GUI documentation for changes
  - Fixing bug in GUI where deselecting/selecting Covered, Uncovered or Race Condition in combinational
    logic window would redisplay the file incorrectly.
  - Added code to display help information in information bar of GUI main window when cursor is
    over missed toggle and/or combinational logic coverage
  - Added code to display reason for race condition when cursor is over lines that were discarded from
    coverage consideration.

    * 12/10/2004

Development release covered-20041210 made.  This release contains summary and detailed coverage
reporting windows for toggle and combinational logic to the GUI.  Lots of bug fixes, updates
and enhancements to the UI.  The scoring phase was optimized a bit to improve run-time.
Additionally, help manual has been started for the current state of the GUI.  The following
is a description of the changes found in this release over the last.

  - Fixing case where user hits cancel button in the open CDD window and application exits.
  - Added module/instance highlighting in listbox for uncovered modules/instances.
  - Adding informational bar at the bottom of the main window for providing state-sensitive
    help/state information.
  - Added ability to make module/instance listbox resizable.
  - Fixed configure files for Tcl/TK referencing.
  - Fixed bug in getting the line summary total for the GUI.
  - Fixed problem where source viewer would lose its place when switching between different
    coverage metrics, changing colors and/or specifying different uncovered/covered options.
  - Added 'Open Related CDD' and 'Merge related CDD' options to File menu to allow user to see
    different CDD files generated from the same design and to merge CDD information from the
    same design.
  - Added verbose toggle coverage information window, allowing the user to see verbose information
    for a signal by left-clicking on the signal in the source viewer.
  - Added verbose combinational coverage information window, allowing the user to see verbose
    information for an expression by left-clicking on the expression in the source viewer.
  - Modified error reporting for GUI to display this information to an interactive window (instead
    of the the shell).
  - Added code to improve efficiency during scoring phase.  The improvement is fairly minor at this
    stage, but there is more to come with these changes.
  - Added start of help manual documentation for GUI.

Lots of features, bug fixes, optimizations, documentation enhancements and build improvements in
this release.  Please report any problems, and, as always, enjoy!

    * 03/21/2004

Release covered-20040321 made.  This release contains lots of bug fixes and also contains the
initial version of the Covered report viewing GUI (line coverage only).  The following is a
description of the changes made since the last development release.

  - Ran C linting tool on all Covered source code and updated code based on linting errors/
    warnings.
  - Modified debug output to show file and line number of code that called the outputting
    function (easier to debug problems and useful in error regression testing).
  - Started initial error testing in regressions.
  - Several bug fixes made to remove segmentation faults and assertion errors in the new
    report generation functions.
  - Initial version of Covered report viewing GUI added.  This version displays line coverage
    only at the moment.
  - Fixed bug in score command for statement removal (was resulting in memory errors that led
    to segmentation faults).
  - Fixed bug in report command that output bad verbose information when -c option was used.
  - Added new diagnostics to regression testsuite to reproduce situations where original
    segmentation faults were found to occur.
  - Development documentation updates.  No user documentation updates are released at this
    time (other than information provided using the -h global option to Covered).

Have fun!

    * 02/11/2004

Release covered-20040210 made.  A lot of work has gone into this release to make the report
output more readable and concise.  Several bug fixes have been made as well.  A GUI is on
the way for report viewing that will be available in alpha version in the next development
release.  Below are some of the highlights of this release.

  - Added GUI interfacing functions in preparation of upcoming GUI report viewing utility.
  - Added more information about expressions to line and combinational logic coverage verbose
    information.  Rather than just outputting the RHS of the expression, the LHS and assignment
    operator (blocking or non-blocking) or IF statement are output to give the user a better
    context of the missed logic.
  - Fixed bug in param.c where parameters found in the RHS of expressions that were part of
    statements being removed were not being properly removed.
  - Fixed bug in sim.c where expressions in tree above conditional operator were not being
    evaluated if conditional expression was not at the top of tree.
  - Changed output of logic in combinational logic verbose coverage reporting to (by default)
    use the same format (in terms of endline characters) as the logic was found in the source
    code.
  - Added '-w [<line_width>]' option to report command that causes combinational logic to be
    output to report as much logic as will fit in the value of <line_width> in the report.  A
    default value of line width is specified internally in Covered to be 105 characters;
    however, the user may make this value larger or smaller to suit.  This value reverses the
    effect of the above bulletin.  Added this option to Covered's regression suite to test.
  - Completely modified output format of missing combinational logic coverage.  Removed a lot
    of coverage information that was extraneous.  When three or more subexpressions are ANDed,
    ORed, logical ANDed, or logical ORed, coverage information is output in a special way to
    increase readability/understandability for this coverage.
  - Added "GENERAL INFORMATION" section to all reports which specifies general information
    about this report (this eliminates a lot of redundant information in the report to improve
    readability).
  - Added the name of the CDD file from which a report has been generated from in the
    GENERAL INFORMATION section of the report.
  - When a CDD file is created due to merging CDD files, the names of the original CDD files
    are now stored in the merged CDD file.  This information is output in the GENERAL
    INFORMATION section of the report (created from this merged CDD file) to indicate to the
    user this information.
  - If a CDD file is created due to merging CDD files and the leading hierarchies in each of
    those CDD files are different, a bullet in the GENERAL INFORMATION specifies this and
    reminds the user that the leading hierarchy information will not be output in the rest of
    the report (instead the string "<NA>" replaces the leading hierarchy information).  This
    will help to eliminate confusion when viewing the reports and fixes an outstanding bug
    in Covered.
  - Added starting and ending line information to module structure for GUI purposes.
  - Removed scope information in CDD file for expressions, signals and statements.  This
    information was not used, caused CDD files to become excessive in size and mildly speeds
    up reading in CDD files.
  - Fixed bugs in combinational logic report section where summary coverage numbers and verbose
    coverage numbers did not agree.
  - Removed 'c' directory in 'diags' directory and cleaned up Makefile to run regressions.
  - Masked off the value of the SET bit in expressions output to CDD files.  This information
    is not needed and sometimes caused regression failures due to CDD file mismatches on
    different platforms or using different simulators.
  - Modified regression Makefile to specify the 'vvp' command prior to the compiled VVP
    executable when running Icarus Verilog regressions (due to recent change to IV).
  - Changed instance-based reports to not merge child instance coverage information into parent
    instance coverage information.  This is not done in module-based reports, makes reading
    this information confusing and doesn't provide us any extra information.
  - Fixed bug where modules were being reported in verbose reports when coverage numbers were
    100% covered.
  - Changed toggle coverage report output to output toggle information in hexidecimal format
    versus binary format.  This keeps the toggle coverage information more succinct/readable.
    Added underlines between every 4th hexidecimal value to help user's to discern the bit
    position of a toggle bit.
  - Changed the format of the report entirely to enhance readability (many changes here that
    the user will immediately see).
  - Updated user documentation for new changes and added new section called "Reading the
    Report" which will walk the user through several reports and how to interpret the report
    information.  This section is still in progress at this time.
  - Updates to development documentation.
  - Lots of new diagnostics added to regression suite.  We now have over 200 diagnostics in this
    regression.

Special note:  Please note that the CDD file format for this release has changed from previous
CDD files and is therefore incompatible with older versions.  If you try to read a CDD file
generated from an older version of Covered with the newer version, Covered will tell you that
this cannot be done due to incompatible CDD versions.

    * 11/16/2003

Release covered-20031116 made.  This development release contains a new way to specify FSMs
within the design by using inline Verilog-2001 attribute syntax.  There are also a lot of
bug fixes contained in this release as well as the usual user and development documentation
enhancements.  See the list below for more details on the changes made for this release.

  - Added better VCD parsing capability to allow bit selects to be "attached" to the signal
    names in the VCD variable definition section.  The newer versions of Icarus Verilog now
    output this format style.
  - Added ability to specify FSM location and transition information using Verilog-2001
    attributes.  Added many diagnostics to regress suite to verify this capability.
  - Fixed bug found in stable release that caused an incorrect calculation of unary operations
    performed on single-bit values.  Fixes bug 835366.
  - Fixed bug found in using constant values in the right-hand side of repetitive concatenation
    operators.  Fixes bug 832730.
  - Fixed bugs in reporting of FSM coverage information in the report command.
  - Fixed bug in FSM variable binding stage that caused incorrect coverage numbers to be reported
    for FSM coverage.
  - Fixed bug in handling variables that are too long (more than the allowed 1024 bits).  Removes
    memory corruption problems when this occurs.  Displays warning to user that it has found
    a variable that it cannot handle and gracefully disregards any logic that uses these variables.
  - Updated user documentation to include new chapter on inline attributes that Covered can
    now handle.
  - Updated development documentation for new functions added in this release.

    * 10/19/2003

Release covered-20031019 made.  Lots of modifications to existing structures and supporting
code to increase scoring speed.  In my testbenches, I am seeing about a 3-4x improvement
in speed.  Additionally, code enhancement for allowing bit selects and signal concatenations
in command-line FSM variable descriptions are now allowed.  User documentation has been
updated for these changes.  Some bug fixes are also included in this release.  The
following list shows the changes from last development release.

  - Added ability to parse more complex state "variables".  This includes the ability
    to specify single and multi-bit signals and the ability to concatenate more than
    one signal (or signal bit select) to make a state variable.  Please see user
    documentation for more information on this.
  - Minor tweaks to report format for displaying filenames (only basename of filename
    is output instead of the entire path).
  - Fixing bug in VCD parser to allow bit select parsing of a variable when the
    variable name and bit-select information are not separated by spaces (this is something
    that newer versions of Icarus Verilog now does in its VCD files).
  - Changed structure for vectors from ints to chars.  Each vector element stores information
    for one 4-state bit value and its coverage information (instead of storing 4 4-state
    variables and coverage information).  This reduces memory needed and increases calculation
    speed on vectors.
  - Fixing bug in signal_from_string function.
  - Fixing bug in arc.c related to non-zero LSBs of signals.
  - Added new parameter to info line in CDD file that specifies the format of the CDD file.
    This is used by Covered to keep CDD files with different formats from being merged, read,
    etc.
  - Removed LSB information from vector and storing this information in the signal
    structure.  Reduces memory required, enhances speed, and fixes existing bugs with bit
    selects.
  - Added more diagnostics to regression suite to test new functionality.
  - Updated user documentation for new changes.

    * 09/25/2003

Release covered-20030925 made.  This release contains the first working FSM code
coverage portion in Covered.  There is a lot more to work on in the FSM code coverage
area in the way of automatic FSM extraction and state transition specification, but
this version is able to extract FSM coverage information for an FSM that is located
by the user.  Please see user's manual for this release for more details on specifying
FSM location.  Summary and verbose reporting are available for FSM coverage at this
point.  Additionally, the data format for FSM coverage information in the CDD file
has been finalized.  FSM coverage merging is also supported in this release.  User and
development documentation has been updated.  Please give this development version a
go to get any bugs out of the FSM code coverage engine.

In addition to the FSM coverage support, a bug was fixed in the vector_to_int()
function when converting a vector whose LSB is a non-zero value.

Here is what is on the horizon for FSM coverage that you should expect to see in the
coming development releases.

  - Ability for user to specify the location of an FSM using $attribute function.
  - Ability for user to specify all possible state transitions for a given FSM on the
    command-line and using inline $attribute functions.
  - Automatic FSM extraction including locating an FSM and extracting all possible
    state transitions.

    * 08/20/2003  - Stable Release 0.2.1

Some bugs were found in the covered-0.2 release that needed to be fixed to consider
Covered to be completely stable.  This release (covered-0.2.1) contains these fixes
which are outlined below.  Please get a hold of this stable release if you have already
downloaded covered-0.2.

  - Fixing bug with the initialization of the new symtable structure.  Only 255 of the
    256 children of each node were being initialized correctly.  Fixes a segfault problem with
    the symtable_dealloc routine.
  - Fixed memory leak problem with file list in parser.  This was a long outstanding problem
    that has now been understood and fixed.
  - Added fclose() after the VCD parsing was complete.
  - Fixed a memory problem with the symtable structure that caused other data structure
    values to be corrupted.
  - Fixed assertion error problem with VCD symbol aliasing.

    * 08/16/2003

Stable release covered-0.2 finally made!  This release will be the springboard
for adding FSM coverage code, code optimizations as well as a few new features
that should make the score command run much faster.  Some important bug fixes
were made in this release and code optimizations have been added to the score
command.  If you are getting coverage for a larger design, you should definitely
notice the speed increase.  In one of my designs, the speedup was a facter of
a bit more than 3x.  The following are the list of changes made for this release.

  - Added -ts option to score command to allow the user to see where in the
    simulation process the score command is currently at.  Please see user
    documentation for more details on this new option.
  - Fixed bug with multiple wait event statements within same always block.
    This means that the CDD files created with the last version of Covered
    will be incompatible with the new CDD files.
  - Fixed bug with posedge, negedge and anyedge expressions when more than
    one of these is found in the same always block.
  - Fixed bug in vector comparison function.  Vectors will now compare to a value
    of true if the values of two vectors (whose bit size is different) are equal
    up to the smallest MSB of the two vectors.  Before, if two vectors were not
    of equal size, a compare would always evaluate to FALSE.
  - Removed unnecessary global variables.
  - Removed generated development documentation from release and opted to
    generate these with a user 'make' in the doc directory (makes release size
    smaller and is unnecessary for most users anyways).
  - Development documentation updated.
  - User documentation and man file updated.

    * 08/06/2003

Release covered-0.2pre3 made.  It has been quite a while since a release has been made
which has been due to a particularly tricky bug that was found with non-blocking
assignments.  This bug generated bad coverage information (this is considered very bad!)
This release contains bug fixes and development documentation updates.  If no more problems
are found with this release, I will get the 0.2 release made very soon.  The following
is a list of the changes for this release.

  - Fixes to line.c and toggle.c to provide better cross-platform support.
  - Lots of updates to the development documentation.
  - Fixed bug with properly handling hierarchical references in expressions.
  - Fixing bug with single-bit parameter handling (caused a diagnostic miscompare
    between Linux and Irix OS's).
  - Fixed non-blocking assignment bug.  This bug affected the order of execution in
    Covered's simulator which resulted in bad coverage information being generated.
  - Fixed bugs in divide, mod, left shift, right shift and some other expression types
    to avoid converting variables that have unknown values to integers (which results
    in Covered errors at run-time).

The list of changes is short, but the changes made are very necessary to getting reliable
coverage numbers from Covered.  Please get a copy of this version and test it out so that
we can get the stable 0.2 release made ASAP.

    * 02/18/2003

Release covered-0.2pre2 made.  Bug fixes and enhancements for allowing more Verilog
code to be parsed without spewing parsing errors.  The list of open bugs is empty at
the moment.  I will be working on enhancing the user documents and development
documents in preparation for the stable release.  The stable release will be made
next unless there are new bugs found for which the bug fixes convince me that additional
testing is necessary.  The following is a list of the changes for this release.

  - Fixed bug with copying instance trees for instances of modules that were previously
    parsed and built into the main instance tree.
  - Fixing bug in file finder so that only missing modules are displayed after the
    parsing phase is completed.
  - Updated output of filenames as they are parsed to give more consistent look.
  - Fixing bug with leftover tmp* file when missing module error is reported.
  - Adding parsing support for pullup, pulldown and gate types though these are not
    supported for coverage at the current time (probably will be supported after stable
    release).
  - Adding parsing support for real numbers in statement delays.
  - Fixing case where statement is found to be unsupported in middle of statement tree.
    The entire statement tree is removed from consideration for simulation.
  - Added preliminary support for parsing attributes though the parsing support is not
    complete at this time.
  - Fixing bug with line ordering where case statement lines were not being output
    to reports.
  - Fixing bug with statement deallocation for NULL statements within statement trees.
  - Updates to parser for new bison version 1.875
  - Added support for named blocks
  - Fixing bug with handling of preprocessor directives with leading whitespace.
  - Fixes/optimizations to db_add_statement function which avoids stack overflow errors.
  - Added check in regard to -i option to score command.  Bad -i values would cause no
    coverage information to be generated but would not tell user explicitly.  Error
    message now provided with -i option is not specified but is needed and/or -i option
    is incorrect.
  - Lots of parser updates to be able to parse UDPs, escaped identifiers, specify blocks,
    and some other various Verilog code that was causing parse errors or assertion errors.
  - Fixed proper handling of the event type.
  - Fixed bug with merging constant/parameter vector values which caused assertion error
    in report command when reporting on a merged file.
  - Fixed user error message for merge command when CDD files are unable to be read.
  - Added new type to CDD for general CDD file information.  This allows CDD files from
    different testbenches with the same DUT instantiated to be properly merged.
  - Fixed problem with generating report from CDD file that has not been scored.  Covered
    detects that the CDD file has not been scored and outputs an error message to the user
    not allowing them to generate these reports.
  - Added support for reading bit selects from VCD files (this information was previously
    ignored).  This was necessary as other simulators bit blast module ports in VCD files. 
  - Updated look of instance reports to display full hierarchy of an instance instead of
    the instance name and the instance name of the parent module.  Much easier to locate
    the instance in the design now.
  - Fixed bug with using -D/-Q option with merge command.
  - Added merge regression testing capability to regression suite.
  - Updated build environment for RedHat 8.0 requirements.
  - Updates to regression suite
  - Development documentation updates.

The way that Covered looks and feels for 0.2 stable release is set in stone now.  Please
make sure that you test this version as much as possible to get any leftover bugs out of
the code.  I only plan on updating documentation, adding code comments, and fixing bugs.
If any bugs are sent in, a 0.2pre3 release will be created, otherwise, I will make
the 0.2 stable release available.

I've got some exciting things in Covered's future in plan after 0.2 stable release,
including FSM support, new text report look, code optimizations, support to be fully
Verilog-2001 compliant, a parallel scoring algorithm, and a new GTK+ interface.
Happy testing!

    * 01/05/2003

Happy New Year!  Release covered-0.2pre1_20030105 made.  This release is primarily a
bug fix release; however, many of the bugs required larger changes than would be
expected before a stable release.  The most significant change being to the lexer which
is now split into a preprocessor and a normal lexer (before these two functions were
combined into one).  As such, this is the first prelease with a second release most
likely expected before stable release.  The following is a list of changes included in
this release.

  - Preprocessor split out from lexer to allow proper handling of defined values within
    code.
  - Added -p option to score command to allow user override of preprocessor intermediate
    output file.
  - Fixed bug where report output was not squelched when -Q global option specified on
    report command line.
  - Modified regression suite to verify CDD file generation (was being performed before),
    module report generation (new) and instance report generation (new) to make sure that
    report output was consistent.
  - Fixed bug where integer, time, real, realtime and memory data types used in expressions
    where considered to be implicitly defined and given 1-bit values.  When these types
    are seen in expressions now, they are ignored by Covered (caused nasty segfault).
  - Fixed bug when a parameterized module is instantiated more than once in a design
    (sent error message to user when this occurred).
  - Fixed bug where a parsed module that was required but not at the head of the module
    list was not being found by the parser.
  - Added internal assertions and code to verify that we never try to overrun arrays
    in the VCD parsing/running stage (caused nasty segmentation fault).
  - Reorganized code for symtable symbol lookup and value assignment.
  - Fixing bug where a parameterized module that was instantiated in a design more than
    once was not getting the correct parameter value(s).
  - Fixed module search algorithm to reparse a Verilog file that contains a module
    that was previously ignored (not needed at the time) but is later found to be
    needed.
  - Created tree.c and tree.h to handle new module search algorithm and to replace
    preprocessor define tree structure.
  - Updated development documentation.
  - Updates to user manual and manpage for new -p option, notes from this release
    and a new section that starts to describe what logic is analyzed by Covered and
    which code is not analyzed.

I've got some fairly large designs being run with this version of Covered and the regression
suite has grown to over 130 diagnostics with more on the way.  Keep the bug reports coming!

    * 12/14/2002

Release covered-20021214 made.  This release is a bug fix release.  See list below
for details.  Bugs that lead to infinite looping in the score command and segmentation
faults should now be cleared up.  Please let me know if there are any other bugs that
need to be addressed before first stable release.  Development documentation updated
to match changes in files.  Regression suite has been updated quite a bit from last
time.  There are now over 125 diagnostics in the regression suite (my goal was to
write about 100 before first stable release).

  - Segmentation fault fixes in report command
  - Parser can now handle all net types (not just wire).  Diagnostics added to regression
    suite to verify their proper handling.
  - Parser updated to handle net declaration assignments (e.g., wire a = b & c;).
    Diagnostics added to verify proper handling.
  - Added human-understandable error messages in parser to help identify file and
    line number along with a quasi-helpful error message description.
  - When parser error is found, Covered exits after parsing phase without continuing
    to write CDD file.
  - Fixed bug where a multi-bit select expression existed in a module that was
    instantiated more than once.  Assertion error fired in this case.
  - Updated regression suite for VCS testing.
  - Fixed bug where parameters were used in modules that were instantiated more than
    once.
  - Fixed bug that dealt with parameters (see param6.1.v for test case).
  - Fixed bug where a delay statement was the last statement in a statement block used
    by Covered.  Added diagnostics to verify correct behavior.
  - Fixed infinite loop problem with db_add_statement function.
  - Fixed infinite loop problem with statement_set_stop function.
  - Fixed bug with parsing order.  When an instance is found for a module that has
    already been parsed, the instance was incorrectly being handled.  Bug replicated
    with instance6.v diagnostic.
  - Fixed output of edge-triggered events to add @(...) around the expression (they
    were easily confused with other code that could exist on the same line).
  - Fixed bug in parser to not allow module to be parsed more than once.
  - Fixed bug that lead to an assertion error (see instance6.1.v for test case).
  - Fixing bug with calculating list and concatenation lengths when MBIT_SEL 
    expressions were included.
  - Changed Covered's handling of -y directories.  Before, all files in these directories
    were fed into the parser to look for missing modules.  Now, when a module is needed,
    the module name is used to find the matching filename in the -y list (basically,
    the -y option works like the -y option in Icarus Verilog and VCS).  This fix really
    streamlined the parsing phase and fixed several bugs.
  - Memory declarations are now properly ignored (produced segmentation fault previously).
  - Fixed report command to display all lines and expressions in order according to
    their line number (the problem is REALLY fixed now).
  - Removed hierarchical references from being scored.

All in all, you should notice a huge improvement in the parsing speed, syntax errors are
reported better, more Verilog syntax should be handled properly, the score command will
run a bit faster than before, and the reports should be a bit easier to read.  Segmentation
faults and assertion errors should become lesser in number (if not gone altogether?).
I am feeling pretty confident that we are getting close to a stable release as I have
been able to generate a CDD file for a chip that is millions of gates in size (CDD file
was created in the range of 30 - 45 seconds!)  Keep the bug reports coming.  I have some
things to work on for next release already.

    * 11/27/2002

Release covered-20021127 made.  This release contains mostly bug fixes to get closer
to first stable release.  In addition, it should be noted that bug fixes to allow
Covered to work on 64-bit architectures have been added.  The various bug fixes
have been listed below.  User documentation, development documentation and regress
suite has been added to and enhanced.

  - Reformatted parser.y code to make it more readable.
  - Fixed bug in parser.y that existed in 20021026 which caused the bison parser
    to either spew an error or warning
  - Fixed bug in expression resizer that caused a segmentation fault for expressions
    with NULL values in right side child expressions
  - Fixed CVS automatic log commenting.  This was causing /* to show up within
    the Log comments.  Resulted in the C compiler spewing warning messages.
  - Fixed code that handles Verilog constructs that are not supported by Covered.
    These caused segmentation faults previously.  Any code not handled by Covered
    should be ignored and cause the statement block to not be examined that contains
    the ignored code.
  - Fixed expression CDD file reader to read short numbers correctly.
  - Fixed compatibility problems between cc and gcc compilers.
  - Fixed problem that resulted in bus errors from the parser.
  - Removing compiler warnings from source and header files.  Code should now compile
    clean when the -Wall option is provided to the compiler.
  - Fixed problem where EXPAND expressions were failing when the multiplier of the
    expander was an expression itself.
  - Fixed problem with combinational logic output in the report command.
  - Fixed bug when parameters are used in expression resizing.
  - Verified that `ifdef cases work appropriately when parts of the `ifdef/`else/`endif
    are commented out (bug found in Icarus Verilog)
  - Added start of FAQ to user manual.
  - Fixed bug in report command for underlining parameters in the reports.
  - Fixed bugs with multi-bit and single-bit handling.
  - Fixed bug with combinational logic being output when it is unmeasurable.
  - Fixed bug in report command when an expression can be counted more than once.  All
    expressions are now only able to be counted and displayed once (removal of redundant
    information).
  - Fixed static expression calculation to yield proper coverage results for expressions
    containing constant values.
  - Verified -T option works correctly for min, typ, and max values.
  - Changed delay specifier to only report a warning if min/typ/max is not specified and
    we have parsed a delay with these specifiers.  Still default to typ.

Keep the bug reports coming.  I really want to get to first stable release as I have figured
out how to handle FSMs and want to start working on a GUI front-end for the report command.

    * 10/26/2002

Release covered-20021026 finally made.  This release is an enormous step toward
getting to first stable release.  Added support for parameters which should be
complete for stable release.  Supports all Verilog-1995 standard parameter code.
This caused some parts of the code to be completely redesigned and in the process
enhanced the efficiency of the score command.  Additional enhancements and bug fixes
are so numerous that I will list them below:

  - Fixed bug in VCD for reading $var definitions containing optional bit selects
  - Fixed bug with calculating initial values of signals for all simulators
  - Fixed bug with coverage results for static values.
  - Modified regression to run with Icarus Verilog or VCS.
  - Full support parameters as specified for Verilog-1995 (Verilog-2000 will be supported
    in the future) -- simple bullet in list but a lot of work involved here.
  - Fixing bug with concatenations specified on the left-hand-side of equations
  - Fixed several other bugs in handling concatenations.
  - Added lots of new diagnostics to regression suite to test parameters and other
    Verilog components which were found to be buggy.
  - Fixed bugs with single and mult-bit signal selects.  Multi-bit select bugs were
    causing internal assertion errors to fire.
  - Expressions changed to be more efficient with memory consumption.
  - Added ability to parse real types in VCD dumpfiles (though real numbers are not
    supported internally) -- VCD dumpfile parsing should be complete now.
  - Fixing -i option in score command to use full Verilog hierarchy rather than just
    the instance name (this was the intended behavior).
  - Added -T option to allow user to select min, typ, or max delay values in
    min:typ:max delay statements.
  - Fixed bug leading to segmentation fault in report command when outputting verbose
    information for large expression trees.
  - Added initial fix for ordering line and combinational logic outputs in verbose
    reports (they were backwards before).
  - Updates to development documentation, user manual, and man page for new features
    and redescribed a few things in user manual for clarification purposes.

Overall, this is a MAJOR release.  Please give this one a try and submit bug reports.
I only have a few more small features to add before first stable release so I want to
really work the problems out of this release.  All Verilog code that Covered will
pay attention to in a design for the Verilog-1995 standard is now in place.  A lot of
work went into this release -- thus the delay in getting the release out.

    * 9/14/2002

Release covered-20020914 made.  This release is mostly a feature release with a few
bug fixes in place.  Code has been added and development documentation started to
handle parameters.  To make Covered as efficient as possible in the score command,
certain unnecessary steps were removed; however, this makes supporting parameters
more complicated to code.  I am narrowing in on the implementation but as of yet
parameter support is not included in this release.  The next release should provide
support for parameters.  I did make some progress on checking off a few of the things
on the TODO list before first stable release.  I have added the initial version of 
combinational logic depth control.  When the -v option was present, all subexpressions 
found to be not fully covered where output for combinational logic.  This type of 
output, though very useful, was somewhat too verbose to gain an understanding of 
initial coverage information.  To remedy the situation, I have removed the -v option 
and added the -d (detail control) option which may take the following parameters:  
s, summary output only; d, detail output (intermediate verbose output); and v, verbose 
output (same as the old -v option).  The information contained in detailed output is 
similar to most commercial coverage tools that I have used.  The -d v option will 
provide that "over the top" information as to exactly what subexpressions where not 
fully covered.  Additionally, bug fixes were made to the -c option to the report command, 
and MULTIPLY, DIVIDE and MOD expressions should now be output in detailed and verbose 
reports.  Fixed bug with initial value of signals that was causing Covered to report 
incorrect coverage results for signals that were not initialized and not toggled during 
simulation.  Updated regression test suite for all changes mentioned above and updated 
user, manpage and development documentation.

    * 8/22/2002

Release covered-20020822 finally made.  Took some time off away from the project to get
some other chores done and get refreshed.  This release contains mostly bug fixes that I
have found while testing the tool on some "real" logic.  The CDD database merging (used
in the merge and report commands) was rewritten for optimization purposes and to remove
a hard-to-pin-down segmentation fault.  As a result, merging CDD files and generating
reports should be a bit faster and the bizarre bug should be eliminated.  Fixed some
bugs in Verilog parser to generate user error/warning messages instead of core dumping.
Also added -c option to report command that allows the user (and maintainer) to generate
a report that shows what code is covered (instead of the default behavior to show what is
uncovered).  This is useful for debugging and understanding exactly what the tool is
capable of measuring.  Removed Bison generated VCD parser and replaced it with an optimized,
hand-written VCD parser.  This should make reading in the VCD file much faster and should
totally eliminate any problems in reading in these files.  Added manpage as an additional 
documentation source and updated Makefiles to install this manpage.  Updated user
documentation and development documentation.

    * 7/21/2002

Release covered-20020721 made.  Lots of bug fixes and feature enhancements.  Fixed output
to a more understandable format when modules cannot be found during parsing.  Added support
for the -e option which allows the user to omit modules from coverage.  Fixed single and
multi-bit selectors.  These should work properly now, selecting the correct values from
vectors.  Added -D option to allow the user define values at the command-line.  Fixed
problems associated with the `ifdef/`ifndef directives.  Fixed problem with module trees
that were 3 or more modules deep.  Created TODO list for items that I want to complete
before 0.1 stable release.  This will give users/developers an insight to the short-term
goals of the project.  All items in TODO list preceded by an X have also been worked on
in this release.  Improved performance of signal/expression binding.  Support has been
added to allow implicit wire declarations.  Added ability to parse the design and score
the dumpfile in two calls to the score command.  This could aid performance later as a
design would only need to be parsed once.  More diagnostics have been added to the
Verilog test suite.  Development and user documentation has been updated to bring them
up-to-date with current functionality.

    * 7/15/2002

Release covered-20020715 made.  Several bug fixes for problems found in previous release
and additional Verilog constructs are now supported.  The `ifdef, `else, and `endif
directives are now supported.  VCD scoping problems have been dealt with.  It should be
possible now to get coverage results on an entire tree of Verilog instances.  It should
also be possible to provide a dumpfile that contains more information than is necessary
for getting coverage.  Some performance improvements have been made that will be noticeable
for larger designs.  Fixed bugs for always statements that did not contain any coverage-able
code.  Support is now in place for concatenation and replication in operations.  The
binding phase has been revamped to provide better performance, easier maintenance and
less memory consumption.  New diagnostics have been added to start testing new code support.
Full regression passes.

    * 7/11/2002

Release covered-20020711 made.  This release contains a lot of fixes to the score and report
commands.  Proper support for `include and `define preprocessor now available.  Fixes to the
-y, -I, and -f options to score command.  These now seem to working correctly.  Added -D and
-Q options to covered (for score, merge and report commands) for adjusting amount of output
to the screen.  The -D option causes debug information to be spewed to standard output for
debugging tool problems (not recommended for standard usage).  The -Q option will omit all
output to standard output (stderr is still displayed).  By default, the minimal amount of output
is displayed to show tool progress.  Added proper support for default case, casex and casez
statements.  Fixed a lot of problems in the report command output, including reformatting the
toggle information to help make this more readable.  Lots of bug fixes and support enhancements
make upgrading to this version worthwhile.

    * 7/6/2002

Second release of Covered (covered-20020706) made.  Proper support for case, casex and casez
now exists and has been tested to an extent.  Fixed problem with reading VCD files appropriately.
Support for multi-bit anyedge (i.e., always @(b) ...) is now installed.  Lots of other bugs
in the first release have been fixed.  I have noticed a small performance degradation by changing
the VCD reader and am looking into it.  All in all, this release fixes many bugs and enhances
support for case statements and always blocks.

    * 7/3/2002

Finally release first unstable version of Covered in tarball format. This version should 
be considered alpha at this point but may be considered ready for good testing. Please 
read the release note that accompanies the pointer to the download for information on what 
type of code is currently supported for testing purposes. Happy bug finding!

    * 6/19/2002

Added beginnings of development on-line documentation. At the moment, this documentation 
mostly lays out the ground-work for interested developers. Lots of details are missing at 
the moment; though, the generated documentation contains a lot of source-code-specific 
information. With initial documentation out of the way, for the most part, the first 
release should be right around the corner.

    * 5/1/2002

Added user on-line manual. The download still isn't available for use; however, it may be 
interesting to see how the tool will be used. By the way, the download should be available 
soon for first release. All of the features may not be present but it should be somewhat 
usable.

    * 4/12/2002

Created a home for the Covered utility on SourceForge.net. Currently, the HTML website is 
only available for viewing. No downloads are yet available. There are a few features that 
need to be added to the tool (and verification of those and other parts) before the source 
files and tool become available for public use. Check out the ToDo page for items that are 
on my todo list before making the tool available on-line!

    * 11/27/2001

Started working on the Covered utility. After searching long and hard for a free, open 
source code coverage utility and coming up empty, decided to start working on one. This 
utility will be available on the gEDA website and database.