首页 > 其他分享 >m基于UW序列的数据帧检测,帧同步verilog实现,含testbench

m基于UW序列的数据帧检测,帧同步verilog实现,含testbench

时间:2023-07-30 14:32:47浏览次数:36  
标签:wire 接收端 UW clk verilog testbench 序列 dw

1.算法仿真效果

本系统进行了Vivado2019.2平台的开发,仿真结果如下所示: 1.png2.png

2.算法涉及理论知识概要 UW序列是一种特殊类型的伪随机二进制序列,通常用于数据帧检测和帧同步。UW序列具有以下特性:

平衡性:UW序列中的1和0的数量大致相等,确保序列具有良好的自相关性。 低互相关:不同UW序列之间的互相关性非常低,减少误检测的可能性。 长周期:UW序列的周期非常长,保证在数据传输过程中不会重复。 在数据帧检测中,发送端会将数据帧的头部与UW序列进行异或操作,接收端通过检测UW序列的出现来识别数据帧的起始位置和帧同步。

  数据帧通常由头部(header)、数据(payload)和尾部(tail)组成。在发送端,数据帧的头部会与UW序列进行异或操作,然后发送给接收端。接收端会通过以下过程来检测数据帧的起始位置和帧同步:

接收数据流并与UW序列进行互相关运算,得到互相关结果R。 将R与阈值进行比较,如果超过阈值,则认为找到了帧同步。

1 发送端实现 在发送端,首先确定数据帧的格式,包括头部、数据和尾部的长度。然后,选择一个合适的UW序列,并将数据帧的头部依次与UW序列进行异或操作。将得到的带有UW序列的头部发送给接收端。

2 接收端实现 在接收端的FPGA中,实现数据帧检测和帧同步需要进行以下步骤:

选择UW序列:在接收端选择与发送端使用的UW序列相同的UW序列。

互相关运算:将接收到的数据流与选定的UW序列进行互相关运算,得到互相关结果R。

阈值判定:将R与预先设定的阈值进行比较。阈值的选取要基于信噪比和系统性能考虑,通常通过实验来确定。

帧同步:当R超过阈值时,表示找到了帧同步,接下来可以开始解析数据帧。

3.Verilog核心程序

//
// Company: 
// Engineer: 
// 
// Create Date: 2023/07/24 21:40:51
// Design Name: 
// Module Name: TEST
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
 
 
module TEST();
 
 
	// Inputs
	reg i_clk;
	reg i_rst;
 
	// Outputs
	wire [11:0] o_I_dw;
	wire [11:0] o_Q_dw;
    wire[14:0] o_peak;
    
 
wire             o_syn;
wire      frame_data_en;
wire [11:0] frame_data;
	// Instantiate the Unit Under Test (UUT)
	UW_1_sycn uut (
		.i_clk       (i_clk), 
		.i_rst       (i_rst), 
		.o_I_dw      (o_I_dw), 
		.o_Q_dw      (o_Q_dw), 
		.o_peak      (o_peak),
        .o_syn       (o_syn),
        .frame_data_en(frame_data_en),
        .frame_data   (frame_data)
	);
 
	initial begin
		// Initialize Inputs
		i_clk = 1;
		i_rst = 1;
 
		// Wait 100 ns for global reset to finish
		#100 
      i_rst = 0;  
		// Add stimulus here
 
	end
     
	  
   always #5 i_clk=~i_clk;
 
 
endmodule

```

标签:wire,接收端,UW,clk,verilog,testbench,序列,dw
From: https://blog.51cto.com/matworld/6900344

相关文章

  • m基于双PN序列的数据帧检测,帧同步verilog实现,含testbench
    1.算法仿真效果 本系统进行Vivado2019.2平台的开发,其中Vivado2019.2仿真结果如下:   2.算法涉及理论知识概要       基于双PN序列的数据帧检测和帧同步是一种在通信系统中常用的技术,用于确保接收端正确地识别和解析传输的数据帧。在本文中,我将详细介绍基于双PN......
  • m基于UW序列的数据帧检测,帧同步verilog实现,含testbench
    1.算法仿真效果 本系统进行了Vivado2019.2平台的开发,仿真结果如下所示:   2.算法涉及理论知识概要      UW序列是一种特殊类型的伪随机二进制序列,通常用于数据帧检测和帧同步。UW序列具有以下特性: 平衡性:UW序列中的1和0的数量大致相等,确保序列具有良好的自相......
  • m基于FPGA的256点FFT傅里叶变换verilog实现,含testbench,不使用IP核
    1.算法仿真效果本系统进行了Vivado2019.2平台的开发,其中Vivado2019.2仿真结果如下:2.算法涉及理论知识概要傅里叶变换(FourierTransform)是一种重要的信号处理技术,用于将一个时域信号转换为频域表示,分析信号的频率成分。FFT(FastFourierTransform)是一种高效的傅里叶变换算法,可以......
  • m基于FPGA的256点FFT傅里叶变换verilog实现,含testbench,不使用IP核
    1.算法仿真效果 本系统进行了Vivado2019.2平台的开发,其中Vivado2019.2仿真结果如下:      2.算法涉及理论知识概要       傅里叶变换(FourierTransform)是一种重要的信号处理技术,用于将一个时域信号转换为频域表示,分析信号的频率成分。FFT(FastFourierT......
  • m基于PN序列的数据帧检测,帧同步verilog实现,含testbench
    1.算法仿真效果 本系统进行了Vivado2019.2平台的开发,其中Vivado2019.2仿真结果如下:     2.算法涉及理论知识概要         在数据通信系统中,数据帧检测与帧同步是一项重要的任务,用于确定数据传输中数据帧的起始位置和边界,以正确解析数据。基于PN(Pseudo-......
  • sublime配置Verilog环境
    官网下载sublime进入界面CTRL+shift+p,点击第一个,等待一会出现另一个搜索框输入ChineseLocalizations汉化输入verilog,选择出现的第一个即可视图--->语法----->verilog即可自动补齐......
  • Verilog-1995,2001,2005差异
    1、Verilog不同版本的差异下图是Verilog各个阶段的关键字列表:2、Verilog-1995VSVerilog-20011、模块声明的扩展(1)       Verilog‐2001允许将端口声明和数据类型声明放在同一条语句中,例子如下: (2)Verilog‐2001中增加了ANSIC风格的输入输出端口声明,可以用于module,t......
  • m基于FPGA的16QAM软解调verilog实现,含testbench
    1.算法仿真效果 本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:     Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:   2.算法涉及......
  • verilog时序单元分频器
    分频电路2.2.1简单的计数器计数器实质是对输入的驱动时钟进行计数,所以计数器在某种意义上讲,等同于对时钟进行分频。例如一个最大计数长度为N=2^M(从0计数到N-1)的计数器,也就是寄存器位数为M,那么寄存器最高位的输出为N=2^M分频,次高位为N/2分频...例如下面的代码:moduletest#(......
  • win10 uwp 笔迹书写预测 墨迹书写加速
    在UWP的InkCanvas里自带了预测书写轨迹的功能,开启此功能可以进行书写预测,从而减少书写延迟。本文将告诉大家如何在UWP的InkCanvas里开启笔迹书写预测功能在UWP的InkCanvas里开启笔迹书写预测功能只需要设置InkModelerAttributes的PredictionTime属性即可,这个属性......