summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel3/aop/inspecting
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/chisel3/aop/inspecting')
-rw-r--r--src/main/scala/chisel3/aop/inspecting/InspectingAspect.scala27
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
+ }
+}