1*3a76b099SXuan Hupackage xiangshan.utils 2*3a76b099SXuan Hu 3*3a76b099SXuan Huimport chisel3.emitVerilog 4*3a76b099SXuan Huimport chisel3.util.ValidIO 5*3a76b099SXuan Huimport top.ArgParser 6*3a76b099SXuan Huimport utils.PipeWithFlush 7*3a76b099SXuan Huimport xiangshan.{Redirect, XSCoreParamsKey, XSTileKey} 8*3a76b099SXuan Huimport xiangshan.backend.Bundles.DynInst 9*3a76b099SXuan Hu 10*3a76b099SXuan Huobject GenPipeWithFlush extends App { 11*3a76b099SXuan Hu println("Generating the VerilogPipeWithFlush hardware") 12*3a76b099SXuan Hu val (config, firrtlOpts, firrtlComplier, firtoolOpts) = ArgParser.parse(args) 13*3a76b099SXuan Hu val p = config.alterPartial({ case XSCoreParamsKey => config(XSTileKey).head }) 14*3a76b099SXuan Hu 15*3a76b099SXuan Hu emitVerilog( 16*3a76b099SXuan Hu new PipeWithFlush[DynInst, ValidIO[Redirect]]( 17*3a76b099SXuan Hu new DynInst()(p), 18*3a76b099SXuan Hu ValidIO(new Redirect()(p)), 19*3a76b099SXuan Hu 2, 20*3a76b099SXuan Hu (dynInst: DynInst, flush: ValidIO[Redirect]) => dynInst.robIdx.needFlush(flush) 21*3a76b099SXuan Hu ), 22*3a76b099SXuan Hu Array("--target-dir", "build/vifu")) 23*3a76b099SXuan Hu} 24