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

不重叠序列检测

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

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input data,
	output reg match,
	output reg not_match
	);
parameter S0=4'd0;
parameter S1=4'd1;
parameter S2=4'd2;
parameter S3=4'd3;
parameter S4=4'd4;
parameter S5=4'd5;

parameter M1=4'd6;
parameter M2=4'd7;
parameter M3=4'd8;
parameter M4=4'd9;
parameter M5=4'd10;

reg [3:0] state;
reg [3:0] next_state;
always@(posedge clk or negedge rst_n)
begin 
	if(!rst_n) state<=S0;
	else state<=next_state;
end

always@(state or data)
begin 
 case(state)
 S0:
 begin 
if(data==1'b0) next_state=S1;
else  next_state=M1;
 end
 S1:
  begin 
if(data==1'b0) next_state=M2;
else  next_state=S2;
 end
 S2:
  begin 
if(data==1'b0) next_state=M3;
else  next_state=S3;
 end
 S3:
  begin 
if(data==1'b0) next_state=M4;
else  next_state=S4;
 end
 S4:
  begin 
if(data==1'b0) next_state=S5;
else  next_state=M5;
 end
 S5:
  begin 
if(data==1'b0) next_state=S0;
else  next_state=S0;
 end
 M1:
  begin 
 next_state=M2;

 end
 M2:
  begin 
  next_state=M3;	
 end
 M3:
  begin 
  next_state=M4	;
 end
 M4:
  begin 
  next_state=M5;	
 end
 M5:
  begin 
 next_state=S0;	
 end
 default :next_state=S0;
 endcase
end


always@(posedge clk or negedge rst_n)
begin 
	if(!rst_n) begin match<=0; not_match<=0; end
	else 
	begin
     case(state)
 S0:
 begin 
match<=0; not_match<=0;
 end
 S1:
  begin 
match<=0; not_match<=0;
 end
 S2:
  begin 
match<=0; not_match<=0;
 end
 S3:
  begin 
match<=0; not_match<=0;
 end
 S4:
  begin 
match<=0; not_match<=0;
 end
 S5:
  begin 
if(data==0) begin  match<=1; not_match<=0; end
else begin match<=0; not_match<=1; end
 end
 M1:
  begin 
match<=0; not_match<=0;

 end
 M2:
  begin 
match<=0; not_match<=0;	
 end
 M3:
  begin 
match<=0; not_match<=0;	
 end
 M4:
  begin 
	match<=0; not_match<=0;
 end
 M5:
  begin 
match<=0; not_match<=1;	
 end
 default: begin match<=0; not_match<=0; end
 endcase
	end
end
endmodule

全部评论

相关推荐

05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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