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

Subversion Repositories dma_axi

[/] [dma_axi/] [trunk/] [src/] [dma_axi64/] [dma_axi64_core0_axim_rdata.v] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 eyalhoc
//---------------------------------------------------------
2
//-- File generated by RobustVerilog parser
3
//-- Version: 1.0
4
//-- Invoked Fri Mar 25 23:36:55 2011
5
//--
6
//-- Source file: dma_core_axim_rdata.v
7
//---------------------------------------------------------
8
 
9
 
10
 
11
module dma_axi64_core0_axim_rdata(clk,reset,joint_stall,ch_fifo_wr,ch_fifo_wdata,ch_fifo_wsize,ch_fifo_wr_num,rd_transfer_num,rd_transfer,rd_transfer_size,rd_burst_cmd,load_wr,load_wr_num,load_wr_cycle,load_wdata,rd_clr_line,rd_clr_line_num,ARVALID,ARREADY,ARID,RID,RDATA,RLAST,RVALID,RREADY,RREADY_out);
12
 
13
   input               clk;
14
   input               reset;
15
 
16
   input               joint_stall;
17
 
18
   output               ch_fifo_wr;
19
   output [64-1:0]     ch_fifo_wdata;
20
   output [4-1:0]     ch_fifo_wsize;
21
   output [2:0]           ch_fifo_wr_num;
22
   output [2:0]           rd_transfer_num;
23
   output               rd_transfer;
24
   input [4-1:0]      rd_transfer_size;
25
   output               rd_burst_cmd;
26
   output               load_wr;
27
   output [2:0]           load_wr_num;
28
   output [1:0]           load_wr_cycle;
29
   output [64-1:0]     load_wdata;
30
   output               rd_clr_line;
31
   output [2:0]           rd_clr_line_num;
32
 
33
   input               ARVALID;
34
   input               ARREADY;
35
   input [`CMD_BITS-1:0]      ARID;
36
   input [`CMD_BITS-1:0]      RID;
37
   input [64-1:0]      RDATA;
38
   input               RLAST;
39
   input               RVALID;
40
   input               RREADY;
41
   output               RREADY_out;
42
 
43
 
44
   reg [1:0]               load_wr_cycle;
45
   wire               load_cmd_id;
46
   wire               rd_clr_line_pre;
47
   wire               rd_clr_line_pre_d;
48
   reg [2:0]               ch_fifo_wr_num_d;
49
   reg [2:0]               rd_clr_line_num;
50
 
51
 
52
 
53
 
54
 
55
   assign               load_cmd_id     = RID[3];
56
 
57
   assign               RREADY_out      = (~rd_clr_line_pre) & (~rd_clr_line_pre_d) & (~joint_stall);
58
 
59
   assign               rd_transfer_num = RID[2:0];
60
 
61
   assign               rd_transfer     = RVALID & RREADY & (~load_cmd_id);
62
 
63
   assign               rd_burst_cmd    = rd_transfer & RID[5];
64
 
65
   assign               ch_fifo_wr      = rd_transfer;
66
 
67
   assign               ch_fifo_wdata   = RDATA;
68
 
69
   assign               ch_fifo_wsize   = rd_transfer_size;
70
 
71
   assign               ch_fifo_wr_num  = RID[2:0];
72
 
73
 
74
   assign               rd_clr_line_pre = RVALID & RREADY & RLAST & RID[6] & (~RID[3]);
75
 
76
   prgen_delay #(1) delay_clr(.clk(clk), .reset(reset), .din(rd_clr_line_pre), .dout(rd_clr_line_pre_d));
77
   prgen_delay #(1) delay_clr2(.clk(clk), .reset(reset), .din(rd_clr_line_pre_d), .dout(rd_clr_line));
78
 
79
   always @(posedge clk or posedge reset)
80
     if (reset)
81
       ch_fifo_wr_num_d <= #1 3'b000;
82
     else if (rd_clr_line_pre)
83
       ch_fifo_wr_num_d <= #1 ch_fifo_wr_num;
84
 
85
   always @(posedge clk or posedge reset)
86
     if (reset)
87
       rd_clr_line_num <= #1 3'b000;
88
     else if (rd_clr_line_pre_d)
89
       rd_clr_line_num <= #1 ch_fifo_wr_num_d;
90
 
91
   assign               load_wr         = RVALID & RREADY & load_cmd_id;
92
 
93
   assign               load_wr_num     = RID[2:0];
94
 
95
   assign               load_wdata      = RDATA;
96
 
97
 
98
   always @(posedge clk or posedge reset)
99
     if (reset)
100
       load_wr_cycle <= #1 2'b00;
101
     else if (load_wr & load_wr_cycle[0] & 1'b1)
102
       load_wr_cycle <= #1 2'b00;
103
     else if (load_wr)
104
       load_wr_cycle <= #1 load_wr_cycle + 1'b1;
105
 
106
 
107
 
108
 
109
endmodule
110
 
111
 
112
 
113
 
114
 

powered by: WebSVN 2.1.0

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