Parallel Simulations in OSVVM and VUnit Integration
Why OSVVM™? › Forums › OSVVM › Parallel Simulations in OSVVM and VUnit Integration
- This topic has 4 replies, 3 voices, and was last updated 3 days, 10 hours ago by
Brad Adam.
-
AuthorPosts
-
February 7, 2025 at 00:03 #2611
Brad Adam
MemberHey Jim,
I’m looking to increase sim times for some longer running test suites and was looking at using the open source VUnit model with Riviera-PRO to accomplish this. I know the VUnit is separate from OSVVM but since you’ve done some work with them you may be able to point be in the right direction.
First, I don’t believe OSVVM offers support for running several testCases in parallel with each testCase targeting a single thread of the CPU, is this correct?
Assuming that is correct, the only feature I’d like to leverage from VUnit is this parallel sim functionality. Are you aware of any work between OSVVM and VUnit which would allow VUnit to run testCases in place of the usual RunTest command in the .pro files? Considering our tests are built out with an OSVVM architecture I’d prefer not to add a second TB for VUnit to run testCases if possible.
If this is out of the scope of these forms, no worries, and thanks for your continued help!
February 7, 2025 at 16:12 #2612Jim Lewis
MemberHi Brad,
Currently if you run things from VUnit, you loose all the OSVVM reporting. This is a direction we are currently investigating, but will either need to uplevel our tcl expertise or outside help.How many different simulation sets do you intend to run? What I do normally is group my tests into test suites that test individual capabilities of the design. Each of these test suites is started by a different script. A top level script then calls each of these test suite scripts to run the full build.
What you could do to get started at better using your computing resources is divide your top level script into N sets of test suite runners that are each roughly the same length in run time – where N is the number of concurrent simulations you want to start.
Once you have run a test suite, the OSVVM reports will give you the amount of time each test suite takes and you can adjust your groupings to better balance the run times.
Best Regards,
JimFebruary 7, 2025 at 16:59 #2613Brad Adam
MemberInteresting, I admit that while I’ve gotten familiar with a lot of what OSVVM offers, test suites are something I usually set for each DUT and just include all tests within that single suite.
I will look into doing this today to do some hands on testing but am I reading this right in that this multiple test suite configuration would allow for parallel test suite execution? ie, say I have a DUT with 15 testCases which each take 1 minute to complete. By grouping them into 3 test suites in this was a single script could be used to execute each in parallel resulting in 15 minutes of sim time being completed 5 minutes?
In my case I would also need three instances of Riviera-PRO but is this the intent of breaking out features into different test suites?
February 13, 2025 at 21:44 #2618Lars Asplund
MemberHi Brad,
VUnit has support for running OSVVM style of testbenches. You’ll find the information here: http://vunit.github.io/blog/2023_08_26_vhdl_configurations.html. I also recommend looking into open-source
GHDL and NVC. Once you’ve started multi-threaded simulations, there is no going back and you will most likely want
to use all your processing cores.February 19, 2025 at 19:00 #2623Brad Adam
MemberHey Lars,
I must have missed this when initially going through the github docs but this configuration based implementation is what I was looking for so very much appreciated!
-
AuthorPosts
- You must be logged in to reply to this topic.