一种基于DDRSDRAM的四路并行SAR成像数据转置系统
					未命名
					08-02
					阅读:154
					评论:0
									
								
										
                            一种基于ddr sdram的四路并行sar成像数据转置系统
技术领域
本发明属于雷达成像信号处理领域,特别涉及一种在雷达成像信号处理中对四路并行数据进行快速转置的系统。
背景技术:
合成孔径雷达(synthetic aperture radar,sar)具有全天时,全天候的工作特点以及高分辨的成像精度,其已经在多云雾地区遥感测图、军事侦察、国民经济建设等方面发挥着巨大作用。近些年来,随着硬件制造水平的快速发展,sar实时成像系统设计收到越来越多的研究。而sar成像信号处理过程中涉及到大数据量的传输和存储,由于成像处理过程中数据的访问需要在距离维和方位维之间进行切换,因此转置效率的高低直接关系到sar成像信号处理的快慢。目前ddr sdram(双倍速率同步动态随机存储器)由于存储量大,速度快,功耗低,成本低等优点在sar成像信号处理中得到越来越多的应用。在基于ddr sdram的sar成像处理系统中,在之前的研究中有两页式或三页式转置方法,该方法通过循环访问两片或者三片sdram来实现矩阵转置。南京电子技术研究所吴沁文发表的论文“基于fpga和ddr的高效率矩阵转置方法”将数据从行维上拆解,使原来的一行数据排成一个新的小矩阵以此来平衡读写效率。西安电子工程研究所刘晨等人发表的论文“基于ddr sdram的ctm算法与实现”提出最快列读取矩阵转置算法,首先接收两条方位向数据,将两条数据相间拼合写入到ddr sdram中,这种方法可以做到列数据顺序排列从而顺序读出。上述文献中的转置方法都是针对一路数据处理系统而设计的,且数据是按行或按列进行输入到相应子模块,然而在一些成像算法流程中需要多次数据转置,且在基于fpga的实现方案中多是采用多路并行数据处理设计,这也将导致在数据处理过程中数据无法再按行或按列输入到相应子模块。
技术实现要素:
本发明主要针对并行数据处理时采用传统转转置方案读写效率低下、需要大量ram缓存冗余数据的问题,优化了转置方案,通过将回波数据分解成一个个4
×
4的数据矩阵进行处理,大量减少了ram缓存和换行换列的操作,大大提高了系统的运行效率。
5.本发明的实现技术方案为:一种基于ddr sdram的四路并行sar成像数据转置系统,包括距离向数据处理模块和方位向数据处理模块,所述距离向数据处理模块包括第一ddr sdram、第一异步fifo、移位寄存器组、第一ram组和距离向数据处理单元;所述第一ddr sdram用于接收雷达回波数据,第一ddr sdram突发长度为8,数据位宽为64bit,雷达回波数据位宽为32bit,定义雷达回波数据为8192
×
8192的矩阵,雷达回波数据通过分块存储的方式写入第一ddr sdram,将雷达回波数据的每一行平均分为512份,每一份皆为16个32bit数,即512bit,每次写入的512bit数据占据第一ddr sdram的8个地址空间,具体为:将第一行数据从地址0开始写,每隔32个地址写入16个32bit数据;再将第二
行数据从地址8开始,接着每隔32个地址写入16个32bit数;再将第三行数据从地址16开始,接着每隔32个地址写入16个32bit数;最后将第四行数据从地址24开始,接着每隔32个地址写入16个32bit数;将第一ddr sdram的地址0-16383全部写满;以同样的顺序每次4行的写入直到写完全部的雷达回波数据;所述第一异步fifo用于将第一ddr sdram中的数据顺序读出,具体为:首先读出第一行的前16个数据,接着读出第二行的前16个数据,接着读出第三行的前16个数据,接着读出第四行的前16个数据;接着读出第一行的第17到第32个数据,依此顺序依次读出;第一异步fifo读出的数据依次经过移位寄存器组,所述移位寄存器组包括3个512bit的移位寄存器,经过移位寄存器组的数据存入第一ram组中,具体为:每隔四个寄存器处理时钟将3个512bit的移位寄存器和异步fifo的当前输出,即四行的16列数据写入64个32bit的ram中;所述第一ram组包括64个32bit的ram,每次存入ram中的数据为4行16列32bit数据,为4个4
×
4的矩阵块,每个时钟从第一ram组中读出四行数据的同一列数据输入距离向数据处理单元进行处理;所述方位向数据处理模块包括寄存器串并转换单元、第二异步fifo、第二ddr sdram、第三异步fifo、第二ram组和方位向数据处理单元;所述寄存器串并转换单元将距离向处理过的数据每隔4个数据处理时钟组合成512bit的数据,并通过第二异步fifo写入第二ddr sdram中,具体为:从第二ddr sdram的地址0开始,每隔262144个地址写入16个4
×
4的矩阵块,写入2048次后,从地址128开始,每隔262144个地址写入16个4
×
4的矩阵块,以此顺序,每写入2048次后,初始地址加128,直到写完全部的4
×
4矩阵块;所述第三异步fifo用于将第二ddr sdram中的数据分块读出并存入第二ram组,每次读出的4
×
4矩阵块刚好为4次方位向处理的数据,具体为:从第二ddr sdram的地址0开始,先读出地址0的16个32bit数据,接着每隔128个地址顺序读取,直到读完2048
×
2048个512bit矩阵块的第一行全部数据,即8192
×
8192矩阵的前四行数据;然后读取地址8的16个32bit数据,接着每隔128个地址顺序读取,直到读完2048
×
2048个512bit矩阵块的第二行全部数据,即8k
×
8k矩阵的第5到第8行数据;按此顺序,直到读完全部的数据;所述第二ram组包括2个ram单元,每个ram单元包括16个32bit的ram,第二ddr sdram中的数据以16个32bit数据为一个整体,乒乓存入2个ram单元中;方位向数据处理单元从第二ram组中每个时钟读取16个32bit数据,每个数据处理时钟输出4列的4行数据进行方位向的数据处理。本发明的方案中,将8192
×
8192的回波数据矩阵划分成2048
×
2048个4行4列的小矩阵,每4次距离向或者方位向的数据处理恰好是其中一个4行4列的数据矩阵,避免传统单行单列处理的大量数据冗余和换行次数。ddr sdram突发长度为8,数据位宽为64bit,即一次读写命令对应输出512bit的数据,即ddr写入地址只能为8的整数倍。雷达回波数据位宽32bit,也即对ddr sdram的一次读写即相当于读出16个32bit的数据。系统分为距离向数据处理模块和方位向数据处理模块。距离向数据处理模块包括ddr组1存储模块及地址控制模块、输入异步fifo、3个512bit的移位寄存器和64个32bit的ram;方位向数据转置模块包含一个128bit转512bit的串并转换模块、一个距离向输出异步fifo、ddr组2存储模块及地址
控制模块、方位向数据输入异步fifo和16个32bit的ram。ddr sdram突发长度为8,数据位宽为64bit,即一次读写命令对应输出512bit的数据,即ddr写入地址只能为8的整数倍。雷达回波数据位宽32bit,也即对ddr sdram的一次读写即相当于读出16个32bit的数据。异步fifo其数据输入端位宽等于原始数据位宽的16倍,即512bits,数据输出端位宽同样等于原始数据位宽的16倍,即等于ddr的数据位宽。每次存入ram中的数据为4行16列32bit数据,恰好为4个4
×
4的矩阵块,每个时钟距离向数据处理读出其中一列数据,即4个32bit数据。每4个时钟得到一个4
×
4的矩阵块。通过异步fifo将得到一个个4
×
4的矩阵块通过分块存储的方式写入2号ddr sdram存储器。从ddr的地址0开始,每隔262144个地址写入16个4
×
4的矩阵块,写入2048次后,从ddr的地址128开始,每隔262144个地址写入16个4
×
4的矩阵块。以此顺序,每写入2048次后,初始地址加128,直到写完全部的4
×
4矩阵块。通过异步fifo将ddr中的数据分块读出,每次读出的4
×
4矩阵块刚好为4次方位向处理的数据。从ddr的地址0开始,每隔128个地址读出1个4
×
4的数据矩阵块;每读完2048次,初始地址加8,再次每隔128个地址读出1个4
×
4的数据矩阵块;直到读完16次2048个4
×
4的矩阵块,从下一个地址开始按照同样的顺序读出数据,直到读出全部的数据。本发明与现有技术相比具有以下优点:其一,本发明通过优化转置方案,提高了并行转置系统的ddr读写效率。目前的主流并行转置系统,一次4路并行处理至少需要对ddr做4次突发操作读取4个不同的地址。本发明通过分块的方式,使得一次突发就可以满足4路并行处理;相比主流的并行转置系统,本发明大大减少了ddr的换行激活操作,ddr的读写效率大大提高,功耗大大降低。其二,本发明避免了传统转置系统使用大量ram来缓存冗余数据。目前主流的转置方案,在转置后每次仍然需要读出512bit的数据,而每次仅使用其中的128bit数据,剩余的数据需要缓存,直到读完一整列8912个数据才可以继续使用,消耗了大量的ram来缓存冗余数据。本发明通过将8192
×
8192的数据矩阵划分为2048
×
2048个4
×
4的矩阵块,使得距离向的4次处理和方位向的4次处理刚好为同一个4
×
4的矩阵块。转置后仅需缓存当前的512bit数据进行处理,避免了大量的ram占用。其三,根据雷达成像处理数据的距离向和方位向点数都是2的n次幂,本发明使用4
×
4的小矩阵块作为单位,使得距离向和方位向的点数都能满足4的幂次倍数,这样能满足绝大部分的成像场景要求。且4行4列的矩阵块刚好与4路并行处理相符合,不需要进行数据缓存,可以直接流水线操作。其四,本发明能保证距离向和方位向处理输入数据不间断,且无丢失的存入ddr中并读出,从而保证整个数据处理流程的流水化高速运行。
附图说明
图1是本发明基于ddr sdram的四路并行sar成像数据转置系统的实现框图;图2是本发明中4路并行数据处理示意图。图3是本发明中距离向数据读出流程图;
图4是本发明中距离向数据在ddr中的排布方式;图5是本发明中距离向数据读出示意图;图6是本发明中矩阵划分示意图;图7是本发明中方位向转置数据读出流程图。图8是本发明中方位向数据在ddr中的排布方式;
具体实施方式
下面结合附图及具体实施方式对本发明做进一步的说明。如图1所示,本发明提出的一种基于ddr sdram的四路并行sar成像数据转置系统,系统分为距离向数据处理模块和方位向数据处理模块。距离向数据处理模块包括ddr组1存储模块及地址控制模块、输入异步fifo、3个512bit的移位寄存器和64个32bit的ram;方位向数据转置模块包含一个128bit转512bit的串并转换模块、一个距离向输出异步fifo、ddr组2存储模块及地址控制模块、方位向数据输入异步fifo和16个32bit的ram。除ddr sdram外,其余模块均在fpga上进行实现,fpga选用xilinx公司的xc7vx690tffg1761-3芯片。ddr sdram芯片型号为mt8jtf12864hz-1g6,是ddr3 sdram,突发传输长度设置为8。开发环境为xilinx的vivado 2019.2,ddr sdram读写接口使用vivado提供的mig核。该具体实施方案中,待转置矩阵大小为8192
×
8192,分为转置前的距离向处理和转置后的方位向处理。如图2所示,本系统实行4路并行处理:距离向处理时,每个时钟对4行的同一列4个32bit数据进行处理;方位向处理时,每个时钟对4列的同一行4个32bit数据进行处理:具体操作如下,首先进行距离向数据处理,如图3所示。将8192
×
8192的回波数据写入ddr后,通过异步fifo读出,然后依次写入移位寄存器中,每4个75m时钟将得到的4行的16列数据写入ram中,再分16个300m时钟读出。回波数据写入ddr中的顺序如图4所示。将回波数据的每一行平均分为512份,每一份皆为16个32bit数,即512bit。每次写入的512bit数据占据ddr的8个地址空间。往ddr中写入数据时,先往地址0写入16个32bit数,接着每隔32个地址写入16个32bit数,直到第一行写完;再将第二行数据写入地址8,接着每隔32个地址写入16个32bit数;再将第三行数据写入地址16,接着每隔32个地址写入16个32bit数;最后将第四行数据写入地址24,接着每隔32个地址写入16个32bit数;将ddr的地址0-16383全部写满。以同样的顺序4行4行的写入ddr直到写完全部的回波数据。写入效果最终实现ddr的实际地址中,依次存入的是回波数据是第1行、第2行、第3行、第4行的前16个数据,接着在ddr的实际地址中存入的是第1行、第2行、第3行、第4行的接下来的16个数据,即第17到第32个数据,照此顺序在ddr的实际地址中存完了一到四行的全部数据;接着依照顺序存入的是回波数据的第5行到第8行的数据,按此顺序存完全部的回波数据。fpga控制从ddr中以16个32bit数据为一个整体,按自然顺序将数据通过异步fifo读出,通过串并转换每个数据处理时钟输出4行的同一列数据进行距离向的数据处理如图4所示,首先读出的是第一行的前16个数据,接着读出的是第二行的前16个数
据,接着读出的是第三行的前16个数据,接着读出的是第四行的前16个数据;接着读出的是第一行的第17到第32个数据,依此顺序依次读出。如图5所示。按此顺序依次读出写入移位寄存器,每隔四个寄存器处理时钟将3个512bit的移位寄存器和异步fifo的当前输出,即四行的16列数据写入64个32bit的ram中。fpga控制每个时钟从ram中读出四行数据的同一列数据做数据处理,每16个数据处理时钟处理完ram中全部的四行的16列数据,即64个32bit的数据。此时正好过了四个寄存器时钟,fpga将接下来的4行16列数据写入ram中。如图6所示。将8k
×
8k的数据划分成2k
×
2k个4行4列的矩阵,fpga每4个数据处理时钟得到的16个32bit数据就是划分成的2k
×
2k个4行4列矩阵数据。方位向的每4个数据处理时钟处理的16个32bit数据刚好为距离向每4个数据处理时钟处理的16个32bit数据。将每个4
×
4的数据矩阵作为一个整体,即将8k
×
8k的数据矩阵分割为2048
×
2048个512bit数据块。fpga控制将距离向处理过的数据每隔4个数据处理时钟组合成512bit的数据,即是上述的一个4行4列矩阵,然后写入ddr中。方位向数据处理如图7所示,将8192
×
8192的距离向处理过后的数据写入ddr后,通过异步fifo读出,然后乒乓写入ram组1和ram组2。按如图8所示的顺序将距离向处理后的数据写入ddr中,其中的a(x,y)为一个4行4列矩阵。按照分割好的512bit数据块,先往ddr中写入第一行得前16个512bit数据块,接着地址加262144,写入第一行第17到第32个512bie数据块,地址再加262144,直到写完第一行得全部数据;然后在地址128写入第二行得前16个512bit数据块,接着地址加262144。按此顺序循环,直到写完全部得2048行512bit数据。fpga控制从ddr中以16个32bit数据为一个整体,将数据通过异步fifo读出,乒乓存入ram组1和ram组2,ram组1和ram组2均包含16个32bit的ram,ram组1写入数据时,ram组2读出数据,ram组2写入数据时,ram组1读出数据,从而保证数据不间断。从ddr中先读出地址0的16个32bit数据,接着每隔128个地址顺序读取,直到读完2048
×
2048个512bit矩阵块的第一行全部数据,即8192
×
8192矩阵的前四行数据;然后从ddr中读取地址8的16个32bit数据,接着每隔128个地址顺序读取,直到读完2048
×
2048个512bit矩阵块的第二行全部数据,即8k
×
8k矩阵的第5到第8行数据。按此顺序,直到读完全部的数据。每个寄存器时钟读取的16个32bit数据,每个数据处理时钟输出4列的4行数据进行方位向的数据处理。
技术特征:
1.一种基于ddr sdram的四路并行sar成像数据转置系统,其特征在于,包括距离向数据处理模块和方位向数据处理模块,所述距离向数据处理模块包括第一ddr sdram、第一异步fifo、移位寄存器组、第一ram组和距离向数据处理单元;所述第一ddr sdram用于接收雷达回波数据,第一ddr sdram突发长度为8,数据位宽为64bit,雷达回波数据位宽为32bit,定义雷达回波数据为8192
×
8192的矩阵,雷达回波数据通过分块存储的方式写入第一ddr sdram,将雷达回波数据的每一行平均分为512份,每一份皆为16个32bit数,即512bit,每次写入的512bit数据占据第一ddr sdram的8个地址空间,具体为:将第一行数据从地址0开始写,每隔32个地址写入16个32bit数据;再将第二行数据从地址8开始,接着每隔32个地址写入16个32bit数;再将第三行数据从地址16开始,接着每隔32个地址写入16个32bit数;最后将第四行数据从地址24开始,接着每隔32个地址写入16个32bit数;将第一ddr sdram的地址0-16383全部写满;以同样的顺序每次4行的写入直到写完全部的雷达回波数据;所述第一异步fifo用于将第一ddr sdram中的数据顺序读出,具体为:首先读出第一行的前16个数据,接着读出第二行的前16个数据,接着读出第三行的前16个数据,接着读出第四行的前16个数据;接着读出第一行的第17到第32个数据,依此顺序依次读出;第一异步fifo读出的数据依次经过移位寄存器组,所述移位寄存器组包括3个512bit的移位寄存器,经过移位寄存器组的数据存入第一ram组中,具体为:每隔四个寄存器处理时钟将3个512bit的移位寄存器和异步fifo的当前输出,即四行的16列数据写入64个32bit的ram中;所述第一ram组包括64个32bit的ram,每次存入ram中的数据为4行16列32bit数据,为4个4
×
4的矩阵块,每个时钟从第一ram组中读出四行数据的同一列数据输入距离向数据处理单元进行处理;所述方位向数据处理模块包括寄存器串并转换单元、第二异步fifo、第二ddr sdram、第三异步fifo、第二ram组和方位向数据处理单元;所述寄存器串并转换单元将距离向处理过的数据每隔4个数据处理时钟组合成512bit的数据,并通过第二异步fifo写入第二ddr sdram中,具体为:从第二ddr sdram的地址0开始,每隔262144个地址写入16个4
×
4的矩阵块,写入2048次后,从地址128开始,每隔262144个地址写入16个4
×
4的矩阵块,以此顺序,每写入2048次后,初始地址加128,直到写完全部的4
×
4矩阵块;所述第三异步fifo用于将第二ddr sdram中的数据分块读出并存入第二ram组,每次读出的4
×
4矩阵块刚好为4次方位向处理的数据,具体为:从第二ddr sdram的地址0开始,先读出地址0的16个32bit数据,接着每隔128个地址顺序读取,直到读完2048
×
2048个512bit矩阵块的第一行全部数据,即8192
×
8192矩阵的前四行数据;然后读取地址8的16个32bit数据,接着每隔128个地址顺序读取,直到读完2048
×
2048个512bit矩阵块的第二行全部数据,即8k
×
8k矩阵的第5到第8行数据;按此顺序,直到读完全部的数据;所述第二ram组包括2个ram单元,每个ram单元包括16个32bit的ram,第二ddr sdram中的数据以16个32bit数据为一个整体,乒乓存入2个ram单元中;方位向数据处理单元从第二ram组中每个时钟读取16个32bit数据,每个数据处理时钟输出4列的4行数据进行方位向的数据处理。
技术总结
本发明公开了一种基于DDR SDRAM的四路并行SAR成像数据转置系统。本发明将数据矩阵划分为一个个4
技术研发人员:李晋 闵锐 黄泽坤 余雷 徐浩典 曹宗杰 崔宗勇
受保护的技术使用者:电子科技大学
技术研发日:2023.04.27
技术公布日:2023/8/1
									版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家  https://www.aerohome.com.cn/
飞机超市  https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
