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

Subversion Repositories dma_axi

[/] [dma_axi/] [trunk/] [src/] [dma_axi64/] [dma_axi64_core0_channels_mux.v] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 eyalhoc
/////////////////////////////////////////////////////////////////////
2
////                                                             ////
3
////  Author: Eyal Hochberg                                      ////
4
////          eyal@provartec.com                                 ////
5
////                                                             ////
6
////  Downloaded from: http://www.opencores.org                  ////
7
/////////////////////////////////////////////////////////////////////
8
////                                                             ////
9
//// Copyright (C) 2010 Provartec LTD                            ////
10
//// www.provartec.com                                           ////
11
//// info@provartec.com                                          ////
12
////                                                             ////
13
//// This source file may be used and distributed without        ////
14
//// restriction provided that this copyright statement is not   ////
15
//// removed from the file and that any derivative work contains ////
16
//// the original copyright notice and the associated disclaimer.////
17
////                                                             ////
18
//// This source file is free software; you can redistribute it  ////
19
//// and/or modify it under the terms of the GNU Lesser General  ////
20
//// Public License as published by the Free Software Foundation.////
21
////                                                             ////
22
//// This source is distributed in the hope that it will be      ////
23
//// useful, but WITHOUT ANY WARRANTY; without even the implied  ////
24
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR     ////
25
//// PURPOSE.  See the GNU Lesser General Public License for more////
26
//// details. http://www.gnu.org/licenses/lgpl.html              ////
27
////                                                             ////
28
/////////////////////////////////////////////////////////////////////
29 2 eyalhoc
//---------------------------------------------------------
30
//-- File generated by RobustVerilog parser
31
//-- Version: 1.0
32
//-- Invoked Fri Mar 25 23:36:55 2011
33
//--
34
//-- Source file: dma_core_channels_mux.v
35
//---------------------------------------------------------
36
 
37
 
38
 
39
module dma_axi64_core0_channels_mux(ch_fifo_rd_valid,fifo_rd_valid,ch_fifo_rdata,fifo_rdata,ch_periph_rx_clr,periph_rx_clr,ch_periph_tx_clr,periph_tx_clr,ch_rd_page_cross,ch_wr_page_cross,rd_page_cross,wr_page_cross,timeout_aw,timeout_w,timeout_ar,timeout_num_aw,timeout_num_w,timeout_num_ar,wdt_timeout,wdt_ch_num,ch_timeout_aw,ch_timeout_w,ch_timeout_ar,ch_wdt_timeout,joint_in_prog,joint_not_in_prog,joint_mux_in_prog,ch_joint_in_prog,ch_joint_not_in_prog,ch_joint_mux_in_prog,wr_cmd_pending,ch_wr_cmd_pending,rd_ch_num,rd_cmd_num,load_req_in_prog,rd_line_cmd,rd_go_next_line,rd_burst_start,rd_burst_addr,rd_burst_size,rd_tokens,rd_cmd_port,rd_periph_delay,rd_clr_valid,rd_cmd_split,rd_cmd_line,rd_clr_stall,ch_load_req_in_prog,ch_rd_line_cmd,ch_rd_go_next_line,ch_rd_burst_start,ch_rd_burst_addr,ch_rd_burst_size,ch_rd_tokens,ch_rd_port_num,ch_rd_periph_delay,ch_rd_clr_valid,ch_rd_cmd_split,ch_rd_cmd_line,ch_rd_clr_stall,load_wr_num,load_wr,ch_load_wr,ch_fifo_wr_num,rd_transfer_num,rd_clr_line_num,rd_transfer,rd_clr_line,fifo_wr,ch_rd_transfer,ch_rd_clr_line,ch_fifo_wr,rd_ch_num_resp,rd_slverr,rd_decerr,rd_clr,rd_clr_load,ch_rd_slverr,ch_rd_decerr,ch_rd_clr,ch_rd_clr_load,wr_ch_num,wr_cmd_num,wr_last_cmd,wr_line_cmd,wr_go_next_line,wr_burst_start,wr_burst_addr,wr_burst_size,wr_tokens,wr_cmd_port,wr_periph_delay,wr_clr_valid,wr_cmd_split,wr_clr_stall,ch_wr_last_cmd,ch_wr_line_cmd,ch_wr_go_next_line,ch_wr_burst_start,ch_wr_burst_addr,ch_wr_burst_size,ch_wr_tokens,ch_wr_port_num,ch_wr_periph_delay,ch_wr_clr_valid,ch_wr_cmd_split,ch_wr_clr_stall,ch_fifo_rd_num,wr_transfer_num,wr_clr_line_num,wr_transfer,wr_clr_line,fifo_rd,ch_fifo_wr_ready,ch_wr_transfer,ch_wr_clr_line,ch_fifo_rd,fifo_wr_ready,wr_ch_num_resp,wr_slverr,wr_decerr,wr_clr,wr_clr_last,ch_wr_slverr,ch_wr_decerr,ch_wr_clr_last,ch_wr_clr);
40
 
