xref: /XiangShan/src/test/scala/xiangshan/backend/BackendMain.scala (revision b7d9e8d589a187d45332410b1502621885308bdf)
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