|
| void | build (ast::Compilation &compilation, analysis::AnalysisManager &analysisManager, BuilderOptions options={}) |
| auto | lookup (std::string_view name) const -> NetlistNode * |
| auto | lookup (std::string_view name, DriverBitRange bounds) const -> std::vector< NetlistNode * > |
| auto | getDrivers (std::string_view name, DriverBitRange bounds) const -> std::vector< NetlistNode * > |
| auto | getBitDrivers (std::string_view name, DriverBitRange bounds) const -> std::vector< BitDriver > |
| auto | getBitDrivers (std::string_view name) const -> std::vector< BitDriver > |
| auto | getCombFanOut (NetlistNode &node) const -> std::vector< NetlistNode * > |
| auto | getCombFanIn (NetlistNode &node) const -> std::vector< NetlistNode * > |
| auto | getSensitivity (NetlistNode &node) const -> std::vector< SensitivitySource > |
| auto | getConstantDrivers (NetlistNode &node) const -> std::vector< NetlistNode * > |
| auto | findNodes (std::string_view pattern) const -> std::vector< NetlistNode * > |
| auto | findNodesRegex (std::string_view pattern) const -> std::vector< NetlistNode * > |
| | Find named nodes whose hierarchical path matches the regex pattern.
|
| auto | filterNodes (NodeKind kind) const |
| auto | addEdge (NetlistNode &sourceNode, NetlistNode &targetNode) -> NetlistEdge & |
| | Add an edge between two nodes.
|
| auto | getBuildProfile () const -> BuildProfile const & |
| | Return the profiling data from the last build() call.
|
| void | setBuildProfile (BuildProfile const &profile) |
| | Set the profiling data (called internally by NetlistBuilder).
|
| void | addBlackBoxPath (std::string path) |
| | Record the hierarchical path of a black-boxed instance.
|
| auto | getBlackBoxPaths () const -> std::span< std::string const > |
| | Return the hierarchical paths of the black-boxed instances.
|
| auto | getBlackBoxCoverage (NetlistNode const &node) const -> BlackBoxCoverage |
| | DirectedGraph ()=default |
| auto | begin () const -> const_iterator |
| auto | end () const -> const_iterator |
| auto | findNode (const NetlistNode &nodeToFind) const -> node_descriptor |
| auto | getNode (node_descriptor node) const -> NetlistNode & |
| | Given a node descriptor, return the node by reference.
|
| auto | addNode () -> NetlistNode & |
| auto | removeNode (NetlistNode &nodeToRemove) -> bool |
| auto | addEdge (NetlistNode &sourceNode, NetlistNode &targetNode) -> NetlistEdge & |
| | Add an edge between two existing nodes in the graph.
|
| auto | addNewEdge (NetlistNode &sourceNode, NetlistNode &targetNode) -> NetlistEdge & |
| auto | removeEdge (NetlistNode &sourceNode, NetlistNode &targetNode) -> bool |
| auto | outDegree (const NetlistNode &node) const -> size_t |
| | Return the number of edges outgoing from the specified node.
|
| auto | inDegree (const NetlistNode &node) const -> size_t |
| | Return the number of edges incident to the specified node.
|
| auto | numNodes () const -> size_t |
| | Return the size of the graph.
|
| auto | numEdges () const -> size_t |
| | Return the number of edges in the graph.
|
Represent the netlist connectivity of an elaborated design.
| void slang::netlist::NetlistGraph::build |
( |
ast::Compilation & | compilation, |
|
|
analysis::AnalysisManager & | analysisManager, |
|
|
BuilderOptions | options = {} ) |
Build the netlist from an elaborated compilation.
Caller is responsible for having run VisitAll, frozen the compilation, and run the analysis manager prior to this call. options configures the build, including parallel execution, thread pool size, and precision upgrades; see BuilderOptions.
| auto slang::netlist::NetlistGraph::getBitDrivers |
( |
std::string_view | name, |
|
|
DriverBitRange | bounds ) const -> std::vector< BitDriver > |
|
nodiscard |
Return the per-bit drivers of the symbol name over bounds.
Unlike getDrivers, which returns the deduplicated set of driver nodes, this keeps one entry per contributing edge, each clipped to the sub-range of name that the driver actually covers, so callers can report bit-level provenance. Entries are sorted by ascending bit position and deduplicated on (bounds, driver).
| auto slang::netlist::NetlistGraph::getConstantDrivers |
( |
NetlistNode & | node | ) |
const -> std::vector< NetlistNode * > |
|
nodiscard |
Return the Constant nodes feeding node if its combinational fan-in bottoms out only at Constants (i.e. the sink is tied off to literal values). Returns an empty vector if any non-constant source reaches node — namely a State node (depends on a register) or an undriven top-level input Port (depends on an external signal) — or if node has no Constant in its fan-in at all.
Variables, Assignments, Conditionals, Cases, Merges, and driven Ports in the fan-in are treated as pass-throughs.