From 77cf186cf0cbd076e0678c221aee0f2af3a343bf Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Mon, 29 Aug 2016 17:02:04 -0700 Subject: [PATCH] tilelink2: make bundle parameterization reusable --- uncore/src/main/scala/tilelink2/Bundles.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/uncore/src/main/scala/tilelink2/Bundles.scala b/uncore/src/main/scala/tilelink2/Bundles.scala index 08a936a8..1e405955 100644 --- a/uncore/src/main/scala/tilelink2/Bundles.scala +++ b/uncore/src/main/scala/tilelink2/Bundles.scala @@ -4,14 +4,14 @@ package uncore.tilelink2 import Chisel._ -abstract class TLBundleBase(val params: TLBundleParameters) extends Bundle +abstract class GenericParameterizedBundle[T <: Object](val params: T) extends Bundle { override def cloneType = { try { this.getClass.getConstructors.head.newInstance(params).asInstanceOf[this.type] } catch { case e: java.lang.IllegalArgumentException => - throwException("Unable to use TLBundleBase.cloneType on " + + throwException("Unable to use GenericParameterizedBundle.cloneType on " + this.getClass + ", probably because " + this.getClass + "() takes more than one argument. Consider overriding " + "cloneType() on " + this.getClass, e) @@ -19,6 +19,8 @@ abstract class TLBundleBase(val params: TLBundleParameters) extends Bundle } } +abstract class TLBundleBase(params: TLBundleParameters) extends GenericParameterizedBundle(params) + // common combos in lazy policy: // Put + Acquire // Release + AccessAck