From e9e05b5f3b439adf15db04be9af9274b2ed96cec Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Fri, 13 Oct 2017 15:20:35 -0700 Subject: [PATCH] Add a check that MaxHartIdBits is enough for all hartids (#1054) * Add a check that MaxHartIdBits is enough for all hartids * Correct off-by-one error in hartid check --- src/main/scala/tile/RocketTile.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/scala/tile/RocketTile.scala b/src/main/scala/tile/RocketTile.scala index fde37ab6..98849fef 100644 --- a/src/main/scala/tile/RocketTile.scala +++ b/src/main/scala/tile/RocketTile.scala @@ -27,7 +27,9 @@ case class RocketTileParams( require(dcache.isDefined) } -abstract class HartedTile(tileParams: TileParams, val hartid: Int)(implicit p: Parameters) extends BaseTile(tileParams)(p) +abstract class HartedTile(tileParams: TileParams, val hartid: Int)(implicit p: Parameters) extends BaseTile(tileParams)(p) { + require (log2Up(hartid + 1) <= p(MaxHartIdBits), s"p(MaxHartIdBits) of ${p(MaxHartIdBits)} is not enough for hartid ${hartid}") +} class RocketTile(val rocketParams: RocketTileParams)(implicit p: Parameters) extends HartedTile(rocketParams, rocketParams.hartid)(p) with HasExternalInterrupts