Jim Lewis
-
Jim Lewis replied to the topic All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS in the forum OSVVM 2 days, 16 hours ago
If the CoverReport process is removed, then the “Stim” process can end with std.env.stop – which is typically how OSVVM ends the test cases.
— Stimulus Generator
Stim: process
variable RandA : RandomPType;
variable RandB : RandomPType;
variable allDone : boolean := false;
variable nCycles : natural := 0;
begin…[Read more] -
Jim Lewis replied to the topic All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS in the forum OSVVM 2 days, 16 hours ago
One final thing to try. If you like the Alert/AffirmIf printing, you might also like the log printing better than the vhdl Report statement. In the “Stim” process you could change these to logs:
log("Number of simulation cycles = " & to_string(nCycles));
log("Coverage holes: " & to_string(CountCovHoles(cp_A_B)));
Logs have levels.…[Read more]
-
Jim Lewis replied to the topic All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS in the forum OSVVM 2 days, 16 hours ago
This step is recommended, but not required. Do it after you get the above running.
To get the HTML based Functional Coverage reports, you need to use the singleton rather than the older, deprecated shared variable approach.
This requires updating your architecture declarations, “InitCoverage”, “Sample”, and “CoverageReport” processes as…[Read more]
-
Jim Lewis replied to the topic All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS in the forum OSVVM 2 days, 16 hours ago
This step is recommended, but not required. Do it after you get the above running.
While I SetTestName, SetLogEnable can be called concurrently, it is more normal to call them in the process that is controlling the overall test. Currently this is the “Stim” process but we will return to this:
Stim: process
[Read more]
variable RandA : RandomPType;… -
Jim Lewis replied to the topic All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS in the forum OSVVM 2 days, 16 hours ago
Thanks for posting your whole testbench as it makes the issue clear.
You are calling EndOfTestReports concurrently. So it runs at time 0 ns. You do not want it to run until your test case has finished. Same goes for WriteAlertYaml and WriteAlertSummaryYaml. However, you do not need to call these or ReportAlerts as they are all called by…[Read more]
-
Jim Lewis started the topic Using ActiveHDL's VSimSA release 15 with OSVVM Scripting … in the forum OSVVM 3 weeks, 3 days ago
Hi,
If you are using ActiveHDL’s VSimSA version 15 with OSVVM Scripting, please be sure to upgrade to version 16. You will be pleased. VSimSA in release 15 limited the stack space to Tcl and OSVVM’s scripts which process Yaml files ran slow. For shorter running simulations (like OSVVM regression tests), the time is significant. For your…[Read more] -
Jim Lewis replied to the topic Unique Requirement Pass Goals For Each Test Case in the forum OSVVM 1 month ago
Hi Charlie,
What I suspect you are doing is that in the checker model you have created your requirements as follows:
Req1ID <= NewReqID("Req1", 1, ...) ;
Req2ID <= NewReqID("Req2", 1, ...) ;When the build finishes with one or more tests that use this checker module is that the requirements are merged into the final report. However, that…[Read more]
-
Jim Lewis wrote a new post 1 month, 1 week ago
OSVVM: VHDL's #1 Verification Methodology
The 2024 Wilson Verification survey shows that OSVVM is being used by 35% of all FPGA designers world-wide, which makes OSVVM VHDL’s #1 Verification […]
-
Jim Lewis replied to the topic Using VCs without the built-in Scripts – but instead VUnit in the forum OSVVM 1 month, 2 weeks ago
Hi Isaac,
I think Patrick’s solution will be the defacto solution for integration with VUnit. Particularly since he is working on generating reports too – really cool.Before I talked to Patrick today, I worked on the script I mentioned above. For each OSVVM library, it will create a list of files associated with the library. Note the…[Read more]
-
Jim Lewis replied to the topic Using VCs without the built-in Scripts – but instead VUnit in the forum OSVVM 1 month, 2 weeks ago
Hi Isaac,
From time to time, the OSVVM compile scripts are updated. It is hard to maintain more than one approach. The reason we developed the OSVVM scripts is to provide a better reporting mechanism. In addition the the ordinary JUnit reports, OSVVM does a more comprehensive Build summary. We also do test case summaries, functional…[Read more] -
Jim Lewis replied to the topic Is GHDL easier for OSVVM or Xsim 2024.2 (or later)? in the forum OSVVM 1 month, 3 weeks ago
Hopefully I answered this in: https://osvvm.org/forums/topic/issues-with-ghdl-when-compiling-osvvm-packages
-
Jim Lewis replied to the topic Issues with GHDL when compiling OSVVM packages in the forum OSVVM 1 month, 3 weeks ago
Are you running a current version of GHDL? Our github actions run with GHDL every day. See: https://github.com/OSVVM/OsvvmLibraries/actions
Did you use the directions in OsvvmLibraries/Documentation/Scripts_user_guide.pdf?
Here they are:
GHDL in Windows
~~~~~~~~~~~~~~~~Initialize the OSVVM Script environment by doing:
winpty tclsh…
[Read more] -
Jim Lewis replied to the topic Is GHDL easier for OSVVM or Xsim 2024.2 (or later)? in the forum OSVVM 1 month, 3 weeks ago
You need XSIM if you are using Xilinx’s encrypted IP. However XSIM is very slow.
GHDL and nvc both support OSVVM well – however they need a third party waveform viewer such as SURFER.
OSVVM is updated several times each year. Even if a simulator includes an OSVVM release, it may be out of date.
OSVVM is fast to compile the project.…[Read more]
-
Jim Lewis replied to the topic Is Vivado 2022.2(Xsim) suitable for OSVVM simulations? in the forum OSVVM 2 months ago
You need OSVVM 2025.02 (or newer) and XSIM 2024.2
-
Jim Lewis replied to the topic Errors While Generating Simulation Reports in the forum OSVVM 2 months, 1 week ago
I have released these updates as part of 2025.4
-
Jim Lewis replied to the topic CoverageIDType in Alert Results table in the forum OSVVM 2 months, 2 weeks ago
Hi David,
Your pictures did not post for some reason. So I will give a more general perspective.When a CoverageID is created, a corresponding AlertLogID is also created. If the ID, created with NewID, it is used for tracking errors – such as when an error bin is encountered. This ID is also used to determine what level an error signals…[Read more]
-
Jim Lewis replied to the topic Errors While Generating Simulation Reports in the forum OSVVM 2 months, 2 weeks ago
Hi Jake,
The fixes for both of these issues are now on the OSVVM Dev branch. If you are allowed to fetch OSVVM from GitHub you can get the dev branch by doing:git clone --recursive --branch dev https://github.com/osvvm/OsvvmLibraries
Otherwise let me know and I can push it to main and do a release to osvvm.org.
Jim
-
Jim Lewis replied to the topic Errors While Generating Simulation Reports in the forum OSVVM 2 months, 2 weeks ago
Hi Jake,
> I am using OSVVM version 2024.07 and the Siemens Questa version 2025.1_1 simulator.
>
> I am looking to moving to the most recent version of OSVVM as soon as possible, but sadly the aforementioned
> version of Questa doesn’t support all the VHDL2019 features that OSVVM leverages.This mainly controls whether to use the R…[Read more]
-
Jim Lewis replied to the topic Waveforms not generated correctly (GHDL) in the forum OSVVM 3 months ago
All of the OSVVM VC have test cases for each feature. For AxiStream, they are in the directory AXI4/AxiStream/TestCases.
The set these they way you are thinking, see TbStream_AxiTiming1.vhd and TbStream_AxiTiming2.vhd. You can also use random delays, see TbStream_SendGetRandom1.vhd and TbStream_SendGetRandom2.vhd -
Jim Lewis replied to the topic XSIM 2024.2 Runaway Memory Usage in the forum OSVVM 3 months ago
Below is what I see running XSIM using $OsvvmLibraries/RunAllTests.pro. There are 8 failures in the RunAllTests.pro. They all have to do with passing integer and time values through the transaction record. With time it never works. With integer, it seems to work some of the time. For integer it may be possible to trace the why, for time it…[Read more]
- Load More