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

Subversion Repositories dma_ahb

[/] [dma_ahb/] [trunk/] [src/] [dma_ahb32/] [dma_ahb32_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:31:23 2011
33
//--
34
//-- Source file: dma_core_channels_mux.v
35
//---------------------------------------------------------
36
 
37
 
38
 
39
module dma_ahb32_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*32-1:0]    ch_fifo_rdata;
45
   output [32-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 [7-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*7-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 [7-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*7-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 #(32)
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
   assign               ch_rd_decerr     = 'd0;
335
   assign               ch_wr_decerr     = 'd0;
336
   assign               ch_rd_cmd_split  = 'd0;
337
   assign               ch_wr_cmd_split  = 'd0;
338
   assign               ch_rd_page_cross = 'd0;
339
   assign               ch_wr_page_cross = 'd0;
340
 
341
 
342
   prgen_demux8 #(1)
343
   mux_18(.sel(rd_ch_num_resp),
344
      .x(rd_clr),
345
      .ch_x(ch_rd_clr)
346
      );
347
 
348
   prgen_demux8 #(1)
349
   mux_19(.sel(rd_ch_num_resp),
350
      .x(rd_clr_load),
351
      .ch_x(ch_rd_clr_load)
352
      );
353
 
354
   prgen_demux8 #(1)
355
   mux_21(.sel(ch_fifo_rd_num),
356
      .x(fifo_rd),
357
      .ch_x(ch_fifo_rd)
358
      );
359
 
360
   prgen_mux8 #(1)
361
   mux_23(.sel(rd_ch_num),
362
      .ch_x(ch_load_req_in_prog),
363
      .x(load_req_in_prog)
364
      );
365
 
366
   prgen_mux8 #(32)
367
   mux_26(.sel(rd_ch_num),
368
      .ch_x(ch_rd_burst_addr),
369
      .x(rd_burst_addr)
370
      );
371
 
372
   prgen_mux8 #(7)
373
   mux_27(.sel(rd_ch_num),
374
      .ch_x(ch_rd_burst_size),
375
      .x(rd_burst_size)
376
      );
377
 
378
   prgen_mux8 #(`TOKEN_BITS)
379
   mux_28(.sel(rd_ch_num),
380
      .ch_x(ch_rd_tokens),
381
      .x(rd_tokens)
382
      );
383
 
384
   prgen_mux8 #(`TOKEN_BITS)
385
   mux_49(.sel(wr_ch_num),
386
      .ch_x(ch_wr_tokens),
387
      .x(wr_tokens)
388
      );
389
 
390
   assign               rd_cmd_port = 'd0;
391
   assign               wr_cmd_port = 'd0;
392
 
393
 
394
   prgen_mux8 #(1)
395
   mux_31(.sel(ch_fifo_rd_num),
396
      .ch_x(ch_fifo_wr_ready),
397
      .x(fifo_wr_ready)
398
      );
399
 
400
   prgen_demux8 #(1)
401
   mux_34(.sel(wr_ch_num),
402
      .x(wr_burst_start),
403
      .ch_x(ch_wr_burst_start)
404
      );
405
 
406
   prgen_demux8 #(1)
407
   mux_37(.sel(wr_transfer_num),
408
      .x(wr_transfer),
409
      .ch_x(ch_wr_transfer)
410
      );
411
 
412
   prgen_demux8 #(1)
413
   mux_38(.sel(wr_ch_num_resp),
414
      .x(wr_slverr),
415
      .ch_x(ch_wr_slverr)
416
      );
417
 
418
   prgen_demux8 #(1)
419
   mux_40(.sel(wr_ch_num_resp),
420
      .x(wr_clr),
421
      .ch_x(ch_wr_clr)
422
      );
423
 
424
   prgen_demux8 #(1)
425
   mux_41(.sel(wr_ch_num_resp),
426
      .x(wr_clr_last),
427
      .ch_x(ch_wr_clr_last)
428
      );
429
 
430
   prgen_demux8 #(1)
431
   mux_43(.sel(ch_fifo_wr_num),
432
      .x(fifo_wr),
433
      .ch_x(ch_fifo_wr)
434
      );
435
 
436
   prgen_mux8 #(1)
437
   mux_44(.sel(wr_ch_num),
438
      .ch_x(ch_wr_last_cmd),
439
      .x(wr_last_cmd)
440
      );
441
 
442
   prgen_mux8 #(32)
443
   mux_47(.sel(wr_ch_num),
444
      .ch_x(ch_wr_burst_addr),
445
      .x(wr_burst_addr)
446
      );
447
 
448
   prgen_mux8 #(7)
449
   mux_48(.sel(wr_ch_num),
450
      .ch_x(ch_wr_burst_size),
451
      .x(wr_burst_size)
452
      );
453
 
454
 
455
 
456
endmodule
457
 
458
 
459
 

powered by: WebSVN 2.1.0

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