Skip to content

Commit 600bc6c

Browse files
committed
feat: add abstract axi4 io
1 parent 6e110ed commit 600bc6c

File tree

2 files changed

+50
-30
lines changed

2 files changed

+50
-30
lines changed

rtl/tc_l2/src/main/scala/port/AXI4IO.scala

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

6-
class AXI4IO extends Bundle {
7-
val aw = new AXI4AWIO()
8-
val w = new AXI4WIO()
9-
val b = new AXI4BIO()
10-
val ar = new AXI4ARIO()
11-
val r = new AXI4RIO()
6+
class SOCAXI4ARWIO extends Bundle {
7+
val addr = Output(UInt(32.W))
8+
val id = Output(UInt(4.W))
9+
val len = Output(UInt(8.W))
10+
val size = Output(UInt(3.W))
11+
val burst = Output(UInt(2.W))
1212
}
1313

14-
class AXI4AWIO extends Bundle {
15-
val valid = Output(Bool())
16-
val ready = Input(Bool())
17-
val size = Output(UInt(3.W))
18-
val addr = Output(UInt(64.W))
14+
class AXI4ARWIO extends SOCAXI4ARWIO {
15+
override val addr = Output(UInt(64.W))
16+
val prot = Output(UInt(3.W))
17+
val user = Output(UInt(1.W))
18+
val lock = Output(Bool())
19+
val cache = Output(UInt(4.W))
20+
val qos = Output(UInt(4.W))
21+
}
22+
23+
class SOCAXI4WIO extends Bundle {
24+
val data = Output(UInt(64.W))
25+
val strb = Output(UInt(8.W))
26+
val last = Output(Bool())
1927
}
2028

21-
class AXI4WIO extends Bundle {
22-
val valid = Output(Bool())
23-
val ready = Input(Bool())
24-
val strb = Output(UInt(8.W))
25-
val data = Output(UInt(64.W))
29+
class AXI4WIO extends SOCAXI4WIO {}
30+
31+
class SOCAXI4BIO extends Bundle {
32+
val resp = Output(UInt(2.W))
33+
val id = Output(UInt(4.W))
2634
}
2735

28-
class AXI4BIO extends Bundle {
29-
val valid = Input(Bool())
30-
val ready = Output(Bool())
36+
class AXI4BIO extends SOCAXI4BIO {
37+
val user = Output(UInt(1.W))
3138
}
3239

33-
class AXI4ARIO extends Bundle {
34-
val valid = Output(Bool())
35-
val ready = Input(Bool())
36-
val size = Output(UInt(3.W))
37-
val addr = Output(UInt(64.W))
40+
class SOCAXI4RIO extends Bundle {
41+
val resp = Output(UInt(2.W))
42+
val data = Output(UInt(64.W))
43+
val last = Output(Bool())
44+
val id = Output(UInt(4.W))
3845
}
3946

40-
class AXI4RIO extends Bundle {
41-
val valid = Input(Bool())
42-
val ready = Output(Bool())
43-
val data = Input(UInt(64.W))
44-
}
47+
class AXI4RIO extends SOCAXI4RIO {
48+
val user = Output(UInt(1.W))
49+
}
50+
51+
class SOCAXI4IO extends Bundle {
52+
val aw = Decoupled(new SOCAXI4ARWIO)
53+
val w = Decoupled(new SOCAXI4WIO)
54+
val b = Flipped(Decoupled(new SOCAXI4BIO))
55+
val ar = Decoupled(new SOCAXI4ARWIO)
56+
val r = Flipped(Decoupled(new SOCAXI4RIO))
57+
}
58+
59+
class AXI4IO extends SOCAXI4IO {
60+
override val aw = Decoupled(new AXI4ARWIO)
61+
override val w = Decoupled(new AXI4WIO)
62+
override val b = Flipped(Decoupled(new AXI4BIO))
63+
override val ar = Decoupled(new AXI4ARWIO)
64+
override val r = Flipped(Decoupled(new AXI4RIO))
65+
}

rtl/tc_l2/src/main/scala/port/ISAIO.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,4 @@ class ISAIO extends Bundle {
6767
val SRET = Bool()
6868
val WFI = Bool()
6969
val SFENCE_VMA = Bool()
70-
val ILL = Bool()
7170
}

0 commit comments

Comments
 (0)