1
0

[unittest] Parallelize UnitTestSuite (#319)

* [unittest] Parallelize UnitTestSuite so all tests have their own timer, runs until all finish or any timeout. Adds SimpleTimer.

* [util] Timer spacing cleanup

* [unittest] Remove Config reference to UnitTestTimeout
This commit is contained in:
Henry Cook
2016-09-21 13:05:22 -07:00
committed by GitHub
parent 12d0c00822
commit 335e866176
7 changed files with 54 additions and 55 deletions

View File

@ -6,7 +6,7 @@ import uncore.devices.NTiles
import uncore.constants._
import junctions._
import rocket._
import util.Timer
import util.SimpleTimer
import scala.util.Random
import cde.{Parameters, Field}
@ -59,7 +59,7 @@ class UncachedTileLinkGenerator(id: Int)
when (io.mem.grant.fire()) { sending := Bool(true) }
when (req_wrap) { state := Mux(state === s_put, s_get, s_finished) }
val timeout = Timer(genTimeout, io.mem.acquire.fire(), io.mem.grant.fire())
val timeout = SimpleTimer(genTimeout, io.mem.acquire.fire(), io.mem.grant.fire())
assert(!timeout, s"Uncached generator ${id} timed out waiting for grant")
io.status.finished := (state === s_finished)
@ -132,7 +132,7 @@ class HellaCacheGenerator(id: Int)
val status = new GroundTestStatus
}
val timeout = Timer(genTimeout, io.mem.req.fire(), io.mem.resp.valid)
val timeout = SimpleTimer(genTimeout, io.mem.req.fire(), io.mem.resp.valid)
assert(!timeout, s"Cached generator ${id} timed out waiting for response")
io.status.timeout.valid := timeout
io.status.timeout.bits := UInt(id)

View File

@ -6,7 +6,7 @@ import uncore.constants._
import uncore.agents._
import uncore.util._
import junctions.HasAddrMapParameters
import util.{ParameterizedBundle, Timer}
import util.{ParameterizedBundle, SimpleTimer}
import rocket.HellaCacheIO
import cde.{Parameters, Field}
@ -760,7 +760,7 @@ class RegressionTest(implicit p: Parameters) extends GroundTest()(p) {
}
when (start) { start := Bool(false) }
val timeout = Timer(5000, start, cur_finished)
val timeout = SimpleTimer(5000, start, cur_finished)
assert(!timeout, "Regression timed out")
io.status.finished := all_done