package injecting
Type Members
- 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
- 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)
- 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
- 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)