From 1c9163bb05ff7e50885d1560a9df088ff1f2b49d Mon Sep 17 00:00:00 2001 From: Jiuyang Liu Date: Thu, 6 May 2021 16:15:14 +0000 Subject: implement DecodeTableAnnotation for decode table caching. --- .../util/experimental/decode/DecodeTableAnnotation.scala | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala (limited to 'src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala') 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..3a6957e2 --- /dev/null +++ b/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: Apache-2.0 + +package chisel3.util.experimental.decode + +import firrtl.annotations.{Annotation, ReferenceTarget, SingleTargetAnnotation} + +case class DecodeTableAnnotation( + target: ReferenceTarget, + truthTable: TruthTable, + minimizedTable: TruthTable) + extends SingleTargetAnnotation[ReferenceTarget] { + override def duplicate(n: ReferenceTarget): Annotation = this.copy(target = n) +} -- cgit v1.2.3 From 3691fe61cc43beb0e7d0f813723d4150daa79372 Mon Sep 17 00:00:00 2001 From: Jiuyang Liu Date: Thu, 6 May 2021 16:20:50 +0000 Subject: add a simple decoder API. --- .../chisel3/util/experimental/decode/DecodeTableAnnotation.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala') diff --git a/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala b/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala index 3a6957e2..cd289a5d 100644 --- a/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala +++ b/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala @@ -6,8 +6,8 @@ import firrtl.annotations.{Annotation, ReferenceTarget, SingleTargetAnnotation} case class DecodeTableAnnotation( target: ReferenceTarget, - truthTable: TruthTable, - minimizedTable: TruthTable) + truthTable: String, + minimizedTable: String) extends SingleTargetAnnotation[ReferenceTarget] { override def duplicate(n: ReferenceTarget): Annotation = this.copy(target = n) } -- cgit v1.2.3 From c11fdf33981365927ea085b7aee095933a4a5ddf Mon Sep 17 00:00:00 2001 From: Jiuyang Liu Date: Mon, 14 Jun 2021 14:58:01 +0000 Subject: add documentation for DecodeTableAnnotation. --- .../chisel3/util/experimental/decode/DecodeTableAnnotation.scala | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala') diff --git a/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala b/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala index cd289a5d..2b50ef90 100644 --- a/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala +++ b/src/main/scala/chisel3/util/experimental/decode/DecodeTableAnnotation.scala @@ -4,6 +4,15 @@ 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, -- cgit v1.2.3