You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Instantiating an Arbiter (and possibly chisel3 modules in general) inside of compatibility code can lead to the ports of the submodule not being properly invalidated.
Type of issue
Bug report
Feature request
Other enhancement
If the current behavior is a bug, please provide the steps to reproduce the problem:
What is the current behavior?
What is the expected behavior?
Please tell us about your environment:
(examples)
version: 3.0-SNAPSHOT
OS: Linux knight 4.4.0-92-generic #115-Ubuntu SMP Thu Aug 10 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. Stack Overflow, gitter, etc)
Strangely, I tried making a similar example with a Queue as the submodule instead of an Arbiter, but it correctly invalidated the Queue's io.
The text was updated successfully, but these errors were encountered:
While this is a weird thing to write, the following will currently generate incorrect Verilog (because of this bug combined with the bug in Firrtl). If you explicitly connect arb.io to chisel3.DontCare, it will do the right thing, but these ports should be invalidated automatically in Chisel._ code!
Instantiating an Arbiter (and possibly chisel3 modules in general) inside of compatibility code can lead to the ports of the submodule not being properly invalidated.
Type of issue
If the current behavior is a bug, please provide the steps to reproduce the problem:
(examples)
3.0-SNAPSHOT
Linux knight 4.4.0-92-generic #115-Ubuntu SMP Thu Aug 10 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Consider:
The resulting Firrtl does not have an invalidate on the io of the Arbiter:
Combined with chipsalliance/firrtl#706, this can emit incorrect Verilog (working on an example)
Fix expected behavior in compatibility mode
Impact
Development Phase
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. Stack Overflow, gitter, etc)
Strangely, I tried making a similar example with a Queue as the submodule instead of an Arbiter, but it correctly invalidated the Queue's io.
The text was updated successfully, but these errors were encountered: