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

Subversion Repositories qaz_libs

[/] [qaz_libs/] [trunk/] [basal/] [src/] [gear_box/] [unbuffered_gear_box_fsm.v] - Blame information for rev 34

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 34 qaztronic
// --------------------------------------------------------------------
2
//
3
// --------------------------------------------------------------------
4
 
5
 
6
module
7
  unbuffered_gear_box_fsm
8
  (
9
    input               ugb_enable,
10
 
11
    output              adc_bus_bank_select,
12
    output              adc_rd_en,
13
    output      [3:0]   gear_select,
14
 
15
    input               ugb_clock,
16
    input               ugb_reset
17
  );
18
 
19
  // -----------------------------
20
  //  state machine binary definitions
21
  localparam STATE_13_IN_05_RESIDUE = 6'b0_1_0000;
22
  localparam STATE_13_IN_10_RESIDUE = 6'b1_1_0001;
23
  localparam STATE_00_IN_02_RESIDUE = 6'b0_0_0010;
24
  localparam STATE_13_IN_07_RESIDUE = 6'b0_1_0011;
25
  localparam STATE_13_IN_12_RESIDUE = 6'b1_1_0100;
26
  localparam STATE_00_IN_04_RESIDUE = 6'b0_0_0101;
27
  localparam STATE_13_IN_09_RESIDUE = 6'b0_1_0110;
28
  localparam STATE_00_IN_01_RESIDUE = 6'b1_0_0111;
29
  localparam STATE_13_IN_06_RESIDUE = 6'b1_1_1000;
30
  localparam STATE_13_IN_11_RESIDUE = 6'b0_1_1001;
31
  localparam STATE_00_IN_03_RESIDUE = 6'b1_0_1010;
32
  localparam STATE_13_IN_08_RESIDUE = 6'b1_1_1011;
33
  localparam STATE_00_IN_00_RESIDUE = 6'b0_0_1100;
34
 
35
 
36
  // -----------------------------
37
  //  state machine flop
38
  reg [5:0] state;
39
  reg [5:0] next_state;
40
 
41
  always @(posedge ugb_clock)
42
    if(ugb_reset)
43
      state <= STATE_00_IN_00_RESIDUE;
44
    else
45
      state <= next_state;
46
 
47
 
48
  // -----------------------------
49
  //  state machine
50
 
51
 
52
  always @( * )
53
    case(state)
54
      STATE_13_IN_05_RESIDUE: if( ugb_enable )
55
                                next_state = STATE_13_IN_10_RESIDUE;
56
                              else
57
                                next_state = STATE_13_IN_05_RESIDUE;
58
 
59
      STATE_13_IN_10_RESIDUE: if( ugb_enable )
60
                                next_state = STATE_00_IN_02_RESIDUE;
61
                              else
62
                                next_state = STATE_13_IN_10_RESIDUE;
63
 
64
      STATE_00_IN_02_RESIDUE: if( ugb_enable )
65
                                next_state = STATE_13_IN_07_RESIDUE;
66
                              else
67
                                next_state = STATE_00_IN_02_RESIDUE;
68
 
69
      STATE_13_IN_07_RESIDUE: if( ugb_enable )
70
                                next_state = STATE_13_IN_12_RESIDUE;
71
                              else
72
                                next_state = STATE_13_IN_07_RESIDUE;
73
 
74
      STATE_13_IN_12_RESIDUE: if( ugb_enable )
75
                                next_state = STATE_00_IN_04_RESIDUE;
76
                              else
77
                                next_state = STATE_13_IN_12_RESIDUE;
78
 
79
      STATE_00_IN_04_RESIDUE: if( ugb_enable )
80
                                next_state = STATE_13_IN_09_RESIDUE;
81
                              else
82
                                next_state = STATE_00_IN_04_RESIDUE;
83
 
84
      STATE_13_IN_09_RESIDUE: if( ugb_enable )
85
                                next_state = STATE_00_IN_01_RESIDUE;
86
                              else
87
                                next_state = STATE_13_IN_09_RESIDUE;
88
 
89
      STATE_00_IN_01_RESIDUE: if( ugb_enable )
90
                                next_state = STATE_13_IN_06_RESIDUE;
91
                              else
92
                                next_state = STATE_00_IN_01_RESIDUE;
93
 
94
      STATE_13_IN_06_RESIDUE: if( ugb_enable )
95
                                next_state = STATE_13_IN_11_RESIDUE;
96
                              else
97
                                next_state = STATE_13_IN_06_RESIDUE;
98
 
99
      STATE_13_IN_11_RESIDUE: if( ugb_enable )
100
                                next_state = STATE_00_IN_03_RESIDUE;
101
                              else
102
                                next_state = STATE_13_IN_11_RESIDUE;
103
 
104
      STATE_00_IN_03_RESIDUE: if( ugb_enable )
105
                                next_state = STATE_13_IN_08_RESIDUE;
106
                              else
107
                                next_state = STATE_00_IN_03_RESIDUE;
108
 
109
      STATE_13_IN_08_RESIDUE: if( ugb_enable )
110
                                next_state = STATE_00_IN_00_RESIDUE;
111
                              else
112
                                next_state = STATE_13_IN_08_RESIDUE;
113
 
114
      STATE_00_IN_00_RESIDUE: if( ugb_enable )
115
                                next_state = STATE_13_IN_05_RESIDUE;
116
                              else
117
                                next_state = STATE_00_IN_00_RESIDUE;
118
 
119
      default:                next_state   = STATE_00_IN_00_RESIDUE;
120
 
121
    endcase
122
 
123
 
124
  // --------------------------------------------------------------------
125
  //  outputs
126
  assign gear_select          = state[3:0];
127
  assign adc_rd_en            = state[4];
128
  assign adc_bus_bank_select  = state[5];
129
 
130
 
131
endmodule
132
 

powered by: WebSVN 2.1.0

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