Packages

p

chisel3.aop

injecting

package injecting

Content Hierarchy

Type Members

  1. case class InjectStatement(module: ModuleTarget, s: Statement, modules: Seq[DefModule], annotations: Seq[Annotation]) extends SingleTargetAnnotation[ModuleTarget] with Product with Serializable

    Contains all information needed to inject statements into a module

    Contains all information needed to inject statements into a module

    Generated when a InjectingAspect is consumed by a AspectPhase Consumed by InjectingPhase

    module

    Module to inject code into at the end of the module

    s

    Statements to inject

    modules

    Additional modules that may be instantiated by s

    annotations

    Additional annotations that should be passed down compiler

  2. case class InjectingAspect[T <: RawModule, M <: RawModule](selectRoots: (T) => Iterable[M], injection: (M) => Unit) extends InjectorAspect[T, M] with Product with Serializable

    Aspect to inject Chisel code into a module of type M

    Aspect to inject Chisel code into a module of type M

    T

    Type of top-level module

    M

    Type of root module (join point)

    selectRoots

    Given top-level module, pick the instances of a module to apply the aspect (root module)

    injection

    Function to generate Chisel hardware that will be injected to the end of module m Signals in m can be referenced and assigned to as if inside m (yes, it is a bit magical)

  3. class InjectingPhase extends Phase

    Phase that consumes all Aspects and calls their toAnnotationSeq methods.

    Phase that consumes all Aspects and calls their toAnnotationSeq methods.

    Consumes the chisel3.stage.DesignAnnotation and converts every Aspect into their annotations prior to executing FIRRTL

  4. abstract class InjectorAspect[T <: RawModule, M <: RawModule] extends Aspect[T]

    Extend to inject Chisel code into a module of type M

    Extend to inject Chisel code into a module of type M

    T

    Type of top-level module

    M

    Type of root module (join point)

Ungrouped