一种基于FPGA实现超长序列快速卷积运算的方法与流程

文档序号:15385382发布日期:2018-09-08 00:30阅读:1940来源:国知局

本发明属于空间定位问题中高速实时数字信号处理领域,对两路信号进行高速、大深度采样并卷积运算以分辨两路信号的微小相位差。ad采样模块采用双通道12bitad采集模块an926,fpga采用altera公司的cycloneiv系列,型号为cycloneivep4ce115f29c7n。通过突发的方式读取存储数据的两片sram,突发长度依次累加,大大提高了运算速度,最终在较短时间内实现两路信号的快速卷积运算。



背景技术:

在空间定位问题中,两路信号的相位差是一个重要的参数,通过这个相位差可以实现空间精确的定位,而卷积运算是找到这个相位差的重要方法。

当两路信号的相位差及其微小时,比如光信号,其相位差的分辨必须通过高采样率和大深度的采样后进行卷积,才可实现。目前,对两路离散数字信号进行卷积运算主要是依靠软件来实现,而软件执行超长序列卷积的速度较低,无法满足对高速信号处理实时性的要求,而采用fpga来实现则可以充分利用其硬件资源丰富和并行运算的特点,大大提高运算速度,从而实现了空间定位的实时性。



技术实现要素:

该方法利用fpga实现两路信号的快速卷积运算,其技术方案包含以下几个方面:

1.ad模块采集数据

采用双通道12bitad采集模块an926对两路模拟信号进行采样,采样频率为50mhz,采样时间为5.243ms,即采样结束以后得到两组262144个12bit的数据。

2.数据写入fpga片外sram

外置静态随机存储器采用两片型号为is61lv25616al的sram,通过gpio口连接到fpga上,该sram的存储资源为256kx16bit,满足存储要求。

由于该sram的数据线为16bit,而实际需要存储的ad采集的数据仅为12位,因此在外部硬件设计上,将该sram的d12、d13、d14、d15直接接地。

数据写入外部sram是通过fpga内部的控制逻辑控制三态总线来实现的。首先当需要将ad采集的数据写入sram时,fpga控制ad模块获得总线使用权,当写入结束时fpga再控制ad模块释放总线,将总线控制权交给快速卷积模块。3.从sram中读出数据

为了配合快速卷积方法,从sram中读取数据的方法是该方法的关键部分。采用突发的方式读取外部sram,突发长度从256位开始,每一次读突发,读取长度就增加256位。采用完全反向的顺序对两片sram进行读取,即第一次突发时sram_a的读取顺序为0,1,2,3…255;sram_b的读取顺序为255,254,253…2,1,0。第二次突发时sram_a的读取顺序为0,1,2,3…511;sram_b的读取顺序为511,510,509…2,1,0。

4.快速卷积运算

将从sram中读取的数据送入快速卷积模块,第一次突发时,设定突发长度为256,按顺序依次将数据并行输入256个乘法器中,并用锁存器将乘法运算结果锁存起来,每个锁存器依次独立计数,当所有锁存器计数满256也就是第一次突发结束时同时输出结果,便可得到第一次突发所算出的256个卷积运算结果。然后立即进入第二次突发,突发长度为512,依然将读出的数据送入快速卷积模块,当所有锁存器计数满512时,同时输出结果。以此方式,共经过1024次突发便可得到全部的卷积结果。

5.运算结果存入fpga外部ddr2

drr2sdram具有大容量、高读写速率的特点。ddr2的读写方式为突发模式。每当快速卷积模块进行完成一次突发读操作并输出结果后,ddr2便进入写突发,长度为256,按照锁存器的顺序依次将结果写入ddr2。在下一次突发读开始前,ddr2便会写完毕并释放总线。

【本发明的优点和积极效果】

本发明利用了fpga硬件资源丰富、可并行计算的特点,用硬件电路实现了超长序列的快速卷积运算,在满足测量精度的前提下保证了高速信号处理的实时性。如果采用传统的软件卷积方法从内存中逐位读取数据并进行乘累加,当卷积完成262144长度的两个序列共需要消耗1+2+3+4+…262143+262144=3.436*1010个时钟周期,当时钟为100mhz时,其需要消耗的时间约为5min43s;而采用本方法只需消耗256+512+768+…+261888+262144=1.3435*108个时钟周期,当时钟为100mhz时,其需要消耗的时间约为1.34s,运算速率提高了255倍,极大地提高了运算速度。

【附图说明】

图1是系统原理框图;

图2是快速卷积模块原理框图;

图3是第一路正弦信号;

图4是第二路正弦信号;

图5是两路信号微小相位差;

图6是快速卷积运算结果;

图7是快速卷积方法流程图。

【具体实施方式】

为了更清楚得说明本发明的实施方案,下面结合后文附图,对本发明做进一步的说明。

如图3-图5所示,对两路具有微小相位差的正弦信号进行卷积运算,两路信号经过ad模块采集后的长度均为262144,将其按顺序存入fpga外部的sram中。接下来依次进行1024次突发读操作,读取长度从256开始依次增加256,将反向读取两片sram得到的数据送入快速卷积模块,如图2所示。突发结束时同时得到256个卷积结果,按顺序存入fpga外部的ddr2中。1024次突发后快速卷积运算结束,其卷积结果如图6所示,可以看到,虽然两路信号相位差极其微小,但依然能够分辨出来峰值出现在中间偏左的位置。



技术特征:

技术总结
本发明公开了一种基于FPGA实现超长序列快速卷积运算的方法。首先通过AD采样模块对两路信号进行采集,然后将采集到的两路数据按顺序分别存入FPGA外部的两片随机存储器(SRAM)中,之后在突发长度内按相反的顺序从两片SRAM中取出数据进行快速卷积运算,同时将运算得出的大量数据存入FPGA外部的DDR2中,最终实现了基于FPGA对两路信号的快速卷积运算。

技术研发人员:孙桂玲;王鹏霄;郑祥雨;陈雨歌;辛港涛;陈江韬
受保护的技术使用者:南开大学
技术研发日:2018.03.27
技术公布日:2018.09.07
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1