-
Notifications
You must be signed in to change notification settings - Fork 6
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
Unrelated cells sharing the same name can cause conflicting drivers in an amended partition (triggerd by the default ghdl-yosys-plugin output) #37
Comments
Can you share the complete |
I was using it for a cache controller which is rather complex. However, I transcribed one of the examples to vhdl and it seems to fail with a similar error: |
Just for reference, since you mentioned "a similar error" and I'm not sure I'm getting the same error, with EQY, yosys and the ghdl-plugin from the latest nightly oss-cad-suite build I get:
While looking into the cause, I noticed that the ghdl plugin uses public RTLIL names for auto-generated sequential cell names. This can result in EQY trying to align the design along completely unrelated cells that happen to receive the same sequential name. Ideally the ghdl plugin would generate private RTLIL names, but a workaround is to manually hide the public names for those cells, which can be done by running With that done, the example doesn't reproduce the issue and this might also avoid the issue in your larger use case. It's still an actual bug that this can confuse the partitioning into generating multiple drivers for the same signal, but I haven't tracked down the exact reason for that happening yet. |
I reduced it further to the following eqy file directly containing two smaller netlists that reproduce this without needing to use the ghdl plugin: https://gist.github.com/jix/ff72778c03cd6769a277b3c98658441e The cells named "13" and "2" have the same name although they were unrelated even in the ghdl example. @clairexen Any idea how that gets the partitioning code to produce conflicting drivers? |
First attempt at a fix for this issue:
|
I am trying to use eqy in conjuction with ghdl-yosys-plugin. However, I get the following error:
There are many such auto-generated names in the netlist, so the next thing I tried was to add the following:
However, this has no effect on the error.
I am not sure if preventing those signals from being matched would fix the issue, or what the implications would be.
Therefore, I am wondering whether it is possible to use eqy with ghdl-yosys-plugin? If not, is this a limitation of eqy, or of ghdl-yosys-plugin?
The text was updated successfully, but these errors were encountered: