From e4cce07c7818f1fb599390f3b9f97fe81fe43c44 Mon Sep 17 00:00:00 2001 From: Colin Schmidt Date: Wed, 23 Oct 2019 10:56:02 -0700 Subject: [PATCH 1/2] Fix issues after chisel update for august 2019 --- tapeout/src/main/scala/transforms/ResetInverter.scala | 6 ++++-- tapeout/src/main/scala/transforms/retime/Retime.scala | 6 ++++-- .../main/scala/transforms/utils/ProgrammaticBundle.scala | 8 ++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/tapeout/src/main/scala/transforms/ResetInverter.scala b/tapeout/src/main/scala/transforms/ResetInverter.scala index d2f756f0..cbdb0907 100644 --- a/tapeout/src/main/scala/transforms/ResetInverter.scala +++ b/tapeout/src/main/scala/transforms/ResetInverter.scala @@ -58,7 +58,9 @@ class ResetInverterTransform extends Transform { trait ResetInverter { self: chisel3.Module => - def invert(component: InstanceId): Unit = { - annotate(chisel3.experimental.ChiselAnnotation(component, classOf[ResetInverterTransform], "invert")) + def invert[T <: chisel3.experimental.LegacyModule](module: T): Unit = { + chisel3.experimental.annotate(new chisel3.experimental.ChiselAnnotation{ + def toFirrtl: Annotation = ResetInverterAnnotation(module.toNamed) + }) } } diff --git a/tapeout/src/main/scala/transforms/retime/Retime.scala b/tapeout/src/main/scala/transforms/retime/Retime.scala index 0f67adea..a2a39b04 100644 --- a/tapeout/src/main/scala/transforms/retime/Retime.scala +++ b/tapeout/src/main/scala/transforms/retime/Retime.scala @@ -39,7 +39,9 @@ class RetimeTransform extends Transform { trait RetimeLib { self: chisel3.Module => - def retime(component: InstanceId): Unit = { - annotate(chisel3.experimental.ChiselAnnotation(component, classOf[RetimeTransform], "retime")) + def retime[T <: chisel3.experimental.LegacyModule](module: T): Unit = { + chisel3.experimental.annotate(new chisel3.experimental.ChiselAnnotation{ + def toFirrtl: Annotation = RetimeAnnotation(module.toNamed) + }) } } diff --git a/tapeout/src/main/scala/transforms/utils/ProgrammaticBundle.scala b/tapeout/src/main/scala/transforms/utils/ProgrammaticBundle.scala index c3eec670..d73d05db 100644 --- a/tapeout/src/main/scala/transforms/utils/ProgrammaticBundle.scala +++ b/tapeout/src/main/scala/transforms/utils/ProgrammaticBundle.scala @@ -4,7 +4,7 @@ import chisel3._ import scala.collection.immutable.ListMap class CustomBundle[T <: Data](elts: (String, T)*) extends Record { - val elements = ListMap(elts map { case (field, elt) => field -> elt.chiselCloneType }: _*) + val elements = ListMap(elts map { case (field, elt) => field -> chiselTypeOf(elt) }: _*) def apply(elt: String): T = elements(elt) def apply(elt: Int): T = elements(elt.toString) override def cloneType = (new CustomBundle(elements.toList: _*)).asInstanceOf[this.type] @@ -12,9 +12,9 @@ class CustomBundle[T <: Data](elts: (String, T)*) extends Record { class CustomIndexedBundle[T <: Data](elts: (Int, T)*) extends Record { // Must be String, Data - val elements = ListMap(elts map { case (field, elt) => field.toString -> elt.chiselCloneType }: _*) + val elements = ListMap(elts map { case (field, elt) => field.toString -> chiselTypeOf(elt) }: _*) // TODO: Make an equivalent to the below work publicly (or only on subclasses?) - def indexedElements = ListMap(elts map { case (field, elt) => field -> elt.chiselCloneType }: _*) + def indexedElements = ListMap(elts map { case (field, elt) => field -> chiselTypeOf(elt) }: _*) def apply(elt: Int): T = elements(elt.toString) override def cloneType = (new CustomIndexedBundle(indexedElements.toList: _*)).asInstanceOf[this.type] } @@ -23,4 +23,4 @@ object CustomIndexedBundle { def apply[T <: Data](gen: T, idxs: Seq[Int]) = new CustomIndexedBundle(idxs.map(_ -> gen): _*) // Allows Vecs of elements of different types/widths def apply[T <: Data](gen: Seq[T]) = new CustomIndexedBundle(gen.zipWithIndex.map{ case (elt, field) => field -> elt }: _*) -} \ No newline at end of file +} From e0081208b98b6a7fb1265dc5f2bec1c40decddf7 Mon Sep 17 00:00:00 2001 From: Colin Schmidt Date: Thu, 31 Oct 2019 08:40:01 -0700 Subject: [PATCH 2/2] Updates for rocket-chip bump --- tapeout/src/main/scala/transforms/ResetInverter.scala | 2 +- tapeout/src/main/scala/transforms/retime/Retime.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tapeout/src/main/scala/transforms/ResetInverter.scala b/tapeout/src/main/scala/transforms/ResetInverter.scala index cbdb0907..da090dbf 100644 --- a/tapeout/src/main/scala/transforms/ResetInverter.scala +++ b/tapeout/src/main/scala/transforms/ResetInverter.scala @@ -58,7 +58,7 @@ class ResetInverterTransform extends Transform { trait ResetInverter { self: chisel3.Module => - def invert[T <: chisel3.experimental.LegacyModule](module: T): Unit = { + def invert[T <: chisel3.internal.LegacyModule](module: T): Unit = { chisel3.experimental.annotate(new chisel3.experimental.ChiselAnnotation{ def toFirrtl: Annotation = ResetInverterAnnotation(module.toNamed) }) diff --git a/tapeout/src/main/scala/transforms/retime/Retime.scala b/tapeout/src/main/scala/transforms/retime/Retime.scala index a2a39b04..231687bf 100644 --- a/tapeout/src/main/scala/transforms/retime/Retime.scala +++ b/tapeout/src/main/scala/transforms/retime/Retime.scala @@ -39,7 +39,7 @@ class RetimeTransform extends Transform { trait RetimeLib { self: chisel3.Module => - def retime[T <: chisel3.experimental.LegacyModule](module: T): Unit = { + def retime[T <: chisel3.internal.LegacyModule](module: T): Unit = { chisel3.experimental.annotate(new chisel3.experimental.ChiselAnnotation{ def toFirrtl: Annotation = RetimeAnnotation(module.toNamed) })