题解 | #根据状态转移写状态机-三段式#
根据状态转移写状态机-三段式
https://www.nowcoder.com/practice/d8394a6d31754e73ace8c394e9465e2a
状态机(State Machine)
有限状态机(Finite State Machine,简称FSM)
在有限个状态之间按一定规律转换的时序电路。
状态机可以分为Moore状态机和Mealy状态机。
- Moore状态机:输出只由当前状态决定
- Mealy状态机:输出由当前状态和当前的输入共同决定。
三段式状态机是指当前状态切换、次态切换和输出更新分别由不同的块控制。
`timescale 1ns/1ns module fsm1( input wire clk , input wire rst , input wire data , output reg flag ); //*************code***********// parameter S0=0, S1=1, S2=2, S3=3; reg [1:0] cur_state, next_state; always@(posedge clk or negedge rst)begin if(~rst) cur_state <= S0; else cur_state <= next_state; end always@(*)begin case(cur_state) S0: next_state = data? S1:S0; S1: next_state = data? S2:S1; S2: next_state = data? S3:S2; S3: next_state = data? S0:S3; default: next_state = S0; endcase end always@(posedge clk or negedge rst)begin if(~rst) flag <= 0; else flag <= cur_state==S3 && data==1; end //*************code***********// endmodule
正浩创新EcoFlow公司福利 728人发布