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

相关推荐
cycf5 小时前
CRC校验
fpga开发
landyjzlai6 小时前
AMBA总线(15)关于AXI-stream(sg模式)
arm开发·fpga开发·amba
白狐_7987 小时前
Quartus Prime 新手完全使用指南
fpga开发
Aaron158818 小时前
三种主流接收机架构(超外差、零中频、射频直采)对比及发展趋势浅析
c语言·人工智能·算法·fpga开发·架构·硬件架构·信号处理
博览鸿蒙18 小时前
一颗数字系统是如何在 FPGA 上“跑起来”的?
fpga开发
雨洛lhw1 天前
FPGA JTAG接口设计全解析
fpga开发·jtag
minglie11 天前
iverilog 配合 Makefile 搭建 Verilog 仿真工程
fpga开发
芒果树技术1 天前
MangoTree案例分享:基于AtomRIO FPGA平台,客户实现自适应主动减振
测试工具·fpga开发·模块测试
雨洛lhw1 天前
按键电路设计的细节
fpga开发
minglie12 天前
vio_uart的浏览器版上位机
fpga开发