Jump to content

does UVM support assertion


Recommended Posts

Hi,

SystemVerilog "concurrent" assertions can't live inside classes (uvm_component, uvm_driver, etc..) as they are declarative statements that exist for the lifetime of a simulation, whereas classes are dynamic in nature. They belong in the world of modules and interfaces.

You can, however use "immediate" assertions in your uvm code when you do procedural checking, e.g. in a scoreboard:

chk_scbd_match: assert (item.data == scbd.data) ...

which gives the added benefit of vplan traceability and assertion coverage.

Regards,

Steve

Link to comment
Share on other sites

Technically, most UVM scoreboards are already a concurrent assertion. It's just a matter of which SystemVerilog syntax is used to model it.

The concurrent assertions section of SystemVerilog is designed to merge formal tools with dynamic simulation, and that requires some level of underlying synthesis technology. So until SystemVerilog synthesis technology comes into the 21st century and starts synthesizing classes, you are not going to see concurrent assertions in classes.

Link to comment
Share on other sites

Hi Dave,

Technically, most UVM scoreboards are already a concurrent assertion. It's just a matter of which SystemVerilog syntax is used to model it.

The concurrent assertions section of SystemVerilog is designed to merge formal tools with dynamic simulation, and that requires some level of underlying synthesis technology. So until SystemVerilog synthesis technology comes into the 21st century and starts synthesizing classes, you are not going to see concurrent assertions in classes.

While the origin of concurrent SVA is from formal, why not let it grow beyond? We hear of this compliant from every training class we held, i.e. from lots of real users. Technically speaking - this is very much do-able inside a simulator/dynamic engine. A long standing proof is Specman with its E (IEEE 1647) having supported such construct (known as TE - Temporal Expressions) for over 10 years now. E has no formal verif origin.

We from CVC have been trying to bring this to SV-AC without much success - we believe real users need to "shout" for it to being considered.

BTW - recently (2009) added SVA "checker" construct could provide a way/entry for this. There are/were discussions allowing "checker" inside classes - but temporal was disallowed, this could be further extended IMHO.

Warm Regards

Ajeetha, CVC

www.cvcblr.com/blog

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.

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