Skip to content

Commit 37edc7f

Browse files
committed
style: modify the core var's name
1 parent f8fb484 commit 37edc7f

File tree

3 files changed

+37
-38
lines changed

3 files changed

+37
-38
lines changed

rtl/tc_l2/src/main/scala/common/InstConfig.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import chisel3.util._
66
trait InstConfig {
77
val SoCEna = false
88
val XLen = 64
9+
val flashStartAddr = "h0000000030000000".U(XLen.W)
10+
val simStartAddr = "h0000000080000000".U(XLen.W)
911
val diffStartBaseAddr = "h0000000080000000".U(XLen.W)
1012
val socStartBaseAddr = "h0000000000000000".U(XLen.W)
1113
val difftestAddrMask = "hfffffffffffffff8".U(XLen.W)

rtl/tc_l2/src/main/scala/core/TreeCoreL2.scala

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class TreeCoreL2 extends Module {
1919
protected val mau = Module(new MAU)
2020
protected val wbu = Module(new WBU)
2121

22+
// 1. switch base addr
23+
// 2. switch difftest access
2224
ifu.io.socEn := io.socEn
2325
wbu.io.socEn := io.socEn
2426

@@ -27,62 +29,57 @@ class TreeCoreL2 extends Module {
2729
idu.io.id2ex <> exu.io.id2ex
2830
exu.io.ex2mem <> mau.io.ex2mem
2931
mau.io.mem2wb <> wbu.io.mem2wb
30-
32+
// stall signal
3133
exu.io.stall <> idu.io.stall
3234
exu.io.stall <> ifu.io.stall
33-
3435
// branch prediction
3536
ifu.io.branchInfo <> exu.io.branchInfo
36-
3737
// bypass
3838
idu.io.wbdata <> wbu.io.wbdata
3939
exu.io.bypassMem <> mau.io.bypassMem
4040
exu.io.bypassWb <> wbu.io.wbdata
41-
exu.io.nxtPC <> ifu.io.nxtPC
42-
exu.io.mtip <> mau.io.mtip
41+
// misc
42+
idu.io.gpr <> wbu.io.gpr
43+
exu.io.nxtPC <> ifu.io.nxtPC
44+
exu.io.mtip <> mau.io.mtip
4345

46+
// stall
4447
protected val isStall = exu.io.stall
4548
protected val (tickCnt, cntWrap) = Counter(io.globalEn && isStall, 3)
46-
protected val stallCycle1 = isStall && (tickCnt === 0.U)
47-
protected val stallCycle2 = isStall && (tickCnt === 1.U)
48-
protected val stallCycle3 = isStall && (tickCnt === 2.U)
49-
50-
ifu.io.stall := stallCycle1
51-
idu.io.stall := stallCycle1
49+
protected val cyc1 = isStall && (tickCnt === 0.U)
50+
protected val cyc2 = isStall && (tickCnt === 1.U)
51+
protected val cyc3 = isStall && (tickCnt === 2.U)
5252

53+
ifu.io.stall := cyc1
54+
idu.io.stall := cyc1
5355
ifu.io.globalEn := io.globalEn
5456
idu.io.globalEn := io.globalEn
55-
exu.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
56-
mau.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
57-
wbu.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
57+
exu.io.globalEn := Mux(cyc1 || cyc2, false.B, io.globalEn)
58+
mau.io.globalEn := Mux(cyc1 || cyc2, false.B, io.globalEn)
59+
wbu.io.globalEn := Mux(cyc1 || cyc2, false.B, io.globalEn)
60+
idu.io.wbdata := Mux(cyc1 || cyc2, 0.U.asTypeOf(new WBDATAIO), wbu.io.wbdata)
61+
ifu.io.nxtPC := Mux(cyc1, exu.io.nxtPC, 0.U.asTypeOf(new NXTPCIO))
5862

59-
idu.io.wbdata := Mux(stallCycle1 || stallCycle2, 0.U.asTypeOf(new WBDATAIO), wbu.io.wbdata)
60-
ifu.io.nxtPC := Mux(stallCycle1, exu.io.nxtPC, 0.U.asTypeOf(new NXTPCIO))
61-
62-
protected val ldDataInStall = RegInit(0.U(64.W))
63+
// special judge
64+
protected val lsStall = RegEnable(cyc1, false.B, io.globalEn) || RegEnable(cyc2, false.B, io.globalEn)
65+
protected val ldDataReg = RegInit(0.U(64.W))
6366

6467
when(io.globalEn) {
65-
when(stallCycle1) {
66-
ldDataInStall := io.ld.data
67-
}.elsewhen(stallCycle3) {
68-
ldDataInStall := 0.U
68+
when(cyc1) {
69+
ldDataReg := io.ld.data
70+
}.elsewhen(cyc3) {
71+
ldDataReg := 0.U
6972
}
7073
}
7174

7275
// communicate with extern io
73-
io.fetch <> ifu.io.fetch
74-
75-
//Even load can change machine state
76-
protected val lsStall = RegEnable(stallCycle1, false.B, io.globalEn) || RegEnable(stallCycle2, false.B, io.globalEn)
76+
io.fetch <> ifu.io.fetch
7777
io.ld.en := mau.io.ld.en && ~lsStall
7878
io.ld.addr := mau.io.ld.addr
79-
mau.io.ld.data := Mux(lsStall, ldDataInStall, io.ld.data)
79+
mau.io.ld.data := Mux(lsStall, ldDataReg, io.ld.data)
8080
io.ld.size := mau.io.ld.size
81-
82-
io.sd.en := mau.io.sd.en && ~lsStall
83-
io.sd.addr := mau.io.sd.addr
84-
io.sd.data := mau.io.sd.data
85-
io.sd.mask := mau.io.sd.mask
86-
87-
idu.io.gpr <> wbu.io.gpr
81+
io.sd.en := mau.io.sd.en && ~lsStall
82+
io.sd.addr := mau.io.sd.addr
83+
io.sd.data := mau.io.sd.data
84+
io.sd.mask := mau.io.sd.mask
8885
}

rtl/tc_l2/src/main/scala/core/if/IFU.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ package treecorel2
33
import chisel3._
44
import chisel3.util._
55

6-
import treecorel2.common.ConstVal
6+
import treecorel2.common.{ConstVal, InstConfig}
77

8-
class IFU extends Module {
8+
class IFU extends Module with InstConfig {
99
val io = IO(new Bundle {
1010
val globalEn = Input(Bool())
1111
val stall = Input(Bool())
1212
val socEn = Input(Bool())
1313
val branchInfo = Flipped(new BRANCHIO)
14+
val nxtPC = Flipped(new NXTPCIO)
1415
val fetch = new IFIO
1516
val if2id = new IF2IDIO
16-
val nxtPC = Flipped(new NXTPCIO)
1717
})
1818

19-
protected val startAddr = Mux(io.socEn, "h0000000030000000".U(64.W), "h0000000080000000".U(64.W))
19+
protected val startAddr = Mux(io.socEn, flashStartAddr, simStartAddr)
2020
protected val valid = Mux(reset.asBool(), false.B, true.B)
2121
protected val inst = io.fetch.data
2222
protected val pc = RegInit(startAddr)

0 commit comments

Comments
 (0)