1package xiangshan.backend.fu.wrapper 2 3import org.chipsalliance.cde.config.Parameters 4import chisel3._ 5import xiangshan.backend.fu.{AluDataModule, PipedFuncUnit} 6import xiangshan.backend.fu.FuConfig 7 8class Alu(cfg: FuConfig)(implicit p: Parameters) extends PipedFuncUnit(cfg) { 9 private val aluModule = Module(new AluDataModule) 10 11 private val flushed = io.in.bits.ctrl.robIdx.needFlush(io.flush) 12 13 io.out.valid := io.in.valid 14 io.in.ready := io.out.ready 15 16 private val in = io.in.bits 17 private val out = io.out.bits 18 aluModule.io.src.zip(in.data.src).foreach { case (sink, source) => 19 sink := source 20 } 21 aluModule.io.func := in.ctrl.fuOpType 22 out.res.data := aluModule.io.result 23} 24