diff options
Diffstat (limited to 'src/main/scala/chisel3/aop/inspecting')
| -rw-r--r-- | src/main/scala/chisel3/aop/inspecting/InspectingAspect.scala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/scala/chisel3/aop/inspecting/InspectingAspect.scala b/src/main/scala/chisel3/aop/inspecting/InspectingAspect.scala new file mode 100644 index 00000000..faff2817 --- /dev/null +++ b/src/main/scala/chisel3/aop/inspecting/InspectingAspect.scala @@ -0,0 +1,27 @@ +// See LICENSE for license details. + +package chisel3.aop.inspecting + +import chisel3.RawModule +import chisel3.aop.Aspect +import firrtl.AnnotationSeq + +/** Use for inspecting an elaborated design and printing out results + * + * @param inspect Given top-level design, print things and return nothing + * @tparam T Type of top-level module + */ +case class InspectingAspect[T <: RawModule](inspect: T => Unit) extends InspectorAspect[T](inspect) + + +/** Extend to make custom inspections of an elaborated design and printing out results + * + * @param inspect Given top-level design, print things and return nothing + * @tparam T Type of top-level module + */ +abstract class InspectorAspect[T <: RawModule](inspect: T => Unit) extends Aspect[T] { + override def toAnnotation(top: T): AnnotationSeq = { + inspect(top) + Nil + } +} |
