From 8c6e7456531c4d7b846d0532b2b94805b26c9793 Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Thu, 1 Mar 2018 15:19:12 -0800 Subject: [PATCH] Bump chisel and firrtl (#1232) * Misc changes to better enable autoclonetype * Bump chisel3 and firrtl and SBT to 1.1.1 --- chisel3 | 2 +- firrtl | 2 +- project/build.properties | 2 +- sbt-launch.jar | Bin 1214197 -> 1214196 bytes src/main/scala/rocket/Frontend.scala | 2 +- src/main/scala/rocket/HellaCache.scala | 2 +- src/main/scala/rocket/ICache.scala | 2 +- src/main/scala/tilelink/RegisterRouter.scala | 2 +- src/main/scala/util/HeterogeneousBag.scala | 2 +- src/main/scala/util/Misc.scala | 16 ++-------------- 10 files changed, 10 insertions(+), 22 deletions(-) diff --git a/chisel3 b/chisel3 index e2765711..97871178 160000 --- a/chisel3 +++ b/chisel3 @@ -1 +1 @@ -Subproject commit e27657118ff5915b96f8e3a467d464245fe09769 +Subproject commit 97871178cb511063965f971b768f91c289c4776f diff --git a/firrtl b/firrtl index 57025111..b90fc784 160000 --- a/firrtl +++ b/firrtl @@ -1 +1 @@ -Subproject commit 57025111d3bc872da726e31e3e9a1e4895593266 +Subproject commit b90fc784a1819c1d7905910130a7da022214bc22 diff --git a/project/build.properties b/project/build.properties index 394cb75c..31334bbd 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.0.4 +sbt.version=1.1.1 diff --git a/sbt-launch.jar b/sbt-launch.jar index 09dec7570d001a59d5a072b088b58ac666ec2db6..de00d065af1ea6af0481d6ddc22da6cfe8601ec1 100644 GIT binary patch delta 43344 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 diff --git a/src/main/scala/rocket/Frontend.scala b/src/main/scala/rocket/Frontend.scala index 4eae78ca..8a0fce7f 100644 --- a/src/main/scala/rocket/Frontend.scala +++ b/src/main/scala/rocket/Frontend.scala @@ -62,7 +62,7 @@ class Frontend(val icacheParams: ICacheParams, hartid: Int)(implicit p: Paramete val slaveNode = icache.slaveNode } -class FrontendBundle(outer: Frontend) extends CoreBundle()(outer.p) +class FrontendBundle(val outer: Frontend) extends CoreBundle()(outer.p) with HasExternallyDrivenTileConstants { val cpu = new FrontendIO().flip val ptw = new TLBPTWIO() diff --git a/src/main/scala/rocket/HellaCache.scala b/src/main/scala/rocket/HellaCache.scala index 17b53b73..dfd0a616 100644 --- a/src/main/scala/rocket/HellaCache.scala +++ b/src/main/scala/rocket/HellaCache.scala @@ -173,7 +173,7 @@ abstract class HellaCache(hartid: Int)(implicit p: Parameters) extends LazyModul val module: HellaCacheModule } -class HellaCacheBundle(outer: HellaCache)(implicit p: Parameters) extends CoreBundle()(p) { +class HellaCacheBundle(val outer: HellaCache)(implicit p: Parameters) extends CoreBundle()(p) { val hartid = UInt(INPUT, hartIdLen) val cpu = (new HellaCacheIO).flip val ptw = new TLBPTWIO() diff --git a/src/main/scala/rocket/ICache.scala b/src/main/scala/rocket/ICache.scala index ac2219e1..2b5b1e65 100644 --- a/src/main/scala/rocket/ICache.scala +++ b/src/main/scala/rocket/ICache.scala @@ -81,7 +81,7 @@ class ICachePerfEvents extends Bundle { val acquire = Bool() } -class ICacheBundle(outer: ICache) extends CoreBundle()(outer.p) { +class ICacheBundle(val outer: ICache) extends CoreBundle()(outer.p) { val hartid = UInt(INPUT, hartIdLen) val req = Decoupled(new ICacheReq).flip val s1_paddr = UInt(INPUT, paddrBits) // delayed one cycle w.r.t. req diff --git a/src/main/scala/tilelink/RegisterRouter.scala b/src/main/scala/tilelink/RegisterRouter.scala index 6b14adc1..c4b4d42c 100644 --- a/src/main/scala/tilelink/RegisterRouter.scala +++ b/src/main/scala/tilelink/RegisterRouter.scala @@ -143,7 +143,7 @@ class TLRegBundleBase(arg: TLRegBundleArg) extends Bundle implicit val p = arg.p } -class TLRegBundle[P](val params: P, arg: TLRegBundleArg)(implicit p: Parameters) extends TLRegBundleBase(arg) +class TLRegBundle[P](val params: P, val arg: TLRegBundleArg) extends TLRegBundleBase(arg) class TLRegModule[P, B <: TLRegBundleBase](val params: P, bundleBuilder: => B, router: TLRegisterRouterBase) extends LazyModuleImp(router) with HasRegMap diff --git a/src/main/scala/util/HeterogeneousBag.scala b/src/main/scala/util/HeterogeneousBag.scala index a48743ea..3f95928d 100644 --- a/src/main/scala/util/HeterogeneousBag.scala +++ b/src/main/scala/util/HeterogeneousBag.scala @@ -11,7 +11,7 @@ final case class HeterogeneousBag[T <: Data](elts: Seq[T]) extends Record with c def length = elts.length val elements = ListMap(elts.zipWithIndex.map { case (n,i) => (i.toString, n) }:_*) - override def cloneType: this.type = (new HeterogeneousBag(elts.map(_.cloneType))).asInstanceOf[this.type] + override def cloneType: this.type = (new HeterogeneousBag(elts.map(_.chiselCloneType))).asInstanceOf[this.type] // IndexedSeq has its own hashCode/equals that we must not use override def hashCode: Int = super[Record].hashCode diff --git a/src/main/scala/util/Misc.scala b/src/main/scala/util/Misc.scala index 0025f187..163a3013 100644 --- a/src/main/scala/util/Misc.scala +++ b/src/main/scala/util/Misc.scala @@ -8,19 +8,7 @@ import chisel3.experimental.{ChiselAnnotation, RawModule} import freechips.rocketchip.config.Parameters import scala.math._ -class ParameterizedBundle(implicit p: Parameters) extends Bundle { - override def cloneType = { - try { - this.getClass.getConstructors.head.newInstance(p).asInstanceOf[this.type] - } catch { - case e: java.lang.IllegalArgumentException => - throwException("Unable to use ParamaterizedBundle.cloneType on " + - this.getClass + ", probably because " + this.getClass + - "() takes more than one argument. Consider overriding " + - "cloneType() on " + this.getClass, e) - } - } -} +class ParameterizedBundle(implicit p: Parameters) extends Bundle // TODO: replace this with an implicit class when @chisel unprotects dontTouchPorts trait DontTouch { @@ -101,7 +89,7 @@ object ValidMux { apply(v1 +: v2.toSeq) } def apply[T <: Data](valids: Seq[ValidIO[T]]): ValidIO[T] = { - val out = Wire(Valid(valids.head.bits)) + val out = Wire(Valid(valids.head.bits.cloneType)) out.valid := valids.map(_.valid).reduce(_ || _) out.bits := MuxCase(valids.head.bits, valids.map(v => (v.valid -> v.bits)))