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

Subversion Repositories dma_axi

[/] [dma_axi/] [trunk/] [src/] [dma_axi32/] [dma_axi32_core0_axim_wr.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:34:51 2011
33
//--
34
//-- Source file: dma_core_axim_wr.v
35
//---------------------------------------------------------
36
 
37
 
38
 
39
module dma_axi32_core0_axim_wr(clk,reset,wr_cmd_port,wr_last_cmd,wr_line_cmd,wr_ch_num,wr_burst_start,wr_burst_addr,wr_burst_size,wr_cmd_pending,wr_cmd_split,wr_cmd_num,rd_transfer,rd_transfer_size,ch_fifo_rd,ch_fifo_rdata,ch_fifo_rd_valid,ch_fifo_rsize,ch_fifo_wr_ready,ch_fifo_rd_num,wr_transfer_num,wr_transfer,wr_transfer_size,wr_next_size,wr_cmd_full,wr_clr_line,wr_clr_line_num,wr_slverr,wr_decerr,wr_clr,wr_clr_last,wr_ch_num_resp,page_cross,AWADDR,AWPORT,AWLEN,AWSIZE,AWVALID,AWREADY,WDATA,WSTRB,WLAST,WVALID,WREADY,BRESP,BVALID,BREADY,joint_req,joint_stall,axim_timeout_aw,axim_timeout_w,axim_timeout_num_aw,axim_timeout_num_w);
40
 
41
   input               clk;
42
   input               reset;
43
 
44
   //command
45
   input               wr_cmd_port;
46
   input               wr_last_cmd;
47
   input               wr_line_cmd;
48
   input [2:0]               wr_ch_num;
49
   input               wr_burst_start;
50
   input [32-1:0]      wr_burst_addr;
51
   input [7-1:0]     wr_burst_size;
52
   output               wr_cmd_pending;
53
   output               wr_cmd_split;
54
   output [2:0]           wr_cmd_num;
55
 
56
   //data
57
   input               rd_transfer;
58
   input [3-1:0]      rd_transfer_size;
59
   output               ch_fifo_rd;
60
   input [32-1:0]      ch_fifo_rdata;
61
   input               ch_fifo_rd_valid;
62
   output [3-1:0]     ch_fifo_rsize;
63
   input               ch_fifo_wr_ready;
64
   output [2:0]           ch_fifo_rd_num;
65
   output [2:0]           wr_transfer_num;
66
   output               wr_transfer;
67
   output [3-1:0]     wr_transfer_size;
68
   output [3-1:0]     wr_next_size;
69
   output               wr_cmd_full;
70
   output               wr_clr_line;
71
   output [2:0]           wr_clr_line_num;
72
 
73
   //resp
74
   output               wr_slverr;
75
   output               wr_decerr;
76
   output               wr_clr;
77
   output               wr_clr_last;
78
   output [2:0]           wr_ch_num_resp;
79
 
80
   output               page_cross;
81
 
82
   output [32-1:0]     AWADDR;
83
   output               AWPORT;
84
   output [`LEN_BITS-1:0]     AWLEN;
85
   output [1:0]           AWSIZE;
86
   output               AWVALID;
87
   input               AWREADY;
88
   output [32-1:0]     WDATA;
89
   output [4-1:0]     WSTRB;
90
   output               WLAST;
91
   output               WVALID;
92
   input               WREADY;
93
   input [1:0]               BRESP;
94
   input               BVALID;
95
   output               BREADY;
96
 
97
   input               joint_req;
98
   output               joint_stall;
99
 
100
   output               axim_timeout_aw;
101
   output               axim_timeout_w;
102
   output [2:0]           axim_timeout_num_aw;
103
   output [2:0]           axim_timeout_num_w;
104
 
105
 
106
 
107
   wire [`CMD_BITS-1:0]       AWID;
108
   wire               AJOINT;
109
   wire               BVALID_d;
110
   wire [`CMD_BITS-1:0]       BID;
111
   reg [1:0]               BRESP_d;
112
   wire               wr_resp_full;
113
 
114
 
115
   assign               BREADY   = 1'b1;
116
 
117
 
118
   prgen_delay #(1) delay_bvalid(.clk(clk), .reset(reset), .din(BVALID), .dout(BVALID_d));
119
 
120
   always @(posedge clk or posedge reset)
121
     if (reset)
122
       begin
123
      BRESP_d <= #1 2'b00;
124
       end
125
     else if (BVALID)
126
       begin
127
      BRESP_d <= #1 BRESP;
128
       end
129
 
130
 
131
   dma_axi32_core0_axim_cmd
132
   dma_axi32_axim_wcmd (
133
             .clk(clk),
134
             .reset(reset),
135
             .end_line_cmd(wr_line_cmd),
136
             .extra_bit(wr_last_cmd),
137
             .cmd_port(wr_cmd_port),
138
             .joint_req(joint_req),
139
             .ch_num(wr_ch_num),
140
             .burst_start(wr_burst_start),
141
             .burst_addr(wr_burst_addr),
142
             .burst_size(wr_burst_size),
143
             .cmd_pending(wr_cmd_pending),
144
             .cmd_full(wr_cmd_full),
145
             .cmd_split(wr_cmd_split),
146
             .cmd_num(wr_cmd_num),
147
             .cmd_line(),
148
             .page_cross(page_cross),
149
             .AID(AWID),
150
             .AADDR(AWADDR),
151
             .APORT(AWPORT),
152
             .ALEN(AWLEN),
153
             .ASIZE(AWSIZE),
154
             .AVALID(AWVALID),
155
             .AREADY(AWREADY),
156
             .AWVALID(1'b0),
157
             .AJOINT(AJOINT),
158
             .axim_timeout_num(axim_timeout_num_aw),
159
             .axim_timeout(axim_timeout_aw)
160
             );
161
 
162
 
163
   dma_axi32_core0_axim_wdata
164
   dma_axi32_axim_wdata (
165
              .clk(clk),
166
              .reset(reset),
167
              .joint_stall(joint_stall),
168
              .rd_transfer(rd_transfer),
169
              .rd_transfer_size(rd_transfer_size),
170
              .ch_fifo_rd(ch_fifo_rd),
171
              .ch_fifo_rdata(ch_fifo_rdata),
172
              .ch_fifo_rd_valid(ch_fifo_rd_valid),
173
              .ch_fifo_rsize(ch_fifo_rsize),
174
              .ch_fifo_rd_num(ch_fifo_rd_num),
175
              .ch_fifo_wr_ready(ch_fifo_wr_ready),
176
              .wr_transfer_num(wr_transfer_num),
177
              .wr_transfer(wr_transfer),
178
              .wr_transfer_size(wr_transfer_size),
179
              .wr_next_size(wr_next_size),
180
              .wr_resp_full(wr_resp_full),
181
              .wr_cmd_full(wr_cmd_full),
182
              .wr_clr_line(wr_clr_line),
183
              .wr_clr_line_num(wr_clr_line_num),
184
              .AWID(AWID),
185
              .AWADDR(AWADDR),
186
              .AWLEN(AWLEN),
187
              .AWSIZE(AWSIZE),
188
              .AWVALID(AWVALID),
189
              .AWREADY(AWREADY),
190
              .AJOINT(AJOINT),
191
              .WDATA(WDATA),
192
              .WSTRB(WSTRB),
193
              .WLAST(WLAST),
194
              .WVALID(WVALID),
195
              .WREADY(WREADY),
196
              .axim_timeout_num(axim_timeout_num_w),
197
              .axim_timeout(axim_timeout_w)
198
              );
199
 
200
 
201
   dma_axi32_core0_axim_resp #(.CMD_DEPTH(2))
202
   dma_axi32_axim_wresp (
203
              .clk(clk),
204
              .reset(reset),
205
              .slverr(wr_slverr),
206
              .decerr(wr_decerr),
207
              .clr(wr_clr),
208
              .clr_last(wr_clr_last),
209
              .ch_num_resp(wr_ch_num_resp),
210
              .resp_full(wr_resp_full),
211
              .AID(AWID),
212
              .AVALID(AWVALID),
213
              .AREADY(AWREADY),
214
              .ID(BID),
215
              .RESP(BRESP_d),
216
              .VALID(BVALID_d),
217
              .READY(BREADY),
218
              .LAST(1'b1)
219
              );
220
 
221
 
222
endmodule
223
 
224
 
225
 
226
 
227
 

powered by: WebSVN 2.1.0

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