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") 12*6ce10964SXuan Hu val (config, firrtlOpts, firtoolOpts) = ArgParser.parse(args) 133a76b099SXuan Hu val p = config.alterPartial({ case XSCoreParamsKey => config(XSTileKey).head }) 143a76b099SXuan Hu 153a76b099SXuan Hu emitVerilog( 163a76b099SXuan Hu new PipeWithFlush[DynInst, ValidIO[Redirect]]( 173a76b099SXuan Hu new DynInst()(p), 183a76b099SXuan Hu ValidIO(new Redirect()(p)), 193a76b099SXuan Hu 2, 20493a9370SHaojin Tang (dynInst: DynInst, flush: ValidIO[Redirect], stage: Int) => dynInst.robIdx.needFlush(flush) 213a76b099SXuan Hu ), 223a76b099SXuan Hu Array("--target-dir", "build/vifu")) 233a76b099SXuan Hu} 24