有限状态机是Verilog中十分基本也是十分重要的知识。本文对有限状态机做了一个简单介绍。
1.状态机三要素
有限状态机具有三个要素:状态跳转、跳转判断、状态操作;
1)状态跳转:现态跳转到次态;
2)跳转判断:状态跳转的判断条件;
3)状态操作:状态对应的操作;
2.状态机的实现方式
1)一段式:状态机三要素集成于一个 always 块中。
1 always@(posedge clk or negedge rst_n) 2 begin 3 if(!rst_n)begin 4 state <= 2'b00; 5 Qout <= 1'b0; 6 end 7 else case(state) 8 2'b00: begin 9 if(A)begin 10 state <= 2'b01; 11 Qout <= 1'b1; 12 end 13 else begin 14 state <= 2'b00; 15 Qout <= 1'b0; 16 end 17 end 18 2'b01: begin 19 if(!A)begin 20 state <= 2'b00; 21 Qout <= 1'b0; 22 end 23 else begin 24 state <= 2'b01; 25 Qout <= 1'b1; 26 end 27 end 28 default:; 29 endcase 30 end