首页 > 其他分享 >m基于FPGA的通信数据帧加扰解扰verilog实现,包含testbench

m基于FPGA的通信数据帧加扰解扰verilog实现,包含testbench

时间:2023-06-11 18:07:07浏览次数:35  
标签:din FPGA 加扰 算法 b0 verilog 数据

1.算法仿真效果

本系统进行了两个平台的开发,分别是:

Vivado2019.2

Quartusii18.0+ModelSim-Altera 6.6d Starter Edition

其中Vivado2019.2仿真结果如下:

1.png

Quartusii18.0+ModelSim-Altera 6.6d Starter Edition的测试结果如下:

2.png

2.算法涉及理论知识概要 现代通信系统中,为了保证数据传输的可靠性和安全性,通常需要采用一定的加密和解密技术。数据加扰和解扰是其中的一种重要手段,它们可以在不增加传输开销的情况下,有效地抵御各种干扰和攻击。本文将对数据加扰和解扰的原理、优势以及FPGA实现过程进行详细介绍。 1、数据加扰原理 数据加扰是指在传输数据之前,对原始数据进行一定的变换,使得数据在传输时呈现出更加随机的特征。这样可以有效地抵御各种形式的干扰,包括电磁干扰、信道噪声、多径衰落等。数据加扰的基本原理是通过一定的算法,将原始数据进行一定的变换,使得变换后的数据在统计特性上与原始数据不同。这样可以使得传输过程中的干扰和噪声对数据的影响降低,从而提高数据传输的可靠性。 数据加扰的实现方式有很多种,其中比较常见的方式包括异或加扰、置换加扰和混沌加扰等。异或加扰是最简单的一种加扰方式,其原理是将原始数据与一个随机数序列进行异或运算,从而得到加扰后的数据。置换加扰是指通过对原始数据进行一定的置换操作,使得加扰后的数据具有更加随机的特征。混沌加扰是利用混沌系统的特性进行加扰,通过混沌映射或混沌流产生随机序列,再将原始数据与随机序列进行异或运算,从而得到加扰后的数据。 2、数据解扰原理 数据解扰是指对加扰后的数据进行解密,恢复出原始数据。数据解扰的原理与数据加扰的原理类似,通常采用相反的运算方法,将加扰后的数据恢复为原始数据。如果采用异或加扰方式,那么解扰的方式就是将加扰后的数据再次与随机数序列进行异或运算。如果采用置换加扰方式,那么解扰的方式就是将加扰后的数据再次进行相应的置换操作。如果采用混沌加扰方式,那么解扰的方式就是通过混沌系统产生的随机序列与加扰后的数据进行异或运算,从而恢复出原始数据。 3、数据加扰解扰的优势 数据加扰和解扰技术具有以下几个优势: (1)提高传输可靠性:加扰后的数据具有更加随机的特征,可以有效地抵御各种形式的干扰和攻击,从而提高数据传输的可靠性。 (2)不增加传输开销:数据加扰和解扰的算法可以在传输过程中实现,不需要额外的传输开销,同时也不会增加传输延迟。 (3)保护数据安全:加扰后的数据具有更高的安全性,可以有效地防止数据泄露和非法访问,保护数据的安全性。 4、FPGA实现过程 FPGA是一种可编程逻辑器件,可以根据应用需求编程实现各种功能。在数据加扰和解扰中,FPGA可以实现加扰和解扰算法,并将其应用于通信系统中,以提高数据传输的可靠性和安全性。 FPGA实现数据加扰的过程可以分为以下几个步骤: (1)设计加扰算法:根据应用需求,设计合适的加扰算法,包括异或加扰、置换加扰和混沌加扰等。在设计加扰算法时,需要考虑加扰后的数据是否具有足够的随机性和安全性。 (2)实现加扰算法:将加扰算法转化为FPGA可编程的语言,如VHDL或Verilog等。实现加扰算法时,需要考虑算法的效率和复杂度,以确保其能够在FPGA上实现。 (3)设计FPGA电路:根据加扰算法,设计FPGA电路,包括输入输出端口、加扰逻辑电路、时钟电路等。在设计FPGA电路时,需要考虑电路的功耗和面积,以保证电路能够在FPGA上实现。 (4)编译和下载:将设计好的FPGA电路编译为比特流文件,并下载到FPGA芯片中。在下载时,需要注意FPGA芯片的型号和时钟频率等参数,以确保电路能够正常工作。 FPGA实现数据解扰的过程与数据加扰类似,主要包括设计解扰算法、实现解扰算法、设计FPGA电路和编译下载等步骤。需要注意的是,在实现解扰算法时,需要考虑解扰算法与加扰算法的对应关系,以确保能够正确地恢复出原始数据。 数据加扰和解扰是现代通信系统中常用的数据保护技术,可以提高数据传输的可靠性和安全性。在实际应用中,FPGA可以实现加扰和解扰算法,并将其应用于通信系统中。FPGA实现数据加扰和解扰的过程包括设计算法、实现算法、设计FPGA电路和编译下载等步骤,需要考虑算法的效率和复杂度,以及电路的功耗和面积等因素。

3.Verilog核心程序

// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//
 
 
module TEST();
 
reg     i_clk;
reg     i_rst;
reg     i_enable;
reg     i_start;
reg     i_din;         
 
wire    o_enable_scr;
wire    o_start_scr;
wire    o_dout_scr;
 
wire    o_enable_dscr;
wire    o_start_dscr;
wire    o_dout_dscr;
 
