Skip to content

Commit b8553db

Browse files
committed
style: change if, id, ex and ma stage's name
1 parent 101c6f1 commit b8553db

File tree

1 file changed

+99
-99
lines changed

1 file changed

+99
-99
lines changed
Lines changed: 99 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,99 @@
1-
package treecorel2
2-
3-
import chisel3._
4-
import chisel3.util._
5-
import difftest._
6-
7-
class TreeCoreL2 extends Module {
8-
val io = IO(new Bundle {
9-
val globalEn = Input(Bool())
10-
val socEn = Input(Bool())
11-
val fetch = new IFIO
12-
val ld = new LDIO
13-
val sd = new SDIO
14-
15-
// difftest
16-
val instComm = Flipped(new DiffInstrCommitIO)
17-
val archIntRegState = Flipped(new DiffArchIntRegStateIO)
18-
val csrState = Flipped(new DiffCSRStateIO)
19-
val trapEvt = Flipped(new DiffTrapEventIO)
20-
val archFpRegState = Flipped(new DiffArchFpRegStateIO)
21-
val archEvt = Flipped(new DiffArchEventIO)
22-
})
23-
24-
protected val ifUnit = Module(new IFU)
25-
protected val idUnit = Module(new InstDecode)
26-
protected val execUnit = Module(new EXU)
27-
protected val maUnit = Module(new Memory)
28-
protected val wbUnit = Module(new WriteBack)
29-
30-
ifUnit.io.socEn := io.socEn
31-
wbUnit.io.socEn := io.socEn
32-
33-
// datapath
34-
ifUnit.io.if2id <> idUnit.io.if2id
35-
idUnit.io.id2ex <> execUnit.io.id2ex
36-
execUnit.io.ex2mem <> maUnit.io.ex2mem
37-
maUnit.io.mem2wb <> wbUnit.io.mem2wb
38-
39-
execUnit.io.stall <> idUnit.io.stall
40-
execUnit.io.stall <> ifUnit.io.stall
41-
42-
// bypass
43-
idUnit.io.wbdata <> wbUnit.io.wbdata
44-
execUnit.io.bypassMem <> maUnit.io.bypassMem
45-
execUnit.io.bypassWb <> wbUnit.io.wbdata
46-
execUnit.io.nxtPC <> ifUnit.io.nxtPC
47-
execUnit.io.mtip <> maUnit.io.mtip
48-
49-
protected val isStall = execUnit.io.stall
50-
protected val (tickCnt, cntWrap) = Counter(io.globalEn && isStall, 3)
51-
protected val stallCycle1 = isStall && (tickCnt === 0.U)
52-
protected val stallCycle2 = isStall && (tickCnt === 1.U)
53-
protected val stallCycle3 = isStall && (tickCnt === 2.U)
54-
55-
ifUnit.io.stall := stallCycle1
56-
idUnit.io.stall := stallCycle1
57-
58-
ifUnit.io.globalEn := io.globalEn
59-
idUnit.io.globalEn := io.globalEn
60-
execUnit.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
61-
maUnit.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
62-
wbUnit.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
63-
64-
idUnit.io.wbdata := Mux(stallCycle1 || stallCycle2, 0.U.asTypeOf(new WBDATAIO), wbUnit.io.wbdata)
65-
ifUnit.io.nxtPC := Mux(stallCycle1, execUnit.io.nxtPC, 0.U.asTypeOf(new NXTPCIO))
66-
67-
protected val ldDataInStall = RegInit(0.U(64.W))
68-
69-
when(io.globalEn) {
70-
when(stallCycle1) {
71-
ldDataInStall := io.ld.data
72-
}.elsewhen(stallCycle3) {
73-
ldDataInStall := 0.U
74-
}
75-
}
76-
77-
// communicate with extern io
78-
io.fetch <> ifUnit.io.fetch
79-
80-
//Even load can change machine state
81-
protected val lsStall = RegEnable(stallCycle1, false.B, io.globalEn) || RegEnable(stallCycle2, false.B, io.globalEn)
82-
io.ld.en := maUnit.io.ld.en && ~lsStall
83-
io.ld.addr := maUnit.io.ld.addr
84-
maUnit.io.ld.data := Mux(lsStall, ldDataInStall, io.ld.data)
85-
io.ld.size := maUnit.io.ld.size
86-
87-
io.sd.en := maUnit.io.sd.en && ~lsStall
88-
io.sd.addr := maUnit.io.sd.addr
89-
io.sd.data := maUnit.io.sd.data
90-
io.sd.mask := maUnit.io.sd.mask
91-
92-
idUnit.io.gpr <> wbUnit.io.gpr
93-
io.instComm <> wbUnit.io.instComm
94-
io.archIntRegState <> wbUnit.io.archIntRegState
95-
io.csrState <> wbUnit.io.csrState
96-
io.trapEvt <> wbUnit.io.trapEvt
97-
io.archFpRegState <> wbUnit.io.archFpRegState
98-
io.archEvt <> wbUnit.io.archEvt
99-
}
1+
package treecorel2
2+
3+
import chisel3._
4+
import chisel3.util._
5+
import difftest._
6+
7+
class TreeCoreL2 extends Module {
8+
val io = IO(new Bundle {
9+
val globalEn = Input(Bool())
10+
val socEn = Input(Bool())
11+
val fetch = new IFIO
12+
val ld = new LDIO
13+
val sd = new SDIO
14+
15+
// difftest
16+
val instComm = Flipped(new DiffInstrCommitIO)
17+
val archIntRegState = Flipped(new DiffArchIntRegStateIO)
18+
val csrState = Flipped(new DiffCSRStateIO)
19+
val trapEvt = Flipped(new DiffTrapEventIO)
20+
val archFpRegState = Flipped(new DiffArchFpRegStateIO)
21+
val archEvt = Flipped(new DiffArchEventIO)
22+
})
23+
24+
protected val ifu = Module(new IFU)
25+
protected val idu = Module(new IDU)
26+
protected val exu = Module(new EXU)
27+
protected val mau = Module(new Memory)
28+
protected val wbu = Module(new WriteBack)
29+
30+
ifu.io.socEn := io.socEn
31+
wbu.io.socEn := io.socEn
32+
33+
// datapath
34+
ifu.io.if2id <> idu.io.if2id
35+
idu.io.id2ex <> exu.io.id2ex
36+
exu.io.ex2mem <> mau.io.ex2mem
37+
mau.io.mem2wb <> wbu.io.mem2wb
38+
39+
exu.io.stall <> idu.io.stall
40+
exu.io.stall <> ifu.io.stall
41+
42+
// bypass
43+
idu.io.wbdata <> wbu.io.wbdata
44+
exu.io.bypassMem <> mau.io.bypassMem
45+
exu.io.bypassWb <> wbu.io.wbdata
46+
exu.io.nxtPC <> ifu.io.nxtPC
47+
exu.io.mtip <> mau.io.mtip
48+
49+
protected val isStall = exu.io.stall
50+
protected val (tickCnt, cntWrap) = Counter(io.globalEn && isStall, 3)
51+
protected val stallCycle1 = isStall && (tickCnt === 0.U)
52+
protected val stallCycle2 = isStall && (tickCnt === 1.U)
53+
protected val stallCycle3 = isStall && (tickCnt === 2.U)
54+
55+
ifu.io.stall := stallCycle1
56+
idu.io.stall := stallCycle1
57+
58+
ifu.io.globalEn := io.globalEn
59+
idu.io.globalEn := io.globalEn
60+
exu.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
61+
mau.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
62+
wbu.io.globalEn := Mux(stallCycle1 || stallCycle2, false.B, io.globalEn)
63+
64+
idu.io.wbdata := Mux(stallCycle1 || stallCycle2, 0.U.asTypeOf(new WBDATAIO), wbu.io.wbdata)
65+
ifu.io.nxtPC := Mux(stallCycle1, exu.io.nxtPC, 0.U.asTypeOf(new NXTPCIO))
66+
67+
protected val ldDataInStall = RegInit(0.U(64.W))
68+
69+
when(io.globalEn) {
70+
when(stallCycle1) {
71+
ldDataInStall := io.ld.data
72+
}.elsewhen(stallCycle3) {
73+
ldDataInStall := 0.U
74+
}
75+
}
76+
77+
// communicate with extern io
78+
io.fetch <> ifu.io.fetch
79+
80+
//Even load can change machine state
81+
protected val lsStall = RegEnable(stallCycle1, false.B, io.globalEn) || RegEnable(stallCycle2, false.B, io.globalEn)
82+
io.ld.en := mau.io.ld.en && ~lsStall
83+
io.ld.addr := mau.io.ld.addr
84+
mau.io.ld.data := Mux(lsStall, ldDataInStall, io.ld.data)
85+
io.ld.size := mau.io.ld.size
86+
87+
io.sd.en := mau.io.sd.en && ~lsStall
88+
io.sd.addr := mau.io.sd.addr
89+
io.sd.data := mau.io.sd.data
90+
io.sd.mask := mau.io.sd.mask
91+
92+
idu.io.gpr <> wbu.io.gpr
93+
io.instComm <> wbu.io.instComm
94+
io.archIntRegState <> wbu.io.archIntRegState
95+
io.csrState <> wbu.io.csrState
96+
io.trapEvt <> wbu.io.trapEvt
97+
io.archFpRegState <> wbu.io.archFpRegState
98+
io.archEvt <> wbu.io.archEvt
99+
}

0 commit comments

Comments
 (0)