Jump to content

[not related to UVM] How to find and solve the eval order dependent coding in DUT?

Recommended Posts

Hi simulator exports,

UVM already helps a lot to make our TB works with multiple simulators. however, this makes us found some existed RTL is eval order dependent. which cause the simulation results are wrong if we changed the simulators.

Theretically we could fix it after which is found. however, designer depends and not willing to fix since the RTL is already silicon proven. so this confusing us a lot.

Is there any static or more systematic way to make our DUT eval order independent?

Thanks a lot in advanced!

Link to comment
Share on other sites


this is more a "design methodology / rules" question. there are safe design rules which basically ensure that you dont have race conditions, your rtl behaves like the synth netlist, you are not using "grey" LRM constructs/semantic,... Since these are lots of rules people typically use design-rule checker, linter etc. you may even run on different simulators to spot suspicious behavior and see if simA and simB have a common understanding of what you described.


Link to comment
Share on other sites


there are many papers on this topic the one I refer to most often is BSNUG2006 SystemVerilog

Event Regions, Race Avoidance & Guidelines by Arturo Salz and Cliff Cummings. http://www.synopsys.com/news/pubs/snug/boston2006/cummings_paper.pdf

Slide 6 is most informative.

6 years later the LRM has moved on a little but the basic principles still hold.

Of course a good Lint tool would add automation and make code-reviews much less painful.


Link to comment
Share on other sites

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.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...