@@ -20,24 +20,24 @@ object ALU {
2020 val ALU_XXX = 15 .U (ALUOperLen .W )
2121}
2222
23- class ALUIO ( implicit p : Parameters ) extends Bundle {
24- val A = Input (UInt (xlen .W ))
25- val B = Input (UInt (xlen .W ))
23+ class ALUIO extends Bundle with IOConfig {
24+ val A = Input (UInt (XLen .W ))
25+ val B = Input (UInt (XLen .W ))
2626 val alu_op = Input (UInt (4 .W ))
27- val out = Output (UInt (xlen .W ))
28- val sum = Output (UInt (xlen .W ))
27+ val out = Output (UInt (XLen .W ))
28+ val sum = Output (UInt (XLen .W ))
2929}
3030
31- class ALU ( implicit p : Parameters ) extends Module {
32- val io = IO (new ALUIO )
33- val sum = io.A + Mux (io.alu_op(0 ), - io.B , io.B )
34- val cmp = Mux (io.A (xlen - 1 ) === io.B (xlen - 1 ), sum(xlen - 1 ), Mux (io.alu_op(1 ), io.B (xlen - 1 ), io.A (xlen - 1 )))
35- val shamt = io.B (4 , 0 ).asUInt
36- val shin = Mux (io.alu_op(3 ), io.A , Reverse (io.A ))
37- val shiftr = (Cat (io.alu_op(0 ) && shin(xlen - 1 ), shin).asSInt >> shamt)(xlen - 1 , 0 )
38- val shiftl = Reverse (shiftr)
31+ class ALU extends Module with InstConfig {
32+ val io = IO (new ALUIO )
33+ protected val sum = io.A + Mux (io.alu_op(0 ), - io.B , io.B )
34+ protected val cmp = Mux (io.A (XLen - 1 ) === io.B (XLen - 1 ), sum(XLen - 1 ), Mux (io.alu_op(1 ), io.B (XLen - 1 ), io.A (XLen - 1 )))
35+ protected val shamt = io.B (4 , 0 ).asUInt
36+ protected val shin = Mux (io.alu_op(3 ), io.A , Reverse (io.A ))
37+ protected val shiftr = (Cat (io.alu_op(0 ) && shin(XLen - 1 ), shin).asSInt >> shamt)(XLen - 1 , 0 )
38+ protected val shiftl = Reverse (shiftr)
3939
40- val out = MuxLookup (
40+ protected val out = MuxLookup (
4141 io.alu_op,
4242 io.B ,
4343 Seq (
0 commit comments