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

Subversion Repositories wb_to_amba

[/] [wb_to_amba/] [trunk/] [src/] [wb_arm_phase_fsm.v] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 qaztronic
//
2
//
3
//
4
 
5
`timescale 1ns / 100ps
6
 
7
 
8
 
9
module wb_arm_phase_fsm(
10
                          input   ahb_hclk,
11
                          input   ahb_hreset,
12
                          input   ahb_hsel,
13
                          input   ahb_hready_in,
14
                          input   ahb_hready_out,
15
                          output  ahb_data_phase,
16
                          output  fsm_error
17
                        );
18
 
19
 
20
  // -----------------------------
21
  //  state machine binary definitions
22
  parameter IDLE_STATE  = 3'b001;
23
  parameter DATA_STATE  = 3'b010;
24
  parameter ERROR_STATE = 3'b100;
25
 
26
 
27
  // -----------------------------
28
  //  state machine flop
29
  reg [2:0] state;
30
  reg [2:0] next_state;
31
 
32
  always @(posedge ahb_hclk)
33
    if(~ahb_hreset)
34
      state <= IDLE_STATE;
35
    else
36
      state <= next_state;
37
 
38
 
39
  // -----------------------------
40
  //  state machine
41
  always @(*)
42
    case(state)
43
      IDLE_STATE:   if( ahb_hsel & ahb_hready_in )
44
                      next_state <= DATA_STATE;
45
                    else
46
                      next_state <= IDLE_STATE;
47
 
48
      DATA_STATE:   if( ahb_hready_out )
49
                      next_state <= IDLE_STATE;
50
                    else
51
                      next_state <= DATA_STATE;
52
 
53
      ERROR_STATE:  next_state <= IDLE_STATE;
54
 
55
      default:      next_state <= ERROR_STATE;
56
 
57
    endcase
58
 
59
 
60
  // -----------------------------
61
  //  outputs
62
  assign ahb_data_phase = (state == DATA_STATE);
63
  assign fsm_error      = (state == ERROR_STATE);
64
 
65
endmodule
66
 
67
 
68
 
69
 
70
 
71
 

powered by: WebSVN 2.1.0

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