object DedupModules extends LazyLogging
- Alphabetic
- By Inheritance
- DedupModules
- LazyLogging
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- 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: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def getAffectedExpressions(root: Expression): Seq[Expression]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def getLogger: Logger
- Definition Classes
- LazyLogging
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- 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
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- 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(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
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
(Since version 9)