题解 | #根据状态转移写状态机-二段式#

根据状态转移写状态机-二段式

https://www.nowcoder.com/practice/5b2ff27610d04993ae92374d51bfc2e6

`timescale 1ns/1ns

module fsm2(
	input wire clk  ,
	input wire rst  ,
	input wire data ,
	output reg flag
);

//*************code***********//
parameter s0=0,s1=1,s2=2,s3=3,s4=4;
reg [2:0]state,next_state;
always@(posedge clk or negedge rst)begin
if(!rst)begin
state<=s0;
end
else begin
state<=next_state;
end

end

always@(*)
begin
	case(state)
	s0:begin next_state=data?s1:s0;
	flag=0;
	end
	
	s1:begin next_state=data?s2:s1;
	flag=0;
	end
	
	s2: begin next_state=data?s3:s2;
	flag=0;
	end
	
	s3:begin next_state=data?s4:s3;
	flag=0;
	end
	
	s4:begin next_state=data?s1:s0;
	flag=1;
	end
	default begin
	next_state=s0;
	flag=1;
	end
	endcase
end

//*************code***********//
endmodule

全部评论

相关推荐

12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务