xref: /XiangShan/src/test/scala/xiangshan/XSTester.scala (revision e3da8bad334fc71ba0d72f0607e2e93245ddaece)
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