aqueous Posted November 4, 2010 Report Share Posted November 4, 2010 I am going through the UVM 1.0 EA Class Reference and I see terms like "UVM Seeding Mechanism" and "use_uvm_seeding". Can someone explain what is meant by these terms? Or point me to some documentation on these? Quote Link to comment Share on other sites More sharing options...
uwes Posted November 5, 2010 Report Share Posted November 5, 2010 hi, to explain this is a long story :-) anyway... if your testbench methodology relies upon random stimulus it also has to rely on "random stability". this means that calls to randomize/srandom/random will yield the same stream of data as long as possible. SV itself does a bad job in preserving the random stability so its likely that changing your tb infrastructure in a minimal sense can change the overall behaviour. you can imagine that this is a killer for any application (think of adding a monitor to your testbench does change the whole scenario). so uvm+ovm in its core have an algorithm which assigns a seed to any uvm_object computed from a type+logical path+a counter. by doing that each object delivers the same stream of random vales as long possible - adding/removing topology should not have any influence anymore. so by default you should stick to the use_uvm_seeding which enables this builtin random stability. Quote Link to comment Share on other sites More sharing options...
aqueous Posted November 7, 2010 Author Report Share Posted November 7, 2010 hi, to explain this is a long story :-) anyway... if your testbench methodology relies upon random stimulus it also has to rely on "random stability". this means that calls to randomize/srandom/random will yield the same stream of data as long as possible. SV itself does a bad job in preserving the random stability so its likely that changing your tb infrastructure in a minimal sense can change the overall behaviour. you can imagine that this is a killer for any application (think of adding a monitor to your testbench does change the whole scenario). so uvm+ovm in its core have an algorithm which assigns a seed to any uvm_object computed from a type+logical path+a counter. by doing that each object delivers the same stream of random vales as long possible - adding/removing topology should not have any influence anymore. so by default you should stick to the use_uvm_seeding which enables this builtin random stability. Thanks Uwes. That was helpful. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.