From 36d358406172deab27f698afbed9c99fe3f6edd8 Mon Sep 17 00:00:00 2001 From: joonho hwangbo Date: Mon, 6 May 2024 21:19:31 -0700 Subject: [PATCH] add sv39 fragments (#1874) Add sv39 fragments --- .../src/main/scala/config/fragments/TileFragments.scala | 5 +++++ generators/firechip/src/main/scala/TargetConfigs.scala | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala b/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala index c9493e78..b61b99f3 100644 --- a/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala @@ -131,3 +131,8 @@ class WithRocketBoundaryBuffers(buffers: Option[RocketTileBoundaryBufferParams] class WithSV48IfPossible extends Config((site, here, up) => { case PgLevels => if (site(XLen) == 64) 4 /* Sv48 */ else up(PgLevels) }) + +// Uses SV39 if possible, otherwise default to the Rocket Chip core default +class WithSV39 extends Config((site, here, up) => { + case PgLevels => { require(site(XLen) == 64); 3; } +}) diff --git a/generators/firechip/src/main/scala/TargetConfigs.scala b/generators/firechip/src/main/scala/TargetConfigs.scala index fd3bb381..8533d80b 100644 --- a/generators/firechip/src/main/scala/TargetConfigs.scala +++ b/generators/firechip/src/main/scala/TargetConfigs.scala @@ -370,3 +370,11 @@ class FireSimLargeBoomCospikeConfig extends Config( new WithDefaultMemModel ++ new WithFireSimConfigTweaks++ new chipyard.LargeBoomV3Config) + +class FireSimLargeBoomSV39CospikeConfig extends Config( + new firesim.firesim.WithCospikeBridge ++ + new WithDefaultFireSimBridges ++ + new WithDefaultMemModel ++ + new WithFireSimConfigTweaks++ + new chipyard.config.WithSV39 ++ + new chipyard.LargeBoomV3Config)