首页 > 其他分享 >m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench

m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench

时间:2024-01-02 22:01:19浏览次数:26  
标签:FPGA clock 解调 脉冲 PPM 脉位调制 时隙 调制

1.算法仿真效果 vivado2019.2仿真结果如下:

2.jpeg1.jpeg

2.算法涉及理论知识概要 基于FPGA的PPM(脉冲位置调制)光学脉位调制解调系统是一个复杂的电子与光电子相结合的通信系统。

2.1 PPM调制解调原理 脉冲相位调制(PPM)最早由Pierce提出并应用于空间通信,是利用脉冲的相对位置来传递信息的一种调制方式。在光通信中,这种调制方式可以以最小的光平均功率达到最高的数据传输速率。PPM的优点在于:它仅需根据数据符号控制脉冲位置,不需要进行极性和脉冲幅度的控制,便于以较低的复杂度实现调制与解调,PPM特别适用于室内计算机红外线通信和对潜通信等要求低平均功率传输信息的场合。PPM信号调制广泛应用于超宽带移动通信、光通信等现代通信前沿技术领域。PPM信号的调制和接收对通信系统的性能起很大作用。

   在PPM中,一个时间窗口被分成等长的N个时隙,脉冲可以在其中的任何一个时隙内出现。假设一个PPM符号的持续时间为(T),并且被分为(N)个等长的时隙,每个时隙的持续时间为(T_s),则(T = N \times T_s)。对于一个给定的信息比特序列,我们可以将其映射到一个特定的脉冲位置。例如,对于4-PPM((N=4)),比特序列“00”可以映射到第一个时隙的脉冲,“01”映射到第二个时隙,以此类推。
   PPM解调的目标是从接收到的信号中恢复出原始的脉冲位置,从而还原出传输的信息。相关解调是一种常用的PPM解调方法。其基本原理是将接收到的信号与本地生成的参考信号进行相关运算,通过观察相关峰的位置来判断脉冲的位置。

2.2 基于FPGA的PPM系统实现

基于FPGA的PPM系统通常包括以下几个主要部分:

PPM调制器:根据输入的比特序列生成对应的PPM信号。这通常涉及到查找表(LUT)或算法逻辑来实现比特到脉冲位置的映射。 相关器:在接收端实现相关运算,用于检测PPM信号中的脉冲位置。相关器需要高精度的时序控制和数据处理能力。 同步模块:确保发送和接收端的符号同步,这是准确解调的关键。通常采用帧同步来实现。 数字信号处理(DSP)模块:用于优化信号质量,如滤波器设计、噪声抑制等。

3.Verilog核心程序

//
// Company: 
// Engineer: 
// 
// Create Date: 2023/12/21 16:01:10
// Design Name: 
// Module Name: test
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
 
 
module test();
 
reg i_clock;
reg i_rst;
 
 
initial
begin
i_clock=1'b1;
i_rst=1'b1;
 
#1000;
i_rst=1'b0;
end
always #5 i_clock=~i_clock;
reg[19:0]cnts;
always@(posedge i_clock or posedge i_rst)
begin 
   if(i_rst)begin //同步复位
      cnts <= 20'd0;
   end 
   else begin 
      if(cnts==151)
      cnts <= 16'd1;
	  else 
      cnts <= cnts + 16'd1;
   end
end 
    
 
reg[7:0]data1;
always@(posedge i_clock or posedge i_rst)
begin 
   if(i_rst)begin //同步复位
   data1<=8'd0;
   end 
   else begin 
      if(cnts==151)
       data1<=data1 + 8'd1;
	  else 
       data1<=data1;
   end
end 
 
 
 
wire o_t_dat;
TPPM TPPM_u1(  
	.i_clock (i_clock),//100MHz,input
	.i_rst   (i_rst),//input
	.i_din   (data1),    //input [7:0] 
	.o_t_dat (o_t_dat),//output reg 
	.o_t_en  ()//output reg 
    );
 
 
wire[7:0]rx_data;
RPPM RPPM_u1(          //ppm解调模块
	
	//时钟和复位
	.i_clock (i_clock),//100MHz,input
	.i_rst   (i_rst),//input
	.i_t_dat (o_t_dat),//input
	//输入的数据和有效信号
	.o_dout  (rx_data),    //output [7:0] 
	.o_en    ()		
	
	//ppm输入信号
 
 
    );	
endmodule

```

标签:FPGA,clock,解调,脉冲,PPM,脉位调制,时隙,调制
From: https://blog.51cto.com/matworld/9073247

相关文章

  • 05 QT上位机读写FPGA内存
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!5.1概述如果读者对于前面demo还有一些疑惑,那么本节课的内容,可以让你更加简单地弄明白什么是BAR地址空间操作,什么是对......
  • 3-1-04 FPGA使用fdma读写DDR
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!4.1概述    在前文的实验中我们详细介绍了FDMA的使用方法,前面一节课演示了FDMA读写AXI-BRAM,本文我们继续使用FDM......
  • 1-1-02 AMD(XILINX) FPGA开发工具Vitis(vivado)安装
    1.1Vitis概述Vitis统一软件平台可实现在Xilinx异构平台(包括FPGA、SoC和VersalACAP)上开发嵌入式软件和加速应用。它可为边缘、云和混合计算应用加速提供统一编程模型。利用与高层次框架的集成,通过加速库采用C、C++或Python进行开发,或者使用基于RTL的加速器和低层次......
  • 37 基于FPGA的LVDS信号环路测试
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述LVDS(LowVoltageDifferentialSignalin)是一种低振幅差分信号技术。它使用幅度非常低的信号(约350mV)通......
  • 31 基于FPGA简易示波器显示驱动设计
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述FPGA在数据采集,数据处理,图像视频领域都有广泛的应用。很多FPGA工程师苦恼,如何让FPGA采集的数据可以直......
  • 29 基于FPGA实现触摸屏实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述常规情况下我们会使用CPU通过I2C接口实现触控液晶触摸方案的实现,也可以上LINUX,一般LINUX下也有对于各......
  • 07 FPGA按钮去抖实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MILIANKE)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述按键的消抖,是指按键在闭合或松开的瞬间伴随着一连串的抖动,这样的抖动将直接影响设计系统的稳定性,降低......
  • 08 FPGA多路分频器实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MILIANKE)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述在FPGA中,时钟分频是经常用到的。本节课讲解2分频、3分频、4分频和8分频的Verilog实现并且学习generate......
  • 05 FPGA流水灯实验
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述本章课程以大家熟悉的流水灯为例子,详细讲解了VIVADO软件的使用,包括创建FPGA工程,编写Verilog代码,添加管......
  • 《FPGA原理和结构》——读书笔记
    最近做了一个关于FPGA的项目后,读了《FPGA原理和结构》这本书。主要梗概内容和想法如下。第一章:理解FPGA所需要的基础知识理解FPGA我们需要数电的组合逻辑、时序逻辑等内容的知识。FPGA(20世纪70年度发展起来的,因为其具有通过组合使用器件内大量的逻辑块来实现所需的电路,比以往侠......