OSVVM Versions Save

OSVVM Utility Library: AlertLogPkg, CoveragePkg, RandomPkg, ScoreboardGenericPkg, MemoryPkg, TbUtilPkg, TranscriptPkg, ...

2020.05

3 years ago

AlertLogPkg.vhd

Major update to AlertLogPkg. Output formatting of ReportAlerts has changed.

Added count of Log PASSED for each level. Prints by default. Disable by using SetAlertLogOptions (PrintPassed => DISABLED).

Added total count of log PASSED for all levels. Prints in "%% DONE" line by default. Disable as per each level. However, always prints if passed count or affirmation count is > 0.

Added affirmation counts for each level. Prints by default. Disable by using SetAlertLogOptions (PrintAffirmations => DISABLED).

Total count of affirmations is disabled using SetAlertLogOptions above. However, it always prints if affirmation count > 0.

Disabled alerts are now tracked with a separate DisabledAlertCount for each level. These do not print by default. Enable printing for these by using SetAlertLogOptions (PrintDisabledAlerts => ENABLED).

A total of the DisabledAlertCounts is tracked. Prints in "%% DONE" anytime PrintDisabledAlerts is enabled or FailOnDisabledErrors is enabled. FailOnDisabledErrors is enabled by default. Disable with SetAlertLogOptions (FailOnDisabledErrors => DISABLED).

Internal to the protected type of AlertLogPkg is AffirmCount which tracks the total of FAILURE, ERROR, and WARNING and ErrorCount which tracks a single integer value for all errors. Many simulators give you the ability to trace these in your waveform windows.

Added printing of current ErrorCount in the alert and log messages. When enabled, the number immediately follows the "%% Alert" or "%% Log". Enable using SetAlertLogOptions (WriteAlertErrorCount=> ENABLED) and SetAlertLogOptions (WriteLogErrorCount=> ENABLED).

Added enable parameter to SetAlertLogJustify(Enable := TRUE) to allow turning off justification.

Added pragmas "synthesis translate_off" and "synthesis translate_on" in a first attempt to make the package ok for synthesis tools. It has not been tested, so you will need to try it out and report back.

Added a prefix and suffix for Alerts and Logs. They support set, unset, and get operations using SetAlertLogPrefix(ID, "String"), UnSetAlertLogPrefix(ID), GetAlertLogPrefix(ID), SetAlertLogSuffix(ID, "String"), UnSetAlertLogSuffix (ID), and GetAlertLogSuffix (ID).

Added ClearAlertStopCounts and ClearAlertCounts. ClearAlerts clears AlertCount, DisabledAlertCount, AffirmCount, PassedCount for each level as well as ErrorCount, AlertCount, PassedCount, and AffirmCount for the top level. ClearAlertStopCounts resets the stop counts back to their default values. ClearAlertCounts calls both ClearAlerts and ClearAlertStopCounts.

CoveragePkg.vhd

Minor enhancements.

Added GetIncIndex, GetIncBinVal, GetIncPoint which get the index, BinVal, or point of the next bin in the coverage model (following an incrementing with wrap around pattern).

Added GetNextIndex, GetNextBinValue, GetNextPoint which in turn use Random, Incrementing, or Minimum pattern to select the next index, BinVal, or point. The intent is to allow a test to algorithmically or via a generic select its mode of next item selection. The selection can be made through an explicit parameter of type NextPointModeType (whose values are RANDOM, INCREMENT, or MIN). If no parameter is specified, the internal NextPointModeVar is used. It is set by calling SetNextPointMode(Mode => RANDOM).

GetLastIndex now will return the index that was last used for either used for stimulus generation (in the case of GetRandIndex, GetIncIndex, GetMinIndex, GetMaxIndex, or GetNextIndex) or coverage collection (in the case of ICover).

For consistency in naming, GetRandIndex (new capability), GetRandBinVal, and GetRandPoint are introduced to deprecate RandCovBinVal and RandCovPoint.

Added conversions from integer to_boolean and to_std_logic and from integer_vector to_boolean_vector and to_std_logic_vector (and alias: to_slv).

ScoreboardGenericPkg.vhd

Minor enhancements.

Added Check function that returns true when the check passes.

Added additional counts to track the number of items that have been popped from the FIFO (GetPopCount).

Added capability to report the number of items in the FIFO with GetFifoCount. Number of items Pushed into the FIFO is now available as GetPushCount (as well as GetItemCount).

ResolutionPkg.vhd

Added Extend and Reduce functions for type std_logic_vector. Extend is resize that only allows the array size to grow and is used when putting a value into the transaction record. Reduce is resize that only allows the array size to stay the same or shrink and is used when removing a value from the transaction record.

Added ToTransaction to convert from std_logic_vector to the transaction type std_logic_vector_c. Alternately use type conversion std_logic_vector_c. Added FromTransaction to convert from the transaction type std_logic_vector_c to std_logic_vector. Alternately could use type conversion std_logic_vector.

2018.04

5 years ago

OSVVM™ 2018.04 does some minor extensions and fixes to TbUtilPkg, ScoreboardGenericPkg, CoveragePkg, ScoreboardGenericPkg, and MessagePkg.

In TbUtilPkg, the procedures Increment and WaitForToggle were added for handshaking with type integer. The overloaded procedures RequestTransaction, WaitForTransaction, Toggle, and WaitForToggle were added for handshaking with type bit.

In ScoreboardGenericPkg, the pop functions were made visible. In previous revisions the function declarations were commented out due to issues in some simulators.

In CoveragePkg, a minor fix to the calculation of PercentCov was made to account for AtLeast values of less than or equal to zero. This issue would only impact you if you used a coverage goal (AtLeast parameter) of 0 or less.

Also in CoveragePkg, added “string’” to one of the calls to write to be language compliant – this snuck through as many simulators allowed this – OTOH GHDL issued a compile error – so kudos to the GHDL community for finding and reporting this. Removed the deprecated Increment procedures – but see TbUtilPkg as Increment was added there for type integer.

In AlertLogPkg did a minor update to PathTail to remove any trailing “:” in the path. Note that PathTail is intended to be used on the path returned by applying ‘PATH_NAME to the entity name.

In AlertLogPkg and ScoreboardPkg preparations were made for changing AlertLogIDType from a subtype of integer to a type. This change will happen in a future release of OSVVM. Make sure you are using AlertLogIDType for AlertLogIDs and not type integer.

In MessagePkg, some minor changes were made to the Alert message.

2017.05

6 years ago