1730cfbc0SXuan Hupackage xiangshan.backend.fu.wrapper 2730cfbc0SXuan Hu 3*83ba63b3SXuan Huimport org.chipsalliance.cde.config.Parameters 4730cfbc0SXuan Huimport chisel3._ 578115a00SXuan Huimport xiangshan.backend.fu.{AluDataModule, PipedFuncUnit} 6730cfbc0SXuan Huimport xiangshan.backend.fu.FuConfig 7730cfbc0SXuan Hu 878115a00SXuan Huclass Alu(cfg: FuConfig)(implicit p: Parameters) extends PipedFuncUnit(cfg) { 9730cfbc0SXuan Hu private val aluModule = Module(new AluDataModule) 10730cfbc0SXuan Hu 116a35d972SXuan Hu private val flushed = io.in.bits.ctrl.robIdx.needFlush(io.flush) 12730cfbc0SXuan Hu 13730cfbc0SXuan Hu io.out.valid := io.in.valid 14730cfbc0SXuan Hu io.in.ready := io.out.ready 15730cfbc0SXuan Hu 16730cfbc0SXuan Hu private val in = io.in.bits 17730cfbc0SXuan Hu private val out = io.out.bits 18*83ba63b3SXuan Hu aluModule.io.src.zip(in.data.src).foreach { case (sink, source) => 19*83ba63b3SXuan Hu sink := source 20*83ba63b3SXuan Hu } 216a35d972SXuan Hu aluModule.io.func := in.ctrl.fuOpType 226a35d972SXuan Hu out.res.data := aluModule.io.result 23730cfbc0SXuan Hu} 24