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

输入序列不连续的序列检测

http://www.nowcoder.com/practice/f96d0e94ec604592b502b0f1800ed8aa

上述有些答案可能在当前的testbanch中成立,但是我觉得下面这个写法可能更好些, data_valid无效时需对缓存区重新赋值,否则可能出现在两次分开的有效值期间满足0110而输出match=1; 另外,初始值赋值0,在输入序列为110的情况下即可输出match=1 `timescale 1ns/1ns module sequence_detect( input clk, input rst_n, input data, input data_valid, output reg match ); reg [3:0] temp;

always@(posedge clk or negedge rst_n) begin
    if (!rst_n)
        temp <=4'b0001;
    else begin
        if (data_valid)
            temp <= {temp[2:0],data};
        else
            temp <=4'b0001;
    end
end
 
always@(temp or data_valid) begin
    if (temp == 4'b0110 & data_valid)
        match = 1;
    else
        match = 0;
end

endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 16:15
你知道对于一个平常不接电话,从来不发语音,只打字交流的人来说电话面有多恐怖吗....刚刚亲眼目睹了舍友电话面...她甚至还在吃饭...就这么水灵灵的打过来开始问了...感觉如果是面对面我真的会紧张到跪下来给面试官磕一个...
一只ikun:额,其实没那么恐怖,最难迈开的是第一步,相信我,你面完第一次后面就不怕了。第一次面试我还想着找个自习室面试,到后面我打着游戏突然来电话我就直接面试了
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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