Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

COMPAT: Avoid queue pop_back usage in SVA #5

Open
ajeethakv opened this issue Oct 19, 2024 · 0 comments
Open

COMPAT: Avoid queue pop_back usage in SVA #5

ajeethakv opened this issue Oct 19, 2024 · 0 comments

Comments

@ajeethakv
Copy link
Contributor

Rule suggested by Ben Cohen:

IEEE LRM 1800 states:

16.6 Boolean expressions: “Elements of dynamic arrays, queues, and associative arrays that are sampled for assertion expression evaluation may get removed from the array or the array may get resized before the assertion expression is evaluated. These specific array elements sampled for assertion expression evaluation shall continue to exist within the scope of the assertion until the assertion expression evaluation completes.”

Many tools are slow to adopt this IEEE 1800 requirement. Several imposed restrictions on the use of queues within assertions, and some prohibited them entirely, likely due to performance concerns.

So avoid usage of q.pop_back in SVA expressions

e.g.
($rose(a) |-> (q.pop_back == 8'h08)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant