145c767e3SLinJiaweipackage top 245c767e3SLinJiawei 345c767e3SLinJiaweiimport chisel3._ 445c767e3SLinJiaweiimport chisel3.util._ 545c767e3SLinJiaweiimport xiangshan._ 645c767e3SLinJiaweiimport utils._ 745c767e3SLinJiaweiimport system._ 845c767e3SLinJiaweiimport chipsalliance.rocketchip.config._ 945c767e3SLinJiaweiimport freechips.rocketchip.tile.{BusErrorUnit, BusErrorUnitParams, XLen} 1045c767e3SLinJiaweiimport sifive.blocks.inclusivecache.{InclusiveCache, InclusiveCacheMicroParameters, CacheParameters} 1145c767e3SLinJiaweiimport xiangshan.backend.dispatch.DispatchParameters 1245c767e3SLinJiaweiimport xiangshan.cache.{DCacheParameters, ICacheParameters, L1plusCacheParameters} 1345c767e3SLinJiaweiimport xiangshan.cache.prefetch.{BOPParameters, L1plusPrefetcherParameters, L2PrefetcherParameters, StreamPrefetchParameters} 1445c767e3SLinJiawei 1545c767e3SLinJiaweiclass DefaultConfig(n: Int) extends Config((site, here, up) => { 1645c767e3SLinJiawei case XLen => 64 1745c767e3SLinJiawei case DebugOptionsKey => DebugOptions() 1845c767e3SLinJiawei case SoCParamsKey => SoCParameters( 1945c767e3SLinJiawei cores = List.tabulate(n){ i => XSCoreParameters(HartId = i) } 2045c767e3SLinJiawei ) 2145c767e3SLinJiawei}) 2245c767e3SLinJiawei 2345c767e3SLinJiawei// TODO: disable L2 and L3 2445c767e3SLinJiaweiclass MinimalConfig(n: Int = 1) extends Config( 2545c767e3SLinJiawei new DefaultConfig(n).alter((site, here, up) => { 2645c767e3SLinJiawei case SoCParamsKey => up(SoCParamsKey).copy( 2745c767e3SLinJiawei cores = up(SoCParamsKey).cores.map(_.copy( 2845c767e3SLinJiawei IssQueSize = 8, 2945c767e3SLinJiawei NRPhyRegs = 80, 3045c767e3SLinJiawei LoadQueueSize = 16, 3145c767e3SLinJiawei StoreQueueSize = 16, 3245c767e3SLinJiawei RoqSize = 32, 3345c767e3SLinJiawei BrqSize = 8, 3445c767e3SLinJiawei FtqSize = 16, 3545c767e3SLinJiawei IBufSize = 16, 3645c767e3SLinJiawei dpParams = DispatchParameters( 3745c767e3SLinJiawei IntDqSize = 8, 3845c767e3SLinJiawei FpDqSize = 8, 3945c767e3SLinJiawei LsDqSize = 8, 4045c767e3SLinJiawei IntDqDeqWidth = 4, 4145c767e3SLinJiawei FpDqDeqWidth = 4, 4245c767e3SLinJiawei LsDqDeqWidth = 4 4345c767e3SLinJiawei ), 4445c767e3SLinJiawei EnableBPD = false, // disable TAGE 4545c767e3SLinJiawei EnableLoop = false, 46*175bcfe9SLinJiawei TlbEntrySize = 4, 47*175bcfe9SLinJiawei TlbSPEntrySize = 2, 48*175bcfe9SLinJiawei PtwL1EntrySize = 2, 49*175bcfe9SLinJiawei PtwL2EntrySize = 2, 50*175bcfe9SLinJiawei PtwL3EntrySize = 4, 51*175bcfe9SLinJiawei PtwSPEntrySize = 2, 52*175bcfe9SLinJiawei useFakeDCache = true, 53*175bcfe9SLinJiawei useFakePTW = true, 54*175bcfe9SLinJiawei useFakeL1plusCache = true, 55*175bcfe9SLinJiawei )), 56*175bcfe9SLinJiawei useFakeL3Cache = true 5745c767e3SLinJiawei ) 5845c767e3SLinJiawei }) 5945c767e3SLinJiawei)