Parallel Simulations in OSVVM and VUnit Integration

Why OSVVM™? Forums OSVVM Parallel Simulations in OSVVM and VUnit Integration

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #2611
    Brad Adam
    Member

    Hey 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!

    #2612
    Jim Lewis
    Member

    Hi 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,
    Jim

    #2613
    Brad Adam
    Member

    Interesting, 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?

    #2618
    Lars Asplund
    Member

    Hi 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.

    #2623
    Brad Adam
    Member

    Hey 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!

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.