OSVVM 2025.06
The 2025.06 release adds:
- Build Directories
- Tcl procedure CreateTestCaseCommonPkg
- Tcl procedure RunAllTests
- Questa – new vs. old script flows
- Clock edge specification for WaitForClock, WaitForTransaction, …
- Most VC Test Cases updated
Build Directories
All build output is now collected into a build directory. The default name for is DirName_ScriptName. Set the name with BuildName. BuildName can be called on the command line of build:
build $OsvvmLibraries/OsvvmLibraries.pro [BuildName OsvvmVcRegression]
BuildName can be called from within the *.pro file.
BuildName Regression_${::osvvm::ToolName}
include ${::OsvvmLibraries}
include ${::osvvm_testbench}
include ${::OsvvmLibraries}/RunAllTests.pro
. . .
Index of Builds
The Index of Builds is a summary of all builds previously run in an html file. It produces a report such as the following:
Tcl procedure CreateTestCaseCommonPkg
The Tcl procedure CreateTestCaseCommonPkg is used to generate local information about a suite of tests. OSVVM calls CreateTestCaseCommonPkg in the following Tcl call:
# Package Name Path to Validated Results
analyze [CreateTestCaseCommonPkg OsvvmTestCommonPkg ../ValidatedResults]
This creates the following package:
-- This file is autogenerated by CreateTestCaseCommonPkg
library osvvm ;
context osvvm.OsvvmContext ;
package OsvvmTestCommonPkg is
constant PATH_TO_TEST_SRC : string := RemoveEndingSeparator(ChangeSeparator(FILE_PATH)) & "/"; -- VHDL-2019
constant PATH_TO_VALIDATED_RESULTS : string := PATH_TO_TEST_SRC & "../ValidatedResults/" ;
constant CHECK_TRANSCRIPT : boolean := PATH_TO_TEST_SRC'length > 0 ; -- TRUE if all went well
--
-- PATH_TO_RESULTS is for test case generated output other than TranscriptOpen.
constant TEST_SUITE_NAME : string := "Axi4Full" ;
constant PATH_TO_RESULTS : string := OSVVM_BASE_OUTPUT_DIRECTORY & "results/" & TEST_SUITE_NAME & "/" ;
end package OsvvmTestCommonPkg ;
OSVVM tests cases primarily use the constant PATH_TO_VALIDATED_RESULTS.
Tcl procedure RunAllTests
Tcl procedure RunAllTests selects tests to run using a pattern. RunAllTests allows semi-autonomous running of tests. The following will run all test cases that match the pattern TbUart_*.vhd.
RunAllTests TbUart_
Questa – new vs. old script flows
OSVVM 2025.06 allows a choice of the new script flow (using vopt + vsim) or the old script flow (vsim). OSVVM 2025.06 selects the new script flow for Questa 2025.2 and newer. Older versions of OSVVM and Questa select old script flow. New script flow is recommended by Siemens and is appropriate for Visualizer.
New script flow is implemented by VendorScripts_Questa.tcl. Old script flow is implemented by VendorScripts_Siemens.tcl. Select the script flow you want by setting OSVVM_TOOL environment variable to Questa (new) and Siemens (old).
Clock edge specification for WaitForClock and WaitForTransaction
The ClkActive parameter in WaitForClock and WaitForTransaction now supports ‘-‘ (to find any edge of clock). ClkActive supports ‘1’ (for rising edge – default) and ‘0’ (for falling edge). The overloading is as follows:
procedure WaitForClock ( signal Clk : in std_logic ; constant Delay : in delay_length ; constant ClkActive : in std_logic := CLK_ACTIVE) ;
procedure WaitForClock ( signal Clk : in std_logic ; constant NumberOfClocks : in natural := 1 ; constant ClkActive : in std_logic := CLK_ACTIVE) ;
procedure WaitForTransaction (
signal Clk : In std_logic ;
signal Rdy : In RdyType ;
signal Ack : InOut AckType ;
constant ClkActive : In std_logic := CLK_ACTIVE
) ;
Most VC Test Cases updated
Most of OSVVM’s VC test cases have been updated to use CreateTestCaseCommonPkg to find the PATH_TO_VALIDATED_RESULTS, TranscriptOpen without a parameter, and EndOfTestReports with TIMEOUT and NOCHECKS detection.