tops uut(
.i_clk             (i_clk),
.i_rst             (i_rst),
.i_enable          (i_enable),
.i_start           (i_start),
.i_din             (i_din),         
 
.o_enable_scr      (o_enable_scr),
.o_start_scr       (o_start_scr),
.o_dout_scr        (o_dout_scr),
 
.o_enable_dscr     (o_enable_dscr),
.o_start_dscr      (o_start_dscr),
.o_dout_dscr       (o_dout_dscr)
);
 
 
initial
begin
i_clk = 1'b1;
i_rst = 1'b1;
#1000
i_rst = 1'b0;
end
initial
begin
i_enable = 1'b0;
#1000
i_enable = 1'b1;
#1280
i_enable = 1'b0;
end
 
initial
begin
i_start  = 1'b0;
#1000
i_start  = 1'b1;
#10
i_start = 1'b0;
end
initial
begin
i_din    = 1'b0;
#1000
i_din    = 1'b0;
#10
i_din    = 1'b1;
#100
i_din    = 1'b0;
#50
i_din    = 1'b1;
#140
i_din    = 1'b0;
#120
i_din    = 1'b1;
#30
i_din    = 1'b0;
#20
i_din    = 1'b1;
#70
i_din    = 1'b0;
#10
i_din    = 1'b1;
#20
i_din    = 1'b0;
#130
i_din    = 1'b0;
#50
i_din    = 1'b1;
#140
i_din    = 1'b0;
#220
i_din    = 1'b1;
#130
i_din    = 1'b0;
#1000
$stop();
 
end
 
always #5 i_clk=~i_clk;
 
endmodule

```

标签:din,FPGA,加扰,算法,b0,verilog,数据
From: https://blog.51cto.com/matworld/6458377

相关文章

  • m基于FPGA的通信数据帧加扰解扰verilog实现,包含testbench
    1.算法仿真效果 本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:  Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:  2.算法涉及理论知识概要......
  • m基于FPGA的QPSK调制解调通信系统verilog实现,包含testbench,不包含载波同步
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:2.算法涉及理论知识概要QPSK是一种数字调制方式,它将......
  • m基于FPGA的QPSK调制解调通信系统verilog实现,包含testbench,不包含载波同步
    1.算法仿真效果 本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:   Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:    2.算法涉及理......
  • pullup和pulldown在verilog中的使用方法
    0前言这段时间涉及到了IO-PAD,在IO-PAD的RTL的时候注意到了pullup和pulldown,对这个知识比较好奇,就研究了一下,顺便记录下来,IO-PAD的内容等我再研究研究再考虑记录吧>_<1pullup和pulldown的介绍pullup和pulldown并非是verilog的内置原语,仅在仿真或综合过程中起作用,用来设置信号......
  • m基于FPGA的8点DCT变换verilog实现,包含testbench,并对比matlab的计算结果
    1.算法仿真效果本系统进行了两个平台的开发,分别是:Vivado2019.2Quartusii18.0+ModelSim-Altera6.6dStarterEdition其中Vivado2019.2仿真结果如下:Quartusii18.0+ModelSim-Altera6.6dStarterEdition的测试结果如下:matlab对比结果如下:部分小的误差是由于FPGA设计......
  • m基于FPGA的BPSK调制解调通信系统verilog实现,包含testbench,包含载波同步
    1.算法仿真效果vivado2019.2仿真结果如下:对比没载波同步和有载波同步的仿真效果,我们可以看到,当不存在载波同步时,数据的包络会有一个缓慢的类正弦变换,这是由于存在频偏导致的。而当加入载波同步之后,数据的包络会存在少量起伏,但数据反转的情况已经没有了,说明频偏得到了补偿。......
  • m基于FPGA的8点DCT变换verilog实现,包含testbench,并对比matlab的计算结果
    1.算法仿真效果本系统进行了两个平台的开发,分别是: Vivado2019.2 Quartusii18.0+ModelSim-Altera6.6d StarterEdition 其中Vivado2019.2仿真结果如下:  Quartusii18.0+ModelSim-Altera6.6d StarterEdition的测试结果如下:  matlab对比结果如下:   ......
  • m基于FPGA的BPSK调制解调通信系统verilog实现,包含testbench,包含载波同步
    1.算法仿真效果vivado2019.2仿真结果如下:         对比没载波同步和有载波同步的仿真效果,我们可以看到,当不存在载波同步时,数据的包络会有一个缓慢的类正弦变换,这是由于存在频偏导致的。而当加入载波同步之后,数据的包络会存在少量起伏,但数据反转的情况已经没有了,说......
  • 高考答题卡怎么被机器识别?基于OpenCV答题卡识别模拟-米尔ARM+FPGA异构开发板
    本篇测评由优秀测评者“筑梦者与梦同行”提供。 01.前言MYD-JX8MMA7SDK发布说明 根据下图文件内容可以知道myir-image-full系统支持的功能,其支持OpenCV,也就不用在格外安装相关驱动包等,省了很多事情。02.MYD-JX8MMA7软件评估指南本文介绍了Python的基本操作,在文档中10......
  • m基于FPGA的FOC控制器verilog实现,包括CLARK,PARK,PID及SVPWM,含testbench
    1.算法仿真效果QuartusII12.1(64-Bit) ModelSim-Altera6.6dStarterEdition 仿真结果如下:   2.算法涉及理论知识概要整个系统的结构如下所示: 1、采集到两相电流 2、经过clarke变换后得到两轴正交电流量, 3、经过旋转变换后得到正交的电流量Id、Iq......