基于FPGA的特定序列检测器verilog实现,包含testbench和开发板硬件测试

目录

1.课题概述

2.系统测试效果

3.核心程序与模型

4.系统原理简介

5.完整工程文件


1.课题概述

本课题采用基于伪码匹配相关峰检测的方式实现基于FPGA的特定序列检测器verilog实现,包含testbench和开发板硬件测试。

2.系统测试效果

仿真测试

当检测到序列的时候,峰值变量opeak会输出一个峰值,然后flag产生一个高电平,表示检测到序列。

硬件调试

当检测到序列,则LED1灯点亮。

在实际测试过程中,如果你的开发板和我的不一样,可以参考本博客置顶文章进行硬件配置修改:

FPGA系统开发板调试过程不同芯片的移植步骤介绍-CSDN博客

通过这个链接的步骤,可以实现不同开发板上的系统调试。

3.核心程序与模型

版本:vivado2022.2

复制代码
`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2025/04/04 14:08:45
// Design Name: 
// Module Name: tops
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module tops(
input             i_clk,
input             i_rst,
output  signed[1:0]o_seq,
output signed[9:0]o_peak,
output            o_search_flag 
);

 
 
signaler signaleru(
    .i_clk        (i_clk), 
    .i_rst        (i_rst), 
    .o_bits       (o_seq)
);

parameter SAMP  = 1;
//设置需要检测的样本
//parameter meq   = 128'b01100111_11010011_01111110_11010100_00011101_11001100_10100111_00000100_11000011_10001011_01001111_01011101_10111010_10011011_10010011_11000011; 
parameter meq   = {64'b01100111_11010011_01111110_11010100_00011101_11001100_10100111_00000100,64'd0}; 
parameter lvl   = 60;

    
seq_search #(SAMP,meq,lvl)
seq_search_u(
    .i_clk        (i_clk), 
    .i_rst        (i_rst), 
    .i_X          (o_seq), 
    .o_peak       (o_peak),
    .o_search_flag(o_search_flag)
    );
    
endmodule
00X6_001m

4.系统原理简介

特定序列检测器旨在从输入的信号流里识别出特定的二进制序列。在采用伪码匹配并依据相关峰来检测序列时,其核心原理为:把输入信号和本地存储的特定伪码序列进行相关运算,当输入信号包含特定序列时,相关运算的结果会呈现出一个明显的峰值,也就是相关峰。通过对这个相关峰进行检测,就能判断输入信号中是否存在特定序列。

设输入信号序列为 x(n),本地伪码序列为 c(n),其中 n=0,1,⋯,N−1,N 为序列长度。相关运算的公式如下:

然后通过预先设定的一个阈值 T,当相关运算结果 R(k) 大于这个阈值时,就认为检测到了相关峰。阈值的设定需要依据实际情况进行调整,要综合考虑噪声水平、序列特性等因素。

FPGA的实现过程如下:

1.数据输入模块:负责接收输入信号。

2.伪码生成模块:产生本地的特定伪码序列。

3.相关运算模块:对输入信号和本地伪码序列进行相关运算。

4.峰值检测模块:检测相关运算结果中的峰值。

4.1 根据系统的噪声水平和序列特性,确定一个合适的阈值T。

4.2 对每个相关运算结果R(k)进行检查,判断其是否大于阈值T。

4.3 若R(k)>T,则判定检测到相关峰,输出检测信号。

5.输出模块:依据峰值检测结果输出检测信号。

5.完整工程文件

v

v

相关推荐
小眼睛FPGA7 小时前
【RK3568+PG2L50H开发板实验例程】FPGA部分/紫光同创 IP core 的使用及添加
科技·嵌入式硬件·ai·fpga开发·gpu算力
forgeda12 小时前
如何将FPGA设计验证效率提升1000倍以上(2)
fpga开发·前沿技术·在线调试·硬件断点·时钟断点·事件断点
9527华安1 天前
FPGA实现40G网卡NIC,基于PCIE4C+40G/50G Ethernet subsystem架构,提供工程源码和技术支持
fpga开发·架构·网卡·ethernet·nic·40g·pcie4c
search71 天前
写Verilog 的环境:逻辑综合、逻辑仿真
fpga开发
search71 天前
Verilog 语法介绍 1-1结构
fpga开发
小眼睛FPGA1 天前
【RK3568+PG2L50H开发板实验例程】Linux部分/FPGA dma_memcpy_demo 读写案例
linux·运维·科技·ai·fpga开发·gpu算力
幸运学者2 天前
xilinx axi datamover IP使用demo
fpga开发
搬砖的小码农_Sky2 天前
XILINX Zynq-7000系列FPGA的架构
fpga开发·架构
热爱学习地派大星2 天前
FPGA矩阵算法实现
fpga开发
热爱学习地派大星2 天前
Xilinx FPGA功耗评估
fpga开发·verilog·vivado·fpga功耗·xpe