41
   //data
42
   input [7:0]               ch_fifo_rd_valid;
43
   output               fifo_rd_valid;
44
   input [8*64-1:0]    ch_fifo_rdata;
45
   output [64-1:0]     fifo_rdata;
46
 
47
   //periph
48
   input [8*31-1:0]           ch_periph_rx_clr;
49
   output [30:0]           periph_rx_clr;
50
   input [8*31-1:0]           ch_periph_tx_clr;
51
   output [30:0]           periph_tx_clr;
52
 
53
   output [7:0]           ch_rd_page_cross;
54
   output [7:0]           ch_wr_page_cross;
55
   input               rd_page_cross;
56
   input               wr_page_cross;
57
 
58
   //axim timeout
59
   input               timeout_aw;
60
   input               timeout_w;
61
   input               timeout_ar;
62
   input [2:0]               timeout_num_aw;
63
   input [2:0]               timeout_num_w;
64
   input [2:0]               timeout_num_ar;
65
   input               wdt_timeout;
66
   input [2:0]               wdt_ch_num;
67
 
68
   output [7:0]           ch_timeout_aw;
69
   output [7:0]           ch_timeout_w;
70
   output [7:0]           ch_timeout_ar;
71
   output [7:0]           ch_wdt_timeout;
72
 
73
   output               joint_in_prog;
74
   output               joint_not_in_prog;
75
   output               joint_mux_in_prog;
76
   input [7:0]               ch_joint_in_prog;
77
   input [7:0]               ch_joint_not_in_prog;
78
   input [7:0]               ch_joint_mux_in_prog;
79
 
80
   input               wr_cmd_pending;
81
   output [7:0]           ch_wr_cmd_pending;
82
 
83
   //rd cmd
84
   input [2:0]               rd_ch_num;
85
   input [2:0]               rd_cmd_num;
86
 
87
   output               load_req_in_prog;
88
   output               rd_line_cmd;
89
   output               rd_go_next_line;
90
   input               rd_burst_start;
91
   output [32-1:0]     rd_burst_addr;
92
   output [8-1:0]    rd_burst_size;
93
   output [`TOKEN_BITS-1:0]   rd_tokens;
94
   output               rd_cmd_port;
95
   output [`DELAY_BITS-1:0]   rd_periph_delay;
96
   output               rd_clr_valid;
97
   input               rd_cmd_split;
98
   input               rd_cmd_line;
99
   output               rd_clr_stall;
100
 
101
   input [7:0]               ch_load_req_in_prog;
102
   input [7:0]               ch_rd_line_cmd;
103
   input [7:0]               ch_rd_go_next_line;
104
   output [7:0]           ch_rd_burst_start;
105
   input [8*32-1:0]    ch_rd_burst_addr;
106
   input [8*8-1:0]   ch_rd_burst_size;
107
   input [8*`TOKEN_BITS-1:0]  ch_rd_tokens;
108
   input [7:0]               ch_rd_port_num;
109
   input [8*`DELAY_BITS-1:0]  ch_rd_periph_delay;
110
   input [7:0]               ch_rd_clr_valid;
111
   output [7:0]           ch_rd_cmd_split;
112
   output [7:0]           ch_rd_cmd_line;
113
   input [7:0]               ch_rd_clr_stall;
114
 
115
   //rd data - load cmd
116
   input [2:0]               load_wr_num;
117
 
118
   input               load_wr;
119
 
120
   output [7:0]           ch_load_wr;
121
 
122
   //rd data
123
   input [2:0]               ch_fifo_wr_num;
124
   input [2:0]               rd_transfer_num;
125
   input [2:0]               rd_clr_line_num;
126
 
