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

Subversion Repositories sdcard_mass_storage_controller

[/] [sdcard_mass_storage_controller/] [trunk/] [rtl/] [sdc_dma/] [verilog/] [sd_fifo_rx_filler.v] - Blame information for rev 134

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 134 tac2
`include "sd_defines.v"
2
 
3
module sd_fifo_rx_filler
4
(
5
input clk,
6
input rst,
7
//WB Signals
8
output  [31:0]  m_wb_adr_o,
9
 
10
output  reg        m_wb_we_o,
11
 
12
output reg [31:0]  m_wb_dat_o,
13
output    reg      m_wb_cyc_o,
14
output   reg       m_wb_stb_o,
15
input           m_wb_ack_i,
16
output  reg     [2:0] m_wb_cti_o,
17
output  reg [1:0]         m_wb_bte_o,
18
 
19
//Data Master Control signals
20
input en,
21
input [31:0] adr,
22
 
23
//Data Serial signals 
24
input sd_clk,
25
input [`SD_BUS_W-1:0] dat_i,
26
input wr,
27
output full
28
//
29
 
30
);
31
 wire [31:0] dat_o;
32
reg rd;
33
reg reset_rx_fifo;
34
sd_rx_fifo Rx_Fifo (
35
.d ( dat_i ),
36
.wr  (  wr ),
37
.wclk  (sd_clk),
38
.q ( dat_o),
39
.rd (rd),
40
.full (full),
41
.empty (empty),
42
.mem_empt (),
43
.rclk (clk),
44
.rst  (rst | reset_rx_fifo)
45
);
46
 
47
//reg [31:0] tmp_dat;
48
reg [8:0] offset;
49
assign  m_wb_adr_o = adr+offset;
50
//assign  m_wb_dat_o = dat_o;
51
 
52
reg wb_free;
53
always @(posedge clk or posedge rst )begin
54
 
55
 if (rst) begin
56
  offset<=0;
57
  m_wb_we_o <=0;
58
        m_wb_cyc_o <= 0;
59
        m_wb_stb_o <= 0;
60
        wb_free<=1;
61
        m_wb_dat_o<=0;
62
        rd<=0;
63
        reset_rx_fifo<=1;
64
        m_wb_bte_o <= 2'b00;
65
                m_wb_cti_o <= 3'b000;
66
 
67
 end
68
 else if (en)  begin//Start filling the RX buffer
69
    rd<=0;
70
    reset_rx_fifo<=0;
71
  if (!empty & wb_free) begin
72
    rd<=1;
73
 
74
    m_wb_dat_o<=#1 dat_o;
75
    m_wb_we_o <=#1 1;
76
                m_wb_cyc_o <=#1 1;
77
                m_wb_stb_o <=#1 1;
78
    wb_free<=0;
79
  end
80
 
81
  if(  !wb_free & m_wb_ack_i) begin
82
    m_wb_we_o <=0;
83
                m_wb_cyc_o <= 0;
84
                m_wb_stb_o <= 0;
85
                offset<=offset+`MEM_OFFSET;
86
                wb_free<=1;
87
        end
88
end
89
else begin
90
   reset_rx_fifo<=1;
91
    rd<=0;
92
   offset<=0;
93
        m_wb_cyc_o <= 0;
94
                        m_wb_stb_o <= 0;
95
                        m_wb_we_o <=0;
96
                        wb_free<=1;
97
  end
98
 
99
end
100
endmodule
101
 
102
 

powered by: WebSVN 2.1.0

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