151981c77SbugGeneratorpackage xiangshan 251981c77SbugGenerator 351981c77SbugGeneratorimport chisel3._ 451981c77SbugGeneratorimport chiseltest._ 551981c77SbugGeneratorimport chiseltest.{VerilatorBackendAnnotation, WriteVcdAnnotation} 651981c77SbugGeneratorimport chiseltest.simulator.{VerilatorCFlags, VerilatorFlags} 7*e3da8badSTang Haojinimport firrtl2.AnnotationSeq 851981c77SbugGeneratorimport org.scalatest.flatspec._ 951981c77SbugGeneratorimport org.scalatest.matchers.should._ 1051981c77SbugGeneratorimport top.{ArgParser, DefaultConfig} 118a00ff56SXuan Huimport xiangshan.backend.regfile.IntPregParams 1251981c77SbugGenerator 1351981c77SbugGeneratorabstract class XSTester extends AnyFlatSpec with ChiselScalatestTester with Matchers with HasTestAnnos { 1451981c77SbugGenerator behavior of "XiangShan Module" 1551981c77SbugGenerator val defaultConfig = (new DefaultConfig) 16195ef4a5STang Haojin implicit val config: org.chipsalliance.cde.config.Parameters = defaultConfig.alterPartial({ 1751981c77SbugGenerator // Get XSCoreParams and pass it to the "small module" 1851981c77SbugGenerator case XSCoreParamsKey => defaultConfig(XSTileKey).head.copy( 1951981c77SbugGenerator // Example of how to change params 208a00ff56SXuan Hu intPreg = IntPregParams( 218a00ff56SXuan Hu numEntries = 64, 2239c59369SXuan Hu numRead = Some(14), 2339c59369SXuan Hu numWrite = Some(8), 248a00ff56SXuan Hu ), 2551981c77SbugGenerator ) 2651981c77SbugGenerator }) 2751981c77SbugGenerator} 2851981c77SbugGenerator 2951981c77SbugGeneratortrait HasTestAnnos { 3051981c77SbugGenerator var testAnnos: AnnotationSeq = Seq() 3151981c77SbugGenerator} 3251981c77SbugGenerator 3351981c77SbugGeneratortrait DumpVCD { this: HasTestAnnos => 3451981c77SbugGenerator testAnnos = testAnnos :+ WriteVcdAnnotation 3551981c77SbugGenerator} 3651981c77SbugGenerator 3751981c77SbugGeneratortrait UseVerilatorBackend { this: HasTestAnnos => 3851e45dbbSTang Haojin testAnnos = testAnnos :+ VerilatorBackendAnnotation 3951981c77SbugGenerator} 40