File tree Expand file tree Collapse file tree 2 files changed +242
-0
lines changed Expand file tree Collapse file tree 2 files changed +242
-0
lines changed Original file line number Diff line number Diff line change
1
+ // ------------------------------------------------------------------------------
2
+ // axi4_if.sv
3
+ // published as part of https://github.com/pConst/basic_verilog
4
+ // Konstantin Pavlov, pavlovconst@gmail.com
5
+ // ------------------------------------------------------------------------------
6
+
7
+
8
+ // INFO ------------------------------------------------------------------------
9
+ // AXI4-M instantiation
10
+ //
11
+
12
+
13
+ interface axi4_if # ( parameter
14
+ ADDR_W = 32 ,
15
+ DATA_W = 32 ,
16
+
17
+ ID_W = 8 ,
18
+
19
+ ARUSER_W = 0 ,
20
+ AWUSER_W = 0 ,
21
+ BUSER_W = 0 ,
22
+ RUSER_W = 0 ,
23
+ WUSER_W = 0
24
+ );
25
+
26
+
27
+ localparam STRB_W = DATA_W / 8 ;
28
+
29
+ logic [ ADDR_W - 1 : 0 ] araddr;
30
+ logic [ 1 : 0 ] arburst;
31
+ logic [ 3 : 0 ] arcache;
32
+ logic [ ID_W - 1 : 0 ] arid;
33
+ logic [ 7 : 0 ] arlen;
34
+ logic [ 1 : 0 ] arlock;
35
+ logic [ 2 : 0 ] arprot;
36
+ logic [ 3 : 0 ] arqos;
37
+ logic arready;
38
+ logic [ 3 : 0 ] arregion;
39
+ logic [ 2 : 0 ] arsize;
40
+ logic [ARUSER_W - 1 : 0 ] aruser;
41
+ logic arvalid;
42
+
43
+ logic [ ADDR_W - 1 : 0 ] awaddr;
44
+ logic [ 1 : 0 ] awburst;
45
+ logic [ 3 : 0 ] awcache;
46
+ logic [ ID_W - 1 : 0 ] awid;
47
+ logic [ 7 : 0 ] awlen;
48
+ logic [ 1 : 0 ] awlock;
49
+ logic [ 2 : 0 ] awprot;
50
+ logic [ 3 : 0 ] awqos;
51
+ logic awready;
52
+ logic [ 3 : 0 ] awregion;
53
+ logic [ 2 : 0 ] awsize;
54
+ logic [AWUSER_W - 1 : 0 ] awuser;
55
+ logic awvalid;
56
+
57
+ logic [ ID_W - 1 : 0 ] bid;
58
+ logic bready;
59
+ logic [ 1 : 0 ] bresp;
60
+ logic [ BUSER_W - 1 : 0 ] buser;
61
+ logic bvalid;
62
+
63
+ logic [ DATA_W - 1 : 0 ] rdata;
64
+ logic [ ID_W - 1 : 0 ] rid;
65
+ logic rlast;
66
+ logic rready;
67
+ logic [ 1 : 0 ] rres
68
+ logic [ RUSER_W - 1 : 0 ] ruser;
69
+ logic rvalid;
70
+
71
+ logic [ DATA_W - 1 : 0 ] wdata;
72
+ logic wid;
73
+ logic wlast;
74
+ logic wready;
75
+ logic [ STRB_W - 1 : 0 ] wstrb;
76
+ logic [ WUSER_W - 1 : 0 ] wuser;
77
+ logic wvalid;
78
+
79
+
80
+ modport master (
81
+
82
+ input arready,
83
+ input awready,
84
+ input bid,
85
+ input bresp,
86
+ input bvalid,
87
+ input rdata,
88
+ input rid,
89
+ input rlast,
90
+ input rresp,
91
+ input rvalid,
92
+ input wready,
93
+
94
+ output araddr,
95
+ output arburst,
96
+ output arcache,
97
+ output arid,
98
+ output arlen,
99
+ output arlock,
100
+ output arprot,
101
+ output arqos,
102
+ output arregion,
103
+ output arsize,
104
+ output aruser,
105
+ output arvalid,
106
+ output awaddr,
107
+ output awburst,
108
+ output awcache,
109
+ output awid,
110
+ output awlen,
111
+ output awlock,
112
+ output awprot,
113
+ output awqos,
114
+ output awregion,
115
+ output awsize,
116
+ output awuser,
117
+ output awvalid,
118
+ output bready,
119
+ output buser,
120
+ output rready,
121
+ output ruser,
122
+ output wdata,
123
+ output wid,
124
+ output wlast,
125
+ output wstrb,
126
+ output wuser,
127
+ output wvalid
128
+ );
129
+
130
+
131
+ modport slave (
132
+
133
+ input araddr,
134
+ input arburst,
135
+ input arcache,
136
+ input arid,
137
+ input arlen,
138
+ input arlock,
139
+ input arprot,
140
+ input arqos,
141
+ input arregion,
142
+ input arsize,
143
+ input aruser,
144
+ input arvalid,
145
+ input awaddr,
146
+ input awburst,
147
+ input awcache,
148
+ input awid,
149
+ input awlen,
150
+ input awlock,
151
+ input awprot,
152
+ input awqos,
153
+ input awregion,
154
+ input awsize,
155
+ input awuser,
156
+ input awvalid,
157
+ input bready,
158
+ input buser,
159
+ input rready,
160
+ input ruser,
161
+ input wdata,
162
+ input wid,
163
+ input wlast,
164
+ input wstrb,
165
+ input wuser,
166
+ input wvalid,
167
+
168
+ output arready,
169
+ output awready,
170
+ output bid,
171
+ output bresp,
172
+ output bvalid,
173
+ output rdata,
174
+ output rid,
175
+ output rlast,
176
+ output rresp,
177
+ output rvalid,
178
+ output wready
179
+ );
180
+
181
+
182
+ endinterface
183
+
Original file line number Diff line number Diff line change
1
+ // ------------------------------------------------------------------------------
2
+ // axis_if.sv
3
+ // published as part of https://github.com/pConst/basic_verilog
4
+ // Konstantin Pavlov, pavlovconst@gmail.com
5
+ // ------------------------------------------------------------------------------
6
+
7
+
8
+ // INFO ------------------------------------------------------------------------
9
+ // AXI4-Stream instantiation
10
+ //
11
+
12
+
13
+ interface axis_if # ( parameter
14
+ DATA_W = 32 ,
15
+ ID_W = 8 ,
16
+ USER_W = 0
17
+ );
18
+
19
+
20
+ logic [ DATA_W - 1 : 0 ] tdata;
21
+ logic [ ID_W - 1 : 0 ] tdest;
22
+ logic [ ID_W - 1 : 0 ] tid;
23
+ logic [ DATA_W / 8 - 1 : 0 ] tkeep;
24
+ logic tlast;
25
+ logic tready;
26
+ logic [ USER_W - 1 : 0 ] tuser;
27
+ logic tvalid;
28
+
29
+
30
+ modport master (
31
+
32
+ input tready,
33
+
34
+ output tdata,
35
+ output tdest,
36
+ output tid,
37
+ output tkeep,
38
+ output tlast,
39
+ output tuser,
40
+ output tvalid
41
+ );
42
+
43
+
44
+ modport slave (
45
+
46
+ input tdata,
47
+ input tdest,
48
+ input tid,
49
+ input tkeep,
50
+ input tlast,
51
+ input tuser,
52
+ input tvalid,
53
+
54
+ output tready
55
+ );
56
+
57
+
58
+ endinterface
59
+
You can’t perform that action at this time.
0 commit comments