题解 | #不重叠序列检测#

不重叠序列检测

https://www.nowcoder.com/practice/9f91a38c74164f8dbdc5f953edcc49cc

自己仿真没啥问题,但是牛客网的提交总是通过不了。有大佬不怕麻烦的话,帮我看看提出问题。

module sequence_detect(
	input clk,
	input rst_n,
	input data,
	output reg match,
	output reg not_match
	);

//*************code***********//
parameter [2:0]	s0 = 3'b000,
				s1 = 3'b001,		
				s2 = 3'b010,
				s3 = 3'b011,
				s4 = 3'b100,	
				s5 = 3'b101,
				s6 = 3'b110,
				s7 = 3'b111;
						
reg [2:0] curr_state;
reg [2:0] next_state;
reg [2:0] cnt;

always @(posedge clk or negedge rst_n)begin
	if(!rst_n)
		cnt <= 3'd0;
	else if(cnt == 3'd6)
		cnt <= 3'd1;
	else	
		cnt <= cnt + 1'b1;
end


//第一段 状态转移
always @(posedge clk or negedge rst_n)begin
	if(!rst_n)
		curr_state <= s0;
	else if(cnt == 3'd6)
		curr_state <= s1;		
	else
		curr_state <= next_state;
	end

//第二段 转移状况
always @(*)begin

	case(curr_state)
		s0:	begin next_state = s1;end	
		s1:	begin
				if(data==0) 	next_state = s2;
				else 			next_state = s1;	
			end
		s2:	begin
				if(data==1) 	next_state = s3;
				else 			next_state = s1;	
			end
		s3:	begin
				if(data==1) 	next_state = s4;
				else 			next_state = s1;	
			end
		s4:	begin
				if(data==1) 	next_state = s5;
				else 			next_state = s1;	
			end
		s5:	begin
				if(data==0) 	next_state = s6;
				else 			next_state = s1;	
			end
		s6:	begin
				if(data==0) 	next_state = s7;
				else 			next_state = s1;	
			end
		s7:	begin next_state = s1;end			
		default: begin next_state = s1;end
	endcase	   
end
	
/********* 第三段 状态输出 moore FSM ************/

//标志信号
always @(posedge clk or negedge rst_n)begin 
	if(!rst_n)begin
		match <= 1'b0;	
		not_match <= 1'b0;	
	end
	else if(next_state == s7 && cnt == 3'd6)begin
		match <= 1'b1;	
		not_match <= 1'b0;	
	end
	else if(next_state != s7 && cnt == 3'd6)begin
		match <= 1'b0;	
		not_match <= 1'b1;	
	end	
	else begin
		match <= 1'b0;
		not_match <= 1'b0;			
	end
end 

//*************code***********// 
endmodule
全部评论

相关推荐

面试官全程关摄像头1.自我介绍一下2.React和Vue哪个更熟悉一点3.你在之前那段实习经历中有没有什么技术性的突破(我只是实习了44天工作28天,我把我能说的都说了)4.你封装的哪个表单组件支不支持动态传值5.自己在实习阶段Vue3项目封装过hook吗6.hook有什么作用7.Vue2和Vue3的响应式区别(我说一个是proxy是拦截所有的底层操作,Object.defineProperty本身就是一个底层操作,有些东西拦截不了,比如数组的一些操作还有等等,面试官就说实在要拦截能不能拦截????我心想肯定不行呀,他的底层机制就不允许吧)8.pinia和vuex的区别(这个回答不出来是我太久没用了)9.pinia和zustand的区别,怎么选(直接给我干懵了)(我说react能用pinia吗&nbsp;&nbsp;他说要用的话也可以)10.渲染一万条数据,怎么解决页面卡顿问题(我说分页、监听滚轮动态加载,纯数据展示好像还可以用canvas画)(估计是没说虚拟表单,感觉不满意)11.type和interface的区别12.ts的泛型有哪些作用(我就说了一个结构相同但是类型不同的时候可以用,比如请求响应的接口,每次的data不同,这里能用一个泛型,他问我还有什么)13.你项目用的是React,如果让你再写一遍你会选择什么14.pnpm、npm、yarn的区别15.dependencies和devdependencies的区别总而言之太久没面试了,上一段实习的面试js问了很多。结果这次js一点没问,网络方面也没考,表现得很一般,但是知道自己的问题了&nbsp;&nbsp;好好准备,等待明天的影石360和周四的腾讯了&nbsp;&nbsp;加油!!!
解zj:大三的第一段面试居然是这样的结局
查看15道真题和解析
点赞 评论 收藏
分享
2025-11-23 15:33
已编辑
门头沟学院 Java
CUTMR:换账号试试重启推荐算法,我换账号之后回复率还不错,约莫有个20%左右的消息回复率,前几页、主动招呼的HR也开始符合我期望薪资,此前的大号从招呼、回复、前几页的岗位薪资在涨幅30%+以上 用着用着聊着聊着就变成-20%,而且我开通会员之后直接0面试
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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