1package xiangshan 2 3import chisel3._ 4import org.chipsalliance.cde.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._ 12 13import top.{ArgParser, DefaultConfig} 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 IssQueSize = 12 23 ) 24 }) 25} 26 27trait HasTestAnnos { 28 var testAnnos: AnnotationSeq = Seq() 29} 30 31trait DumpVCD { this: HasTestAnnos => 32 testAnnos = testAnnos :+ WriteVcdAnnotation 33} 34 35trait UseVerilatorBackend { this: HasTestAnnos => 36 testAnnos = testAnnos ++ Seq(VerilatorBackendAnnotation) 37}