summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala
diff options
context:
space:
mode:
authorJack Koenig2021-09-17 21:01:26 -0700
committerJack Koenig2021-09-17 21:01:26 -0700
commit5c8c19345e6711279594cf1f9ddab33623c8eba7 (patch)
treed9d6ced3934aa4a8be3dec19ddcefe50a7a93d5a /src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala
parente63b9667d89768e0ec6dc8a9153335cb48a213a7 (diff)
parent958904cb2f2f65d02b2ab3ec6d9ec2e06d04e482 (diff)
Merge branch 'master' into 3.5-release
Diffstat (limited to 'src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala')
-rw-r--r--src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala b/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala
new file mode 100644
index 00000000..2b50ef90
--- /dev/null
+++ b/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package chisel3.util.experimental.decode
+
+import firrtl.annotations.{Annotation, ReferenceTarget, SingleTargetAnnotation}
+
+/** DecodeTableAnnotation used to store a decode result for a specific [[TruthTable]].
+ * This is useful for saving large [[TruthTable]] during a elaboration time.
+ *
+ * @note user should manage the correctness of [[minimizedTable]].
+ *
+ * @param target output wire of a decoder.
+ * @param truthTable input [[TruthTable]] encoded in a serialized [[TruthTable]].
+ * @param minimizedTable minimized [[truthTable]] encoded in a serialized [[TruthTable]].
+ */
+case class DecodeTableAnnotation(
+ target: ReferenceTarget,
+ truthTable: String,
+ minimizedTable: String)
+ extends SingleTargetAnnotation[ReferenceTarget] {
+ override def duplicate(n: ReferenceTarget): Annotation = this.copy(target = n)
+}