diff options
| author | Zachary Yedidia | 2022-08-25 12:04:37 -0700 |
|---|---|---|
| committer | GitHub | 2022-08-25 19:04:37 +0000 |
| commit | df5a95454ff0414d1d3ce16d06dbe27b152e3751 (patch) | |
| tree | 2d8112b29ea20bd54ecffcf15818cff8fbaa4028 /src/main | |
| parent | 998913f9379440db26b6aeeaa09e7a11d7615351 (diff) | |
Backport of eager error messages for annotations (3.5.x) (#2700) (#2705)
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/scala/chisel3/util/experimental/ForceNames.scala | 3 | ||||
| -rw-r--r-- | src/main/scala/chisel3/util/experimental/decode/decoder.scala | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/main/scala/chisel3/util/experimental/ForceNames.scala b/src/main/scala/chisel3/util/experimental/ForceNames.scala index 53ee2bd2..3070a210 100644 --- a/src/main/scala/chisel3/util/experimental/ForceNames.scala +++ b/src/main/scala/chisel3/util/experimental/ForceNames.scala @@ -3,6 +3,7 @@ package chisel3.util.experimental import chisel3.experimental.{annotate, ChiselAnnotation, RunFirrtlTransform} +import chisel3.internal.Builder import firrtl.Mappers._ import firrtl._ import firrtl.annotations._ @@ -24,6 +25,7 @@ object forceName { * @param name Name to force to */ def apply[T <: chisel3.Element](signal: T, name: String): T = { + if (!signal.isSynthesizable) Builder.deprecated(s"Using forceName '$name' on non-hardware value $signal") annotate(new ChiselAnnotation with RunFirrtlTransform { def toFirrtl = ForceNameAnnotation(signal.toTarget, name) override def transformClass: Class[_ <: Transform] = classOf[ForceNamesTransform] @@ -37,6 +39,7 @@ object forceName { * @param signal Signal to name */ def apply[T <: chisel3.Element](signal: T): T = { + if (!signal.isSynthesizable) Builder.deprecated(s"Using forceName on non-hardware value $signal") annotate(new ChiselAnnotation with RunFirrtlTransform { def toFirrtl = ForceNameAnnotation(signal.toTarget, signal.toTarget.ref) override def transformClass: Class[_ <: Transform] = classOf[ForceNamesTransform] diff --git a/src/main/scala/chisel3/util/experimental/decode/decoder.scala b/src/main/scala/chisel3/util/experimental/decode/decoder.scala index 4feda672..067dd6f8 100644 --- a/src/main/scala/chisel3/util/experimental/decode/decoder.scala +++ b/src/main/scala/chisel3/util/experimental/decode/decoder.scala @@ -6,6 +6,7 @@ import chisel3._ import chisel3.experimental.{annotate, ChiselAnnotation} import chisel3.util.{pla, BitPat} import chisel3.util.experimental.{getAnnotations, BitSet} +import chisel3.internal.Builder import firrtl.annotations.Annotation import logger.LazyLogging @@ -30,6 +31,7 @@ object decoder extends LazyLogging { val (plaInput, plaOutput) = pla(minimizedTable.table.toSeq, BitPat(minimizedTable.default.value.U(minimizedTable.default.getWidth.W))) + assert(plaOutput.isSynthesizable, s"Using DecodeTableAnnotation on non-hardware value $plaOutput") annotate(new ChiselAnnotation { override def toFirrtl: Annotation = DecodeTableAnnotation(plaOutput.toTarget, truthTable.toString, minimizedTable.toString) |
