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