-
Notifications
You must be signed in to change notification settings - Fork 57
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
Prune Yosys-internal attributes in emitted Verilog #220
Comments
Can we add |
Would need some work in the Verilog backend, but some cases of |
@ZirconiumX Done @daveshah1 Is there a `file? |
Oh nevermind, it's `line <line> "<filename>". That would be really nice to have. |
Ah crap, this is really bad--it's not possible to remove |
In ISE, it is not possible to use user-defined attributes for anything. ISE also loudly complains about seeing any In Vivado, it is possible to use user-defined attributes, and indeed we do use it. Vivado does not complain about user-defined attributes, so there is no need to strip any of them. |
In Diamond, it appears to not be possible to use user-defined attributes for anything. ( |
This is an example of the kind of spam that Quartus spits out when I try building any nMigen code. It also spits out warnings such as
But I think those are/should be separate issues. |
In iCECube2 with LSE, all of our custom attributes appear to be ignored, or at least there are no complaints. In iCECube2 with Synplify, Synplify complains about all of our custom attributes. So I think they should be stripped in both cases. |
Quartus, as @ZirconiumX shows above, complains about all of our custom attributes. So they should again be stripped.
That's not actually an issue, just Quartus being obnoxious. |
Although useful for debugging, most external tools often complain about such attributes (with notable exception of Vivado). As such, it is better to emit Verilog with these attributes into a separate file such as `design.debug.v` and only emit the attributes that were explicitly placed by the user to `design.v`. This still leaves the (*init*) attribute. See #220 for details.
Although useful for debugging, most external tools often complain about such attributes (with notable exception of Vivado). As such, it is better to emit Verilog with these attributes into a separate file such as `design.debug.v` and only emit the attributes that were explicitly placed by the user to `design.v`. This still leaves the (*init*) attribute. See #220 for details.
After 53bb430 I strip all internal attributes except |
I've decided against stripping |
Fixed in Yosys master. |
Yosys-internal attributes like
init
can confuse vendor tools, with potentially severe consequences. We should remove them.Ideally we would map
src
to something sensible, but I'm not sure if this is supported by any vendor tools.The text was updated successfully, but these errors were encountered: