Skip to content

Commit 1219250

Browse files
committed
feat: add way io define
1 parent 04dee06 commit 1219250

File tree

1 file changed

+49
-9
lines changed

1 file changed

+49
-9
lines changed

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

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

6-
class CacheReqIO extends Bundle {
7-
//
8-
// |--------- tag ---------|---index---|--offset--|
9-
//
6+
object CacheConfig {
7+
val ICacheSize = (256 * 1024)
8+
val DCacheSize = (256 * 1024)
9+
val LineSize = 256
10+
val NWay = 4
11+
val NBAN = 4
12+
val IdLen = 1
13+
}
14+
15+
class CACHEREQIO extends Bundle {
1016
val addr = UInt(64.W)
1117
val data = UInt(64.W)
1218
val mask = UInt((64 / 8).W)
1319
val op = UInt(1.W) // 0: rd 1: wr
1420
}
1521

16-
class CacheRespIO extends Bundle {
22+
class CACHERESPIO extends Bundle {
1723
val data = UInt(64.W)
1824
val cmd = UInt(4.W)
1925
}
2026

21-
class MemReq extends Bundle {
27+
class MEMREQIO extends Bundle {
2228
val addr = UInt(64.W)
2329
val data = UInt(64.W)
2430
val cmd = UInt(4.W)
2531
val len = UInt(2.W) // 0: 1(64bits) 1: 2 2: 4 3: 8
26-
val id = UInt(4.W)
32+
val id = UInt(CacheConfig.IdLen.W)
2733
}
2834

29-
class MemResp extends Bundle {
35+
class MEMRESPIO extends Bundle {
3036
val data = UInt(64.W)
3137
val cmd = UInt(4.W)
32-
val id = UInt(4.W)
38+
val id = UInt(CacheConfig.IdLen.W)
39+
}
40+
41+
class WayIn(val tagWidth: Int, val idxWidth: Int, val offsetWidth: Int) extends Bundle {
42+
val wt = Valid(new Bundle {
43+
val tag = UInt(tagWidth.W)
44+
val idx = UInt(idxWidth.W)
45+
val offset = UInt(offsetWidth.W)
46+
val v = UInt(1.W)
47+
val d = UInt(1.W)
48+
val mask = UInt(((CacheConfig.LineSize / CacheConfig.NBank) / 8).W)
49+
val data = UInt(p(XLen).W)
50+
val op = UInt(1.W) // must 1
51+
})
52+
val rd = Valid(new Bundle {
53+
val idx = UInt(idxWidth.W)
54+
val op = UInt(1.W) // must 0
55+
})
56+
}
57+
58+
class WayOut(val tagWidth: Int) extends Bundle {
59+
val tag = UInt(tagWidth.W)
60+
val v = UInt(1.W)
61+
val d = UInt(1.W)
62+
val data = Vec(CacheConfig.NBank, UInt((CacheConfig.LineSize / CacheConfig.NBank).W))
63+
}
64+
65+
class CACHE2CPUIO extends Bundle {
66+
val req = Flipped(Decoupled(new CACHEREQIO))
67+
val resp = Valid(new CACHERESPIO)
68+
}
69+
70+
class CACHE2MEMIO extends Bundle {
71+
val req = Decoupled(new MEMREQIO)
72+
val resp = Flipped(Decoupled(new MEMRESPIO))
3373
}
3474

3575
class Cache extends Module {}

0 commit comments

Comments
 (0)