-
Notifications
You must be signed in to change notification settings - Fork 915
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
check: Un-sigmap the check
command
#3965
base: main
Are you sure you want to change the base?
Conversation
From the Jenkins log:
I guess the suspicion was right? |
IIRC there were some additional issues related to not using sigmap there. Talk to Claire maybe? |
i'm all for adding that functionality to
Note: You can define
|
So, about the outstanding questions from last dev meeting: How does SigMap pick a representative of a group of connected wires?
Lines 265 to 288 in 11b9deb
If neither side is constant, Lines 1132 to 1139 in 11b9deb
As I read it the representative of what was formerly the RHS class wins to be the representative of the joint class. Summary: driver of the tree of connected wires, i.e. the wire that is driven by a cell, gets to be the Does it even matter if connections are interpreted to be directionless aliases? As far as I can tell that's not the original RTLIL semantics and existing passes are susceptible to bugs if the interpretation is relaxed. Cases in point:
|
Another case currently not caught by
With the change here it's caught:
|
The change here modifies the
check
command not to rely on sigmap, instead considering the connections explicitly. So it catches cases likewhich are not caught otherwise.
I suspect there are hidden issues with module connections being made in the reverse order. That is, with some passes making the connections in reverse and other passes expecting the RHS of connections to always be the driver.