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

Subversion Repositories dma_axi

[/] [dma_axi/] [trunk/] [src/] [dma_axi64/] [dma_axi64_core0.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:53 2011
33
//--
34
//-- Source file: dma_core.v
35
//---------------------------------------------------------
36
 
37
 
38
 
39
module dma_axi64_core0(clk,reset,scan_en,idle,ch_int_all_proc,ch_start,periph_tx_req,periph_tx_clr,periph_rx_req,periph_rx_clr,pclk,clken,pclken,psel,penable,paddr,pwrite,pwdata,prdata,pslverr,rd_port_num,wr_port_num,joint_mode_in,joint_remote,rd_prio_top,rd_prio_high,rd_prio_top_num,rd_prio_high_num,wr_prio_top,wr_prio_high,wr_prio_top_num,wr_prio_high_num,AWADDR,AWLEN,AWSIZE,AWVALID,AWREADY,WDATA,WSTRB,WLAST,WVALID,WREADY,BRESP,BVALID,BREADY,ARADDR,ARLEN,ARSIZE,ARVALID,ARREADY,RDATA,RRESP,RLAST,RVALID,RREADY);
40
 
41
   input              clk;
42
   input                     reset;
43
   input                     scan_en;
44
 
45
   output                    idle;
46
   output [8*1-1:0]   ch_int_all_proc;
47
   input [7:0]                  ch_start;
48
 
49
   input [31:1]          periph_tx_req;
50
   output [31:1]          periph_tx_clr;
51
   input [31:1]          periph_rx_req;
52
   output [31:1]          periph_rx_clr;
53
 
54
   input              pclk;
55
   input              clken;
56
   input              pclken;
57
   input              psel;
58
   input              penable;
59
   input [10:0]          paddr;
60
   input              pwrite;
61
   input [31:0]          pwdata;
62
   output [31:0]          prdata;
63
   output              pslverr;
64
 
65
   output              rd_port_num;
66
   output              wr_port_num;
67
 
68
   input              joint_mode_in;
69
   input              joint_remote;
70
   input               rd_prio_top;
71
   input               rd_prio_high;
72
   input [2:0]              rd_prio_top_num;
73
   input [2:0]              rd_prio_high_num;
74
   input               wr_prio_top;
75
   input               wr_prio_high;
76
   input [2:0]              wr_prio_top_num;
77
   input [2:0]              wr_prio_high_num;
78
 
79
   output [31:0]             AWADDR;
80
   output [`LEN_BITS-1:0]    AWLEN;
81
   output [`SIZE_BITS-1:0]                       AWSIZE;
82
   output                    AWVALID;
83
   input                     AWREADY;
84
   output [63:0]             WDATA;
85
   output [64/8-1:0]         WSTRB;
86
   output                    WLAST;
87
   output                    WVALID;
88
   input                     WREADY;
89
   input [1:0]               BRESP;
90
   input                     BVALID;
91
   output                    BREADY;
92
   output [31:0]             ARADDR;
93
   output [`LEN_BITS-1:0]    ARLEN;
94
   output [`SIZE_BITS-1:0]                       ARSIZE;
95
   output                    ARVALID;
96
   input                     ARREADY;
97
   input [63:0]              RDATA;
98
   input [1:0]               RRESP;
99
   input                     RLAST;
100
   input                     RVALID;
101
   output                    RREADY;
102
 
103
 
104
   //outputs of wdt
105
   wire              wdt_timeout;
106
   wire [2:0]              wdt_ch_num;
107
 
108
   //outputs of rd arbiter
109
   wire              rd_ch_go_joint;
110
   wire              rd_ch_go_null;
111
   wire              rd_ch_go;
112
   wire [2:0]              rd_ch_num;
113
   wire              rd_ch_last;
114
 
115
   //outputs of wr arbiter
116
   wire              wr_ch_go_joint;
117
   wire              wr_ch_go;
118
   wire [2:0]              wr_ch_num_joint;
119
   wire [2:0]              wr_ch_num;
120
   wire              wr_ch_last;
121
   wire              wr_ch_last_joint;
122
 
123
   //outputs of channels
124
   wire [31:0]              prdata;
125
   wire              pslverr;
126
   wire              load_req_in_prog;
127
   wire [7:0]              ch_idle;
128
   wire [7:0]              ch_active;
129
   wire [7:0]              ch_active_joint;
130
   wire [7:0]              ch_rd_active;
131
   wire [7:0]              ch_wr_active;
132
   wire              wr_last_cmd;
133
   wire              rd_line_cmd;
134
   wire              wr_line_cmd;
135
   wire              rd_go_next_line;
136
   wire              wr_go_next_line;
137
 
138
   wire [7:0]              ch_rd_ready_joint;
139
   wire [7:0]              ch_rd_ready;
140
   wire              rd_ready;
141
   wire              rd_ready_joint;
142
   wire [32-1:0]      rd_burst_addr;
143
   wire [8-1:0]     rd_burst_size;
144
   wire [`TOKEN_BITS-1:0]    rd_tokens;
145
   wire              rd_port_num;
146
   wire [`DELAY_BITS-1:0]    rd_periph_delay;
147
   wire              rd_clr_valid;
148
   wire [2:0]              rd_transfer_num;
149
   wire              rd_transfer;
150
   wire [4-1:0]      rd_transfer_size;
151
   wire              rd_clr_stall;
152
 
153
   wire [7:0]              ch_wr_ready;
154
   wire              wr_ready;
155
   wire              wr_ready_joint;
156
   wire [32-1:0]      wr_burst_addr;
157
   wire [8-1:0]     wr_burst_size;
158
   wire [`TOKEN_BITS-1:0]    wr_tokens;
159
   wire              wr_port_num;
160
   wire [`DELAY_BITS-1:0]    wr_periph_delay;
161
   wire              wr_clr_valid;
162
   wire              wr_clr_stall;
163
   wire [7:0]              ch_joint_req;
164
   wire              joint_req;
165
   wire              joint_mode;
166
 
167
   wire              joint_ch_go;
168
   wire              joint_stall;
169
 
170
   //outputs of rd ctrl
171
   wire              rd_burst_start;
172
   wire              rd_finish_joint;
173
   wire              rd_finish;
174
   wire              rd_ctrl_busy;
175
 
176
   //outputs of wr ctrl
177
   wire              wr_burst_start_joint;
178
   wire              wr_burst_start;
179
   wire              wr_finish;
180
   wire              wr_ctrl_busy;
181
 
182
 
183
   //outputs of axim wr
184
   wire              wr_cmd_split;
185
   wire [2:0]              wr_cmd_num;
186
   wire              wr_cmd_pending_joint;
187
   wire              wr_cmd_pending;
188
   wire              wr_cmd_full_joint;
189
   wire              ch_fifo_rd;
190
   wire [4-1:0]      ch_fifo_rsize;
191
   wire [2:0]              ch_fifo_rd_num;
192
   wire [2:0]              wr_transfer_num;
193
   wire              wr_transfer;
194
   wire [4-1:0]      wr_transfer_size;
195
   wire [4-1:0]      wr_next_size;
196
   wire              wr_clr_line;
197
   wire [2:0]              wr_clr_line_num;
198
   wire              wr_cmd_full;
199
   wire              wr_slverr;
200
   wire              wr_decerr;
201
   wire              wr_clr;
202
   wire              wr_clr_last;
203
   wire [2:0]              wr_ch_num_resp;
204
   wire              timeout_aw;
205
   wire              timeout_w;
206
   wire [2:0]              timeout_num_aw;
207
   wire [2:0]              timeout_num_w;
208
   wire              wr_hold_ctrl;
209
   wire              wr_hold;
210
   wire              joint_in_prog;
211
   wire              joint_not_in_prog;
212
   wire              joint_mux_in_prog;
213
   wire              wr_page_cross;
214
 
215
   //outputs of axim rd   
216
   wire              load_wr;
217
   wire [2:0]              load_wr_num;
218
   wire [1:0]              load_wr_cycle;
219
   wire [64-1:0]      load_wdata;
220
   wire              rd_cmd_split;
221
   wire              rd_cmd_line;
222
   wire [2:0]              rd_cmd_num;
223
   wire              rd_cmd_pending_joint;
224
   wire              rd_cmd_pending;
225
   wire              rd_cmd_full_joint;
226
   wire              ch_fifo_wr;
227
   wire [64-1:0]      ch_fifo_wdata;
228
   wire [4-1:0]      ch_fifo_wsize;
229
   wire [2:0]              ch_fifo_wr_num;
230
   wire              rd_clr_line;
231
   wire [2:0]              rd_clr_line_num;
232
   wire              rd_burst_cmd;
233
   wire              rd_cmd_full;
234
   wire              rd_slverr;
235
   wire              rd_decerr;
236
   wire              rd_clr;
237
   wire              rd_clr_last;
238
   wire              rd_clr_load;
239
   wire [2:0]              rd_ch_num_resp;
240
   wire              timeout_ar;
241
   wire [2:0]              timeout_num_ar;
242
   wire              rd_hold_joint;
243
   wire              rd_hold_ctrl;
244
   wire              rd_hold;
245
   wire              joint_hold;
246
   wire              rd_page_cross;
247
 
248
   wire              joint_page_cross;
249
   wire              rd_arbiter_en;
250
   wire              wr_arbiter_en;
251
 
252
   wire              rd_cmd_port;
253
   wire              wr_cmd_port;
254
 
255
   //outputs of fifo ctrl
256
   wire [64-1:0]      ch_fifo_rdata;
257
   wire              ch_fifo_rd_valid;
258
   wire              ch_fifo_wr_ready;
259
   wire              FIFO_WR;
260
   wire              FIFO_RD;
261
   wire [3+5-3-1:0]  FIFO_WR_ADDR;
262
   wire [3+5-3-1:0]  FIFO_RD_ADDR;
263
   wire [64-1:0]      FIFO_DIN;
264
   wire [8-1:0]      FIFO_BSEL;
265
 
266
   //outputs of fifo wrap
267
   wire [64-1:0]      FIFO_DOUT;
268
 
269
   wire              clk_en;
270
   wire              gclk;
271
 
272
 
273
   assign              joint_mode = joint_mode_in & 1'b1;
274
 
275
 
276
   assign              rd_arbiter_en        = 1'b1;
277
   assign              wr_arbiter_en        = !joint_mode;
278
 
279
   assign              rd_ready             = ch_rd_ready[rd_ch_num];
280
   assign              wr_ready             = ch_wr_ready[wr_ch_num_joint];
281
   assign              rd_ready_joint       = joint_mode & joint_req ? rd_ready & wr_ready : rd_ready;
282
   assign              wr_ready_joint       = joint_mode & joint_req ? rd_ready & wr_ready : wr_ready;
283
   assign              ch_active_joint      = joint_mode ? ch_rd_active | ch_wr_active : ch_rd_active;
284
 
285
   assign              joint_page_cross     = (rd_page_cross & rd_ready) | (wr_page_cross & wr_ready);
286
 
287
   assign              joint_req            = ch_joint_req[rd_ch_num];
288
 
289
   assign              ch_rd_ready_joint    = joint_mode ?
290
                 (ch_joint_req & ch_rd_ready & ch_wr_ready) |
291
                   ((~ch_joint_req) & (ch_rd_ready | ch_wr_ready)) :
292
                 ch_rd_ready;
293
 
294
   assign              wr_burst_start_joint = joint_mode & joint_req ? rd_burst_start : wr_burst_start;
295
 
296
   assign              joint_hold           = joint_mux_in_prog | (joint_in_prog & (~joint_req)) | (joint_not_in_prog & joint_req) | joint_stall | (joint_req & joint_page_cross);
297
 
298
   assign              rd_hold_ctrl         = joint_mode ? rd_hold | joint_hold | (joint_in_prog & wr_hold) : rd_hold;
299
   assign              rd_hold_joint        = joint_mode & (rd_hold_ctrl | rd_ctrl_busy | wr_ctrl_busy);
300
   assign              wr_hold_ctrl         = joint_mode & (joint_req | joint_in_prog) ? wr_hold | joint_hold : wr_hold;
301
 
302
   assign              rd_ch_go_joint       = rd_ch_go & ch_rd_ready[rd_ch_num] & (~rd_ctrl_busy);
303
   assign              wr_ch_go_joint       = joint_mode ? (wr_ready & (~wr_ctrl_busy) &
304
                                  (joint_req ? rd_ch_go_joint : rd_ch_go & (~rd_ch_go_joint))) : wr_ch_go;
305
   assign              rd_ch_go_null        = rd_ch_go & (~rd_ch_go_joint) & (joint_mode ? (~wr_ch_go_joint) : 1'b1);
306
 
307
   assign              wr_ch_num_joint      = joint_mode ? rd_ch_num : wr_ch_num;
308
 
309
   assign              wr_ch_last_joint     = joint_mode ? rd_ch_last : wr_ch_last;
310
 
311
   assign              rd_finish_joint      = joint_mode ? rd_finish | wr_finish | rd_ch_go_null : rd_finish | rd_ch_go_null;
312
 
313
   assign              rd_cmd_full_joint    = joint_mode & joint_req ? wr_cmd_full | rd_cmd_full : rd_cmd_full;
314
   assign              wr_cmd_full_joint    = joint_mode & joint_req ? wr_cmd_full | rd_cmd_full : wr_cmd_full;
315
   assign              rd_cmd_pending_joint = joint_mode ? rd_cmd_pending | wr_cmd_pending : rd_cmd_pending;
316
   assign              wr_cmd_pending_joint = joint_mode & joint_req ? rd_cmd_pending | wr_cmd_pending : wr_cmd_pending;
317
 
318
   assign              idle                 = &ch_idle;
319
 
320
   assign             gclk = clk;
321
 
322
 
323
   dma_axi64_core0_wdt  dma_axi64_core0_wdt (
324
                           .clk(gclk),
325
                           .reset(reset),
326
                           .ch_active(ch_active),
327
                           .rd_burst_start(rd_burst_start),
328
                           .rd_ch_num(rd_ch_num),
329
                           .wr_burst_start(wr_burst_start_joint),
330
                           .wr_ch_num(wr_ch_num_joint),
331
                           .wdt_timeout(wdt_timeout),
332
                           .wdt_ch_num(wdt_ch_num)
333
                           );
334
 
335
 
336
   dma_axi64_core0_arbiter
337
   dma_axi64_core0_arbiter_rd (
338
                .clk(gclk),
339
                .reset(reset),
340
                .enable(rd_arbiter_en),
341
                .joint_mode(joint_mode),
342
                .page_cross(joint_page_cross),
343
                .joint_req(joint_req),
344
                .prio_top(rd_prio_top),
345
                .prio_high(rd_prio_high),
346
                .prio_top_num(rd_prio_top_num),
347
                .prio_high_num(rd_prio_high_num),
348
                .hold(rd_hold_joint),
349
                .ch_ready(ch_rd_ready_joint),
350
                .ch_active(ch_active_joint),
351
                .finish(rd_finish_joint),
352
                .ch_go_out(rd_ch_go),
353
                .ch_num(rd_ch_num),
354
                .ch_last(rd_ch_last)
355
                );
356
 
357
 
358
   dma_axi64_core0_arbiter
359
   dma_axi64_core0_arbiter_wr (
360
                .clk(gclk),
361
                .reset(reset),
362
                .enable(wr_arbiter_en),
363
                .joint_mode(joint_mode),
364
                .page_cross(1'b0),
365
                .joint_req(joint_req),
366
                .prio_top(wr_prio_top),
367
                .prio_high(wr_prio_high),
368
                .prio_top_num(wr_prio_top_num),
369
                .prio_high_num(wr_prio_high_num),
370
                .hold(1'b0),
371
                .ch_ready(ch_wr_ready),
372
                .ch_active(ch_wr_active),
373
                .finish(wr_finish),
374
                .ch_go_out(wr_ch_go),
375
                .ch_num(wr_ch_num),
376
                .ch_last(wr_ch_last)
377
                );
378
 
379
 
380
   dma_axi64_core0_ctrl  dma_axi64_core0_ctrl_rd (
381
                        .clk(gclk),
382
                        .reset(reset),
383
                        .ch_go(rd_ch_go_joint),
384
                        .cmd_full(rd_cmd_full_joint),
385
                        .cmd_pending(rd_cmd_pending_joint),
386
                        .joint_req(joint_req),
387
                        .ch_num(rd_ch_num),
388
                        .ch_num_resp(rd_ch_num_resp),
389
                        .go_next_line(rd_go_next_line),
390
                        .periph_clr_valid(rd_clr_valid),
391
                        .periph_clr(rd_clr),
392
                        .periph_clr_last(rd_clr_last),
393
                        .periph_delay(rd_periph_delay),
394
                        .clr_stall(rd_clr_stall),
395
                        .tokens(rd_tokens),
396
                        .ch_ready(rd_ready_joint),
397
                        .ch_last(rd_ch_last),
398
                        .burst_start(rd_burst_start),
399
                        .finish(rd_finish),
400
                        .busy(rd_ctrl_busy),
401
                        .hold(rd_hold_ctrl)
402
                        );
403
 
404
 
405
   dma_axi64_core0_ctrl  dma_axi64_core0_ctrl_wr (
406
                        .clk(gclk),
407
                        .reset(reset),
408
                        .ch_go(wr_ch_go_joint),
409
                        .cmd_full(wr_cmd_full_joint),
410
                        .cmd_pending(wr_cmd_pending_joint),
411
                        .joint_req(joint_req),
412
                        .ch_num(wr_ch_num_joint),
413
                        .ch_num_resp(wr_ch_num_resp),
414
                        .go_next_line(wr_go_next_line),
415
                        .periph_clr_valid(wr_clr_valid),
416
                        .periph_clr(wr_clr),
417
                        .periph_clr_last(wr_clr_last),
418
                        .periph_delay(wr_periph_delay),
419
                        .clr_stall(wr_clr_stall),
420
                        .tokens(wr_tokens),
421
                        .ch_ready(wr_ready_joint),
422
                        .ch_last(wr_ch_last_joint),
423
                        .burst_start(wr_burst_start),
424
                        .finish(wr_finish),
425
                        .busy(wr_ctrl_busy),
426
                        .hold(wr_hold_ctrl)
427
                        );
428
 
429
 
430
   dma_axi64_core0_axim_wr
431
   dma_axi64_core0_axim_wr (
432
             .clk(gclk),
433
             .reset(reset),
434
             .wr_ch_num(wr_ch_num_joint),
435
             .wr_burst_start(wr_burst_start_joint),
436
             .wr_burst_addr(wr_burst_addr),
437
             .wr_burst_size(wr_burst_size),
438
             .wr_cmd_split(wr_cmd_split),
439
             .wr_cmd_num(wr_cmd_num),
440
             .wr_cmd_pending(wr_cmd_pending),
441
             .joint_req(joint_req),
442
             .joint_stall(joint_stall),
443
             .rd_transfer(rd_transfer),
444
             .rd_transfer_size(rd_transfer_size),
445
             .ch_fifo_rd(ch_fifo_rd),
446
             .ch_fifo_rdata(ch_fifo_rdata),
447
             .ch_fifo_rd_valid(ch_fifo_rd_valid),
448
             .ch_fifo_rsize(ch_fifo_rsize),
449
             .ch_fifo_rd_num(ch_fifo_rd_num),
450
             .ch_fifo_wr_ready(ch_fifo_wr_ready),
451
             .wr_cmd_port(wr_cmd_port),
452
             .wr_last_cmd(wr_last_cmd),
453
             .wr_line_cmd(wr_line_cmd),
454
             .wr_transfer_num(wr_transfer_num),
455
             .wr_transfer(wr_transfer),
456
             .wr_transfer_size(wr_transfer_size),
457
             .wr_next_size(wr_next_size),
458
             .wr_clr_line(wr_clr_line),
459
             .wr_clr_line_num(wr_clr_line_num),
460
             .wr_cmd_full(wr_cmd_full),
461
             .wr_slverr(wr_slverr),
462
             .wr_decerr(wr_decerr),
463
             .wr_clr(wr_clr),
464
             .wr_clr_last(wr_clr_last),
465
             .wr_ch_num_resp(wr_ch_num_resp),
466
                .page_cross(wr_page_cross),
467
             .AWADDR(AWADDR),
468
             .AWPORT(wr_port_num),
469
             .AWLEN(AWLEN),
470
             .AWSIZE(AWSIZE),
471
             .AWVALID(AWVALID),
472
             .AWREADY(AWREADY),
473
             .WDATA(WDATA),
474
             .WSTRB(WSTRB),
475
             .WLAST(WLAST),
476
             .WVALID(WVALID),
477
             .WREADY(WREADY),
478
             .BRESP(BRESP),
479
             .BVALID(BVALID),
480
             .BREADY(BREADY),
481
             .axim_timeout_aw(timeout_aw),
482
             .axim_timeout_w(timeout_w),
483
             .axim_timeout_num_aw(timeout_num_aw),
484
             .axim_timeout_num_w(timeout_num_w)
485
             );
486
 
487
 
488
   dma_axi64_core0_axim_rd
489
   dma_axi64_core0_axim_rd (
490
             .clk(gclk),
491
             .reset(reset),
492
             .load_wr(load_wr),
493
             .load_wr_num(load_wr_num),
494
             .load_wr_cycle(load_wr_cycle),
495
             .load_wdata(load_wdata),
496
             .load_req_in_prog(load_req_in_prog),
497
             .joint_stall(joint_stall),
498
             .joint_req(joint_req),
499
             .rd_cmd_port(rd_cmd_port),
500
             .rd_ch_num(rd_ch_num),
501
             .rd_burst_start(rd_burst_start),
502
             .rd_burst_addr(rd_burst_addr),
503
             .rd_burst_size(rd_burst_size),
504
             .rd_cmd_split(rd_cmd_split),
505
             .rd_cmd_line(rd_cmd_line),
506
             .rd_cmd_num(rd_cmd_num),
507
             .rd_cmd_pending(rd_cmd_pending),
508
             .ch_fifo_wr(ch_fifo_wr),
509
             .ch_fifo_wdata(ch_fifo_wdata),
510
             .ch_fifo_wsize(ch_fifo_wsize),
511
             .ch_fifo_wr_num(ch_fifo_wr_num),
512
             .rd_clr_line(rd_clr_line),
513
             .rd_clr_line_num(rd_clr_line_num),
514
             .rd_line_cmd(rd_line_cmd),
515
             .rd_transfer(rd_transfer),
516
             .rd_transfer_size(rd_transfer_size),
517
             .rd_transfer_num(rd_transfer_num),
518
             .rd_burst_cmd(rd_burst_cmd),
519
             .rd_cmd_full(rd_cmd_full),
520
             .rd_slverr(rd_slverr),
521
             .rd_decerr(rd_decerr),
522
             .rd_clr(rd_clr),
523
             .rd_clr_load(rd_clr_load),
524
             .rd_clr_last(rd_clr_last),
525
             .rd_ch_num_resp(rd_ch_num_resp),
526
                .page_cross(rd_page_cross),
527
             .ARADDR(ARADDR),
528
             .ARPORT(rd_port_num),
529
             .ARLEN(ARLEN),
530
             .ARSIZE(ARSIZE),
531
             .ARVALID(ARVALID),
532
             .ARREADY(ARREADY),
533
             .AWVALID(AWVALID),
534
             .RDATA(RDATA),
535
             .RRESP(RRESP),
536
             .RLAST(RLAST),
537
             .RVALID(RVALID),
538
             .RREADY_out(RREADY),
539
             .axim_timeout_ar(timeout_ar),
540
             .axim_timeout_num_ar(timeout_num_ar)
541
             );
542
 
543
   assign             rd_hold     = 1'b0;
544
   assign             wr_hold     = 1'b0;
545
 
546
 
547
 
548
 
549
   dma_axi64_core0_channels
550
   dma_axi64_core0_channels (
551
              .clk(clk), //non gated
552
              .reset(reset),
553
              .scan_en(scan_en),
554
              .pclk(pclk),
555
              .clken(clken),
556
              .pclken(pclken),
557
              .psel(psel),
558
              .penable(penable),
559
              .paddr(paddr[10:0]),
560
              .pwrite(pwrite),
561
              .pwdata(pwdata),
562
              .prdata(prdata),
563
              .pslverr(pslverr),
564
              .periph_tx_req(periph_tx_req),
565
              .periph_tx_clr(periph_tx_clr),
566
              .periph_rx_req(periph_rx_req),
567
              .periph_rx_clr(periph_rx_clr),
568
              .rd_cmd_split(rd_cmd_split),
569
              .rd_cmd_line(rd_cmd_line),
570
              .rd_cmd_num(rd_cmd_num),
571
              .wr_cmd_split(wr_cmd_split),
572
              .wr_cmd_pending(wr_cmd_pending),
573
              .wr_cmd_num(wr_cmd_num),
574
              .rd_clr_valid(rd_clr_valid),
575
              .wr_clr_valid(wr_clr_valid),
576
              .rd_clr(rd_clr),
577
              .rd_clr_load(rd_clr_load),
578
              .wr_clr(wr_clr),
579
                  .rd_clr_stall(rd_clr_stall),
580
                  .wr_clr_stall(wr_clr_stall),
581
              .load_wr(load_wr),
582
              .load_wr_num(load_wr_num),
583
              .load_wr_cycle(load_wr_cycle),
584
              .rd_ch_num(rd_ch_num),
585
              .load_req_in_prog(load_req_in_prog),
586
              .wr_ch_num(wr_ch_num_joint),
587
              .wr_last_cmd(wr_last_cmd),
588
              .load_wdata(load_wdata),
589
              .wr_slverr(wr_slverr),
590
              .wr_decerr(wr_decerr),
591
              .wr_ch_num_resp(wr_ch_num_resp),
592
              .rd_slverr(rd_slverr),
593
              .rd_decerr(rd_decerr),
594
              .rd_ch_num_resp(rd_ch_num_resp),
595
              .wr_clr_last(wr_clr_last),
596
              .ch_int_all_proc(ch_int_all_proc),
597
              .ch_start(ch_start),
598
              .ch_idle(ch_idle),
599
              .ch_active(ch_active),
600
              .ch_rd_active(ch_rd_active),
601
              .ch_wr_active(ch_wr_active),
602
              .rd_line_cmd(rd_line_cmd),
603
              .wr_line_cmd(wr_line_cmd),
604
              .rd_go_next_line(rd_go_next_line),
605
              .wr_go_next_line(wr_go_next_line),
606
 
607
              .timeout_aw(timeout_aw),
608
              .timeout_w(timeout_w),
609
              .timeout_ar(timeout_ar),
610
              .timeout_num_aw(timeout_num_aw),
611
              .timeout_num_w(timeout_num_w),
612
              .timeout_num_ar(timeout_num_ar),
613
              .wdt_timeout(wdt_timeout),
614
              .wdt_ch_num(wdt_ch_num),
615
 
616
              .ch_fifo_wr_num(ch_fifo_wr_num),
617
              .rd_transfer_num(rd_transfer_num),
618
              .rd_burst_start(rd_burst_start),
619
              .ch_rd_ready(ch_rd_ready),
620
              .rd_burst_addr(rd_burst_addr),
621
              .rd_burst_size(rd_burst_size),
622
              .rd_tokens(rd_tokens),
623
              .rd_cmd_port(rd_cmd_port),
624
              .rd_periph_delay(rd_periph_delay),
625
              .rd_transfer(rd_transfer),
626
              .rd_transfer_size(rd_transfer_size),
627
              .rd_clr_line(rd_clr_line),
628
              .rd_clr_line_num(rd_clr_line_num),
629
              .fifo_rd(ch_fifo_rd),
630
              .fifo_rsize(ch_fifo_rsize),
631
              .fifo_rd_valid(ch_fifo_rd_valid),
632
              .fifo_rdata(ch_fifo_rdata),
633
              .fifo_wr_ready(ch_fifo_wr_ready),
634
 
635
              .ch_fifo_rd_num(ch_fifo_rd_num),
636
              .wr_burst_start(wr_burst_start_joint),
637
              .ch_wr_ready(ch_wr_ready),
638
              .wr_burst_addr(wr_burst_addr),
639
              .wr_burst_size(wr_burst_size),
640
              .wr_tokens(wr_tokens),
641
              .wr_cmd_port(wr_cmd_port),
642
              .wr_periph_delay(wr_periph_delay),
643
              .wr_transfer_num(wr_transfer_num),
644
              .wr_transfer(wr_transfer),
645
              .wr_transfer_size(wr_transfer_size),
646
              .wr_next_size(wr_next_size),
647
              .wr_clr_line(wr_clr_line),
648
              .wr_clr_line_num(wr_clr_line_num),
649
              .fifo_wr(ch_fifo_wr),
650
              .fifo_wdata(ch_fifo_wdata),
651
              .fifo_wsize(ch_fifo_wsize),
652
 
653
              .joint_mode(joint_mode),
654
              .joint_remote(joint_remote),
655
              .rd_page_cross(rd_page_cross),
656
              .wr_page_cross(wr_page_cross),
657
              .joint_in_prog(joint_in_prog),
658
              .joint_not_in_prog(joint_not_in_prog),
659
              .joint_mux_in_prog(joint_mux_in_prog),
660
              .ch_joint_req(ch_joint_req)
661
              );
662
 
663
 
664
 
665
endmodule
666
 
667
 
668
 
669
 

powered by: WebSVN 2.1.0

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