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

编写一个序列检测模块,输入信号端口为data,表示数据有效的指示信号端口为data_valid。当data_valid信号为高时,表示此刻的输入信号data有效,参与序列检测;当data_valid为低时,data无效,抛弃该时刻的输入。当输入序列的有效信号满足0110时,拉高序列匹配信号match。

模块的接口信号图如下:

代码如下:

(CSDN代码块不支持Verilog,代码复制到notepad++编辑器中,语言选择Verilog,看得更清楚)

cpp 复制代码
`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input data,
	input data_valid,
	output reg match
	);
    reg [3:0] data_r;
    
    always@(posedge clk or negedge rst_n) begin
        if(~rst_n)
            data_r <= 4'b0;
        else
            data_r <= data_valid? {data_r[2:0], data}: data_r;
    end
    
    always@(posedge clk or negedge rst_n) begin
        if(~rst_n)
            match <= 0;
        else
            match <= data_r[2:0]==3'b011 && data==1'b0 && data_valid;
    end
  
//  always@(posedge clk or negedge rst_n) begin
//     if(~rst_n)
//         match <= 0;
//     else
//         match <= data_r==4'b0110;
//  end
    
endmodule
相关推荐
尤老师FPGA8 小时前
使用DDR4控制器实现多通道数据读写(二十)
fpga开发
千宇宙航13 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第二十一课——高斯下采样后图像还原的FPGA实现
图像处理·计算机视觉·fpga开发
千宇宙航13 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第二十课——图像还原的FPGA实现
fpga开发
霖0017 小时前
神经网络项目--基于FPGA的AI简易项目(1-9图片数字识别)
人工智能·pytorch·深度学习·神经网络·机器学习·fpga开发
chuy70018 小时前
FPGA——ZYNQ7020学习日记(PS端)4(开始PS控制VGA显示)
学习·fpga开发
ergevv19 小时前
不同场景下git指令的搭配
git·源代码管理·代码
hahaha601619 小时前
使用./lspci -vvv查看PCIE链路信息
网络·fpga开发
程序员鱼皮21 小时前
会Vibe Coding的同事:我一个人干掉整个技术部!
ai·程序员·互联网·编程·开发·代码
leo__5202 天前
如何在硬件中进行有效地调试
fpga开发
fei_sun2 天前
【FPGA】AXI总线协议
fpga开发