Skip to content

Commit 30adc75

Browse files
committed
refactor: add io and inst trait config to share common vars
1 parent 65b8b67 commit 30adc75

File tree

2 files changed

+27
-27
lines changed

2 files changed

+27
-27
lines changed

rtl/tc_l3/src/main/scala/core/ex/ALU.scala

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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(

rtl/tc_l3/src/main/scala/core/ex/BrCond.scala

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,23 @@ package treecorel3
33
import chisel._
44
import chisel.uitl._
55

6-
class BrCondIO(implicit p: Parameters) extends CoreBundle()(p) {
7-
val rs1 = Input(UInt(xlen.W))
8-
val rs2 = Input(UInt(xlen.W))
6+
class BrCondIO extends Bundle with IOConfig {
7+
val rs1 = Input(UInt(XLen.W))
8+
val rs2 = Input(UInt(XLen.W))
99
val br_type = Input(UInt(3.W))
1010
val taken = Output(Bool())
1111
}
1212

13-
class BrCond(implicit val p: Parameters) extends Module {
14-
val io = IO(new BrCondIO)
15-
val diff = io.rs1 - io.rs2
16-
val neq = diff.orR
17-
val eq = !neq
18-
val isSameSign = io.rs1(xlen - 1) === io.rs2(xlen - 1)
19-
val lt = Mux(isSameSign, diff(xlen - 1), io.rs1(xlen - 1))
20-
val ltu = Mux(isSameSign, diff(xlen - 1), io.rs2(xlen - 1))
21-
val ge = !lt
22-
val geu = !ltu
13+
class BrCond extends Module with InstConfig {
14+
val io = IO(new BrCondIO)
15+
protected val diff = io.rs1 - io.rs2
16+
protected val neq = diff.orR
17+
protected val eq = !neq
18+
protected val isSameSign = io.rs1(XLen - 1) === io.rs2(XLen - 1)
19+
protected val lt = Mux(isSameSign, diff(XLen - 1), io.rs1(XLen - 1))
20+
protected val ltu = Mux(isSameSign, diff(XLen - 1), io.rs2(XLen - 1))
21+
protected val ge = !lt
22+
protected val geu = !ltu
2323
io.taken :=
2424
((io.br_type === Control.BR_EQ) && eq) ||
2525
((io.br_type === Control.BR_NE) && neq) ||

0 commit comments

Comments
 (0)