parameter S_P5 = 5, S_P6 = 6;
parameter S_P7 = 7, S_P8 = 8;
parameter S_P9 = 9, S_P10 = 10;
parameter S_P11 = 11, S_P12 = 12;
parameter S_P13 = 13, S_P14 = 14;
parameter S_P15 = 15, S_P16 = 16;
parameter S_P17 = 17, S_P18 = 18;
parameter S_P19 = 19, S_P20 = 20;
parameter S_idle_1 = 50, S_load = 51;
parameter S_idle_2 = 52, S_skip_1 = 53, S_skip_2 = 54;
parameter S_idle_3 = 55, S_skip_3 = 56, S_skip_4 = 57, S_skip_5 = 58;
parameter S_idle_4 = 59, S_skip_6 = 60, S_skip_7 = 61, S_skip_8 = 62, S_skip_9 = 63;
parameter S_idle_5 = 64, S_skip_10 = 65, S_skip_11 = 66, S_skip_12 = 67,
S_skip_13 = 68, S_skip_14 = 69;
assign Ready = (state_P1 == S_idle_1);
assign Valid = ((state_P6 == S_P48) || (state_P6 == S_wait_P6));
assign Wait_1 = (state_P1 == S_wait_P1);
assign Wait_2 = (state_P2 == S_wait_P2);
always @ (posedge clk) if (reset) state_P1 <= S_idle_1; else state_P1 <= next_state_P1;
always @ (posedge clk) if (reset) state_P2 <= S_idle_2; else state_P2 <= next_state_P2;
always @ (posedge clk) if (reset) state_P3 <= S_idle_3; else state_P3 <= next_state_P3;
always @ (posedge clk) if (reset) state_P4 <= S_idle_4; else state_P4 <= next_state_P4;