@@ -3,42 +3,63 @@ package treecorel2
33import chisel3 ._
44import 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+ }
0 commit comments