class InstanceGraph extends AnyRef
A class representing the instance hierarchy of a working IR Circuit
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph instead.
- Source
- InstanceGraph.scala
- Note
The current implementation has some performance problems, which is why InstanceKeyGraph exists and should be preferred for new use cases. Eventually the old class will be deprecated in favor of the new implementation. The performance problems in the old implementation stem from the fact that DefInstance is used as the key to the underlying Map. DefInstance contains the type of the module besides the module and instance names. This type is not needed as it can be inferred from the module name. If the module name is the same, the type will be the same and vice versa. Hashing and comparing deep bundle types however is inefficient which can manifest in slower then necessary lookups and insertions.
- Alphabetic
- By Inheritance
- InstanceGraph
- 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
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
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()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated
-
def
findInstancesInHierarchy(module: String): Seq[Seq[DefInstance]]
Finds the absolute paths (each represented by a Seq of instances representing the chain of hierarchy) of all instances of a particular module.
Finds the absolute paths (each represented by a Seq of instances representing the chain of hierarchy) of all instances of a particular module. Note that this includes one implicit instance of the top (main) module of the circuit. If the module is not instantiated within the hierarchy of the top module of the circuit, it will return Nil.
- module
the name of the selected module
- returns
a Seq[ Seq[DefInstance] ] of absolute instance paths
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.findInstancesInHierarchy instead (now with caching of vertices!).
-
lazy val
fullHierarchy: LinkedHashMap[DefInstance, Seq[Seq[DefInstance]]]
A list of absolute paths (each represented by a Seq of instances) of all module instances in the Circuit.
A list of absolute paths (each represented by a Seq of instances) of all module instances in the Circuit.
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.fullHierarchy instead.
-
def
getChildrenInstanceMap: Map[OfModule, Map[Instance, OfModule]]
Given a circuit, returns a map from module name to a map in turn mapping instances names to corresponding module names
Given a circuit, returns a map from module name to a map in turn mapping instances names to corresponding module names
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.getChildInstanceMap instead.
-
def
getChildrenInstanceOfModule: LinkedHashMap[String, LinkedHashSet[(Instance, OfModule)]]
Given a circuit, returns a map from module name to children instance/module firrtl.annotations.TargetTokens
Given a circuit, returns a map from module name to children instance/module firrtl.annotations.TargetTokens
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.getChildInstances instead.
-
def
getChildrenInstances: LinkedHashMap[String, LinkedHashSet[DefInstance]]
Given a circuit, returns a map from module name to children instance/module definitions
Given a circuit, returns a map from module name to children instance/module definitions
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.getChildInstances instead.
-
lazy val
graph: DiGraph[DefInstance]
A directed graph showing the instance dependencies among modules in the circuit.
A directed graph showing the instance dependencies among modules in the circuit. Every DefInstance of a module has an edge to every DefInstance arising from every instance statement in that module.
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.graph instead.
-
def
lowestCommonAncestor(moduleA: Seq[DefInstance], moduleB: Seq[DefInstance]): Seq[DefInstance]
Finds the lowest common ancestor instances for two module names in a design
Finds the lowest common ancestor instances for two module names in a design
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph and EulerTour(iGraph.graph, iGraph.top).rmq(moduleA, moduleB).
-
val
moduleMap: Map[String, DefModule]
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.moduleMap instead.
-
def
moduleOrder: Seq[DefModule]
Module order from highest module to leaf module
Module order from highest module to leaf module
- returns
sequence of modules in order from top to leaf
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.moduleOrder instead.
-
lazy val
modules: Set[OfModule]
The set of all modules in the circuit
The set of all modules in the circuit
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph instead.
-
lazy val
reachableModules: Set[OfModule]
The set of all modules in the circuit reachable from the top module
The set of all modules in the circuit reachable from the top module
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph instead.
-
lazy val
staticInstanceCount: Map[OfModule, Int]
A count of the *static* number of instances of each module.
A count of the *static* number of instances of each module. For any module other than the top (main) module, this is equivalent to the number of inst statements in the circuit instantiating each module, irrespective of the number of times (if any) the enclosing module appears in the hierarchy. Note that top module of the circuit has an associated count of one, even though it is never directly instantiated. Any modules *not* instantiated at all will have a count of zero.
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.staticInstanceCount instead.
- lazy val tour: EulerTour[Seq[DefInstance]]
-
lazy val
unreachableModules: Set[OfModule]
The set of all modules *not* reachable in the circuit
The set of all modules *not* reachable in the circuit
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.4) Use InstanceKeyGraph.unreachableModules instead.
This is the documentation for Firrtl.