基于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

相关推荐
第二层皮-合肥7 小时前
高速采集卡FPGA设计方案及代码
fpga开发
Runner.DUT9 小时前
详解赛灵思SRIO IP并提供一种FIFO封装SRIO的收发控制器仿真验证
fpga开发
嵌入式-老费10 小时前
再谈fpga开发(fpga调试方法)
fpga开发
XINVRY-FPGA13 小时前
XCZU4EV-1FBVB900E Xilinx FPGA AMD Zynq UltraScale+ MPSoC EV(Embedded Vision)
arm开发·嵌入式硬件·计算机视觉·fpga开发·硬件架构·硬件工程·fpga
从今天开始学习Verilog13 小时前
FFT算法实现之fft IP核
算法·fpga开发
Turing_kun21 小时前
基于FPGA的SPI控制FLASH读写
fpga开发
hahaha60161 天前
差模干扰 & 共模干扰
fpga开发
璞致电子1 天前
【PZ-KU060-KFB】——Kintex UltraScale 纯 FPGA 开发平台,释放高速并行计算潜能,高性价比的 FPGA 解决方案
fpga开发·fpga
我爱C编程1 天前
基于FPGA的16QAM软解调+卷积编码Viterbi译码通信系统,包含帧同步,信道,误码统计,可设置SNR
fpga开发·16qam·软解调·帧同步·卷积编码·viterbi译码
南棱笑笑生1 天前
20250726让荣品的PRO-RK3566开发板使用TF卡启动
fpga开发