127
   input               rd_transfer;
128
   input               rd_clr_line;
129
   input               fifo_wr;
130
 
131
   output [7:0]           ch_rd_transfer;
132
   output [7:0]           ch_rd_clr_line;
133
   output [7:0]           ch_fifo_wr;
134
 
135
   //rd resp
136
   input [2:0]               rd_ch_num_resp;
137
 
138
   input               rd_slverr;
139
   input               rd_decerr;
140
   input               rd_clr;
141
   input               rd_clr_load;
142
 
143
   output [7:0]           ch_rd_slverr;
144
   output [7:0]           ch_rd_decerr;
145
   output [7:0]           ch_rd_clr;
146
   output [7:0]           ch_rd_clr_load;
147
 
148
   //wr cmd
149
   input [2:0]               wr_ch_num;
150
   input [2:0]               wr_cmd_num;
151
 
152
   output               wr_last_cmd;
153
   output               wr_line_cmd;
154
   output               wr_go_next_line;
155
   input               wr_burst_start;
156
   output [32-1:0]     wr_burst_addr;
157
   output [8-1:0]    wr_burst_size;
158
   output [`TOKEN_BITS-1:0]   wr_tokens;
159
   output               wr_cmd_port;
160
   output [`DELAY_BITS-1:0]   wr_periph_delay;
161
   output               wr_clr_valid;
162
   input               wr_cmd_split;
163
   output               wr_clr_stall;
164
 
165
   input [7:0]               ch_wr_last_cmd;
166
   input [7:0]               ch_wr_line_cmd;
167
   input [7:0]               ch_wr_go_next_line;
168
   output [7:0]           ch_wr_burst_start;
169
   input [8*32-1:0]    ch_wr_burst_addr;
170
   input [8*8-1:0]   ch_wr_burst_size;
171
   input [8*`TOKEN_BITS-1:0]  ch_wr_tokens;
172
   input [7:0]               ch_wr_port_num;
173
   input [8*`DELAY_BITS-1:0]  ch_wr_periph_delay;
174
   input [7:0]               ch_wr_clr_valid;
175
   output [7:0]           ch_wr_cmd_split;
176
   input [7:0]               ch_wr_clr_stall;
177
 
178
   //wr data
179
   input [2:0]               ch_fifo_rd_num;
180
   input [2:0]               wr_transfer_num;
181
   input [2:0]               wr_clr_line_num;
182
 
183
   input               wr_transfer;
184
   input               wr_clr_line;
185
   input               fifo_rd;
186
   input [7:0]               ch_fifo_wr_ready;
187
 
188
   output [7:0]           ch_wr_transfer;
189
   output [7:0]           ch_wr_clr_line;
190
   output [7:0]           ch_fifo_rd;
191
   output               fifo_wr_ready;
192
 
193
   //wr resp
194
   input [2:0]               wr_ch_num_resp;
195
 
196
   input               wr_slverr;
197
   input               wr_decerr;
198
   input               wr_clr;
199
   input               wr_clr_last;
200
 
201
   output [7:0]           ch_wr_slverr;
202
   output [7:0]           ch_wr_decerr;
203
   output [7:0]           ch_wr_clr_last;
204
   output [7:0]           ch_wr_clr;
205
 
206
 
207
 
208
 
209
   prgen_or8 #(1)
210
   mux_2(.ch_x(ch_fifo_rd_valid),
211
     .x(fifo_rd_valid)
212
     );
213
 
214
   prgen_or8 #(64)
215
   mux_3(.ch_x(ch_fifo_rdata),
216
     .x(fifo_rdata)
217
     );
218
 
219
   prgen_or8 #(31)
220
   mux_4(.ch_x(ch_periph_rx_clr),
221
     .x(periph_rx_clr)
222
     );
223
 
224
   prgen_or8 #(31)
225
   mux_5(.ch_x(ch_periph_tx_clr),
226
     .x(periph_tx_clr)
227
     );
228
 
229
   prgen_mux8 #(`DELAY_BITS)
230
   mux_30(.sel(rd_ch_num),
231
      .ch_x(ch_rd_periph_delay),
232
      .x(rd_periph_delay)
233
      );
234
 
235
   prgen_mux8 #(`DELAY_BITS)
236
   mux_51(.sel(wr_ch_num),
237
      .ch_x(ch_wr_periph_delay),
238
      .x(wr_periph_delay)
239
      );
