refactoring groundtest configuration
This commit is contained in:
parent
eeac405ef8
commit
358668699f
@ -1 +1 @@
|
|||||||
Subproject commit 9eeefb6e859cb8b68a91065b00992949ef677fe6
|
Subproject commit dadf8beac1204a805f0ef1e27372457c9c5f90ef
|
@ -191,9 +191,6 @@ class BaseConfig extends Config (
|
|||||||
case RoccNMemChannels => site(BuildRoCC).map(_.nMemChannels).foldLeft(0)(_ + _)
|
case RoccNMemChannels => site(BuildRoCC).map(_.nMemChannels).foldLeft(0)(_ + _)
|
||||||
case RoccNPTWPorts => site(BuildRoCC).map(_.nPTWPorts).foldLeft(0)(_ + _)
|
case RoccNPTWPorts => site(BuildRoCC).map(_.nPTWPorts).foldLeft(0)(_ + _)
|
||||||
case RoccNCSRs => site(BuildRoCC).map(_.csrs.size).foldLeft(0)(_ + _)
|
case RoccNCSRs => site(BuildRoCC).map(_.csrs.size).foldLeft(0)(_ + _)
|
||||||
case NDmaTransactors => 3
|
|
||||||
case NDmaXacts => site(NDmaTransactors) * site(NTiles)
|
|
||||||
case NDmaClients => site(NTiles)
|
|
||||||
//Rocket Core Constants
|
//Rocket Core Constants
|
||||||
case FetchWidth => 1
|
case FetchWidth => 1
|
||||||
case RetireWidth => 1
|
case RetireWidth => 1
|
||||||
@ -513,20 +510,6 @@ class MIF128BitConfig extends Config(
|
|||||||
class MIF32BitConfig extends Config(
|
class MIF32BitConfig extends Config(
|
||||||
new WithMIFDataBits(32) ++ new BaseConfig)
|
new WithMIFDataBits(32) ++ new BaseConfig)
|
||||||
|
|
||||||
class WithDmaController extends Config(
|
|
||||||
(pname, site, here) => pname match {
|
|
||||||
case BuildRoCC => Seq(
|
|
||||||
RoccParameters(
|
|
||||||
opcodes = OpcodeSet.custom2,
|
|
||||||
generator = (p: Parameters) => Module(new DmaController()(p)),
|
|
||||||
nPTWPorts = 1,
|
|
||||||
csrs = Seq.range(
|
|
||||||
DmaCtrlRegNumbers.CSR_BASE,
|
|
||||||
DmaCtrlRegNumbers.CSR_END)))
|
|
||||||
case RoccMaxTaggedMemXacts => 1
|
|
||||||
case _ => throw new CDEMatchError
|
|
||||||
})
|
|
||||||
|
|
||||||
class WithStreamLoopback extends Config(
|
class WithStreamLoopback extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case UseStreamLoopback => true
|
case UseStreamLoopback => true
|
||||||
@ -535,9 +518,6 @@ class WithStreamLoopback extends Config(
|
|||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class DmaControllerConfig extends Config(new WithDmaController ++ new WithStreamLoopback ++ new DefaultL2Config)
|
|
||||||
class DmaControllerFPGAConfig extends Config(new WithDmaController ++ new WithStreamLoopback ++ new DefaultFPGAConfig)
|
|
||||||
|
|
||||||
class SmallL2Config extends Config(
|
class SmallL2Config extends Config(
|
||||||
new WithNMemoryChannels(2) ++ new WithNBanksPerMemChannel(4) ++
|
new WithNMemoryChannels(2) ++ new WithNBanksPerMemChannel(4) ++
|
||||||
new WithL2Capacity(256) ++ new DefaultL2Config)
|
new WithL2Capacity(256) ++ new DefaultL2Config)
|
||||||
|
@ -21,9 +21,9 @@ class WithGroundTest extends Config(
|
|||||||
nManagers = site(NBanksPerMemoryChannel)*site(NMemoryChannels) + 1,
|
nManagers = site(NBanksPerMemoryChannel)*site(NMemoryChannels) + 1,
|
||||||
nCachingClients = site(NCachedTileLinkPorts),
|
nCachingClients = site(NCachedTileLinkPorts),
|
||||||
nCachelessClients = site(NUncachedTileLinkPorts),
|
nCachelessClients = site(NUncachedTileLinkPorts),
|
||||||
maxClientXacts = max(
|
maxClientXacts = ((site(NMSHRs) + 1) +:
|
||||||
site(NMSHRs) + 1,
|
site(GroundTestKey).map(_.maxXacts))
|
||||||
site(GroundTestMaxXacts)),
|
.reduce(max(_, _)),
|
||||||
maxClientsPerPort = 1,
|
maxClientsPerPort = 1,
|
||||||
maxManagerXacts = site(NAcquireTransactors) + 2,
|
maxManagerXacts = site(NAcquireTransactors) + 2,
|
||||||
dataBeats = 8,
|
dataBeats = 8,
|
||||||
@ -36,22 +36,18 @@ class WithGroundTest extends Config(
|
|||||||
TestGeneration.addSuite(groundtest("p"))
|
TestGeneration.addSuite(groundtest("p"))
|
||||||
TestGeneration.addSuite(DefaultTestSuites.emptyBmarks)
|
TestGeneration.addSuite(DefaultTestSuites.emptyBmarks)
|
||||||
(0 until site(NTiles)).map { i =>
|
(0 until site(NTiles)).map { i =>
|
||||||
(r: Bool, p: Parameters) =>
|
val tileSettings = site(GroundTestKey)(i)
|
||||||
Module(new GroundTestTile(i, r)(p.alterPartial({
|
(r: Bool, p: Parameters) => {
|
||||||
|
Module(new GroundTestTile(r)(p.alterPartial({
|
||||||
case TLId => "L1toL2"
|
case TLId => "L1toL2"
|
||||||
case NCachedTileLinkPorts =>
|
case GroundTestId => i
|
||||||
if (p(GroundTestCachedClients) > 0) 1 else 0
|
case NCachedTileLinkPorts => if(tileSettings.cached > 0) 1 else 0
|
||||||
case NUncachedTileLinkPorts => p(GroundTestUncachedClients)
|
case NUncachedTileLinkPorts => tileSettings.uncached
|
||||||
|
case RoccNCSRs => tileSettings.csrs
|
||||||
})))
|
})))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case GroundTestCachedClients => 0
|
|
||||||
case GroundTestUncachedClients => 0
|
|
||||||
case GroundTestNPTW => 0
|
|
||||||
case GroundTestMaxXacts => 1
|
|
||||||
case GroundTestCSRs => Nil
|
|
||||||
case TohostAddr => BigInt("80001000", 16)
|
|
||||||
case RoccNCSRs => site(GroundTestCSRs).size
|
|
||||||
case UseFPU => false
|
case UseFPU => false
|
||||||
case UseAtomics => false
|
case UseAtomics => false
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
@ -59,16 +55,17 @@ class WithGroundTest extends Config(
|
|||||||
|
|
||||||
class WithComparator extends Config(
|
class WithComparator extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestUncachedClients => site(ComparatorKey).targets.size
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
|
GroundTestTileSettings(uncached = site(ComparatorKey).targets.size)
|
||||||
|
}
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new ComparatorCore()(p))
|
(p: Parameters) => Module(new ComparatorCore()(p))
|
||||||
case ComparatorKey => ComparatorParameters(
|
case ComparatorKey => ComparatorParameters(
|
||||||
targets = Seq(0L, 0x100L).map(site(GlobalAddrMap)("mem").start.longValue + _),
|
targets = Seq(0L, 0x100L).map(site(GlobalAddrMap)("mem").start.longValue + _),
|
||||||
width = 8,
|
width = 8,
|
||||||
operations = 1000,
|
operations = 1000,
|
||||||
atomics = site(UseAtomics),
|
atomics = site(UseAtomics),
|
||||||
prefetches = site("COMPARATOR_PREFETCHES"))
|
prefetches = site("COMPARATOR_PREFETCHES"))
|
||||||
case TohostAddr => BigInt("80001000", 16) // quit test by writing here
|
|
||||||
case UseFPU => false
|
case UseFPU => false
|
||||||
case UseAtomics => false
|
case UseAtomics => false
|
||||||
case "COMPARATOR_PREFETCHES" => false
|
case "COMPARATOR_PREFETCHES" => false
|
||||||
@ -78,42 +75,43 @@ class WithComparator extends Config(
|
|||||||
class WithAtomics extends Config(
|
class WithAtomics extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case UseAtomics => true
|
case UseAtomics => true
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithPrefetches extends Config(
|
class WithPrefetches extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case "COMPARATOR_PREFETCHES" => true
|
case "COMPARATOR_PREFETCHES" => true
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithMemtest extends Config(
|
class WithMemtest extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestCachedClients => 1
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
case GroundTestUncachedClients => 1
|
GroundTestTileSettings(1, 1)
|
||||||
case GroundTestNPTW => 0
|
}
|
||||||
case MaxGenerateRequests => 128
|
case GeneratorKey => GeneratorParameters(
|
||||||
case GeneratorStartAddress => site(TohostAddr) + BigInt(site(CacheBlockBytes))
|
maxRequests = 128,
|
||||||
|
startAddress = site(GlobalAddrMap)("mem").start)
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new GeneratorTest(id)(p))
|
(p: Parameters) => Module(new GeneratorTest()(p))
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithNCachedGenerators(n: Int) extends Config(
|
class WithNGenerators(nUncached: Int, nCached: Int) extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestCachedClients => n
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
case _ => throw new CDEMatchError
|
GroundTestTileSettings(nUncached, nCached)
|
||||||
})
|
}
|
||||||
|
|
||||||
class WithNUncachedGenerators(n: Int) extends Config(
|
|
||||||
(pname, site, here) => pname match {
|
|
||||||
case GroundTestUncachedClients => n
|
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithCacheFillTest extends Config(
|
class WithCacheFillTest extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestUncachedClients => 1
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
|
GroundTestTileSettings(uncached = 1)
|
||||||
|
}
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new CacheFillTest()(p))
|
(p: Parameters) => Module(new CacheFillTest()(p))
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
},
|
},
|
||||||
knobValues = {
|
knobValues = {
|
||||||
@ -124,81 +122,56 @@ class WithCacheFillTest extends Config(
|
|||||||
|
|
||||||
class WithBroadcastRegressionTest extends Config(
|
class WithBroadcastRegressionTest extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestCachedClients => 1
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
case GroundTestUncachedClients => 1
|
GroundTestTileSettings(1, 1, maxXacts = 3)
|
||||||
|
}
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new RegressionTest()(p))
|
(p: Parameters) => Module(new RegressionTest()(p))
|
||||||
case GroundTestRegressions =>
|
case GroundTestRegressions =>
|
||||||
(p: Parameters) => RegressionTests.broadcastRegressions(p)
|
(p: Parameters) => RegressionTests.broadcastRegressions(p)
|
||||||
case GroundTestMaxXacts => 3
|
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithCacheRegressionTest extends Config(
|
class WithCacheRegressionTest extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestCachedClients => 1
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
case GroundTestUncachedClients => 1
|
GroundTestTileSettings(1, 1, maxXacts = 5)
|
||||||
|
}
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new RegressionTest()(p))
|
(p: Parameters) => Module(new RegressionTest()(p))
|
||||||
case GroundTestRegressions =>
|
case GroundTestRegressions =>
|
||||||
(p: Parameters) => RegressionTests.cacheRegressions(p)
|
(p: Parameters) => RegressionTests.cacheRegressions(p)
|
||||||
case GroundTestMaxXacts => 5
|
|
||||||
case _ => throw new CDEMatchError
|
|
||||||
})
|
|
||||||
|
|
||||||
class WithDmaTest extends Config(
|
|
||||||
(pname, site, here) => pname match {
|
|
||||||
case GroundTestNPTW => 1
|
|
||||||
case GroundTestUncachedClients => 1
|
|
||||||
case BuildGroundTest =>
|
|
||||||
(id: Int, p: Parameters) => Module(new DmaTest()(p))
|
|
||||||
case DmaTestSet => DmaTestCases(
|
|
||||||
(0x00001FF0, 0x00002FF4, 72),
|
|
||||||
(0x00001FF4, 0x00002FF0, 72),
|
|
||||||
(0x00001FF0, 0x00002FE0, 72),
|
|
||||||
(0x00001FE0, 0x00002FF0, 72),
|
|
||||||
(0x00884DA4, 0x008836C0, 40),
|
|
||||||
(0x00800008, 0x00800008, 64))
|
|
||||||
case DmaTestDataStart => 0x3012CC00
|
|
||||||
case DmaTestDataStride => 8
|
|
||||||
case _ => throw new CDEMatchError
|
|
||||||
})
|
|
||||||
|
|
||||||
class WithDmaStreamTest extends Config(
|
|
||||||
(pname, site, here) => pname match {
|
|
||||||
case GroundTestNPTW => 1
|
|
||||||
case GroundTestUncachedClients => 1
|
|
||||||
case BuildGroundTest =>
|
|
||||||
(id: Int, p: Parameters) => Module(new DmaStreamTest()(p))
|
|
||||||
case DmaStreamTestSettings => DmaStreamTestConfig(
|
|
||||||
source = 0x10, dest = 0x28, len = 0x18,
|
|
||||||
size = site(StreamLoopbackWidth) / 8)
|
|
||||||
case GroundTestCSRs =>
|
|
||||||
Seq(DmaCtrlRegNumbers.CSR_BASE + DmaCtrlRegNumbers.OUTSTANDING)
|
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithNastiConverterTest extends Config(
|
class WithNastiConverterTest extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestUncachedClients => 1
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
|
GroundTestTileSettings(uncached = 1)
|
||||||
|
}
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new NastiConverterTest()(p))
|
(p: Parameters) => Module(new NastiConverterTest()(p))
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithUnitTest extends Config(
|
class WithUnitTest extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
|
case GroundTestKey => Seq.fill(site(NTiles)) { GroundTestTileSettings() }
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new UnitTestSuite()(p))
|
(p: Parameters) => Module(new UnitTestSuite()(p))
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
class WithTraceGen extends Config(
|
class WithTraceGen extends Config(
|
||||||
(pname, site, here) => pname match {
|
(pname, site, here) => pname match {
|
||||||
case GroundTestCachedClients => 1
|
case GroundTestKey => Seq.fill(site(NTiles)) {
|
||||||
|
GroundTestTileSettings(cached = 1)
|
||||||
|
}
|
||||||
case BuildGroundTest =>
|
case BuildGroundTest =>
|
||||||
(id: Int, p: Parameters) => Module(new GroundTestTraceGenerator(id)(p))
|
(p: Parameters) => Module(new GroundTestTraceGenerator()(p))
|
||||||
case MaxGenerateRequests => 128
|
case GeneratorKey => GeneratorParameters(
|
||||||
|
maxRequests = 128,
|
||||||
|
startAddress = 0)
|
||||||
case AddressBag => List(0x8, 0x10, 0x108, 0x100008)
|
case AddressBag => List(0x8, 0x10, 0x108, 0x100008)
|
||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
@ -219,8 +192,7 @@ class MemtestBufferlessConfig extends Config(
|
|||||||
new WithMemtest ++ new WithBufferlessBroadcastHub ++ new GroundTestConfig)
|
new WithMemtest ++ new WithBufferlessBroadcastHub ++ new GroundTestConfig)
|
||||||
// Test ALL the things
|
// Test ALL the things
|
||||||
class FancyMemtestConfig extends Config(
|
class FancyMemtestConfig extends Config(
|
||||||
new WithNCachedGenerators(1) ++ new WithNUncachedGenerators(2) ++
|
new WithNGenerators(1, 2) ++ new WithNCores(2) ++ new WithMemtest ++
|
||||||
new WithNCores(2) ++ new WithMemtest ++
|
|
||||||
new WithNMemoryChannels(2) ++ new WithNBanksPerMemChannel(4) ++
|
new WithNMemoryChannels(2) ++ new WithNBanksPerMemChannel(4) ++
|
||||||
new WithSplitL2Metadata ++ new WithL2Cache ++ new GroundTestConfig)
|
new WithSplitL2Metadata ++ new WithL2Cache ++ new GroundTestConfig)
|
||||||
|
|
||||||
@ -234,10 +206,7 @@ class BufferlessRegressionTestConfig extends Config(
|
|||||||
class CacheRegressionTestConfig extends Config(
|
class CacheRegressionTestConfig extends Config(
|
||||||
new WithCacheRegressionTest ++ new WithL2Cache ++ new GroundTestConfig)
|
new WithCacheRegressionTest ++ new WithL2Cache ++ new GroundTestConfig)
|
||||||
|
|
||||||
class DmaTestConfig extends Config(new WithDmaTest ++ new WithL2Cache ++ new GroundTestConfig)
|
|
||||||
class DmaStreamTestConfig extends Config(new WithDmaStreamTest ++ new WithStreamLoopback ++ new WithL2Cache ++ new GroundTestConfig)
|
|
||||||
class NastiConverterTestConfig extends Config(new WithNastiConverterTest ++ new GroundTestConfig)
|
class NastiConverterTestConfig extends Config(new WithNastiConverterTest ++ new GroundTestConfig)
|
||||||
|
|
||||||
class UnitTestConfig extends Config(new WithUnitTest ++ new GroundTestConfig)
|
class UnitTestConfig extends Config(new WithUnitTest ++ new GroundTestConfig)
|
||||||
|
|
||||||
class TraceGenConfig extends Config(
|
class TraceGenConfig extends Config(
|
||||||
|
Loading…
Reference in New Issue
Block a user