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

Subversion Repositories plb2wbbridge

[/] [plb2wbbridge/] [trunk/] [systems/] [EDK_Libs/] [WishboneIPLib/] [pcores/] [wb_conbus_v1_00_a/] [hdl/] [verilog/] [wb_conbus_wrapper.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 feddischso
 
2
 
3
 
4
 
5
module wb_conbus_wrapper(
6
 
7
  wb_clk_i,
8
  wb_rst_i,
9
 
10
  wb_m_dat_i,
11
  wb_m_dat_o,
12
  wb_m_adr_i,
13
  wb_m_sel_i,
14
  wb_m_we_i,
15
  wb_m_cyc_i,
16
  wb_m_stb_i,
17
  wb_m_ack_o,
18
  wb_m_err_o,
19
  wb_m_rty_o,
20
  wb_m_cab_i,
21
 
22
  wb_s_dat_i,
23
  wb_s_dat_o,
24
  wb_s_adr_o,
25
  wb_s_sel_o,
26
  wb_s_we_o,
27
  wb_s_cyc_o,
28
  wb_s_stb_o,
29
  wb_s_ack_i,
30
  wb_s_err_i,
31
  wb_s_rty_i,
32
  wb_s_cab_o
33
 
34
 
35
);
36
 
37
 
38
 
39
//////  MUST BE CONSTANT:  DON'T CHANGE THIS!! ///
40
parameter      WB_DAT_W       = 32;    // Data bus Width
41
parameter      WB_ADR_W       = 32;    // Address bus Width
42
parameter      wb_num_masters = 8;     // number of masters
43
parameter      wb_num_slaves  = 8;     // number of slavers
44
/////////
45
parameter      wb_s0_addr_w   = 4 ;    // slave 0 address decode width
46
parameter      wb_s0_addr     = 4'h0;  // slave 0 address
47
parameter      wb_s1_addr_w   = 4 ;    // slave 1 address decode width
48
parameter      wb_s1_addr     = 4'h1;  // slave 1 address 
49
parameter      wb_s27_addr_w  = 8 ;    // slave 2 to slave 7 address decode width
50
parameter      wb_s2_addr     = 8'h92; // slave 2 address
51
parameter      wb_s3_addr     = 8'h93; // slave 3 address
52
parameter      wb_s4_addr     = 8'h94; // slave 4 address
53
parameter      wb_s5_addr     = 8'h95; // slave 5 address
54
parameter      wb_s6_addr     = 8'h96; // slave 6 address
55
parameter      wb_s7_addr     = 8'h97; // slave 7 address
56
 
57
 
58
 
59
input                                             wb_clk_i;
60
input                                             wb_rst_i;
61
input    [(WB_DAT_W*wb_num_masters)-1     : 0 ]   wb_m_dat_i;
62
output   [WB_DAT_W-1                      : 0 ]   wb_m_dat_o;
63
input    [(WB_ADR_W*wb_num_masters)-1     : 0 ]   wb_m_adr_i;
64
input    [(WB_DAT_W/8*wb_num_masters)-1   : 0 ]   wb_m_sel_i;
65
input    [wb_num_masters-1                : 0 ]   wb_m_we_i;
66
input    [wb_num_masters-1                : 0 ]   wb_m_cyc_i;
67
input    [wb_num_masters-1                : 0 ]   wb_m_stb_i;
68
output   [wb_num_masters-1                : 0 ]   wb_m_ack_o;
69
output   [wb_num_masters-1                : 0 ]   wb_m_err_o;
70
output   [wb_num_masters-1                : 0 ]   wb_m_rty_o;
71
input    [wb_num_masters-1                : 0 ]   wb_m_cab_i;
72
 
73
input    [WB_DAT_W*wb_num_slaves-1        : 0 ]   wb_s_dat_i;
74
output   [WB_DAT_W-1                      : 0 ]   wb_s_dat_o;
75
output   [WB_ADR_W-1                      : 0 ]   wb_s_adr_o;
76
output   [WB_DAT_W/8-1                    : 0 ]   wb_s_sel_o;
77
output                                            wb_s_we_o;
78
output                                            wb_s_cyc_o;
79
output   [wb_num_slaves-1                 : 0 ]   wb_s_stb_o;
80
input    [wb_num_slaves-1                 : 0 ]   wb_s_ack_i;
81
input    [wb_num_slaves-1                 : 0 ]   wb_s_err_i;
82
input    [wb_num_slaves-1                 : 0 ]   wb_s_rty_i;
83
output                                            wb_s_cab_o;
84
 
85
 
86
 
87
 
88
 
89
 
90
 
91
wb_conbus_top #(
92
   .s0_addr_w  ( wb_s0_addr_w  ),
93
   .s0_addr    ( wb_s0_addr    ),
94
   .s1_addr_w  ( wb_s1_addr_w  ),
95
   .s1_addr    ( wb_s1_addr    ),
96
   .s27_addr_w ( wb_s27_addr_w ),
97
   .s2_addr    ( wb_s2_addr    ),
98
   .s3_addr    ( wb_s3_addr    ),
99
   .s4_addr    ( wb_s4_addr    ),
100
   .s5_addr    ( wb_s5_addr    ),
101
   .s6_addr    ( wb_s6_addr    ),
102
   .s7_addr    ( wb_s7_addr    )
103
   )
