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

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [opencores.org/] [io/] [ip/] [io_ext_mem_interface/] [rtl/] [verilog/] [top.body] - Blame information for rev 131

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 131 jt_eaton
 
2
 
3
 
4
 
5
reg [3:0]         enableY;
6
reg               wait_n;
7
 
8
 
9
 
10
assign mem_rdata = ext_rdata;
11
 
12
 
13
 
14
always@(posedge clk)
15
  if(reset)
16
                      begin
17
                      ext_add   <=  'b0;
18
                      ext_wdata <= 16'b0000000000000;
19
                      ext_rd    <= 1'b0;
20
                      ext_wr    <= 1'b0;
21
                      ext_cs    <= 2'b00;
22
                      ext_stb   <= 1'b0;
23
                      ext_ub    <= 1'b0;
24
                      ext_lb    <= 1'b0;
25
                      end
26
  else
27
                      begin
28
                      ext_add   <= {10'b0000000000, mem_addr[13:1]};
29
                      ext_wdata <= mem_wdata;
30
                      ext_rd    <= mem_cs && mem_rd;
31
                      ext_wr    <= mem_cs && mem_wr;
32
                      ext_cs    <= {1'b0,mem_cs};
33
                      ext_stb   <= mem_cs;
34
                      ext_ub    <= mem_cs &&  mem_addr[0];
35
                      ext_lb    <= mem_cs && !mem_addr[0];
36
                      end
37
 
38
 
39
 
40
always@(posedge clk)
41
if(reset || enable)
42
   begin
43
   wait_n  <= 1'b0;
44
   enableY  <= 4'b0000;
45
   end
46
else
47
if (mem_cs  && (mem_rd || mem_wr))
48
   begin
49
     if(enableY == 4'b0100) wait_n  <= 1'b1;
50
     else                   enableY  <= enableY +4'b0001;
51
   end
52
else
53
   wait_n <= 1'b1;
54
 
55
 
56
assign mem_wait = ~ wait_n;
57
 
58
 
59
`VARIANT`MB
60
#(.BANK_RST(8'h00),
61
  .WAIT_ST_RST(8'h04))
62
 
63
ext_mem_interface_micro_reg
64
(
65
             .clk            ( clk     ),
66
             .reset          ( reset   ),
67
             .enable         ( enable  ),
68
             .cs             ( cs      ),
69
             .wr             ( wr      ),
70
             .rd             ( rd      ),
71
             .byte_lanes     ( 1'b1    ),
72
             .addr           ( addr    ),
73
             .wdata          ( wdata   ),
74
             .rdata          ( rdata   ),
75
             .bank_cs        (         ),
76
             .bank_dec       (         ),
77
             .bank_wr_0      (         ),
78
             .wait_st_cs     (         ),
79
             .wait_st_dec    (         ),
80
             .wait_st_wr_0   (         ),
81
 
82
             .next_wait_st   ( wait_st ),
83
             .next_bank      ( bank    ),
84
 
85
             .wait_st_rdata  ( wait_st ),
86
             .bank_rdata     ( bank    ),
87
 
88
 
89
             .wait_st        ( wait_st ),
90
             .bank           ( bank    )
91
 
92
);

powered by: WebSVN 2.1.0

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