OSVVM 2026.05
OSVVM release 2026.05 adds the following
- Script Exit on build done
- Script Bug Fix: two RunTest when running interactively
- Script bug: VhdlLsToml
- Script bug: Simulate and generics
- Testbench updates to remove Assert WARNING/ERROR from Numeric_Std
- CoveragePkg Refactor
- MemoryGenericPkg Support for 64 bit integers
- AlertLogPkg Use Parent ID
- DynamicVectorGenericPkg
- VHDL-2019 Interface Support
- Ethernet Bug: Fixed RefXxxClk generation
Script Exit on build done
If $::osvvm::ExitOnBuildDone is set and neither $::osvvm::SimulateInteractive nor $::osvvm::Debug are set, then exit with a code. The code is 1 if there was an error and 0 otherwise.
Script Bug Fix: two RunTest when running interactively
If simulate/RunTest is not run from within a build (such as interactively) a second run of RunTest will fail due to not finding the file. Reported as issue issue 107
Issue started due to 2026.01 where if simulate is run interactively it is wrapped in a build so proper directories, results files, and index entry are created.
Simulate was updated to maintain CurrentWorkingDirectory when it is run interactively.
Script bug: VhdlLsToml
Fixed issues with VhdlLsToml file creation.
Script bug: Simulate and generics
If an analyze failed and simulate is called with generics, the generics were remaining set for the next simulate.
Updates to remove Assert WARNING/ERROR
Updated the following:
- FifoFillPkg_slv.vhd (from osvvm_common) – changed +i to +1
- WishboneManager.vhd – handling X in to_integer_null_is0
- bmp_pack.vhd (from osvvm_videobus) – updated write_byte to handle x characters
CoveragePkg Refactor
CoveragePkg was refactored to separate the singleton implementation from the PT implementation. The PT implementation (in CoveragePtPkg) interacts with the singleton using an ID (which it acquires on demand). The HTML functional coverage reports now include PT created coverage models.
Going forward, only the singleton implementation (in CoveragePkg) will be updated. The PT implementation has a method, GetCoverageID, to retrieve the internal ID. As a result, new singleton functionality can be accessed – with a little work using GetCoverageID.
This release adds singleton methods WriteAllBins and GetNumIDs. The file ID used by FileOpenWriteBin, named OsvvmCoverageWriteBinFile, is now in the declarative part of CoveragePkg (and hence visible).
The updated PT implementation passes all existing OSVVM test cases without modification, so backward compatibility is expected.
MemoryGenericPkg Support for 64 bit integers
Updated to support 64 bit implementations (as well as 32 bits) and to automatically select the size based the size your simulator is currently using.
AlertLogPkg Use Parent ID
Most OSVVM data structures call AlertLogPkg.NewID to create an AlertLogID. A new ReportMode, USE_PARENT_ID was added. This allows data structures to use the parent ID rather than creating an ID. This is appropriate for FIFOs where the only message is a FAILURE (and stop).
DynamicVectorGenericPkg
A dynamic vector is a resizable vector. Like a vector it supports random access to elements via indices. The indices are numbered 0 to N-1, where N is the number of elements in the vector. As a data structure, it supports insertion and deletion, but it is optimized for insertion and deletion at the end of the vector (index N-1).
Dynamic vectors are implemented in a singleton data structure and can be passed around using their ID. This makes suitable for handling burst transfer information – particularly if the bursts are different sizes. As a singleton, different aspects of the verification environment such as packet generator, verification component (VC) driving the packet, and VC receiving and checking the packet can all reference the packet of data using its ID.
Dynamic vectors have similarities to C/Rust/Ada vectors, SystemVerilog dynamic arrays, Python lists, and Java VectorLists.
This release introduces dynamic vectors. Upcoming releases will integrate them into the OSVVM model independent transaction interfaces.
VHDL-2019 Interface Support
Currently MIT address bus interface now supported by NVC and Aldec RivieraPRO. Added VHDL-2019 interfaces to Interrupt Handler.
Ethernet
Bug fix for generation of RefGtxClk. The divide by 2 was missing.