// // SPDX-License-Identifier: Apache-2.0 // package chisel3.aop.injecting // import chisel3.stage.phases.AspectPhase // import firrtl.annotations.{Annotation, ModuleTarget, NoTargetAnnotation, SingleTargetAnnotation} // /** Contains all information needed to inject statements into a module // * // * Generated when a [[InjectingAspect]] is consumed by a [[AspectPhase]] // * Consumed by [[InjectingTransform]] // * // * @param module Module to inject code into at the end of the module // * @param s Statements to inject // * @param modules Additional modules that may be instantiated by s // * @param annotations Additional annotations that should be passed down compiler // */ // case class InjectStatement( // module: ModuleTarget, // s: firrtl.ir.Statement, // modules: Seq[firrtl.ir.DefModule], // annotations: Seq[Annotation]) // extends SingleTargetAnnotation[ModuleTarget] { // val target: ModuleTarget = module // override def duplicate(n: ModuleTarget): Annotation = this.copy(module = n) // }