104
wb_conbus_top(
105
 
106
   .clk_i( wb_clk_i ),
107
   .rst_i( wb_rst_i ),
108
 
109
   // Master 0 Interface
110
   .m0_dat_i( wb_m_dat_i[ (0+1)*WB_DAT_W-1   : 0*WB_DAT_W ]    ),
111
   .m0_dat_o( wb_m_dat_o ),
112
   .m0_adr_i( wb_m_adr_i[ (0+1)*WB_ADR_W-1   : 0*WB_ADR_W ]    ),
113
   .m0_sel_i( wb_m_sel_i[ (0+1)*WB_DAT_W/8-1 : 0*WB_DAT_W/8] ),
114
   .m0_we_i ( wb_m_we_i[0]  ),
115
   .m0_cyc_i( wb_m_cyc_i[0] ),
116
   .m0_stb_i( wb_m_stb_i[0] ),
117
   .m0_ack_o( wb_m_ack_o[0] ),
118
   .m0_err_o( wb_m_err_o[0] ),
119
   .m0_rty_o( wb_m_rty_o[0] ),
120
   .m0_cab_i( wb_m_cab_i[0] ),
121
 
122
 
123
   // Master 1 Interface
124
   .m1_dat_i( wb_m_dat_i[ (1+1)*WB_DAT_W-1   : 1*WB_DAT_W ]    ),
125
   .m1_dat_o( ),
126
   .m1_adr_i( wb_m_adr_i[ (1+1)*WB_ADR_W-1   : 1*WB_ADR_W ]    ),
127
   .m1_sel_i( wb_m_sel_i[ (1+1)*WB_DAT_W/8-1 : 1*WB_DAT_W/8] ),
128
   .m1_we_i (  wb_m_we_i[1] ),
129
   .m1_cyc_i( wb_m_cyc_i[1] ),
130
   .m1_stb_i( wb_m_stb_i[1] ),
131
   .m1_ack_o( wb_m_ack_o[1] ),
132
   .m1_err_o( wb_m_err_o[1] ),
133
   .m1_rty_o( wb_m_rty_o[1] ),
134
   .m1_cab_i( wb_m_cab_i[1] ),
135
 
136
 
137
   // Master 2 Interface
138
   .m2_dat_i( wb_m_dat_i[ (2+1)*WB_DAT_W-1   : 2*WB_DAT_W ]    ),
139
   .m2_dat_o( ),
140
   .m2_adr_i( wb_m_adr_i[ (2+1)*WB_ADR_W-1   : 2*WB_ADR_W ]    ),
141
   .m2_sel_i( wb_m_sel_i[ (2+1)*WB_DAT_W/8-1 : 2*WB_DAT_W/8] ),
142
   .m2_we_i (  wb_m_we_i[2] ),
143
   .m2_cyc_i( wb_m_cyc_i[2] ),
144
   .m2_stb_i( wb_m_stb_i[2] ),
145
   .m2_ack_o( wb_m_ack_o[2] ),
146
   .m2_err_o( wb_m_err_o[2] ),
147
   .m2_rty_o( wb_m_rty_o[2] ),
148
   .m2_cab_i( wb_m_cab_i[2] ),
149
 
150
 
151
   // Master 3 Interface
152
   .m3_dat_i( wb_m_dat_i[ (3+1)*WB_DAT_W-1   : 3*WB_DAT_W ]    ),
153
   .m3_dat_o( ),
154
   .m3_adr_i( wb_m_adr_i[ (3+1)*WB_ADR_W-1   : 3*WB_ADR_W ]    ),
155
   .m3_sel_i( wb_m_sel_i[ (3+1)*WB_DAT_W/8-1 : 3*WB_DAT_W/8] ),
156
   .m3_we_i (  wb_m_we_i[3] ),
157
   .m3_cyc_i( wb_m_cyc_i[3] ),
158
   .m3_stb_i( wb_m_stb_i[3] ),
159
   .m3_ack_o( wb_m_ack_o[3] ),
160
   .m3_err_o( wb_m_err_o[3] ),
161
   .m3_rty_o( wb_m_rty_o[3] ),
162
   .m3_cab_i( wb_m_cab_i[3] ),
163
 
164
 
165
   // Master 4 Interface
166
   .m4_dat_i( wb_m_dat_i[ (4+1)*WB_DAT_W-1   : 4*WB_DAT_W ]    ),
167
   .m4_dat_o( ),
168
   .m4_adr_i( wb_m_adr_i[ (4+1)*WB_ADR_W-1   : 4*WB_ADR_W ]    ),
169
   .m4_sel_i( wb_m_sel_i[ (4+1)*WB_DAT_W/8-1 : 4*WB_DAT_W/8] ),
170
   .m4_we_i (  wb_m_we_i[4] ),
171
   .m4_cyc_i( wb_m_cyc_i[4] ),
172
   .m4_stb_i( wb_m_stb_i[4] ),
173
   .m4_ack_o( wb_m_ack_o[4] ),
174
   .m4_err_o( wb_m_err_o[4] ),
175
   .m4_rty_o( wb_m_rty_o[4] ),
176
   .m4_cab_i( wb_m_cab_i[4] ),
177
 
178
 
179
   // Master 5 Interface
180
   .m5_dat_i( wb_m_dat_i[ (5+1)*WB_DAT_W-1   : 5*WB_DAT_W ]    ),
181
   .m5_dat_o( ),
182
   .m5_adr_i( wb_m_adr_i[ (5+1)*WB_ADR_W-1   : 5*WB_ADR_W ]    ),
183
   .m5_sel_i( wb_m_sel_i[ (5+1)*WB_DAT_W/8-1 : 5*WB_DAT_W/8] ),
184
   .m5_we_i (  wb_m_we_i[5] ),
185
   .m5_cyc_i( wb_m_cyc_i[5] ),
186
   .m5_stb_i( wb_m_stb_i[5] ),
187
   .m5_ack_o( wb_m_ack_o[5] ),
188
   .m5_err_o( wb_m_err_o[5] ),
189
   .m5_rty_o( wb_m_rty_o[5] ),
190
   .m5_cab_i( wb_m_cab_i[5] ),
191
 
192
 
193
   // Master 6 Interface
194
   .m6_dat_i( wb_m_dat_i[ (6+1)*WB_DAT_W-1   : 6*WB_DAT_W ]    ),
195
   .m6_dat_o( ),
196
   .m6_adr_i( wb_m_adr_i[ (6+1)*WB_ADR_W-1   : 6*WB_ADR_W ]    ),
197
   .m6_sel_i( wb_m_sel_i[ (6+1)*WB_DAT_W/8-1 : 6*WB_DAT_W/8] ),
198
   .m6_we_i (  wb_m_we_i[6] ),
199
   .m6_cyc_i( wb_m_cyc_i[6] ),
200
   .m6_stb_i( wb_m_stb_i[6] ),
201
   .m6_ack_o( wb_m_ack_o[6] ),
202
   .m6_err_o( wb_m_err_o[6] ),
203
   .m6_rty_o( wb_m_rty_o[6] ),
204
   .m6_cab_i( wb_m_cab_i[6] ),
205
 
206
 
207
   // Master 7 Interface
208
   .m7_dat_i( wb_m_dat_i[ (7+1)*WB_DAT_W-1   : 7*WB_DAT_W ]    ),
209
   .m7_dat_o( ),
210
   .m7_adr_i( wb_m_adr_i[ (7+1)*WB_ADR_W-1   : 7*WB_ADR_W ]    ),
211
   .m7_sel_i( wb_m_sel_i[ (7+1)*WB_DAT_W/8-1 : 7*WB_DAT_W/8] ),
212
   .m7_we_i (  wb_m_we_i[7] ),
213
   .m7_cyc_i( wb_m_cyc_i[7] ),
214
   .m7_stb_i( wb_m_stb_i[7] ),
215
   .m7_ack_o( wb_m_ack_o[7] ),
216
   .m7_err_o( wb_m_err_o[7] ),
217
   .m7_rty_o( wb_m_rty_o[7] ),
218
   .m7_cab_i( wb_m_cab_i[7] ),
219
 
220
 
221
 
222
   // Slave 0 Interface
223
   .s0_dat_i( wb_s_dat_i[ (0+1)*WB_DAT_W-1 : 0*WB_DAT_W ] ),
224
   .s0_dat_o( wb_s_dat_o ),
225
   .s0_adr_o( wb_s_adr_o ),
226
   .s0_sel_o( wb_s_sel_o ),
227
   .s0_we_o ( wb_s_we_o  ),
228
   .s0_cyc_o( wb_s_cyc_o ),
229
   .s0_stb_o( wb_s_stb_o[0] ),
230
   .s0_ack_i( wb_s_ack_i[0] ),
231
   .s0_err_i( wb_s_err_i[0] ),
232
   .s0_rty_i( wb_s_rty_i[0] ),
233
   .s0_cab_o( wb_s_cab_o ),
234
 
235
   // Slave 1 Interface
236
   .s1_dat_i( wb_s_dat_i[ (1+1)*WB_DAT_W-1 : 1*WB_DAT_W ] ),
237
   .s1_dat_o(  ),
238
   .s1_adr_o(  ),
239
   .s1_sel_o(  ),
240
   .s1_we_o (  ),
241
   .s1_cyc_o(  ),
242
   .s1_stb_o( wb_s_stb_o[1] ),
243
   .s1_ack_i( wb_s_ack_i[1] ),
244
   .s1_err_i( wb_s_err_i[1] ),
245
   .s1_rty_i( wb_s_rty_i[1] ),
246
   .s1_cab_o( ),
247
 
248
   // Slave 2 Interface
249
   .s2_dat_i( wb_s_dat_i[ (2+1)*WB_DAT_W-1 : 2*WB_DAT_W ] ),
250
   .s2_dat_o(  ),
251
   .s2_adr_o(  ),
252
   .s2_sel_o(  ),
253
   .s2_we_o (  ),
254
   .s2_cyc_o(  ),
255
   .s2_stb_o( wb_s_stb_o[2] ),
256
   .s2_ack_i( wb_s_ack_i[2] ),
257
   .s2_err_i( wb_s_err_i[2] ),
258
   .s2_rty_i( wb_s_rty_i[2] ),
259
   .s2_cab_o( ),
260
 
261
   // Slave 3 Interface
262
   .s3_dat_i( wb_s_dat_i[ (3+1)*WB_DAT_W-1 : 3*WB_DAT_W ] ),
263
   .s3_dat_o(  ),
264
   .s3_adr_o(  ),
265
   .s3_sel_o(  ),
266
   .s3_we_o (  ),
267
   .s3_cyc_o(  ),
268
   .s3_stb_o( wb_s_stb_o[3] ),
269
   .s3_ack_i( wb_s_ack_i[3] ),
270
   .s3_err_i( wb_s_err_i[3] ),
271
   .s3_rty_i( wb_s_rty_i[3] ),
272
   .s3_cab_o( ),
273
 
274
   // Slave 4 Interface
275
   .s4_dat_i( wb_s_dat_i[ (4+1)*WB_DAT_W-1 : 4*WB_DAT_W ] ),
276
   .s4_dat_o(  ),
277
   .s4_adr_o(  ),
278
   .s4_sel_o(  ),
279
   .s4_we_o (  ),
280
   .s4_cyc_o(  ),
281
   .s4_stb_o( wb_s_stb_o[4] ),
282
   .s4_ack_i( wb_s_ack_i[4] ),
283
   .s4_err_i( wb_s_err_i[4] ),
284
   .s4_rty_i( wb_s_rty_i[4] ),
285
   .s4_cab_o( ),
286
 
287
   // Slave 5 Interface
288
   .s5_dat_i( wb_s_dat_i[ (5+1)*WB_DAT_W-1 : 5*WB_DAT_W ] ),
289
   .s5_dat_o(  ),
290
   .s5_adr_o(  ),
291
   .s5_sel_o(  ),
292
   .s5_we_o (  ),
293
   .s5_cyc_o(  ),
294
   .s5_stb_o( wb_s_stb_o[5] ),
295
   .s5_ack_i( wb_s_ack_i[5] ),
296
   .s5_err_i( wb_s_err_i[5] ),
297
   .s5_rty_i( wb_s_rty_i[5] ),
298
   .s5_cab_o( ),
299
 
300
   // Slave 6 Interface
301
   .s6_dat_i( wb_s_dat_i[ (6+1)*WB_DAT_W-1 : 6*WB_DAT_W ] ),
302
   .s6_dat_o(  ),
303
   .s6_adr_o(  ),
304
   .s6_sel_o(  ),
305
   .s6_we_o (  ),
306
   .s6_cyc_o(  ),
307
   .s6_stb_o( wb_s_stb_o[6] ),
308
   .s6_ack_i( wb_s_ack_i[6] ),
309
   .s6_err_i( wb_s_err_i[6] ),
310
   .s6_rty_i( wb_s_rty_i[6] ),
311
   .s6_cab_o( ),
312
 
313
   // Slave 7 Interface
314
   .s7_dat_i( wb_s_dat_i[ (7+1)*WB_DAT_W-1 : 7*WB_DAT_W ] ),
315
   .s7_dat_o(  ),
316
   .s7_adr_o(  ),
317
   .s7_sel_o(  ),
318
   .s7_we_o (  ),
319
   .s7_cyc_o(  ),
320
   .s7_stb_o( wb_s_stb_o[7] ),
321
   .s7_ack_i( wb_s_ack_i[7] ),
322
   .s7_err_i( wb_s_err_i[7] ),
323
   .s7_rty_i( wb_s_rty_i[7] ),
324
   .s7_cab_o( )
325
 
326
);
327
 
328
 
329
 
330
 
331
endmodule

powered by: WebSVN 2.1.0

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