题解 | #状态机-重叠序列检测#

状态机-重叠序列检测

https://www.nowcoder.com/practice/10be91c03f5a412cb26f67dbd24020a9

`timescale 1ns/1ns

module sequence_test2(
	input wire clk  ,
	input wire rst  ,
	input wire data ,
	output reg flag
);
//*************code***********//
//采用摩尔型状态机状态机 输出只和状态有关 这时就能方便检测重叠序列。 上一题可以采用米勒型状态机
reg [4:0] cur_state   ;
reg [4:0] nex_state   ;

localparam  S0 =  5'b00001    ,
            S1 =  5'b00010    ,
			S2 =  5'b00100    ,
			S3 =  5'b01000    ,
			S4 =  5'b10000    ;


always@(posedge clk or negedge rst)begin
    if(!rst)
	    cur_state <= S0           ;
	else 
	    cur_state <= nex_state    ;
end

always@(*)begin
	case(cur_state)
	    S0 : nex_state =  (data == 1)? S1 : S0  ;
		S1 : nex_state =  (data == 0)? S2 : S1  ;
		S2 : nex_state =  (data == 1)? S3 : S0  ;
		S3 : nex_state =  (data == 1)? S4 : S2  ;
		S4 : nex_state =  (data == 1)? S1 : S2  ;
		default : nex_state = S0                ;
	endcase
end

always@(posedge clk or negedge rst)begin
    if(!rst)
	    flag <= 1'b0               ;     
	else begin
	    case(cur_state)
		    S4:     flag <=  1'b1   ;
			default:flag <= 1'b0    ;
		endcase    
	end
	    
end
//*************code***********//
endmodule

全部评论

相关推荐

来个厂收我吧:首先,市场侧求职我不是很懂。 但是,如果hr把这份简历给我,我会觉得求职人不适合做产品经理。 问题点: 1,简历的字体格式不统一,排版不尽如人意 2,重点不突出,建议参考star法则写个人经历 3,印尼官方货币名称为印度尼西亚卢比(IDR),且GMV690000印尼盾换算为305人民币,总成交额不高。 4,右上角的意向职位在发给其他公司时记得删除。 5,你所有的经历都是新媒体运营,但是你要投市场营销岗位,jd和简历不匹配,建议用AI+提示词,参照多个jd改一下经历内容。 修改建议: 1,统一字体(中文:思源黑体或微软雅黑,英文数字:time new romans),在word中通过表格进行排版(b站学) 2,校招个人经历权重:实习经历=创业经历(大创另算)>项目经历>实训经历>校园经历 3,请将项目经历时间顺序改为倒序,最新的放最上方。 4,求职方向不同,简历文字描述侧重点也需要不同。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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