1package top 2 3import chisel3._ 4import chisel3.util._ 5import xiangshan._ 6import utils._ 7import system._ 8import chipsalliance.rocketchip.config._ 9import freechips.rocketchip.tile.{BusErrorUnit, BusErrorUnitParams, XLen} 10import sifive.blocks.inclusivecache.{InclusiveCache, InclusiveCacheMicroParameters, CacheParameters} 11import xiangshan.backend.dispatch.DispatchParameters 12import xiangshan.cache.{DCacheParameters, ICacheParameters, L1plusCacheParameters} 13import xiangshan.cache.prefetch.{BOPParameters, L1plusPrefetcherParameters, L2PrefetcherParameters, StreamPrefetchParameters} 14 15class DefaultConfig(n: Int) extends Config((site, here, up) => { 16 case XLen => 64 17 case DebugOptionsKey => DebugOptions() 18 case SoCParamsKey => SoCParameters( 19 cores = List.tabulate(n){ i => XSCoreParameters(HartId = i) } 20 ) 21}) 22 23// TODO: disable L2 and L3 24class MinimalConfig(n: Int = 1) extends Config( 25 new DefaultConfig(n).alter((site, here, up) => { 26 case SoCParamsKey => up(SoCParamsKey).copy( 27 cores = up(SoCParamsKey).cores.map(_.copy( 28 HasL2Cache = false, 29 IssQueSize = 8, 30 NRPhyRegs = 80, 31 LoadQueueSize = 16, 32 StoreQueueSize = 16, 33 RoqSize = 32, 34 BrqSize = 8, 35 FtqSize = 16, 36 IBufSize = 16, 37 dpParams = DispatchParameters( 38 IntDqSize = 8, 39 FpDqSize = 8, 40 LsDqSize = 8, 41 IntDqDeqWidth = 4, 42 FpDqDeqWidth = 4, 43 LsDqDeqWidth = 4 44 ), 45 EnableBPD = false, // disable TAGE 46 EnableLoop = false, 47 )) 48 ) 49 }) 50)