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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [boards/] [actel/] [ordb1a3pe1500/] [rtl/] [verilog/] [flashrom/] [flashrom.v] - Blame information for rev 408

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 408 julius
// Wrapper for Actel flash ROM
2
// 2 cycles from request to ACK
3
 
4
module flashrom(
5
                wb_clk,
6
                wb_rst,
7
                wb_adr_i,
8
                wb_cyc_i,
9
                wb_stb_i,
10
 
11
                wb_ack_o,
12
                wb_dat_o,
13
                wb_err_o,
14
                wb_rty_o);
15
 
16
 
17
   input wb_clk;
18
   input wb_rst;
19
   input [6:0] wb_adr_i;
20
   input       wb_cyc_i;
21
   input       wb_stb_i;
22
 
23
   output      wb_ack_o;
24
   output reg [7:0] wb_dat_o;
25
   output           wb_err_o;
26
   output           wb_rty_o;
27
 
28
 
29
   reg [3:0]         ack_shr;
30
   reg [6:0]         addr;
31
   wire [7:0]        dat;
32
   reg [7:0]         dat_r;
33
 
34
   wire             wb_access;
35
 
36
   assign wb_access = wb_cyc_i & wb_stb_i;
37
 
38
   always @(posedge wb_clk)
39
     if (wb_rst)
40
       ack_shr <= 0;
41
     else if (wb_access & !(|ack_shr))
42
       ack_shr[0] <= 1'b1;
43
     else
44
       ack_shr <= {ack_shr[2:0],1'b0};
45
 
46
   assign wb_ack_o = ack_shr[3];
47
 
48
   always @(posedge wb_clk)
49
     if (wb_access & !(|ack_shr))
50
       addr <= wb_adr_i;
51
 
52
   orpsoc_flashROM orpsoc_flashROM0
53
     (
54
      .CLK(wb_clk),
55
      .ADDR(addr),
56
      .DOUT(dat)
57
      );
58
 
59
   always @(posedge wb_clk)
60
     dat_r <= dat;
61
 
62
   always @(posedge wb_clk)
63
     wb_dat_o <= dat_r;
64
 
65
   assign wb_err_o = 0;
66
   assign wb_rty_o = 0;
67
 
68
endmodule // flashrom

powered by: WebSVN 2.1.0

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