本文主要是介绍牛客网刷题VL1 输入序列连续的序列检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
请编写一个序列检测模块,检测输入信号a是否满足01110001序列,当信号满足该序列,给出指示信号match。
模块的接口信号图如下:
模块的时序图如下:
请使用Verilog HDL实现以上功能,并编写testbench验证模块的功能
输入描述:
clk:系统时钟信号
rst_n:异步复位信号,低电平有效
a:单比特信号,待检测的数据
输出描述:
match:当输入信号a满足目标序列,该信号为1,其余时刻该信号为0
看了一下评论,我怎么感觉大家的状态图画错了,还是我画错了??
他们为啥都s4:(din == 0)?s5:s0;??
状态机写太多了,练一下移位寄存器
module sequence_detect(input clk,input rst_n,input a,output reg match);reg [7:0] temp;always@(posedge clk or rst_n)beginif(!rst_n)match <= 'd0;else if(temp == 'b0111001)match <= 'd1;else match <= 'd0endalways@(posedge clk or negedge rst_n)beginif(!rst_n)temp <= 'd0;else temp <= {temp[6:0],a};endendmodule
这篇关于牛客网刷题VL1 输入序列连续的序列检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!