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

Subversion Repositories versatile_mem_ctrl

[/] [versatile_mem_ctrl/] [tags/] [Rev1/] [bench/] [wb0.v] - Blame information for rev 89

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 unneback
 
2
module wb0 (
3
  output reg [31:0] adr,
4
  output reg [1:0] bte,
5
  output reg [2:0] cti,
6
  output reg cyc,
7
  output reg [31:0] dat,
8
  output reg [3:0] sel,
9
  output reg stb,
10
  output reg we,
11
  input wire ack,
12
  input wire clk,
13
  input wire [31:0] dat_i,
14
  input wire reset
15
);
16
 
17
 
18
 
19
 
20
  // state bits
21
  parameter
22
  state0 = 2'b00,
23
  state1 = 2'b01,
24
  state2 = 2'b10,
25
  state3 = 2'b11;
26
 
27
  reg [1:0] state;
28
  reg [1:0] nextstate;
29
 
30
  // comb always block
31
  always @* begin
32
    nextstate = state; // default to hold value because implied_loopback is set
33
    adr[31:0] = 32'h0; // default
34
    bte[1:0] = 2'b00; // default
35
    cti[2:0] = 3'b000; // default
36
    cyc = 1'b0; // default
37
    dat[31:0] = 32'h0; // default
38
    sel[3:0] = 4'b1111; // default
39
    stb = 1'b0; // default
40
    we = 1'b0; // default
41
    case (state)
42
      state0: begin
43
        begin
44
          nextstate = state1;
45
        end
46
      end
47
      state1: begin
48
        adr[31:0] = 32'h1000;
49
        cyc = 1'b1;
50
        dat[31:0] = 32'h12345678;
51
        stb = 1'b1;
52
        we = 1'b1;
53
        if (ack) begin
54
          nextstate = state2;
55
        end
56
      end
57
      state2: begin
58
        adr[31:0] = 32'h1004;
59
        cyc = 1'b1;
60
        stb = 1'b1;
61
        if (ack) begin
62
          nextstate = state3;
63
        end
64
      end
65
      state3: begin
66
        begin
67
          nextstate = state3;
68
        end
69
      end
70
    endcase
71
  end
72
 
73
  // Assign reg'd outputs to state bits
74
 
75
  // sequential always block
76
  always @(posedge clk or posedge reset) begin
77
    if (reset)
78
      state <= state0;
79
    else
80
      state <= nextstate;
81
  end
82
 
83
  // This code allows you to see state names in simulation
84
  `ifndef SYNTHESIS
85
  reg [47:0] statename;
86
  always @* begin
87
    case (state)
88
      state0:
89
        statename = "state0";
90
      state1:
91
        statename = "state1";
92
      state2:
93
        statename = "state2";
94
      state3:
95
        statename = "state3";
96
      default:
97
        statename = "XXXXXX";
98
    endcase
99
  end
100
  `endif
101
 
102
 
103
endmodule
104
 

powered by: WebSVN 2.1.0

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