xref: /XiangShan/src/test/scala/xiangshan/utils/GenPipeWithFlush.scala (revision 0c7ebb58175b51109677230e8cbab09e73166956)
13a76b099SXuan Hupackage xiangshan.utils
23a76b099SXuan Hu
33a76b099SXuan Huimport chisel3.emitVerilog
43a76b099SXuan Huimport chisel3.util.ValidIO
53a76b099SXuan Huimport top.ArgParser
63a76b099SXuan Huimport utils.PipeWithFlush
73a76b099SXuan Huimport xiangshan.{Redirect, XSCoreParamsKey, XSTileKey}
83a76b099SXuan Huimport xiangshan.backend.Bundles.DynInst
93a76b099SXuan Hu
103a76b099SXuan Huobject GenPipeWithFlush extends App {
113a76b099SXuan Hu  println("Generating the VerilogPipeWithFlush hardware")
126ce10964SXuan Hu  val (config, firrtlOpts, firtoolOpts) = ArgParser.parse(args)
133a76b099SXuan Hu  val p = config.alterPartial({ case XSCoreParamsKey => config(XSTileKey).head })
143a76b099SXuan Hu
15*0c7ebb58Sxiaofeibao-xjtu//  emitVerilog(
16*0c7ebb58Sxiaofeibao-xjtu//    new PipeWithFlush[DynInst, ValidIO[Redirect]](
17*0c7ebb58Sxiaofeibao-xjtu//      new DynInst()(p),
18*0c7ebb58Sxiaofeibao-xjtu//      ValidIO(new Redirect()(p)),
19*0c7ebb58Sxiaofeibao-xjtu//      2,
20*0c7ebb58Sxiaofeibao-xjtu//      (dynInst: DynInst, flush: ValidIO[Redirect], stage: Int) => dynInst.robIdx.needFlush(flush)
21*0c7ebb58Sxiaofeibao-xjtu//    ),
22*0c7ebb58Sxiaofeibao-xjtu//    Array("--target-dir", "build/vifu"))
233a76b099SXuan Hu}
24