240
 
241
 
242
   prgen_demux8 #(1)
243
   mux_6(.sel(timeout_num_aw),
244
     .x(timeout_aw),
245
     .ch_x(ch_timeout_aw)
246
     );
247
 
248
   prgen_demux8 #(1)
249
   mux_7(.sel(timeout_num_w),
250
     .x(timeout_w),
251
     .ch_x(ch_timeout_w)
252
     );
253
 
254
   prgen_demux8 #(1)
255
   mux_8(.sel(timeout_num_ar),
256
     .x(timeout_ar),
257
     .ch_x(ch_timeout_ar)
258
     );
259
 
260
   prgen_demux8 #(1)
261
   mux_9(.sel(wdt_ch_num),
262
     .x(wdt_timeout),
263
     .ch_x(ch_wdt_timeout)
264
     );
265
 
266
   prgen_or8 #(1)
267
   mux_55(.ch_x(ch_joint_in_prog),
268
      .x(joint_in_prog)
269
      );
270
 
271
   prgen_or8 #(1)
272
   mux_56(.ch_x(ch_joint_not_in_prog),
273
      .x(joint_not_in_prog)
274
      );
275
 
276
   prgen_or8 #(1)
277
   mux_57(.ch_x(ch_joint_mux_in_prog),
278
      .x(joint_mux_in_prog)
279
      );
280
 
281
   prgen_demux8 #(1)
282
   mux_60(.sel(wr_ch_num),
283
      .x(wr_cmd_pending),
284
      .ch_x(ch_wr_cmd_pending)
285
      );
286
 
287
 
288
   prgen_demux8 #(1)
289
   mux_11(.sel(rd_ch_num),
290
      .x(rd_burst_start),
291
      .ch_x(ch_rd_burst_start)
292
      );
293
 
294
   prgen_demux8 #(1)
295
   mux_13(.sel(load_wr_num),
296
      .x(load_wr),
297
      .ch_x(ch_load_wr)
298
      );
299
 
300
   assign               ch_rd_clr_line  = 'd0;
301
   assign               ch_rd_cmd_line  = 'd0;
302
   assign               rd_line_cmd     = 'd0;
303
   assign               rd_go_next_line = 'd0;
304
   assign               rd_clr_stall    = 'd0;
305
   assign               wr_clr_stall    = 'd0;
306
   assign               ch_wr_clr_line  = 'd0;
307
   assign               wr_line_cmd     = 'd0;
308
   assign               wr_go_next_line = 'd0;
309
 
310
   prgen_mux8 #(1)
311
   mux_33(.sel(rd_ch_num),
312
      .ch_x(ch_rd_clr_valid),
313
      .x(rd_clr_valid)
314
      );
315
 
316
   prgen_mux8 #(1)
317
   mux_53(.sel(wr_ch_num),
318
      .ch_x(ch_wr_clr_valid),
319
      .x(wr_clr_valid)
320
      );
321
 
322
   prgen_demux8 #(1)
323
   mux_15(.sel(rd_transfer_num),
324
      .x(rd_transfer),
325
      .ch_x(ch_rd_transfer)
326
      );
327
 
328
   prgen_demux8 #(1)
329
   mux_16(.sel(rd_ch_num_resp),
330
      .x(rd_slverr),
331
      .ch_x(ch_rd_slverr)
332
      );
333
 
334
   prgen_demux8 #(1)
335
   mux_17(.sel(rd_ch_num_resp),
336
      .x(rd_decerr),
337
      .ch_x(ch_rd_decerr)
338
      );
339
 
340
   prgen_demux8 #(1)
341
   mux_39(.sel(wr_ch_num_resp),
342
      .x(wr_decerr),
343
      .ch_x(ch_wr_decerr)
344
      );
345
 
346
   prgen_demux8 #(1)
347
   mux_20(.sel(rd_cmd_num),
348
      .x(rd_cmd_split),
349
      .ch_x(ch_rd_cmd_split)
350
      );
351
 
352
   prgen_demux8 #(1)
353
   mux_42(.sel(wr_cmd_num),
354
      .x(wr_cmd_split),
355
      .ch_x(ch_wr_cmd_split)
356
      );
357
 
358
   prgen_demux8 #(1)
359
   mux_58(.sel(rd_ch_num),
360
      .x(rd_page_cross),
361
      .ch_x(ch_rd_page_cross)
362
      );
