object DedupModules extends LazyLogging
- Alphabetic
- By Inheritance
- DedupModules
- LazyLogging
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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
buildRTLTags(top: CircuitTarget, moduleLinearization: Seq[DefModule], noDedups: Set[String]): (Map[String, Set[String]], RenameMap)
Visits every module in the circuit, starting at the leaf nodes.
Visits every module in the circuit, starting at the leaf nodes. Every module is hashed in order to find ones that have the exact same structure and are thus functionally equivalent. Every unique hash is mapped to a human-readable tag which starts with
Dedup#
.- top
CircuitTarget
- moduleLinearization
Sequence of modules from leaf to top
- noDedups
names of modules that should not be deduped
- returns
A map from tag to names of modules with the same structure and a RenameMap which maps Module names to their Tag.
-
def
changeInternals(rename: (String) ⇒ String, retype: (String) ⇒ (Type) ⇒ Type, reinfo: (Info) ⇒ Info, renameOfModule: (String, String) ⇒ String, renameExps: Boolean = true)(module: DefModule): DefModule
Change's a module's internal signal names, types, infos, and modules.
Change's a module's internal signal names, types, infos, and modules.
- rename
Function to rename a signal. Called on declaration and references.
- retype
Function to retype a signal. Called on declaration, references, and subfields
- reinfo
Function to re-info a statement
- renameOfModule
Function to rename an instance's module
- module
Module to change internals
- returns
Changed Module
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
- def computeIndexedNames(main: String, m: DefModule): IndexedSeq[ReferenceTarget]
- def computeRenameMap(originalNames: IndexedSeq[ReferenceTarget], dedupedNames: IndexedSeq[ReferenceTarget], renameMap: MutableRenameMap): Unit
-
def
dedupInstances(top: CircuitTarget, originalModule: String, moduleMap: Map[String, DefModule], name2name: Map[String, String], renameMap: MutableRenameMap): DefModule
Dedup a module's instances based on dedup map
Dedup a module's instances based on dedup map
Will fixes up module if deduped instance's ports are differently named
- top
CircuitTarget of circuit
- originalModule
Module name who's instances will be deduped
- moduleMap
Map of module name to its original module
- name2name
Map of module name to the module deduping it. Not mutated in this function.
- renameMap
Will be modified to keep track of renames in this function
- returns
fixed up module deduped instances
-
def
deduplicate(circuit: Circuit, noDedups: Set[String], previousDupResults: Map[String, String], renameMap: MutableRenameMap): Map[String, DefModule]
Deduplicate
Deduplicate
- circuit
Circuit
- noDedups
list of modules to not dedup
- renameMap
rename map to populate when deduping
- returns
Map of original Module name -> Deduped Module
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def getAffectedExpressions(root: Expression): Seq[Expression]
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
getLogger: Logger
- Definition Classes
- LazyLogging
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
logger: Logger
- Attributes
- protected
- Definition Classes
- LazyLogging
-
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
computeRenameMap(originalNames: IndexedSeq[ReferenceTarget], dedupedNames: IndexedSeq[ReferenceTarget], renameMap: RenameMap): Unit
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.5) Use version that accepts renamemap.MutableRenameMap
-
def
dedupInstances(top: CircuitTarget, originalModule: String, moduleMap: Map[String, DefModule], name2name: Map[String, String], renameMap: RenameMap): DefModule
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.5) Use version that accepts renamemap.MutableRenameMap
-
def
deduplicate(circuit: Circuit, noDedups: Set[String], previousDupResults: Map[String, String], renameMap: RenameMap): Map[String, DefModule]
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.5) Use version that accepts renamemap.MutableRenameMap
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated
This is the documentation for Firrtl.