-
Notifications
You must be signed in to change notification settings - Fork 607
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
Db network connect #6727
Db network connect #6727
Conversation
Signed-off-by: andyfox-rushc <andy@rushc.com>
Signed-off-by: andyfox-rushc <andy@rushc.com>
Signed-off-by: andyfox-rushc <andy@rushc.com>
clang-tidy review says "All clean, LGTM! 👍" |
…ring swapMaster Signed-off-by: andyfox-rushc <andy@rushc.com>
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: andyfox-rushc <andy@rushc.com>
clang-tidy review says "All clean, LGTM! 👍" |
I would recommend printing the offending net name(s) in the errors if practical. |
Cho @cmoon has been notified of the change to swapMaster and I respectfully suggest that if necessary any further error handling be added in a separate pull request. I can imagine a situation in which it is total ok to kill any existing modNet on a new iterm during swapMaster (eg when swapping in something that was not properly disconnected). My problem was the implied disconnection of the hierarchical net when connecting to a flat net (connect(dbNet) was implicitly killing both the hierarchical net and the dbNet if present). So I fixed that part (made connect(dbNet) only kill an existent dbNet) and then made the modNet removal explicit in the swapMaster code. But I defer to Cho on this issue in swapMaster. |
Signed-off-by: andyfox-rushc <andy@rushc.com>
clang-tidy review says "All clean, LGTM! 👍" |
Signed-off-by: andyfox-rushc <andy@rushc.com>
clang-tidy review says "All clean, LGTM! 👍" |
|
||
*/ | ||
|
||
void dbNetwork::connectPin(Pin* pin, Net* flat_net, Net* hier_net) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If both flat_net and hier_net are supplied then check that hier_net belongs to flat_net
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it really does not. The point of this api is just to allow a pin to be hooked to a hier net and a flat net simultaneously.
Also you comment evidences lack of knowledge of the architecture used: hier nets do not "belong" to flat nets. I think that is the root of you mis-understanding. Hier nets simply decorate the flat network (eg at the edge of hierarchical module boundaries to connect to the flat instances).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To help you learn a little more of the architecture used, here is some documentation on the hierarchy representation. Note that we never assume that there is a hierarchical net for each flat net.
NotesOnHierarchicalRepresentation.pdf
This draft pull request includes modifications to the dbNetwork connect apis.
Specifically the new api call:
void dbNetwork::connectPin(Pin* pin, Net* flat_net, Net* hier_net)
This one allows a pin to be simultaneously hooked to a flat net and a hierarchical net.
The intent is to simplify the coding so a pin is not first checked for a hierarchical net, disconnected and then hooked to new flat and hierarchical nets.
Some other clean up performed (eg explicit removal of flat net and hier net and some further journalling/undo support).