-
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
Unclear error reporting in the presence of multiple conflicting drivers #57
Comments
This one is important to Google. |
By other means I determined that there was a real error in OR where an input and output were being swapped. However the message here was so unclear to me that it provided no help. There may be a real issue in this test case but I can't tell. |
Note that EQY already outputs the drivers for the net
I agree that it's not clear from the current output that the reason for the error can be found earlier in the log, and I will look into improving our error reporting here. Even with the currently produced warnings, though, it's not directly obvious where the conflict is, as the conflicting drivers check is performed when the design is already flattened. Flattening replaced buffer cells with their implementation in the cell library, which consists of a direct connection. This in turn means that when the conflicting drivers are buffer cells in the input netlist, the error message for the flattened design will report the input to those buffers as conflicting drivers. This will persist even with improved error reporting in EQY, as the design is flattened due to the One solution here is to include additional checks on the hierarchical design as parts of the .eqy configuration:
Or using the
This will perform these checks on the design before inlining the cell definitions during flatten. It will also treat any failure as a hard error, making sure the relevant output is at the bottom of EQY's log output and not hidden among other warnings. This then fails with
and indeed
After fixing this, it will continue checking
matching the input netlist:
|
Thanks for catching the DFF_X2 error, I'll fix that in ORFS. The revised error you show matches the HA related bug I fixed in OR so that seems correct. I'll adopt your recommended script. I suggest you publish a recommended script as it is very hard to understand eqy. We are also using the recommendations in #40 |
With
I get odd errors like:
I have no idea what that means. |
Are you using the current |
0.39 |
I have yosys 0.39 but I'm not sure of the version of eqy I'm getting. I don't see any option to print out a version number from eqy. Is there a way? |
There is no separate versioning of EQY and currently no way to print a version number. If you get EQY from tabby-cad or the oss-cad-suite you always get matching versions, if you get EQY from this repository, it now has tags matching the compatible yosys version, i.e. the |
Thanks for the confirmation that it works for you. I suggest you add a version number to eqy so that it is possible to verify it matches yosys (I expect I have some mix but can't tell). I'm getting eqy from /usr/local/bin and yosys from ORFS. |
With the attached test case, when I run
eqy -d run --force --jobs 40 4_eqy_test.eqy
I get:However I can not see more than one driver for the net attached to pin _27797_.B2. It would be helpful if the message gave the driver names (or at least two of them). It seems like a false error from what I can see but it prevents completion of the check.
bug.zip
The text was updated successfully, but these errors were encountered: