@@ -76,6 +76,7 @@ class WithMuonCores(
7676 disabled : Boolean ,
7777 numWarps : Option [Int ],
7878 numLanes : Option [Int ],
79+ numPhysRegs : Option [Int ],
7980 numIssueQueueEntries : Int ,
8081 l0i : Option [DCacheParams ],
8182 l0d : Option [DCacheParams ],
@@ -89,6 +90,7 @@ class WithMuonCores(
8990 val simt = up(SIMTCoreKey ).get
9091 val resolvedNumWarps = numWarps.getOrElse(simt.numWarps)
9192 val resolvedNumLanes = numLanes.getOrElse(simt.numLanes)
93+ val resolvedNumPhysRegs = numPhysRegs.getOrElse(MuonCoreParams ().numPhysRegs)
9294 val intPipe = numLanes.map { lanes =>
9395 IntPipeParams (numALULanes = lanes, numMulDivLanes = lanes)
9496 }
@@ -102,6 +104,8 @@ class WithMuonCores(
102104 MuonCoreParams (
103105 numWarps = resolvedNumWarps,
104106 numLanes = resolvedNumLanes,
107+ numPhysRegs = resolvedNumPhysRegs,
108+ numArchRegs = (resolvedNumPhysRegs / 2 ).min(128 ),
105109 numCores = n,
106110 numClusters = 2 , // TODO: magic number
107111 noILP = noILP,
@@ -165,6 +169,7 @@ class WithMuonCores(
165169 difftest : Boolean = false , disabled : Boolean = false ,
166170 numWarps : Option [Int ] = None ,
167171 numLanes : Option [Int ] = None ,
172+ numPhysRegs : Option [Int ] = None ,
168173 numIssueQueueEntries : Int = 8 ,
169174 l0i : Option [DCacheParams ] = None , l0d : Option [DCacheParams ] = None )
170175 = this (n, location, RocketCrossingParams (
@@ -174,7 +179,7 @@ class WithMuonCores(
174179 case InSubsystem => CBUS
175180 case InCluster (clusterId) => CCBUS (clusterId)
176181 },
177- ), standalone, noILP, trace, profiler, cyclotron, difftest, disabled, numWarps, numLanes, numIssueQueueEntries, l0i, l0d)
182+ ), standalone, noILP, trace, profiler, cyclotron, difftest, disabled, numWarps, numLanes, numPhysRegs, numIssueQueueEntries, l0i, l0d)
178183}
179184
180185class WithCyclotronCores (
0 commit comments