Packages

object DedupModules extends LazyLogging

Utility functions for DedupModules

Source
Dedup.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DedupModules
  2. LazyLogging
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. 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.

  6. 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

  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. def computeIndexedNames(main: String, m: DefModule): IndexedSeq[ReferenceTarget]
  9. def computeRenameMap(originalNames: IndexedSeq[ReferenceTarget], dedupedNames: IndexedSeq[ReferenceTarget], renameMap: RenameMap): Unit
  10. def dedupInstances(top: CircuitTarget, originalModule: String, moduleMap: Map[String, DefModule], name2name: Map[String, String], renameMap: RenameMap): 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

  11. def deduplicate(circuit: Circuit, noDedups: Set[String], previousDupResults: Map[String, String], renameMap: RenameMap): 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

  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. def getAffectedExpressions(root: Expression): Seq[Expression]
  16. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. val logger: Logger
    Attributes
    protected
    Definition Classes
    LazyLogging
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  24. def toString(): String
    Definition Classes
    AnyRef → Any
  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from LazyLogging

Inherited from AnyRef

Inherited from Any

Ungrouped