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

alt

这里的match在当拍就拉高。

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input data,
	input data_valid,
	output reg match
	);
    reg [3:0] data_reg;
    always@(posedge clk or negedge rst_n) begin: reg_data
        if(~rst_n) 
            data_reg <= 4'b0;
        else if(data_valid)
            data_reg <= {data_reg[2:0], data};
        else
            data_reg <= data_reg;
    end
    
    always@(posedge clk or negedge rst_n) begin: judge_match
        if(~rst_n)
            match <= 0;
        else if({data_reg[2:0], data} == 4'b0110)
            match <= 1;
        else
            match <= 0;
    end
  
endmodule
《Verilog/VHDL必刷习题集》 文章被收录于专栏

Verilog/VHDL必刷习题集,包含基础知识、组合逻辑设计、时序逻辑设计、状态机设计、RAM及FIFO设计等等。

全部评论

相关推荐

LazyBreeze:项目尽量体现你对技术的理解和深度,不是说把中间件用一下就完事了,你项目里面提到集群和分布式,你真在服务器上部署过吗,感觉太假了,第二个项目说自己用了微服务的什么组件,只是用了没有自己的思考,很难让面试官注意到你的简历。针对某几个技术点自己多思考一下,考虑一下有没有别的替代方案,可以写一下,即使没有真的实现
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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