coverage database for multiple simulation

Why OSVVM™? Forums OSVVM coverage database for multiple simulation

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #973
    Juhi
    Member

    Jim,

    can osvvm generate coverage database for multiple simulation of same testcase.

    Regards,

    Juhi.

    #974
    Jim Lewis
    Member

    Hi Juhi,

    The data structure is inside the protected type while a simulation is running.  So you can have multiple simulations running simultaneous.  For many testcases, this may not make sense since the randomization used is pseudo random, and hence, just like other verification languages, a test that starts with the same seed, produces the same sequence.

    An application where having multiple simulations running on the same model, makes sense, is randomizing a configuration.   Basically at the start of a test, you read in a database, randomize use this to randomize test setup parameters, and write the database back out.  Once the database is written out, another simulation can start and randomize its setup parameters.

    Best Regards,

    Jim

    #984
    Juhi
    Member

    Jim,

    Thanks for replying to my query. Still I have one more question, Will multiple runs of one testcase with different seeds create different coverage database and is it mergeable. If yes then please tell me how.

    Regards,

    Juhi  

    #1084
    Jim Lewis
    Member

    Hi Juhi,

    Yes.  If you run a test case with a different seed, it will do the randomization in a different order. 

    Yes, if you write out the two databases separately using WriteCovDb, they can be read in and merged use OSVVM ReadCovDb.   However, keep in mind, this is not SystemVerilog which does not in any way correlate the coverage with the randomization during run time.   Instead, OSVVM Intelligent Coverage based randomization is always intended to reach your coverage goals and stop (if you are running until CovModel.IsCovered).  Hence, when you merge the two separate databases, you will get the sum of the coverage goals – not something that is all that exciting or useful. 

    The only time you may not reach your coverage goals is if you are collecting functional on outputs and generating stimulus for inputs that are intended to generate the next desired output.  If you make a mistake in your mapping from outputs to inputs, then it is possible that a given output sequence will never happen – however, changing the seed in this case is unlikely to help any at all.

    Cheers,

    Jim

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