xref: /XiangShan/src/test/scala/xiangshan/XSTester.scala (revision 8a00ff566bcba2487c171ffd13c225a25e8ff441)
151981c77SbugGeneratorpackage xiangshan
251981c77SbugGenerator
351981c77SbugGeneratorimport chisel3._
451981c77SbugGeneratorimport chipsalliance.rocketchip.config.Config
551981c77SbugGeneratorimport chiseltest._
651981c77SbugGeneratorimport chiseltest.{VerilatorBackendAnnotation, WriteVcdAnnotation}
751981c77SbugGeneratorimport chiseltest.simulator.{VerilatorCFlags, VerilatorFlags}
851981c77SbugGeneratorimport firrtl.AnnotationSeq
951981c77SbugGeneratorimport firrtl.stage.RunFirrtlTransformAnnotation
1051981c77SbugGeneratorimport org.scalatest.flatspec._
1151981c77SbugGeneratorimport org.scalatest.matchers.should._
1251981c77SbugGeneratorimport top.{ArgParser, DefaultConfig}
13*8a00ff56SXuan Huimport xiangshan.backend.regfile.IntPregParams
1451981c77SbugGenerator
1551981c77SbugGeneratorabstract class XSTester extends AnyFlatSpec with ChiselScalatestTester with Matchers with HasTestAnnos {
1651981c77SbugGenerator  behavior of "XiangShan Module"
1751981c77SbugGenerator  val defaultConfig = (new DefaultConfig)
1851981c77SbugGenerator  implicit val config = defaultConfig.alterPartial({
1951981c77SbugGenerator    // Get XSCoreParams and pass it to the "small module"
2051981c77SbugGenerator    case XSCoreParamsKey => defaultConfig(XSTileKey).head.copy(
2151981c77SbugGenerator      // Example of how to change params
22*8a00ff56SXuan Hu      intPreg = IntPregParams(
23*8a00ff56SXuan Hu        numEntries = 64,
24*8a00ff56SXuan Hu        numRead = 14,
25*8a00ff56SXuan Hu        numWrite = 8,
26*8a00ff56SXuan Hu      ),
2751981c77SbugGenerator    )
2851981c77SbugGenerator  })
2951981c77SbugGenerator}
3051981c77SbugGenerator
3151981c77SbugGeneratortrait HasTestAnnos {
3251981c77SbugGenerator  var testAnnos: AnnotationSeq = Seq()
3351981c77SbugGenerator}
3451981c77SbugGenerator
3551981c77SbugGeneratortrait DumpVCD { this: HasTestAnnos =>
3651981c77SbugGenerator  testAnnos = testAnnos :+ WriteVcdAnnotation
3751981c77SbugGenerator}
3851981c77SbugGenerator
3951981c77SbugGeneratortrait UseVerilatorBackend { this: HasTestAnnos =>
4051981c77SbugGenerator  testAnnos = testAnnos ++ Seq(VerilatorBackendAnnotation)
4151981c77SbugGenerator}