本帖最后由 945595199 于 2017-2-18 11:17 编辑
代码结构是这样的:
//第一段
always@(posedge CLK_100M or negedge rst_n)
begin
if(!rst_n) state_last <= S0;
else state_last <= state_current;
end
//第二段
always@(*)
begin
if(!rst_n) state_current <= S0;
else
begin
case(state_last)
S0: begin if(rst_n) state_current = S1; end
S1: begin if(条件1) state_current = S2; end
S2: begin if(条件2) state_current = S3; end
S3: begin if(条件3) state_current = S4; end
S4: begin if(条件4) state_current = S5; end
S5:;
default:;
endcase
end
end
//第三段
always@(posedge CLK_100M or negedge rst_n)
begin
if(!rst_n)
......
........
else
case(state_current)
S1:
.............
............
条件1满足
S2:
.............
............
条件2满足
S3:
.............
............
条件3满足
S4:
.............
............
条件4满足
S5:
.............
............
endcase
end