XSTester.scala (7f37d55fc418d3b4583220e634da7e459802c6d8) XSTester.scala (4b0d80d87574e82ba31737496d63ac30bed0d40a)
1package xiangshan
2
3import chisel3._
4import chiseltest._
5import chiseltest.{VerilatorBackendAnnotation, WriteVcdAnnotation}
6import chiseltest.simulator.{VerilatorCFlags, VerilatorFlags}
7import firrtl.AnnotationSeq
8import firrtl.stage.RunFirrtlTransformAnnotation
9import org.scalatest.flatspec._
10import org.scalatest.matchers.should._
1package xiangshan
2
3import chisel3._
4import chiseltest._
5import chiseltest.{VerilatorBackendAnnotation, WriteVcdAnnotation}
6import chiseltest.simulator.{VerilatorCFlags, VerilatorFlags}
7import firrtl.AnnotationSeq
8import firrtl.stage.RunFirrtlTransformAnnotation
9import org.scalatest.flatspec._
10import org.scalatest.matchers.should._
11
12import top.{ArgParser, DefaultConfig}
11import top.{ArgParser, DefaultConfig}
12import xiangshan.backend.regfile.IntPregParams
13
14abstract class XSTester extends AnyFlatSpec with ChiselScalatestTester with Matchers with HasTestAnnos {
15 behavior of "XiangShan Module"
16 val defaultConfig = (new DefaultConfig)
17 implicit val config = defaultConfig.alterPartial({
18 // Get XSCoreParams and pass it to the "small module"
19 case XSCoreParamsKey => defaultConfig(XSTileKey).head.copy(
20 // Example of how to change params
13
14abstract class XSTester extends AnyFlatSpec with ChiselScalatestTester with Matchers with HasTestAnnos {
15 behavior of "XiangShan Module"
16 val defaultConfig = (new DefaultConfig)
17 implicit val config = defaultConfig.alterPartial({
18 // Get XSCoreParams and pass it to the "small module"
19 case XSCoreParamsKey => defaultConfig(XSTileKey).head.copy(
20 // Example of how to change params
21 IssQueSize = 12
21 intPreg = IntPregParams(
22 numEntries = 64,
23 numRead = Some(14),
24 numWrite = Some(8),
25 ),
22 )
23 })
24}
25
26trait HasTestAnnos {
27 var testAnnos: AnnotationSeq = Seq()
28}
29
30trait DumpVCD { this: HasTestAnnos =>
31 testAnnos = testAnnos :+ WriteVcdAnnotation
32}
33
34trait UseVerilatorBackend { this: HasTestAnnos =>
35 testAnnos = testAnnos ++ Seq(VerilatorBackendAnnotation)
36}
26 )
27 })
28}
29
30trait HasTestAnnos {
31 var testAnnos: AnnotationSeq = Seq()
32}
33
34trait DumpVCD { this: HasTestAnnos =>
35 testAnnos = testAnnos :+ WriteVcdAnnotation
36}
37
38trait UseVerilatorBackend { this: HasTestAnnos =>
39 testAnnos = testAnnos ++ Seq(VerilatorBackendAnnotation)
40}