Increase sourceWidth to fix vx_wspawn sync bug

With sourceWidth = 1, we hit an unsynchronized vx_wspawn bug, where the
previously spawned warps get killed and overridden by a new vx_wspawn
call before all the warps complete execution.  Setting sourceWidth = 1
somehow slows down the progress of the spawned warps in relation to warp
0 (presumably because fetch stalls, but not sure why they would slow
down more than warp 0) and results in this bug.   sourceWidth = 4 seems
to work for vecadd.
This commit is contained in:
Hansung Kim
2023-10-18 15:19:11 -07:00
parent fb97bd3c2b
commit 0d92eb65d4

View File

@@ -91,7 +91,7 @@ class VortexTile private (
minLatency = 1)))*/
val numLanes = 4 // TODO: use Parameters for this
val sourceWidth = 1 // TODO: use Parameters for this
val sourceWidth = 4 // TODO: use Parameters for this
val imemNodes = Seq.tabulate(1) { i =>
TLClientNode(
@@ -99,7 +99,7 @@ class VortexTile private (
TLMasterPortParameters.v1(
clients = Seq(
TLMasterParameters.v1(
sourceId = IdRange(0, 1 << 10), // TODO: magic numbers
sourceId = IdRange(0, 1 << sourceWidth),
name = s"Vortex Core ${vortexParams.hartId} I-Mem $i",
requestFifo = true,
supportsProbe =