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

Subversion Repositories dma_axi

[/] [dma_axi/] [trunk/] [src/] [dma_axi64/] [dma_axi64_dual_core.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_dual_core.v
35
//---------------------------------------------------------
36
 
37
 
38
 
39
module dma_axi64_dual_core(clk,reset,scan_en,idle,INT,periph_tx_req,periph_tx_clr,periph_rx_req,periph_rx_clr,pclken,psel,penable,paddr,pwrite,pwdata,prdata,pslverr,pready,rd_port_num0,wr_port_num0,rd_port_num1,wr_port_num1,M0_AWID,M0_AWADDR,M0_AWLEN,M0_AWSIZE,M0_AWVALID,M0_AWREADY,M0_WID,M0_WDATA,M0_WSTRB,M0_WLAST,M0_WVALID,M0_WREADY,M0_BID,M0_BRESP,M0_BVALID,M0_BREADY,M0_ARID,M0_ARADDR,M0_ARLEN,M0_ARSIZE,M0_ARVALID,M0_ARREADY,M0_RID,M0_RDATA,M0_RRESP,M0_RLAST,M0_RVALID,M0_RREADY);
40
 
41
   input                   clk;
42
   input                   reset;
43
   input                   scan_en;
44
 
45
   output                   idle;
46
   output [1-1:0]                  INT;
47
 
48
   input [31:1]               periph_tx_req;
49
   output [31:1]               periph_tx_clr;
50
   input [31:1]               periph_rx_req;
51
   output [31:1]               periph_rx_clr;
52
 
53
   input                                  pclken;
54
   input                                  psel;
55
   input                                  penable;
56
   input [12:0]                           paddr;
57
   input                                  pwrite;
58
   input [31:0]                           pwdata;
59
   output [31:0]                          prdata;
60
   output                                 pslverr;
61
   output                                 pready;
62
 
63
   output                   rd_port_num0;
64
   output                   wr_port_num0;
65
   output                   rd_port_num1;
66
   output                   wr_port_num1;
67
 
68
   output [`ID_BITS-1:0]                  M0_AWID;
69
   output [32-1:0]           M0_AWADDR;
70
   output [`LEN_BITS-1:0]                 M0_AWLEN;
71
   output [`SIZE_BITS-1:0]         M0_AWSIZE;
72
   output                                 M0_AWVALID;
73
   input                                  M0_AWREADY;
74
   output [`ID_BITS-1:0]                  M0_WID;
75
   output [64-1:0]           M0_WDATA;
76
   output [64/8-1:0]         M0_WSTRB;
77
   output                                 M0_WLAST;
78
   output                                 M0_WVALID;
79
   input                                  M0_WREADY;
80
   input [`ID_BITS-1:0]                   M0_BID;
81
   input [1:0]                            M0_BRESP;
82
   input                                  M0_BVALID;
83
   output                                 M0_BREADY;
84
   output [`ID_BITS-1:0]                  M0_ARID;
85
   output [32-1:0]           M0_ARADDR;
86
   output [`LEN_BITS-1:0]                 M0_ARLEN;
87
   output [`SIZE_BITS-1:0]         M0_ARSIZE;
88
   output                                 M0_ARVALID;
89
   input                                  M0_ARREADY;
90
   input [`ID_BITS-1:0]                   M0_RID;
91
   input [64-1:0]            M0_RDATA;
92
   input [1:0]                            M0_RRESP;
93
   input                                  M0_RLAST;
94
   input                                  M0_RVALID;
95
   output                                 M0_RREADY;
96
 
97
 
98
 
99
   wire                   psel0;
100
   wire [31:0]                   prdata0;
101
   wire                   pslverr0;
102
 
103
   wire                   psel1;
104
   wire [31:0]                   prdata1;
105
   wire                   pslverr1;
106
 
107
   wire                   psel_reg;
108
   wire [31:0]                   prdata_reg;
109
   wire                   pslverr_reg;
110
 
111
   wire [8*1-1:0]                  ch_int_all_proc0;
112
 
113
   //outputs of dma_axi64 reg
114
   wire [1-1:0]                    int_all_proc;
115
   wire [3:0]                   core0_clkdiv;
116
   wire [7:0]                   core0_ch_start;
117
   wire                   joint_mode0;
118
   wire                   joint_remote0;
119
   wire                    rd_prio_top0;
120
   wire                    rd_prio_high0;
121
   wire [2:0]                   rd_prio_top_num0;
122
   wire [2:0]                   rd_prio_high_num0;
123
   wire                    wr_prio_top0;
124
   wire                    wr_prio_high0;
125
   wire [2:0]                   wr_prio_top_num0;
126
   wire [2:0]                   wr_prio_high_num0;
127
   wire [31:1]                   periph_rx_req_reg;
128
   wire [31:1]                   periph_tx_req_reg;
129
 
130
   wire [31:1]                   periph_rx_req0;
131
   wire [31:1]                   periph_tx_req0;
132
   wire [31:1]                   periph_rx_req1;
133
   wire [31:1]                   periph_tx_req1;
134
   wire [31:1]                   periph_rx_clr0;
135
   wire [31:1]                   periph_tx_clr0;
136
   wire [31:1]                   periph_rx_clr1;
137
   wire [31:1]                   periph_tx_clr1;
138
 
139
   wire                   core0_idle;
140
 
141
 
142
 
143
   assign                   idle = core0_idle;
144
 
145
   assign                   INT = int_all_proc;
146
 
147
 
148
   assign                   periph_rx_req0     = periph_rx_req | periph_rx_req_reg;
149
   assign                   periph_tx_req0     = periph_tx_req | periph_tx_req_reg;
150
   assign                   periph_rx_req1     = periph_rx_req0;
151
   assign                   periph_tx_req1     = periph_tx_req0;
152
 
153
   assign                   periph_rx_clr      = periph_rx_clr0 | periph_rx_clr1;
154
   assign                   periph_tx_clr      = periph_tx_clr0 | periph_tx_clr1;
155
 
156
 
157
   assign                   joint_remote0 = joint_mode0 & 0 & 0;
158
 
159
 
160
   dma_axi64_apb_mux  dma_axi64_apb_mux (
161
                   .clk(clk),
162
                   .reset(reset),
163
                   .pclken(pclken),
164
                   .psel(psel),
165
                   .penable(penable),
166
                   .pwrite(pwrite),
167
                   .paddr(paddr[12:11]),
168
                   .prdata(prdata),
169
                   .pslverr(pslverr),
170
                   .pready(pready),
171
                   .psel0(psel0),
172
                   .prdata0(prdata0),
173
                   .pslverr0(pslverr0),
174
                   .psel1(psel1),
175
                   .prdata1(prdata1),
176
                   .pslverr1(pslverr1),
177
                   .psel_reg(psel_reg),
178
                   .prdata_reg(prdata_reg),
179
                   .pslverr_reg(pslverr_reg)
180
                   );
181
 
182
 
183
   dma_axi64_reg  dma_axi64_reg (
184
               .clk(clk),
185
               .reset(reset),
186
               .pclken(pclken),
187
               .psel(psel_reg),
188
               .penable(penable),
189
               .paddr(paddr[7:0]),
190
               .pwrite(pwrite),
191
               .pwdata(pwdata),
192
               .prdata(prdata_reg),
193
               .pslverr(pslverr_reg),
194
               .core0_idle(core0_idle),
195
               .ch_int_all_proc0(ch_int_all_proc0),
196
               .int_all_proc(int_all_proc),
197
               .core0_clkdiv(core0_clkdiv),
198
               .core0_ch_start(core0_ch_start),
199
               .joint_mode0(joint_mode0),
200
               .rd_prio_top0(rd_prio_top0),
201
               .rd_prio_high0(rd_prio_high0),
202
               .rd_prio_top_num0(rd_prio_top_num0),
203
               .rd_prio_high_num0(rd_prio_high_num0),
204
               .wr_prio_top0(wr_prio_top0),
205
               .wr_prio_high0(wr_prio_high0),
206
               .wr_prio_top_num0(wr_prio_top_num0),
207
               .wr_prio_high_num0(wr_prio_high_num0),
208
               .periph_rx_req_reg(periph_rx_req_reg),
209
               .periph_tx_req_reg(periph_tx_req_reg),
210
               .periph_rx_clr(periph_rx_clr),
211
               .periph_tx_clr(periph_tx_clr)
212
               );
213
 
214
 
215
 
216
   dma_axi64_core0_top
217
   dma_axi64_core0_top (
218
 
219
             .clk(clk),
220
             .reset(reset),
221
             .scan_en(scan_en),
222
 
223
             .idle(core0_idle),
224
             .ch_int_all_proc(ch_int_all_proc0),
225
             .ch_start(core0_ch_start),
226
             .clkdiv(core0_clkdiv),
227
 
228
             .periph_tx_req(periph_tx_req0),
229
             .periph_tx_clr(periph_tx_clr0),
230
             .periph_rx_req(periph_rx_req0),
231
             .periph_rx_clr(periph_rx_clr0),
232
 
233
             .pclken(pclken),
234
             .psel(psel0),
235
             .penable(penable),
236
             .paddr(paddr[10:0]),
237
             .pwrite(pwrite),
238
             .pwdata(pwdata),
239
             .prdata(prdata0),
240
             .pslverr(pslverr0),
241
 
242
             .rd_port_num(rd_port_num0),
243
             .wr_port_num(wr_port_num0),
244
 
245
             .joint_mode(joint_mode0),
246
             .joint_remote(joint_remote0),
247
             .rd_prio_top(rd_prio_top0),
248
             .rd_prio_high(rd_prio_high0),
249
             .rd_prio_top_num(rd_prio_top_num0),
250
             .rd_prio_high_num(rd_prio_high_num0),
251
             .wr_prio_top(wr_prio_top0),
252
             .wr_prio_high(wr_prio_high0),
253
             .wr_prio_top_num(wr_prio_top_num0),
254
             .wr_prio_high_num(wr_prio_high_num0),
255
 
256
                     .AWADDR(M0_AWADDR),
257
                     .AWLEN(M0_AWLEN),
258
                     .AWSIZE(M0_AWSIZE),
259
                     .AWVALID(M0_AWVALID),
260
                     .AWREADY(M0_AWREADY),
261
                     .WDATA(M0_WDATA),
262
                     .WSTRB(M0_WSTRB),
263
                     .WLAST(M0_WLAST),
264
                     .WVALID(M0_WVALID),
265
                     .WREADY(M0_WREADY),
266
                     .BRESP(M0_BRESP),
267
                     .BVALID(M0_BVALID),
268
                     .BREADY(M0_BREADY),
269
                     .ARADDR(M0_ARADDR),
270
                     .ARLEN(M0_ARLEN),
271
                     .ARSIZE(M0_ARSIZE),
272
                     .ARVALID(M0_ARVALID),
273
                     .ARREADY(M0_ARREADY),
274
                     .RDATA(M0_RDATA),
275
                     .RRESP(M0_RRESP),
276
                     .RLAST(M0_RLAST),
277
                     .RVALID(M0_RVALID),
278
                     .RREADY(M0_RREADY)
279
             );
280
 
281
 
282
 
283
 
284
   prgen_delay #(1) delay_pslverr1 (.clk(clk), .reset(reset), .din(psel1), .dout(pslverr1)); //return error
285
   assign                   prdata1          = {32{1'b0}};
286
 
287
   assign                   periph_rx_clr1   = {31{1'b0}};
288
   assign                   periph_tx_clr1   = {31{1'b0}};
289
 
290
   assign                   rd_port_num1     = 1'b0;
291
   assign                   wr_port_num1     = 1'b0;
292
 
293
 
294
endmodule
295
 
296
 
297
 
298
 

powered by: WebSVN 2.1.0

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