363
 
364
   prgen_demux8 #(1)
365
   mux_59(.sel(wr_ch_num),
366
      .x(wr_page_cross),
367
      .ch_x(ch_wr_page_cross)
368
      );
369
 
370
 
371
   prgen_demux8 #(1)
372
   mux_18(.sel(rd_ch_num_resp),
373
      .x(rd_clr),
374
      .ch_x(ch_rd_clr)
375
      );
376
 
377
   prgen_demux8 #(1)
378
   mux_19(.sel(rd_ch_num_resp),
379
      .x(rd_clr_load),
380
      .ch_x(ch_rd_clr_load)
381
      );
382
 
383
   prgen_demux8 #(1)
384
   mux_21(.sel(ch_fifo_rd_num),
385
      .x(fifo_rd),
386
      .ch_x(ch_fifo_rd)
387
      );
388
 
389
   prgen_mux8 #(1)
390
   mux_23(.sel(rd_ch_num),
391
      .ch_x(ch_load_req_in_prog),
392
      .x(load_req_in_prog)
393
      );
394
 
395
   prgen_mux8 #(32)
396
   mux_26(.sel(rd_ch_num),
397
      .ch_x(ch_rd_burst_addr),
398
      .x(rd_burst_addr)
399
      );
400
 
401
   prgen_mux8 #(8)
402
   mux_27(.sel(rd_ch_num),
403
      .ch_x(ch_rd_burst_size),
404
      .x(rd_burst_size)
405
      );
406
 
407
   prgen_mux8 #(`TOKEN_BITS)
408
   mux_28(.sel(rd_ch_num),
409
      .ch_x(ch_rd_tokens),
410
      .x(rd_tokens)
411
      );
412
 
413
   prgen_mux8 #(`TOKEN_BITS)
414
   mux_49(.sel(wr_ch_num),
415
      .ch_x(ch_wr_tokens),
416
      .x(wr_tokens)
417
      );
418
 
419
   assign               rd_cmd_port = 'd0;
420
   assign               wr_cmd_port = 'd0;
421
 
422
 
423
   prgen_mux8 #(1)
424
   mux_31(.sel(ch_fifo_rd_num),
425
      .ch_x(ch_fifo_wr_ready),
426
      .x(fifo_wr_ready)
427
      );
428
 
429
   prgen_demux8 #(1)
430
   mux_34(.sel(wr_ch_num),
431
      .x(wr_burst_start),
432
      .ch_x(ch_wr_burst_start)
433
      );
434
 
435
   prgen_demux8 #(1)
436
   mux_37(.sel(wr_transfer_num),
437
      .x(wr_transfer),
438
      .ch_x(ch_wr_transfer)
439
      );
440
 
441
   prgen_demux8 #(1)
442
   mux_38(.sel(wr_ch_num_resp),
443
      .x(wr_slverr),
444
      .ch_x(ch_wr_slverr)
445
      );
446
 
447
   prgen_demux8 #(1)
448
   mux_40(.sel(wr_ch_num_resp),
449
      .x(wr_clr),
450
      .ch_x(ch_wr_clr)
451
      );
452
 
453
   prgen_demux8 #(1)
454
   mux_41(.sel(wr_ch_num_resp),
455
      .x(wr_clr_last),
456
      .ch_x(ch_wr_clr_last)
457
      );
458
 
459
   prgen_demux8 #(1)
460
   mux_43(.sel(ch_fifo_wr_num),
461
      .x(fifo_wr),
462
      .ch_x(ch_fifo_wr)
463
      );
464
 
465
   prgen_mux8 #(1)
466
   mux_44(.sel(wr_ch_num),
467
      .ch_x(ch_wr_last_cmd),
468
      .x(wr_last_cmd)
469
      );
470
 
471
   prgen_mux8 #(32)
472
   mux_47(.sel(wr_ch_num),
473
      .ch_x(ch_wr_burst_addr),
474
      .x(wr_burst_addr)
475
      );
476
 
477
   prgen_mux8 #(8)
478
   mux_48(.sel(wr_ch_num),
479
      .ch_x(ch_wr_burst_size),
480
      .x(wr_burst_size)
481
      );
482
 
483
 
484
 
485
endmodule
486
 
487
 
488
 

powered by: WebSVN 2.1.0

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