c

midas.passes.fame

PromoteSubmodule

class PromoteSubmodule extends Transform

Takes PromoteSubmodule annotations for instantiations and causes each corresponding instance to be removed; ports are added to the parent module and the submodule is added as a peer instance to all modules instantiating the parent module.

Module nomenclature: Grandparent = instantiator of parent. Transformed to instantiate child alongside parent, connect. Parent = instantiator of child. Transformed to get port of child IO instead of instantiating child. Child = submodule to be promoted. Does not get transformed.

Linear Supertypes
Transform, DependencyAPI[Transform], TransformLike[CircuitState], LazyLogging, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PromoteSubmodule
  2. Transform
  3. DependencyAPI
  4. TransformLike
  5. LazyLogging
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new PromoteSubmodule()

Value Members

  1. def execute(state: CircuitState): CircuitState
    Definition Classes
    PromoteSubmodule → Transform
  2. def getLogger: Logger
    Definition Classes
    LazyLogging
  3. def inputForm: HighForm
    Definition Classes
    PromoteSubmodule → Transform
  4. def invalidates(a: Transform): Boolean
    Definition Classes
    Transform → DependencyAPI
  5. def name: String
    Definition Classes
    Transform → TransformLike
  6. def optionalPrerequisiteOf: Seq[Dependency[Transform]]
    Definition Classes
    Transform → DependencyAPI
  7. def optionalPrerequisites: Seq[Dependency[Transform]]
    Definition Classes
    Transform → DependencyAPI
  8. def outputForm: HighForm
    Definition Classes
    PromoteSubmodule → Transform
  9. def prerequisites: Seq[Dependency[Transform]]
    Definition Classes
    Transform → DependencyAPI
  10. final def runTransform(state: CircuitState): CircuitState
    Definition Classes
    Transform
  11. def transform(state: CircuitState): CircuitState
    Definition Classes
    Transform → TransformLike

Deprecated Value Members

  1. def dependents: Seq[Dependency[Transform]]
    Definition Classes
    DependencyAPI
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Due to confusion, 'dependents' is being renamed to 'optionalPrerequisiteOf'. Override the latter instead.