|
KiCad PCB EDA Suite
|
A subgraph is a set of items that are electrically connected on a single sheet. More...
#include <connection_graph.h>
Classes | |
| struct | CompareConnectionPtr |
Public Types | |
| enum class | PRIORITY { INVALID = -1 , NONE = 0 , PIN , SHEET_PIN , HIER_LABEL , LOCAL_LABEL , LOCAL_POWER_PIN , GLOBAL_POWER_PIN , GLOBAL } |
Public Member Functions | |
| CONNECTION_SUBGRAPH (CONNECTION_GRAPH *aGraph) | |
| bool | ResolveDrivers (bool aCheckMultipleDrivers=false) |
| Determine which potential driver should drive the subgraph. | |
| wxString | GetNetName () const |
| Return the fully-qualified net name for this subgraph (if one exists) | |
| std::vector< SCH_ITEM * > | GetVectorBusLabels () const |
| Return all the vector-based bus labels attached to this subgraph (if any). | |
| std::vector< SCH_ITEM * > | GetAllBusLabels () const |
| Return all the all bus labels attached to this subgraph (if any). | |
| const wxString & | GetNameForDriver (SCH_ITEM *aItem) const |
| Return the candidate net name for a driver. | |
| const std::vector< std::pair< wxString, SCH_ITEM * > > | GetNetclassesForDriver (SCH_ITEM *aItem) const |
| Return the resolved netclasses for the item, and the source item providing the netclass. | |
| void | Absorb (CONNECTION_SUBGRAPH *aOther) |
| Combine another subgraph on the same sheet into this one. | |
| void | AddItem (SCH_ITEM *aItem) |
| Add a new item to the subgraph. | |
| void | UpdateItemConnections () |
| Update all items to match the driver connection. | |
| const std::set< SCH_ITEM * > & | GetItems () const |
| Provide a read-only reference to the items in the subgraph. | |
| void | getAllConnectedItems (std::set< std::pair< SCH_SHEET_PATH, SCH_ITEM * > > &aItems, std::set< CONNECTION_SUBGRAPH * > &aSubgraphs) |
| Find all items in the subgraph as well as child subgraphs recursively. | |
| PRIORITY | GetDriverPriority () |
| const SCH_ITEM * | GetDriver () const |
| const SCH_CONNECTION * | GetDriverConnection () const |
| const SCH_ITEM * | GetNoConnect () const |
| const SCH_SHEET_PATH & | GetSheet () const |
| const std::unordered_map< std::shared_ptr< SCH_CONNECTION >, std::unordered_set< CONNECTION_SUBGRAPH * > > & | GetBusParents () const |
| void | RemoveItem (SCH_ITEM *aItem) |
| void | ExchangeItem (SCH_ITEM *aOldItem, SCH_ITEM *aNewItem) |
| Replace all references to aOldItem with aNewItem in the subgraph. | |
| SCH_CONNECTION * | StoreImplicitConnection (std::unique_ptr< SCH_CONNECTION > aConnection) |
Static Public Member Functions | |
| static PRIORITY | GetDriverPriority (SCH_ITEM *aDriver) |
| Return the priority (higher is more important) of a candidate driver. | |
Private Member Functions | |
| wxString | driverName (SCH_ITEM *aItem) const |
Private Attributes | |
| CONNECTION_GRAPH * | m_graph |
| bool | m_dirty |
| bool | m_absorbed |
| True if this subgraph has been absorbed into another. No pointers here are safe if so! | |
| bool | m_is_bus_member |
| True if the subgraph is not actually part of a net. | |
| CONNECTION_SUBGRAPH * | m_absorbed_by |
| If this subgraph is absorbed, points to the absorbing (and valid) subgraph. | |
| std::set< CONNECTION_SUBGRAPH * > | m_absorbed_subgraphs |
| Set of subgraphs that have been absorbed by this subgraph. | |
| long | m_code |
| bool | m_multiple_drivers |
| True if this subgraph contains more than one driver that should be shorted together in the netlist. | |
| bool | m_strong_driver |
| True if the driver is "strong": a label or power object. | |
| bool | m_local_driver |
| True if the driver is a local (i.e. non-global) type. | |
| SCH_ITEM * | m_bus_entry |
| Bus entry in graph, if any. | |
| std::set< SCH_ITEM * > | m_drivers |
| std::unordered_map< std::shared_ptr< SCH_CONNECTION >, std::unordered_set< CONNECTION_SUBGRAPH * > > | m_bus_neighbors |
| If a subgraph is a bus, this map contains links between the bus members and any local sheet neighbors with the same connection name. | |
| std::unordered_map< std::shared_ptr< SCH_CONNECTION >, std::unordered_set< CONNECTION_SUBGRAPH * > > | m_bus_parents |
| If this is a net, this vector contains links to any same-sheet buses that contain it. | |
| std::set< SCH_SHEET_PIN * > | m_hier_pins |
| Cache for lookup of any hierarchical (sheet) pins on this subgraph (for referring down). | |
| std::set< SCH_HIERLABEL * > | m_hier_ports |
| Cache for lookup of any hierarchical ports on this subgraph (for referring up). | |
| CONNECTION_SUBGRAPH * | m_hier_parent |
| If not null, this indicates the subgraph on a higher level sheet that is linked to this one. | |
| std::unordered_set< CONNECTION_SUBGRAPH * > | m_hier_children |
| If not null, this indicates the subgraph(s) on a lower level sheet that are linked to this one. | |
| std::mutex | m_driver_name_cache_mutex |
| A cache of escaped netnames from schematic items. | |
| std::unordered_map< SCH_ITEM *, wxString > | m_driver_name_cache |
| SCH_ITEM * | m_driver |
| Fully-resolved driver for the subgraph (might not exist in this subgraph). | |
| std::set< SCH_ITEM * > | m_items |
| Contents of the subgraph. | |
| SCH_ITEM * | m_no_connect |
| No-connect item in graph, if any. | |
| SCH_SHEET_PATH | m_sheet |
| On which logical sheet is the subgraph contained. | |
| SCH_CONNECTION * | m_driver_connection |
| Cache for driver connection. | |
| std::set< std::unique_ptr< SCH_CONNECTION >, CompareConnectionPtr > | m_bus_element_connections |
| A cache of connections that are part of this subgraph but that don't have an owning element (i.e. | |
| std::mutex | m_driver_mutex |
Friends | |
| class | CONNECTION_GRAPH |
A subgraph is a set of items that are electrically connected on a single sheet.
For example, a label connected to a wire and so on. A net is composed of one or more subgraphs.
A set of items that appears to be physically connected may actually be more than one subgraph, because some items don't connect electrically.
For example, multiple bus wires can come together at a junction but have different labels on each branch. Each label+wire branch is its own subgraph.
Definition at line 69 of file connection_graph.h.
|
strong |
| Enumerator | |
|---|---|
| INVALID | |
| NONE | |
| PIN | |
| SHEET_PIN | |
| HIER_LABEL | |
| LOCAL_LABEL | |
| LOCAL_POWER_PIN | |
| GLOBAL_POWER_PIN | |
| GLOBAL | |
Definition at line 72 of file connection_graph.h.
|
inlineexplicit |
Definition at line 85 of file connection_graph.h.
References CONNECTION_GRAPH, m_absorbed, m_absorbed_by, m_bus_entry, m_code, m_dirty, m_driver, m_driver_connection, m_graph, m_hier_parent, m_is_bus_member, m_local_driver, m_multiple_drivers, m_no_connect, and m_strong_driver.
Referenced by Absorb(), CONNECTION_GRAPH, and getAllConnectedItems().
| void CONNECTION_SUBGRAPH::Absorb | ( | CONNECTION_SUBGRAPH * | aOther | ) |
Combine another subgraph on the same sheet into this one.
Definition at line 587 of file connection_graph.cpp.
References AddItem(), SCH_ITEM::Connection(), CONNECTION_SUBGRAPH(), m_absorbed, m_absorbed_subgraphs, m_bus_neighbors, m_bus_parents, m_code, m_dirty, m_driver, m_driver_connection, m_items, m_multiple_drivers, m_no_connect, m_sheet, and SCH_CONNECTION::SetSubgraphCode().
| void CONNECTION_SUBGRAPH::AddItem | ( | SCH_ITEM * | aItem | ) |
Add a new item to the subgraph.
Definition at line 627 of file connection_graph.cpp.
References SCH_ITEM::Connection(), SCH_CONNECTION::IsDriver(), m_drivers, m_hier_pins, m_hier_ports, m_items, m_sheet, SCH_HIER_LABEL_T, SCH_SHEET_PIN_T, and EDA_ITEM::Type().
Referenced by Absorb(), CONNECTION_GRAPH::buildItemSubGraphs(), and CONNECTION_GRAPH::generateGlobalPowerPinSubGraphs().
|
private |
Definition at line 480 of file connection_graph.cpp.
References CTX_NETNAME, EscapeString(), FOR_NETNAME, SCH_SHEET_PIN::GetParent(), SCH_LABEL_BASE::GetShownText(), m_no_connect, m_sheet, path, pin, SCH_GLOBAL_LABEL_T, SCH_HIER_LABEL_T, SCH_LABEL_T, SCH_PIN_T, SCH_SHEET_PIN_T, and EDA_ITEM::Type().
Referenced by GetNameForDriver().
Replace all references to aOldItem with aNewItem in the subgraph.
Definition at line 124 of file connection_graph.cpp.
References SCH_CONNECTION::ClearDirty(), SCH_CONNECTION::Clone(), SCH_ITEM::Connection(), SCH_ITEM::GetOrInitConnection(), SCH_CONNECTION::IsDriver(), m_driver, m_driver_connection, m_drivers, m_graph, m_hier_pins, m_hier_ports, m_items, m_sheet, SCH_HIER_LABEL_T, SCH_SHEET_PIN_T, SCH_CONNECTION::SetDriver(), and EDA_ITEM::Type().
| std::vector< SCH_ITEM * > CONNECTION_SUBGRAPH::GetAllBusLabels | ( | ) | const |
Return all the all bus labels attached to this subgraph (if any).
Definition at line 420 of file connection_graph.cpp.
References BUS, BUS_GROUP, m_drivers, m_sheet, SCH_GLOBAL_LABEL_T, SCH_HIER_LABEL_T, and SCH_LABEL_T.
| void CONNECTION_SUBGRAPH::getAllConnectedItems | ( | std::set< std::pair< SCH_SHEET_PATH, SCH_ITEM * > > & | aItems, |
| std::set< CONNECTION_SUBGRAPH * > & | aSubgraphs ) |
Find all items in the subgraph as well as child subgraphs recursively.
Definition at line 375 of file connection_graph.cpp.
References CONNECTION_SUBGRAPH(), getAllConnectedItems(), m_absorbed_by, m_absorbed_subgraphs, m_graph, m_hier_children, m_items, and m_sheet.
Referenced by getAllConnectedItems().
|
inline |
Definition at line 209 of file connection_graph.h.
References m_bus_parents.
|
inline |
Definition at line 182 of file connection_graph.h.
References m_driver.
Referenced by BOOST_AUTO_TEST_CASE(), ORCAD_CONVERTER::minimizeNetLabels(), DIALOG_MIGRATE_BUSES::onItemSelected(), and BACK_ANNOTATE::processNetNameChange().
|
inline |
Definition at line 190 of file connection_graph.h.
References m_driver_connection.
Referenced by SCHEMATIC::GetNetClassAssignmentCandidates(), API_HANDLER_SCH::handleGetSchematicNetlist(), and ORCAD_CONVERTER::minimizeNetLabels().
|
inline |
Definition at line 170 of file connection_graph.h.
References GetDriverPriority(), m_driver, and NONE.
Referenced by CONNECTION_GRAPH::buildConnectionGraph(), compareDrivers(), GetDriverPriority(), ORCAD_CONVERTER::minimizeNetLabels(), BACK_ANNOTATE::processNetNameChange(), CONNECTION_GRAPH::propagateToNeighbors(), and ResolveDrivers().
|
static |
Return the priority (higher is more important) of a candidate driver.
0: Invalid driver 1: Symbol pin 2: Hierarchical sheet pin 3: Hierarchical label 4: Local label 5: Power pin 6: Global label
| aDriver | is the item to inspect |
Definition at line 665 of file connection_graph.cpp.
References SCH_SYMBOL::GetExcludedFromBoard(), SCH_ITEM::GetParentSymbol(), GLOBAL, GLOBAL_POWER_PIN, HIER_LABEL, SCH_PIN::IsGlobalPower(), SCH_PIN::IsLocalPower(), LOCAL_LABEL, LOCAL_POWER_PIN, NONE, PIN, SCH_GLOBAL_LABEL_T, SCH_HIER_LABEL_T, SCH_LABEL_T, SCH_PIN_T, SCH_SHEET_PIN_T, SHEET_PIN, and EDA_ITEM::Type().
Referenced by SCH_EDITOR_CONTROL::AssignNetclass(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckNoConnects(), SCHEMATIC::GetNetClassAssignmentCandidates(), API_HANDLER_SCH::handleGetSchematicNetlist(), BACK_ANNOTATE::processNetNameChange(), and CONNECTION_GRAPH::propagateToNeighbors().
|
inline |
Provide a read-only reference to the items in the subgraph.
Definition at line 145 of file connection_graph.h.
References m_items.
Referenced by ORCAD_CONVERTER::minimizeNetLabels(), SCH_CONNECTIVITY::NAVIGATION_QUERY::netSubgraphs(), ERC_TESTER::TestMultUnitPinConflicts(), and ERC_TESTER::TestPinToPin().
| const wxString & CONNECTION_SUBGRAPH::GetNameForDriver | ( | SCH_ITEM * | aItem | ) | const |
Return the candidate net name for a driver.
Definition at line 522 of file connection_graph.cpp.
References driverName(), SCH_ITEM::GetCachedDriverName(), SCH_ITEM::HasCachedDriverName(), m_driver_name_cache, and m_driver_name_cache_mutex.
Referenced by CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), CONNECTION_GRAPH::getDefaultConnection(), ORCAD_CONVERTER::minimizeNetLabels(), CONNECTION_GRAPH::propagateToNeighbors(), and ResolveDrivers().
| const std::vector< std::pair< wxString, SCH_ITEM * > > CONNECTION_SUBGRAPH::GetNetclassesForDriver | ( | SCH_ITEM * | aItem | ) | const |
Return the resolved netclasses for the item, and the source item providing the netclass.
| aItem | the item to query for netclass assignments |
Definition at line 538 of file connection_graph.cpp.
References FOR_NETNAME, SCH_ITEM::GetRuleAreaCache(), SCH_FIELD::GetShownText(), SCH_FIELD::GetUntranslatedName(), m_sheet, NO_RECURSE, SCH_ITEM::RunOnChildren(), SCH_FIELD_T, and EDA_ITEM::Type().
| wxString CONNECTION_SUBGRAPH::GetNetName | ( | ) | const |
Return the fully-qualified net name for this subgraph (if one exists)
Definition at line 402 of file connection_graph.cpp.
References m_dirty, m_driver, and m_sheet.
Referenced by CONNECTION_GRAPH::ExtractAffectedItems(), CONNECTION_GRAPH::generateBusAliasMembers(), CONNECTION_GRAPH::generateGlobalPowerPinSubGraphs(), SCH_CONNECTION::GetNetName(), and CONNECTION_GRAPH::GetResolvedSubgraphName().
|
inline |
Definition at line 198 of file connection_graph.h.
References m_no_connect.
Referenced by ERC_TESTER::TestPinToPin().
|
inline |
Definition at line 203 of file connection_graph.h.
References m_sheet.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), ORCAD_CONVERTER::minimizeNetLabels(), SCH_CONNECTIVITY::NAVIGATION_QUERY::netSubgraphs(), DIALOG_MIGRATE_BUSES::onItemSelected(), BACK_ANNOTATE::processNetNameChange(), ERC_TESTER::TestMultUnitPinConflicts(), and ERC_TESTER::TestPinToPin().
| std::vector< SCH_ITEM * > CONNECTION_SUBGRAPH::GetVectorBusLabels | ( | ) | const |
Return all the vector-based bus labels attached to this subgraph (if any).
Definition at line 450 of file connection_graph.cpp.
References BUS, m_drivers, m_sheet, SCH_GLOBAL_LABEL_T, SCH_HIER_LABEL_T, SCH_LABEL_T, and SCH_CONNECTION::Type().
| void CONNECTION_SUBGRAPH::RemoveItem | ( | SCH_ITEM * | aItem | ) |
Definition at line 102 of file connection_graph.cpp.
References m_driver, m_driver_connection, m_drivers, m_hier_pins, m_hier_ports, m_items, m_no_connect, SCH_HIER_LABEL_T, SCH_SHEET_PIN_T, and EDA_ITEM::Type().
Referenced by CONNECTION_GRAPH::RemoveItem().
| bool CONNECTION_SUBGRAPH::ResolveDrivers | ( | bool | aCheckMultipleDrivers = false | ) |
Determine which potential driver should drive the subgraph.
If multiple possible drivers exist, picks one according to the priority. If multiple "winners" exist, returns false and sets m_driver to nullptr.
| aCheckMultipleDrivers | controls whether the second driver should be captured for ERC. |
Definition at line 277 of file connection_graph.cpp.
References candidates(), compareDrivers(), SCH_ITEM::Connection(), SCH_SYMBOL::DoNetList(), GetDriverPriority(), GetNameForDriver(), GLOBAL_POWER_PIN, HIER_LABEL, INVALID, m_driver, m_driver_connection, m_driver_mutex, m_drivers, m_is_bus_member, m_local_driver, m_multiple_drivers, m_sheet, m_strong_driver, PIN, pin, and stableDriverIdentity().
Referenced by CONNECTION_GRAPH::ExtractAffectedItems(), and CONNECTION_GRAPH::generateGlobalPowerPinSubGraphs().
|
inline |
Definition at line 223 of file connection_graph.h.
References m_bus_element_connections.
| void CONNECTION_SUBGRAPH::UpdateItemConnections | ( | ) |
Update all items to match the driver connection.
Definition at line 641 of file connection_graph.cpp.
References SCH_CONNECTION::ClearDirty(), SCH_CONNECTION::Clone(), SCH_CONNECTION::IsBus(), SCH_CONNECTION::IsNet(), m_driver_connection, m_graph, m_items, and m_sheet.
|
friend |
Definition at line 103 of file connection_graph.h.
References CONNECTION_GRAPH, and CONNECTION_SUBGRAPH().
Referenced by CONNECTION_GRAPH, and CONNECTION_SUBGRAPH().
|
private |
True if this subgraph has been absorbed into another. No pointers here are safe if so!
Definition at line 240 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::collectBusMemberSiblings(), CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::GetSubgraphForItem(), CONNECTION_GRAPH::GetSubgraphForItemOnSheet(), CONNECTION_GRAPH::processSubGraphs(), and CONNECTION_GRAPH::propagateToNeighbors().
|
private |
If this subgraph is absorbed, points to the absorbing (and valid) subgraph.
Definition at line 249 of file connection_graph.h.
Referenced by CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::collectBusMemberSiblings(), CONNECTION_SUBGRAPH(), getAllConnectedItems(), CONNECTION_GRAPH::GetSubgraphForItem(), CONNECTION_GRAPH::GetSubgraphForItemOnSheet(), CONNECTION_GRAPH::propagateToNeighbors(), and CONNECTION_GRAPH::RemoveItem().
|
private |
Set of subgraphs that have been absorbed by this subgraph.
Definition at line 252 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::ercCheckNoConnects(), and getAllConnectedItems().
|
private |
A cache of connections that are part of this subgraph but that don't have an owning element (i.e.
bus members)
Definition at line 337 of file connection_graph.h.
Referenced by StoreImplicitConnection().
|
private |
Bus entry in graph, if any.
Definition at line 270 of file connection_graph.h.
Referenced by CONNECTION_SUBGRAPH().
|
private |
If a subgraph is a bus, this map contains links between the bus members and any local sheet neighbors with the same connection name.
For example, if this subgraph is a bus D[7..0], and on the same sheet there is a net with label D7, this map will contain an entry for the D7 bus member, and the set will contain a pointer to the D7 net subgraph.
Definition at line 283 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::collectBusMemberSiblings(), and CONNECTION_GRAPH::removeSubgraphs().
|
private |
If this is a net, this vector contains links to any same-sheet buses that contain it.
The string key is the name of the connection that forms the link (which isn't necessarily the same as the name of the connection driving this subgraph)
Definition at line 291 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::ercCheckLabels(), GetBusParents(), CONNECTION_GRAPH::processSubGraphs(), and CONNECTION_GRAPH::removeSubgraphs().
|
private |
Definition at line 254 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::buildItemSubGraphs(), CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::ExtractAffectedItems(), CONNECTION_GRAPH::generateBusAliasMembers(), CONNECTION_GRAPH::generateGlobalPowerPinSubGraphs(), CONNECTION_GRAPH::processSubGraphs(), and CONNECTION_GRAPH::propagateToNeighbors().
|
private |
Definition at line 237 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::buildItemSubGraphs(), CONNECTION_SUBGRAPH(), GetNetName(), and CONNECTION_GRAPH::propagateToNeighbors().
|
private |
Fully-resolved driver for the subgraph (might not exist in this subgraph).
Definition at line 311 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckFloatingWires(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), ExchangeItem(), GetDriver(), GetDriverPriority(), GetNetName(), CONNECTION_GRAPH::processSubGraphs(), CONNECTION_GRAPH::propagateToNeighbors(), RemoveItem(), and ResolveDrivers().
|
private |
Cache for driver connection.
Definition at line 323 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::collectBusMemberSiblings(), CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckLabels(), ExchangeItem(), CONNECTION_GRAPH::generateBusAliasMembers(), GetDriverConnection(), CONNECTION_GRAPH::Merge(), CONNECTION_GRAPH::processSubGraphs(), CONNECTION_GRAPH::propagateToNeighbors(), CONNECTION_GRAPH::recacheSubgraphName(), RemoveItem(), ResolveDrivers(), and UpdateItemConnections().
|
private |
Definition at line 339 of file connection_graph.h.
Referenced by ResolveDrivers().
|
mutableprivate |
Definition at line 308 of file connection_graph.h.
Referenced by GetNameForDriver().
|
mutableprivate |
A cache of escaped netnames from schematic items.
Definition at line 307 of file connection_graph.h.
Referenced by GetNameForDriver().
|
private |
Definition at line 272 of file connection_graph.h.
Referenced by AddItem(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), ExchangeItem(), GetAllBusLabels(), GetVectorBusLabels(), CONNECTION_GRAPH::processSubGraphs(), CONNECTION_GRAPH::propagateToNeighbors(), RemoveItem(), and ResolveDrivers().
|
private |
Definition at line 235 of file connection_graph.h.
Referenced by CONNECTION_SUBGRAPH(), ExchangeItem(), getAllConnectedItems(), CONNECTION_GRAPH::Merge(), CONNECTION_GRAPH::propagateToNeighbors(), and UpdateItemConnections().
|
private |
If not null, this indicates the subgraph(s) on a lower level sheet that are linked to this one.
Definition at line 304 of file connection_graph.h.
Referenced by getAllConnectedItems(), and CONNECTION_GRAPH::propagateToNeighbors().
|
private |
If not null, this indicates the subgraph on a higher level sheet that is linked to this one.
Definition at line 300 of file connection_graph.h.
Referenced by CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::ercCheckLabels(), and CONNECTION_GRAPH::propagateToNeighbors().
|
private |
Cache for lookup of any hierarchical (sheet) pins on this subgraph (for referring down).
Definition at line 294 of file connection_graph.h.
Referenced by AddItem(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckNoConnects(), ExchangeItem(), CONNECTION_GRAPH::propagateToNeighbors(), and RemoveItem().
|
private |
Cache for lookup of any hierarchical ports on this subgraph (for referring up).
Definition at line 297 of file connection_graph.h.
Referenced by AddItem(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckNoConnects(), ExchangeItem(), CONNECTION_GRAPH::propagateToNeighbors(), and RemoveItem().
|
private |
True if the subgraph is not actually part of a net.
These are created for bus members to ensure that bus-to-bus connection happens but they don't have any valid data
Definition at line 246 of file connection_graph.h.
Referenced by CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::generateBusAliasMembers(), and ResolveDrivers().
|
private |
Contents of the subgraph.
Definition at line 314 of file connection_graph.h.
Referenced by Absorb(), AddItem(), CONNECTION_GRAPH::ercCheckBusToBusConflicts(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckBusToNetConflicts(), CONNECTION_GRAPH::ercCheckDanglingWireEndpoints(), CONNECTION_GRAPH::ercCheckFloatingWires(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckNoConnects(), ExchangeItem(), getAllConnectedItems(), GetItems(), RemoveItem(), and UpdateItemConnections().
|
private |
True if the driver is a local (i.e. non-global) type.
Definition at line 267 of file connection_graph.h.
Referenced by CONNECTION_SUBGRAPH(), and ResolveDrivers().
|
private |
True if this subgraph contains more than one driver that should be shorted together in the netlist.
For example, two labels or two power ports.
Definition at line 261 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), CONNECTION_GRAPH::processSubGraphs(), CONNECTION_GRAPH::propagateToNeighbors(), and ResolveDrivers().
|
private |
No-connect item in graph, if any.
Definition at line 317 of file connection_graph.h.
Referenced by Absorb(), CONNECTION_GRAPH::buildItemSubGraphs(), CONNECTION_SUBGRAPH(), driverName(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckNoConnects(), GetNoConnect(), and RemoveItem().
|
private |
On which logical sheet is the subgraph contained.
Definition at line 320 of file connection_graph.h.
Referenced by Absorb(), AddItem(), CONNECTION_GRAPH::buildConnectionGraph(), CONNECTION_GRAPH::buildItemSubGraphs(), driverName(), CONNECTION_GRAPH::ercCheckBusToBusConflicts(), CONNECTION_GRAPH::ercCheckBusToBusEntryConflicts(), CONNECTION_GRAPH::ercCheckBusToNetConflicts(), CONNECTION_GRAPH::ercCheckDanglingWireEndpoints(), CONNECTION_GRAPH::ercCheckFloatingWires(), CONNECTION_GRAPH::ercCheckLabels(), CONNECTION_GRAPH::ercCheckMultipleDrivers(), CONNECTION_GRAPH::ercCheckNoConnects(), ExchangeItem(), CONNECTION_GRAPH::generateBusAliasMembers(), CONNECTION_GRAPH::generateGlobalPowerPinSubGraphs(), GetAllBusLabels(), getAllConnectedItems(), CONNECTION_GRAPH::getDefaultConnection(), GetNetclassesForDriver(), GetNetName(), GetSheet(), CONNECTION_GRAPH::GetSubgraphForItemOnSheet(), GetVectorBusLabels(), CONNECTION_GRAPH::processSubGraphs(), CONNECTION_GRAPH::propagateToNeighbors(), ResolveDrivers(), and UpdateItemConnections().
|
private |
True if the driver is "strong": a label or power object.
Definition at line 264 of file connection_graph.h.
Referenced by CONNECTION_SUBGRAPH(), CONNECTION_GRAPH::generateBusAliasMembers(), CONNECTION_GRAPH::processSubGraphs(), CONNECTION_GRAPH::propagateToNeighbors(), and ResolveDrivers().