Bitvis Utility Library - Changes

(Go here for downloads)

Changes since (and incl) 2.0.0

2.6.0 - Functional extension  (2015-08-26)

All changes should be backwards compatible within 2.x.x

  1. Added file selection for logs.
    The log() and log_text_block() procedures now accept arguments defining where to write the message (console and log file, console only or log file only), and what file name to write to (when applicable).
  2. Updated quick reference with default values for optional parameters.
  3. Added new alert level, NO_ALERT.
    Any alert with this alert level will be ignored.
  4. Added Message ID ID_BFM_POLL. Used inside a BFM when polling until reading a given value, i.e., to show all reads until expected value found.

2.5.1 - Minor fix  (2015-06-17)

1. Fixed memory leak in log procedure.
2. Fixed clock_generator procedure to comply with Riviera-PRO.
3. Improved performance of enable_log_msg function.
4. Cleaned up Modelsim project file.

2.5.0 - Functional extension  (2015-06-01)

All changes should be backwards compatible within 2.x.x

  1. Added new procedure await_stable().
  2. Added deprecation procedure. This procedure is used to print a deprecation message for outdated procedures. The deprecation messages can be enabled/disabled by changing the C_DEPRECATE_SETTING constant adaptations_pkg. The constant changes the deprecation message printing globally for all applicable sub-programs.
  3. Normalise():
    - Parameters value and target can not have a length of zero. Added a check for this.
    - Fixed bug in overload for signed type.
    - This procedure has been replaced by normalize_and_check(). The functionality is exactly the same, only the name has changed. A deprecation message will be printed for normalise() once for every simulation.
  4. Added randomize(). This is a replacement for randomise(), but randomise() is still included for legacy use. A deprecation message will be printed for randomise() once for every simulation.
  5. Added option for enabling the printing of alerts on a single line. The option is controlled by the boolean constant C_SINGLE_LINE_ALERT in adaptations_pkg. Disabled by default.
  6. Added option for enabling the printing of log messages on a single line. The option is controlled by the boolean constant C_SINGLE_LINE_LOG in adaptations_pkg. Disabled by default.
  7. Added optional QUIET/NON_QUIET parameter to disable_log_msg method.
  8. Fixed to_string bug which caused error when using one bit slv and signed.
  9. Added logging support for text blocks (VHDL line) through log_text_block().
  10. Added new Ids for larger headers (ID_LOG_HDR_LARGE and ID_LOG_HDR_XL).
  11. Moved C_LOG_HDR_FOR_WAVEVIEW_WIDTH from adaptations_pkg to types_pkg, and increased default from 50 to 100.
  12. Added replace procedures for string and line type. These procedures will replace a given target character with a given exchange character.

2.4.0 - Functional extension  (2015-02-06)

All changes should be backwards compatible within 2.x.x

  1. Removed copyright and license info from simulation (Moved to elaboration)
  2. Added Optional initial info on Library and last updates - for novices (may be switched off via adaptations_pkg.vhd)
  3. Added some new UVVM IDs and modified som Library internal IDs
  4. Added ID-specific message indentation. Can be used by anyone, but primarily intended for UVVM to improve readability
  5. Added optional scope parameter to several methods to make library more consistent - especially for larger systems
  6. Added optional message and scope parameter to some methods to make library more consistent - especially for larger systems
  7. Added '\r' as a special character for strings to messages (log/alert).
    Same as '\n', but \n shifts only the message field one line down, whereas \r inserts a complete blank line
  8. Improved check_value(): Better mismatch report format
  9. Added string methods:
    a) new functions pos_of_leftmost(), pos_of_rightmost()
    b) new function get_string_between_delimeters()
    c) new function get_procedure_name_from_instance_name()
    d) new function get_process_name_from_instance_name()
    e) new function get_entity_name_from_instance_name()
    f) new function remove_initial_chars()
    g) new overload for function to_string(string) -- return string with only valid ascii characters
  10. Modified compile scripts to remove library directory rather than using vdel - as vdel does not work between Modelsim versions
  11. Added fix_vmap script into the compile script to handle a bug with vmap on linux
  12. Added overload for check_value where we compare boolean to booleab

- Additional minor changes and cosmetic fixes.

2.3.0 - Minor functional extension  (2014-08-15)

1. Added new functions:
    - gen_pulse()
    - clock_generator()

2. Reduced initial license header

3. Included powerpoints presentations for making good testbenches and using the library

2.2.1 - Minor fix

1. Fixed mismatch between procedure declaration in header and body 
    (Worked fine in most simulators, but not with Active HDL)

2. Modelsim scripts: changed default vhdl version to vhdl2008

2.2.0 - Minor functional extension

1. Added new functions:
     - ascii_to_char()
     - char_to_ascii()

2. Improved the message shown when test bench is stopped due to an alert 

2.1.1 - Minor fix

1. to_string(my_signed, DEC)
This to_string() function did not handle negative numbers properly when converting from signed to decimal. 

2. Minor documentation update 

2.0.0 / 2.1.0 - Major change with respect to VHDL-versions

Due to requests for a VHDL'93 compliant version, and the fact that some simulators might not support VHDL 2002 og 2008 for at least another year, - we decided to support all VHDL versions. In order to minimise the workload for future UL updates, and for derived products, we have made a common source that we parse into '93, '2002 and '2008 versions. To minimise the overhead and to reduce the differences we reduce the usage of protected types to only the shared variables for which this is really needed.

We have now made dedicated versions for all VHDL versions so that no modification is required for the users.