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

False(?) UNOPT warning in combinational generate loop operating on MDA #1342

Closed
veripoolbot opened this issue Sep 11, 2018 · 1 comment
Closed
Assignees

Comments

@veripoolbot
Copy link

@veripoolbot veripoolbot commented Sep 11, 2018


Author Name: Alex Reed
Original Redmine Issue: 1342 from https://www.veripool.org

Original Assignee: Wilson Snyder (@wsnyder)


The attached test-code generates @UNOPT@ warnings with Verilator 3.926. This is a distilled test-case that exposes a bug in another EDA tool. Defining @fail@ causes the other tool to fail to compile. The work-around (using a temporary/intermediate variable) is sufficient for the other EDA tool.

When the same test-case is run through Verilator, the original version (@fail@ defined) generates @UNOPT@ and @ALWCOMBORDER@ warnings. I believe that the @ALWCOMBORDER@ is synonymous with the bug in the other EDA tool. When the work-around version (@fail@ not defined) is parsed by Verilator, only an @UNOPT@ is generated.

Interestingly, the real code (that was distilled to this test-case) actually generates @UNOPTFLAT@ but as far as I can tell this appears to be a similar error.

@veripoolbot

This comment has been minimized.

Copy link
Author

@veripoolbot veripoolbot commented Sep 11, 2018


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2018-09-11T22:01:36Z


UNOPT is complaining because your "wire t" is inside the loop, and there is a dependency loop through this wire (ignoring hierarchy), so this warning is correct. If you move it outside the loop it becomes an UNOPTFLAT which is also correct. See the manual as to the performance implications of this - it's "just" a performance warning related to Verilator not fundamentally wrong code.

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

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.