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