-
Notifications
You must be signed in to change notification settings - Fork 834
Description
Describe the bug
This bug is with hierarchy enabled through -hier.
When creating a parasitic annotation in read_spef, we find the target net using Network::findNetRelative, which calls dbNetwork::findNet, which preferentially returns dbNet* as opposed to dbModNet*.
In the cases I studied, dbNet* is what the parasitic annotation is eventually registered under inside ConcreteParasitics.
When the parasitic is looked up through findParasiticNetwork(Pin*) which internally calls findParasiticNet, we use a dbModNet* to look up the parasitic network, which finds no annotation. This is because dbNetwork::net(Pin *) returns a dbModNet, and highestConnectedNet is a passthrough as defined on dbNetwork.
This makes us miss the annotation on 3777 driver pins on nangate45/bp_multi_top. The check I'm adding in The-OpenROAD-Project/OpenROAD-flow-scripts#3979 should make this visible.
Expected Behavior
No lost or ignored annotations
Environment
OR 02fc8ab5To Reproduce
See above
Relevant log output
Screenshots
No response
Additional Context
No response