题解 | #含有无关项的序列检测#

含有无关项的序列检测

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

这题再用state就不合适了,因为011xxx110要判断第三个x来决定接下来是什么状态。还是很简单。

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input a,
	output reg match
	);

reg [8:0]shift_reg;
always@(posedge clk or negedge rst_n)
if(~rst_n)
shift_reg<=9'b0;
else
shift_reg<={shift_reg[7:0],a};

always@(posedge clk or negedge rst_n)
if(~rst_n)
match <= 1'b0;
else if(shift_reg[8:6]==3'b011 & shift_reg[2:0]==3'b110)
match <= 1'b1;
else
match <= 1'b0;
  
endmodule

再附上tb.v

`timescale 1ns/1ns
module testbench();
 
    reg clk,rst_n;
    reg a;
    wire match;
    parameter CLK_PERIOD =2;
initial begin
    $dumpfile("out.vcd");
    $dumpvars(0,testbench);
    clk = 1;
    forever begin 
    #(CLK_PERIOD/2) clk = ~clk;
    end
 end
initial begin
    rst_n = 0;
    #2
    rst_n =1;
end
initial begin
    #2 a = 0;
    #2  a = 1;
    #2  a = 1;
    #2  a = 1;
    #2  a = 0;
    #2  a = 0;
    #2  a = 1;
    #2  a = 1;
    #2 a=0;
    #10  $finish;
end
 
sequence_detect dut(
    .clk(clk),
    .rst_n(rst_n),
 
    .a(a),
    .match(match)
);
endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务