class ConnectionGraph extends DiGraph[ReferenceTarget]
- Alphabetic
- By Inheritance
- ConnectionGraph
- DiGraph
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(that: DiGraph[ReferenceTarget]): DiGraph[ReferenceTarget]
Graph sum of
this
andthat
Graph sum of
this
andthat
- that
a second DiGraph[T]
- returns
a DiGraph[T] containing all vertices and edges of each graph
- Definition Classes
- DiGraph
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
BFS(root: ReferenceTarget, blacklist: Set[ReferenceTarget]): Map[ReferenceTarget, ReferenceTarget]
Performs breadth-first search on the directed graph, with a blacklist of nodes
Performs breadth-first search on the directed graph, with a blacklist of nodes
- root
the start node
- blacklist
list of nodes to avoid visiting, if encountered
- returns
a Map[T,T] from each visited node to its predecessor in the traversal
- Definition Classes
- ConnectionGraph → DiGraph
-
def
BFS(root: ReferenceTarget): Map[ReferenceTarget, ReferenceTarget]
Performs breadth-first search on the directed graph
Performs breadth-first search on the directed graph
- root
the start node
- returns
a Map[T,T] from each visited node to its predecessor in the traversal
- Definition Classes
- DiGraph
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- val circuit: Circuit
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
contains(v: ReferenceTarget): Boolean
Check whether the graph contains vertex v
Check whether the graph contains vertex v
- Definition Classes
- DiGraph
- val digraph: DiGraph[ReferenceTarget]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
findLoopAtNode(node: ReferenceTarget): Seq[ReferenceTarget]
Finds a Seq of Nodes that form a loop
Finds a Seq of Nodes that form a loop
- node
Node to start loop path search from.
- returns
The found Seq, the Seq is empty if there is no loop
- Definition Classes
- DiGraph
-
def
findSCCs: Seq[Seq[ReferenceTarget]]
Finds the strongly connected components in the graph
Finds the strongly connected components in the graph
- returns
a Seq of Seq[T], each containing nodes of an SCC in traversable order
- Definition Classes
- ConnectionGraph → DiGraph
-
def
findSinks: Set[ReferenceTarget]
Find all sinks in the graph
-
def
findSources: Set[ReferenceTarget]
Find all sources in the graph
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getEdgeMap: Map[ReferenceTarget, Set[ReferenceTarget]]
- Definition Classes
- DiGraph
-
def
getEdges(source: ReferenceTarget): Set[ReferenceTarget]
Get all edges of a node
Get all edges of a node
- returns
a Set[T] of all vertices that v has edges to
- Definition Classes
- ConnectionGraph → DiGraph
-
def
getShortCut(target: ReferenceTarget): Option[Set[ReferenceTarget]]
Optionally returns the shortcut a previous BFS search may have found out of a module, starting from target
Optionally returns the shortcut a previous BFS search may have found out of a module, starting from target
- target
first target to find shortcut.
- returns
firrtl.annotations.ReferenceTarget of short cut.
-
def
getVertices: Set[ReferenceTarget]
Get all vertices in the graph
-
def
hasShortCut(target: ReferenceTarget): Boolean
Returns whether a previous BFS search has found a shortcut out of a module, starting from target
Returns whether a previous BFS search has found a shortcut out of a module, starting from target
- target
first target to find shortcut.
- returns
true if find a shortcut.
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val irLookup: IRLookup
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
linearize: Seq[ReferenceTarget]
Linearizes (topologically sorts) a DAG
Linearizes (topologically sorts) a DAG
- returns
a Seq[T] describing the topological order of the DAG traversal
- Definition Classes
- ConnectionGraph → DiGraph
- Exceptions thrown
firrtl.graph.CyclicException
if the graph is cyclic
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
path(start: ReferenceTarget, end: ReferenceTarget, blacklist: Set[ReferenceTarget]): Seq[ReferenceTarget]
Finds a path (if one exists) from one node to another, with a blacklist
Finds a path (if one exists) from one node to another, with a blacklist
- start
the start node
- end
the destination node
- blacklist
list of nodes which break path, if encountered
- returns
a Seq[T] of nodes defining an arbitrary valid path
- Definition Classes
- ConnectionGraph → DiGraph
- Exceptions thrown
-
def
path(start: ReferenceTarget, end: ReferenceTarget): Seq[ReferenceTarget]
Finds a path (if one exists) from one node to another
Finds a path (if one exists) from one node to another
- start
the start node
- end
the destination node
- returns
a Seq[T] of nodes defining an arbitrary valid path
- Definition Classes
- DiGraph
- Exceptions thrown
-
def
pathsInDAG(start: ReferenceTarget): LinkedHashMap[ReferenceTarget, Seq[Seq[ReferenceTarget]]]
Finds all paths starting at a particular node in a DAG
Finds all paths starting at a particular node in a DAG
WARNING: This is an exponential time algorithm (as any algorithm must be for this problem), but is useful for flattening circuit graph hierarchies. Each path is represented by a Seq[T] of nodes in a traversable order.
- start
the node to start at
- returns
a
Map[T,Seq[Seq[T]]]
where the value associated with v is the Seq of all paths from start to v
- Definition Classes
- ConnectionGraph → DiGraph
-
def
reachableFrom(root: ReferenceTarget, blacklist: Set[ReferenceTarget]): LinkedHashSet[ReferenceTarget]
Finds the set of nodes reachable from a particular node, with a blacklist.
Finds the set of nodes reachable from a particular node, with a blacklist. The semantics of adding a node to the blacklist is that any of its inedges will be ignored in the traversal. The
root
node is *not* included in the returned set unless it is possible to reachroot
along a non-trivial path beginning atroot
; i.e., if the graph has a cycle that containsroot
.- root
the start node
- blacklist
list of nodes to stop searching, if encountered
- returns
a Set[T] of nodes reachable from
root
- Definition Classes
- DiGraph
-
def
reachableFrom(root: ReferenceTarget): LinkedHashSet[ReferenceTarget]
Finds the set of nodes reachable from a particular node.
Finds the set of nodes reachable from a particular node. The
root
node is *not* included in the returned set unless it is possible to reachroot
along a non-trivial path beginning atroot
; i.e., if the graph has a cycle that containsroot
.- root
the start node
- returns
a Set[T] of nodes reachable from
root
- Definition Classes
- DiGraph
-
def
reverse: DiGraph[ReferenceTarget]
Returns a graph with all edges reversed
Returns a graph with all edges reversed
- Definition Classes
- DiGraph
-
def
reverseConnectionGraph: ConnectionGraph
- returns
a new, reversed connection graph where edges point from sinks to sources.
- lazy val serialize: String
-
def
shortCut(target: ReferenceTarget): Set[ReferenceTarget]
Returns the shortcut a previous BFS search may have found out of a module, starting from target
Returns the shortcut a previous BFS search may have found out of a module, starting from target
- target
first target to find shortcut.
- returns
firrtl.annotations.ReferenceTarget of short cut.
-
def
simplify(vprime: Set[ReferenceTarget]): DiGraph[ReferenceTarget]
Return a simplified connectivity graph with only a subset of the nodes
Return a simplified connectivity graph with only a subset of the nodes
Any path between two non-deleted nodes (u,v) in the original graph will be transformed into an edge (u,v).
- vprime
the Set[T] of desired vertices
- returns
the simplified graph
- Definition Classes
- DiGraph
- Exceptions thrown
java.lang.IllegalArgumentException
if vprime is not a subset of V
-
def
subgraph(vprime: Set[ReferenceTarget]): DiGraph[ReferenceTarget]
Return a graph with only a subset of the nodes
Return a graph with only a subset of the nodes
Any edge including a deleted node will be deleted
- vprime
the Set[T] of desired vertices
- returns
the subgraph
- Definition Classes
- DiGraph
- Exceptions thrown
java.lang.IllegalArgumentException
if vprime is not a subset of V
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transformNodes[Q](f: (ReferenceTarget) ⇒ Q): DiGraph[Q]
Return a graph with all the nodes of the current graph transformed by a function.
Return a graph with all the nodes of the current graph transformed by a function. Edge connectivity will be the same as the current graph.
- f
A function {(T) => Q} that transforms each node
- returns
a transformed DiGraph[Q]
- Definition Classes
- DiGraph
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
This is the documentation for Firrtl.