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

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

https://www.nowcoder.com/practice/d8394a6d31754e73ace8c394e9465e2a

`timescale 1ns/1ns

module fsm1(
	input wire clk  ,
	input wire rst  ,
	input wire data ,
	output reg flag
);
//*************code***********//
reg		[2:0]		cur_state ;
reg		[2:0]		next_state ;
parameter S0 = 0 ,S1 = 1,S2 = 2,S3 = 3;
always @(posedge clk or negedge rst) begin
	if(!rst) begin
		cur_state <= S0 ;
	end
	else begin
		cur_state <= next_state ;
	end
end
always @(*) begin
	case(cur_state)
		S0 : begin
			if(data) begin
				next_state = S1;
			end
			else begin
				next_state = S0;
			end
		end
		S1: begin
			if(data) begin
				next_state = S2;
			end
			else begin
				next_state = S1;
			end
		end
		S2: begin
			if(data) begin
				next_state = S3;
			end
			else begin
				next_state = S2;
			end
		end
		S3: begin
			if(data) begin
				next_state = S0;
			end
			else begin
				next_state = S3;
			end
		end
	endcase
end
	always @(posedge clk or negedge rst ) begin
		if(!rst) begin
			flag <= 1'b0 ;
		end
		else if(cur_state == S3 && data) begin
			flag <= 1'b1 ;
		end
		else begin
			flag <= 1'b0 ;
		end
	end

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

全部评论

相关推荐

05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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