OpenCores
URL https://opencores.org/ocsvn/qaz_libs/qaz_libs/trunk

Subversion Repositories qaz_libs

[/] [qaz_libs/] [trunk/] [axi4_lib/] [src/] [axi4_if.sv] - Blame information for rev 36

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 23 qaztronic
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
//// Copyright (C) 2015 Authors and OPENCORES.ORG                 ////
4
////                                                              ////
5
//// This source file may be used and distributed without         ////
6
//// restriction provided that this copyright statement is not    ////
7
//// removed from the file and that any derivative work contains  ////
8
//// the original copyright notice and the associated disclaimer. ////
9
////                                                              ////
10
//// This source file is free software; you can redistribute it   ////
11
//// and/or modify it under the terms of the GNU Lesser General   ////
12
//// Public License as published by the Free Software Foundation; ////
13
//// either version 2.1 of the License, or (at your option) any   ////
14
//// later version.                                               ////
15
////                                                              ////
16
//// This source is distributed in the hope that it will be       ////
17
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
18
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
19
//// PURPOSE.  See the GNU Lesser General Public License for more ////
20
//// details.                                                     ////
21
////                                                              ////
22
//// You should have received a copy of the GNU Lesser General    ////
23
//// Public License along with this source; if not, download it   ////
24
//// from http://www.opencores.org/lgpl.shtml                     ////
25
////                                                              ////
26
//////////////////////////////////////////////////////////////////////
27
 
28
 
29
interface
30
  axi4_if
31
  #(
32 29 qaztronic
    A = 32, // address bus width
33
    N = 8,  // data bus width in bytes
34
    I = 1   // ID width
35 23 qaztronic
  )
36
  (
37 29 qaztronic
    input           aresetn,
38
    input           aclk
39 23 qaztronic
  );
40
 
41 31 qaztronic
  wire [(A-1):0]    araddr;
42
  wire [1:0]        arburst;
43
  wire [3:0]        arcache;
44
  wire [(I-1):0]    arid;
45
  wire [7:0]        arlen;
46
  wire              arlock;
47
  wire [2:0]        arprot;
48
  wire [3:0]        arqos;
49
  wire              arready;
50
  wire [3:0]        arregion;
51
  wire [2:0]        arsize;
52
  wire              arvalid;
53
  wire [(A-1):0]    awaddr;
54
  wire [1:0]        awburst;
55
  wire [3:0]        awcache;
56
  wire [(I-1):0]    awid;
57
  wire [7:0]        awlen;
58
  wire              awlock;
59
  wire [2:0]        awprot;
60
  wire [3:0]        awqos;
61
  wire              awready;
62
  wire [3:0]        awregion;
63
  wire [2:0]        awsize;
64
  wire              awvalid;
65
  wire [(I-1):0]    bid;
66
  wire              bready;
67
  wire [1:0]        bresp;
68
  wire              bvalid;
69
  wire [(8*N)-1:0]  rdata;
70
  wire [(I-1):0]    rid;
71
  wire              rlast;
72
  wire              rready;
73
  wire [1:0]        rresp;
74
  wire              rvalid;
75
  wire [(8*N)-1:0]  wdata;
76
  wire [(I-1):0]    wid;
77
  wire              wlast;
78
  wire              wready;
79
  wire [N-1:0]      wstrb;
80
  wire              wvalid;
81 23 qaztronic
 
82
 
83 29 qaztronic
// --------------------------------------------------------------------
84 31 qaztronic
// synthesis translate_off
85
  clocking cb_s @(posedge aclk);
86
    input   arid;
87
    input   araddr;
88
    input   arburst;
89
    input   arcache;
90
    input   awid;
91
    input   arlen;
92
    input   arlock;
93
    input   arprot;
94
    input   arqos;
95
    output  arready;
96
    input   arregion;
97
    input   arsize;
98
    input   arvalid;
99
    input   awaddr;
100
    input   awburst;
101
    input   awcache;
102
    input   awlen;
103
    input   awlock;
104
    input   awprot;
105
    input   awqos;
106
    output  awready;
107
    input   awregion;
108
    input   awsize;
109
    input   awvalid;
110
    input   bready;
111
    output  bid;
112
    output  bresp;
113
    output  bvalid;
114
    output  rdata;
115
    output  rid;
116
    output  rlast;
117
    input   rready;
118
    output  rresp;
119
    output  rvalid;
120
    input   wdata;
121
    input   wid;
122
    input   wlast;
123
    output  wready;
124
    input   wstrb;
125
    input   wvalid;
126
    input   aresetn;
