1package xiangshan.backend 2 3import chipsalliance.rocketchip.config.Parameters 4import freechips.rocketchip.diplomacy.LazyModule 5import top.{ArgParser, BaseConfig, Generator} 6import xiangshan.backend.regfile.IntPregParams 7import xiangshan.{XSCoreParameters, XSCoreParamsKey, XSTileKey} 8 9object BackendMain extends App { 10 override def main(args: Array[String]): Unit = { 11 val (config, firrtlOpts, firrtlComplier, firtoolOpts) = ArgParser.parse( 12 args :+ "--disable-always-basic-diff" :+ "--disable-all" :+ "--remove-assert" :+ "--fpga-platform") 13 14 val defaultConfig = config.alterPartial({ 15 // Get XSCoreParams and pass it to the "small module" 16 case XSCoreParamsKey => config(XSTileKey).head 17 }) 18 19 val backendParams = defaultConfig(XSCoreParamsKey).backendParams 20 val backend = LazyModule(new Backend(backendParams)(defaultConfig)) 21 22 Generator.execute( 23 firrtlOpts :+ "--full-stacktrace" :+ "--target-dir" :+ "backend", 24 backend.module, 25 firrtlComplier, 26 firtoolOpts 27 ) 28 println("done") 29 } 30} 31 32