题解 | #输入序列不连续的序列检测#

输入序列不连续的序列检测

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

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input data,
	input data_valid,
	output reg match
	);
parameter s0=3'd0,s1=3'd1,s2=3'd2,s3=3'd3,s4=3'd4;
reg [2:0] current_state,next_state;

always @(*)
begin
	if(data_valid)
	begin
    case (current_state)
	s0: next_state = data ? s0 : s1;
	s1: next_state = data ? s2 : s1;
	s2: next_state = data ? s3 : s1;
	s3: next_state = data ? s0 : s4;
	s4: next_state = data ? s2: s1;
	default:next_state =s0;
	endcase
	end
	else
	begin
    next_state =s0;
	end
end

			always @ (posedge clk or negedge rst_n)
			begin
			if(!rst_n)
			begin
			current_state<=s0;
			end
			else 
			begin
			current_state<=next_state;
			end
			end


	always@(*)
	begin
	if(!rst_n)
	begin
	match=1'b0;
	end
		else
		begin
	  match=(current_state==s4);
		end
	end


endmodule

全部评论

相关推荐

06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
ZywOo_求职版:谁问你了....
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 11:30
仁者伍敌:kpi都懒得刷了属于是
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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