127
    input   aclk;
128
  endclocking
129
 
130
 
131
  // --------------------------------------------------------------------
132
  //
133
  default clocking cb_m @(posedge aclk);
134
    output  arid;
135
    output  araddr;
136
    output  arburst;
137
    output  arcache;
138
    output  awid;
139
    output  arlen;
140
    output  arlock;
141
    output  arprot;
142
    output  arqos;
143
    input   arready;
144
    output  arregion;
145
    output  arsize;
146
    output  arvalid;
147
    output  awaddr;
148
    output  awburst;
149
    output  awcache;
150
    output  awlen;
151
    output  awlock;
152
    output  awprot;
153
    output  awqos;
154
    input   awready;
155
    output  awregion;
156
    output  awsize;
157
    output  awvalid;
158
    output  bready;
159
    input   bid;
160
    input   bresp;
161
    input   bvalid;
162
    input   rdata;
163
    input   rid;
164
    input   rlast;
165
    output  rready;
166
    input   rresp;
167
    input   rvalid;
168
    output  wdata;
169
    output  wid;
170
    output  wlast;
171
    input   wready;
172
    output  wstrb;
173
    output  wvalid;
174
    input   aresetn;
175
    input   aclk;
176
  endclocking
177
// synthesis translate_on
178
// --------------------------------------------------------------------
179
 
180
 
181
  // --------------------------------------------------------------------
182
  //
183
`ifdef USE_MOD_PORTS
184
  // --------------------------------------------------------------------
185
  //
186
    modport
187
      slave
188
      (
189
// --------------------------------------------------------------------
190
// synthesis translate_off
191
        clocking  cb_s,
192
// synthesis translate_on
193
// --------------------------------------------------------------------
194
        input   arid,
195
        input   araddr,
196
        input   arburst,
197
        input   arcache,
198
        input   awid,
199
        input   arlen,
200
        input   arlock,
201
        input   arprot,
202
        input   arqos,
203
        output  arready,
204
        input   arregion,
205
        input   arsize,
206
        input   arvalid,
207
        input   awaddr,
208
        input   awburst,
209
        input   awcache,
210
        input   awlen,
211
        input   awlock,
212
        input   awprot,
213
        input   awqos,
214
        output  awready,
215
        input   awregion,
216
        input   awsize,
217
        input   awvalid,
218
        input   bready,
219
        output  bid,
220
        output  bresp,
221
        output  bvalid,
222
        output  rdata,
223
        output  rid,
224
        output  rlast,
225
        input   rready,
226
        output  rresp,
227
        output  rvalid,
228
        input   wdata,
229
        input   wid,
230
        input   wlast,
231
        output  wready,
232
        input   wstrb,
233
        input   wvalid,
234
        input   aresetn,
235
        input   aclk
236
      );
237
 
238
 
239
  // --------------------------------------------------------------------
240
  //
241
    modport
242
      master
243
      (
244
// --------------------------------------------------------------------
245
// synthesis translate_off
246
        clocking  cb_m,
247
// synthesis translate_on
248
// --------------------------------------------------------------------
249
        output  arid,
250
        output  araddr,
251
        output  arburst,
252
        output  arcache,
253
        output  awid,
254
        output  arlen,
255
        output  arlock,
256
        output  arprot,
257
        output  arqos,
258
        input   arready,
259
        output  arregion,
260
        output  arsize,
261
        output  arvalid,
262
        output  awaddr,
263
        output  awburst,
264
        output  awcache,
265
        output  awlen,
266
        output  awlock,
267
        output  awprot,
268
        output  awqos,
269
        input   awready,
270
        output  awregion,
271
        output  awsize,
272
        output  awvalid,
273
        output  bready,
274
        input   bid,
275
        input   bresp,
276
        input   bvalid,
277
        input   rdata,
278
        input   rid,
279
        input   rlast,
280
        output  rready,
281
        input   rresp,
282
        input   rvalid,
283
        output  wdata,
284
        output  wlast,
285
        input   wready,
286
        output  wstrb,
287
        output  wvalid,
288
        input   aresetn,
289
        input   aclk
290
      );
291
`endif
292
 
293
 
294
// --------------------------------------------------------------------
295
// synthesis translate_off
296
  task
297
    zero_cycle_delay;
298
 
299
    ##0;
300
 
301
  endtask: zero_cycle_delay
302
// synthesis translate_on
303
// --------------------------------------------------------------------
304
 
305
 
306
// --------------------------------------------------------------------
307 29 qaztronic
//
308
 
309
endinterface
310
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.