-
Notifications
You must be signed in to change notification settings - Fork 15
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
Synthesis Errors #8
Comments
Interesting, I never saw this
|
Hey @FrancescoConti, thank you for the quick answer! @suehtamacv and I created a fix in this PR: #9 |
This is a fairly common construct, especially in our codebases. It is the width expression which must be constant according to 1800-2017, not the base; in all examples referenced, both the base and width expressions are elaboration-time-constant parameters, so there is no standard violation here.
Maybe this is a matter of experience, but to me, this construct is neither uncommon nor esoteric, and I have never seen it fail in any tool so far, including DC. Sometimes, tools have issues; if we rewrite our RTL every time one tool experiences a regression, that is probably all we would be doing. Just my two cents.
There is nothing to fix. If you want to merge a hacky workaround, you will have to take personal responsibility and do it without my approval. |
I would not call the proposed solution "hacky." Workaround perhaps, but definitely not hacky. The tool is not being particularly verbose regarding why it cannot elaborate this struct assignment construct, (it fails somewhat silently) and we found out that exploding the struct assignment fixes the issue. The single point against the proposed solution, in my opinion, is that we lose the How do other EDA tools handle this repo's RTL? Is SpyGlass happy? Verilator? What about Formality, does it report that the design is being elaborated correctly? |
Good, always something to learn :) I did not imply there was a standard violation in the code, though, if you read what I commented above. I simply stated that being unable to prove that a given dimension is constant might be troublesome for a tool, which is clearly a limitation of the tool itself. It seems that was not the case anyways.
I strongly disagree with this point, in general, unless we have a viable way to push for fixes upstream, which as far as I know is not that easy for closed-source tools (it is indeed possible for open-source ones). Then if you argue that the standard is broken, I fully agree - but that's what we have, and I do not find that (as of today) other solutions are really that competitive. |
What I can tell you is that to the best of my knowledge, there have never been issues with this RTL in simulation or synthesis except for one (tool-side) simulation bug unrelated to this discussion. If you want to imply that there are deeper issues with the IP, I believe the onus is on you to prove this. You are all |
Let us see what @thommythomaso thinks as well.
Merging these changes would ease our development process, and if the changes do not worsen the RTL, the only downside of rewriting the code is the time spent on it, which is almost completely on who re-wrote the code and issued the PR :-) |
Hello folks,
The following lines of code trigger elaboration errors with
DC Compiler 2022.12
.https://github.com/pulp-platform/axi_llc/blob/master/src/axi_llc_read_unit.sv#L100
https://github.com/pulp-platform/axi_llc/blob/master/src/axi_llc_write_unit.sv#L109
https://github.com/pulp-platform/axi_llc/blob/master/src/axi_llc_hit_miss.sv#L375
Can you please fix this?
Thank you for the help,
Matteo
The text was updated successfully, but these errors were encountered: