一种通用的FPGA原位数据转置分块方法与流程

文档序号:12174695阅读:1327来源:国知局
一种通用的FPGA原位数据转置分块方法与流程

本发明涉及一种通用的FPGA原位数据转置分块方法,属于空间微波遥感技术领域。



背景技术:

合成孔径雷达的工程实现,需要完成大数据量的高速存储和实时处理,当前主流FPGA集成了大量运算单元和可实现一定功能的IP核,在复数乘法、FFT处理等数字信号处理步骤中具有很大优势,并且可以并行处理多路数据,已成为合成孔径雷达的信号处理器的核心处理芯片。

合成孔径雷达实时成像处理流程需要依次对距离向和方位向的数据做处理,要完成至少一次矩阵转置。最简单的矩阵转置基于FPGA内部RAM实现,将按距离向存储的数据通过地址跳变读出,实现按方位向读出。但由于FPGA内部资源有限,仅通过FPGA内部资源已经无法满足当前大批量图像数据的缓存需求。

当前广泛使用DDR3 SDRAM(第三代双倍数据率同步动态随机存储器)完成数据缓存,DDR3 SRAM具有存储量大,读写速率高等特点。但是由于DDR3 SRAM器件自身特性,频繁的行地址切换会大大降低其读写效率,因此将数据逐行存入DDR3 SRAM再按列读出效率很低,如何将DDR3 SDRAM中的数据在原存储空间内尽量高效地完成转置是雷达信号处理成像算法工程实现的难点。

原位转置是指在不占用更多存储的情况下将矩阵在原存储空间内完成转置。现有的原位转置方法较少,目前基于DDR3 SRAM的矩阵转置主要采用对大矩阵进行划分、再对划分出的小方阵依次完成转置的方法,从而降低DDR3 SRAM行切换次数,提高处理效率。但在实际工程应用中,这种单一的划分方法不能覆盖各种情况,对于行、列数不相等的矩阵,划分情况较多,尚无通用化的FPGA原位数据转置软件模块。

专利《基于FPGA的SAR成像信号处理数据转置方法》(公开号102279386A)中的数据转置方法为:对DDR2 SRAM中的数据进行矩阵分割,划分为对角模式矩阵块、对称非对角模式矩阵块和非对称非对角模式矩阵块三类,依次将各部分矩阵块读入内存完成转置再写回DDR2 SRAM。这种矩阵划分方法不能覆盖各种情况,并不适用于行列数相差很小或是很大的情况,并且此专利对于对称非对角模式矩阵块的转置处理方法不利于FPGA工程实现,代码通用性较差。



技术实现要素:

本发明的技术解决问题是:提供了一种通用的FPGA原位数据转置分块方法,结合FPGA工程实现特点建立了处理方法选择模型,能够灵活地针对雷达信号处理的数据量进行判断,结合实际工程情况给出最合适的原位转置方法,统一了基于DDR3 SRAM的FPGA原位数据转置的各种应用情况,解决了当前处理方法通用性差、应用范围有限、软件移植性差等缺点,为雷达实时成像处理的工程实现打下了关键基础。

本发明的技术解决方案是:

一种通用的FPGA原位数据转置分块方法,如图1所示如下:

(1)建立转置方法模型

将距离点数M和方位向点数N的比值作为标准建立FPGA原位转置处理方法模型,便于权衡工程实现难度和处理效率。提出的方法模型为:

当为基本的方阵转置方法;

当或为方法1;

当或为方法2;

当或为方法3;

(2)确定P、Q取值

上述判断标准中P、Q均为整数,且满足的取值会影响对方法1和方法2的选择,需要结合工程实现难度和算法处理效率确定,针对方法1和方法2,在处理时序足够的情况下,的取值接近2则更利于选择方法2;

(3)基本的方阵转置方法

当M、N相等时,采用基本的方阵转置方法,将方阵划分为L阶的小方阵。所述小方阵分为两类:A类为对角线上的方阵,依次将A类方阵内的数据逐行读出到FPGA内部RAM,读地址按L跳转读出RAM中的数据,再逐行写回DDR3SDRAM中原地址;B类为关于对角线对称的方阵,每次需要读出关于对角线对称的两个B类方阵到FPGA内部RAM,通过读地址按L跳转读出RAM中的数据分别完成两个方阵内部的数据的转置,在将两个方阵交换位置写回DDR3SDRAM;

(4)方法1:划分方阵

当或时,采用方法1,将数据划分为一个以M、N中较小值为阶数的方阵和一个小矩阵,划分出的方阵按照基本的方阵转置方法进行分块处理,对于多出的数据区单独划分为小方阵,逐一读入FPGA内部RAM完成转置在写回DDR3 SRAM中与原地址对称的位置;

(5)方法2:扩充方阵

当或时,采用方法2,将数据矩阵扩充为以M、N中较大值为阶数的方阵,然后直接按照基本的方阵转置方法进行分块处理完成原位转置,在后续处理中忽略扩充的数据区即可;

(6)方法3:划分多个方阵

当M、N相差在一倍以上时,采用方法3,将矩阵划分为多个以M、N中较小值为阶数的方阵,不足整数个方阵的扩充数据划分到整数个,对每个方阵直接按照基本的方阵转置方法进行分块处理完成原位转置。

本发明与现有技术相比的有益效果是:

本发明所述的一种通用的FPGA原位数据转置分块方法,在原有数据存储的基础上进行数据划分,不需要额外占用DDR3 SRAM存储,可以最大化地节省存储空间、减小硬件规模。

技术方案(1)建立转置方法模型,首次将距离点数M和方位向点数N的比值作为标准建立了FPGA原位转置处理方法模型,该模型统一了基于DDR3 SRAM的FPGA原位数据转置的各种应用情况,对大矩阵划分方法进行细化,利于工程开展,解决了现有处理方法通用性差,不能满足各种应用场景的缺点。

技术方案(2)确定P、Q的取值,便于设计师在FPGA软件设计初期权衡FPGA代码设计难度和处理效率,给出合适方法,相比于现有方法,更利于后续软件编写。

技术方案(3)、(4)、(5)、(6)中所述的四种方法覆盖了基于DDR3 SRAM的FPGA原位数据转置的各种应用情况,克服了现有专利覆盖情况不全、并未考虑行列数相差很小或较大情况的缺点;克服现有方法通用性差、实现方法不全面的缺点。

技术方案(4)、(5)、(6)所述的方法将数据行列不等的情况作以细分,并且通过矩阵划分将各种情况都简化到技术方案(2)所述的便于工程实现的方阵转置方法,因此在FPGA工程实现中,行列不等的数据矩阵在划分后都可以调用方阵转置处理模块,克服了当前转置算法工程实现难度大的缺点,利于软件工程化的实现,便于代码移植。

附图说明

图1为本发明的实现原理图;

图2为本发明中方阵分块转置方法;

图3为本发明中方法1的分块转置方法;

图4为本发明中方法2的分块转置方法;

图5为本发明中方法3的分块转置方法。

具体实施方式

一种通用的FPGA原位数据转置分块方法:

(1)FPGA将预处理后的回波数据逐脉冲依次存入DDR3 SRAM各行进行缓存,需要存够一幅图像所需脉组数N。

(2)将每帧图像距离向处理点数M和方位向处理点数N的比值代入方法选择模型进行判断,所述判断模型为:

当为基本的方阵转置方法;

当或为方法1;

当或为方法2;

当或为方法3;

(3)结合工程实现难度和算法处理效率确定P、Q的值,P、Q均为整数,且满足

(4)当M、N相等时,采用基本的方阵转置方法,如图2所示。将方阵划分为L阶的小方阵,L通常取32或64。所述小方阵分为两类:A类为对角线上的方阵,依次将A类方阵内的数据逐行读出到FPGA内部RAM,读地址按L跳转读出RAM中的数据,再逐行写回DDR3 SDRAM中原地址;B类为关于对角线对称的方阵,每次需要读出关于对角线对称的两个B类方阵到FPGA内部RAM,通过读地址按L跳转读出RAM中的数据分别完成两个方阵内部的数据的转置,在将两个方阵交换位置写回DDR3 SDRAM,如B_11内部转置后写到B_12的位置,B_12内部转置后写到B_11的位置;

(5)当或采用方法1,将数据划分为一个以M、N中较小值为阶数的方阵和一个小矩阵,如图3所示,A为划分出的方阵中对角线上的小方阵,B为划分出的方阵中关于对角线对称的小方阵;A类和B类矩阵按照附图1中的方阵转置方法进行分块处理;对于方阵划分后多出的部分单独划分为小方阵C,逐一读入FPGA内部RAM完成转置在写回DDR3 SRAM中与原地址对称的位置;

(6)当或采用方法2,将数据矩阵扩充为以M、N中较大值为阶数的方阵,如图4所示,虚线部分为扩充的数据,扩充后可以直接套用图1中的方阵转置方法,依次对对角线上的A类矩阵和关于对角线对称的B类矩阵做处理,在后续处理中忽略扩充的数据区即可。工程实现时可以直接移植方阵转置处理代码模块。

(7)当或即M、N相差在一倍以上时,采用方法3,将矩阵划分为多个以M、N中较小值为阶数的方阵,如图5所示,将原矩阵划分为A、B、C三个方阵,M比N或者N比M的比值不是整数时,扩充数据保证可以划分为整数个方阵。每个方阵再套用图2中的方阵转置方法划分小方阵完成转置,工程实现中各方阵可以直接移植方阵转置处理代码模块。

本发明实施例:取L=32。

情况1:距离点数M=768,N=512,此时满足采用方法二,将N扩充到768,使得数据成为为768阶的方阵,在将扩充后的方阵划分为24*24个32阶的小方阵,调用方阵转置模块完成转置。

情况2:距离点数M=2048,N=256,此时采取方法三,以N为阶数将矩阵划分为8个阶数为256的方阵,将每个方阵再划分为8乘8个32阶的小方阵,调用方阵转置模块完成转置,将转置结果放到与原地址行列对称的地址。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1