CN108089839A - 一种基于fpga实现互相关运算的方法 - Google Patents

一种基于fpga实现互相关运算的方法 Download PDF

Info

Publication number
CN108089839A
CN108089839A CN201710956434.2A CN201710956434A CN108089839A CN 108089839 A CN108089839 A CN 108089839A CN 201710956434 A CN201710956434 A CN 201710956434A CN 108089839 A CN108089839 A CN 108089839A
Authority
CN
China
Prior art keywords
computing
correlation
fpga
data
computing cross
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710956434.2A
Other languages
English (en)
Inventor
孙桂玲
贾珺
赵唯荐
郑博文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nankai University
Original Assignee
Nankai University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nankai University filed Critical Nankai University
Priority to CN201710956434.2A priority Critical patent/CN108089839A/zh
Publication of CN108089839A publication Critical patent/CN108089839A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于现场可编程门阵列(FPGA)实现互相关运算的方法。首先通过AD采样模块进行两路信号采集,然后将采集到的数据存入FPGA的随机存取存储器(RAM)中,之后从RAM中取出数据进行互相关运算,将运算的结果通过以太网发送给上位机,最终实现了基于FPGA对两路信号的互相关运算。

Description

一种基于FPGA实现互相关运算的方法
【技术领域】
本发明属于空间定位问题中高速实时信号处理领域,对信号进行互相算运算找到两路信号的时间差。AD采样模块采用双通道12bit AD采集模块AN926,FPGA采用 Altera公司的CYCLONE IV系列,型号为EP4CE15F23C8。通过RAM地址的依次增加,每次从该地址中取出多个数据,之后送入多路乘累加器进行并行运算,大大提高了运算速度,最终在较短时间内实现两路信号的互相关运算。
【背景技术】
在空间定位问题中,两路信号的时间差是一个重要的参数,通过这个时间差可以实现空间精确的定位,而互相关运算是找到这个时间差重要的方法。
目前,对两路信号进行互相关运算主要是依靠软件来实现,而软件执行速度和效率较低,无法满足对高速信号的实时处理,而采用硬件FPGA来实现则可以充分利用硬件资源,大大提高运算速度,从而实现了空间定位的实时性。
【发明内容】
该方法利用FPGA实现两路信号的互相关运算,其主要内容包含以下几个方面:
1、AD采集数据
采用双通道12bit AD采集模块AN926对两路模拟信号进行采样,采样频率定义为1MHZ,采样时间为8ms,即采样结束以后得到两组8000个12bit的数据。
2、数据写入RAM
在FPGA上配置两个双口RAM,数据深度为96bit,即每个RAM地址中写入8个 12bit的数据,长度配置为2000。其中第一组数据从RAM1的addr=1000开始写入,每八个一组随着地址的增加依次存放,直到addr=1999时,数据刚好全部写入。而第二组数据从RAM2的addr=0开始写入,每八个一组随着地址的增加依次存放,直到 addr=999时,数据刚好全部写入。而RAM1的addr=0到addr=999和RAM2的addr=1000 到addr=1999都写入0。这样做的目的是为了互相关运算的方便。
数据写入完成以后RAM的存储状态见图1。
3、从RAM中读出数据和互相关运算
互相关运算是一个移位乘累加的过程,因此从RAM中读出数据有一个地址循环的过程,每来一个时钟的上升沿从当前地址中读出数据,然后地址加一,直到下一个时钟上升沿到达时,再次读出当前地址中的数据,因此数据的读取是一个比较耗时的过程,为了尽快地缩短数据读取的时间,这里所用的时钟频率为100MHZ。
我们选择第一路数据固定,第二路数据左右移位来进行乘累加运算,即RAM1 固定,RAM2左右移位。在第一遍读出数据时,RAM1和RAM2都从addr=0开始,当时钟上升沿到达时,我们分别读出了五个数据,见图2。然后需要配置64个乘累加器和8个八位并行加法器,其中每8个乘累加器和1个加法器为一组,共八组,然后利用它们进行并行的乘累加运算。这里定义一个8*12bit的数组C,初始值全部为0,见图3。
Addr
第一组乘累加器分别进行如下运算:A1*B1,A2*B2,A3*B3,A4*B4,A5*B5,A6*B6,A7*B7,A8*B8。加法器将上述八个结果相加。这实现了对第二路信号移位数为-8000 的前八组数据的乘累加运算。
第二组乘累加器分别进行如下运算:A1*C8,A2*B1,A3*B2,A4*B3,A5*B4,A6*B5,A7*B6,A8*B7。加法器将上述八个结果相加。这实现了对第二路信号移位数为-7999 的前八组数据的乘累加运算。
第三组乘累加器分别进行如下运算:A1*C7,A2*C8,A3*B1,A4*B2,A5*B3,A6*B4,A7*B5,A8*B6。加法器将上述八个结果相加。这实现了对第二路信号移位数为-7998 的前八组数据的乘累加运算。
第四组乘累加器分别进行如下运算:A1*C6,A2*C7,A3*C8,A4*B1,A5*B2,A6*B3,A7*B4,A8*B5。加法器将上述八个结果相加。这实现了对第二路信号移位数为-7997 的前八组数据的乘累加运算。
第五组乘累加器分别进行如下运算:A1*C5,A2*C6,A3*C7,A4*C8,A5*B1,A6*B2,A7*B3,A8*B4。加法器将上述八个结果相加。这实现了对第二路信号移位数为-7996 的前八组数据的乘累加运算。
第六组乘累加器分别进行如下运算:A1*C4,A2*C5,A3*C6,A4*C7,A5*C8,A6*B1,A7*B2,A8*B3。加法器将上述八个结果相加。这实现了对第二路信号移位数为-7995 的前八组数据的乘累加运算。
第七组乘累加器分别进行如下运算:A1*C3,A2*C4,A3*C5,A4*C6,A5*C7,A6*C8,A7*B1,A8*B2。加法器将上述八个结果相加。这实现了对第二路信号移位数为-7994 的前八组数据的乘累加运算。
第八组乘累加器分别进行如下运算:A1*C2,A2*C3,A3*C4,A4*C5,A5*C6,A6*C7,A7*C8,A8*B1。加法器将上述八个结果相加。这实现了对第二路信号移位数为-7993 的前八组数据的乘累加运算。
之后RAM1和RAM2地址都增加1,重新读出数据,而RAM2上一次读出的数据赋给数组C,重复上述的乘累加步骤,直到存储在RAM1地址addr=1999的数据读出进行运算完成以后,八个加法器中得到的数据就是第二路信号移位数分别为-8000, -7999,-7998,-7997,-7996,-7995,-7994,-7993的运算结果。
然后进行第二轮的运算,这时RAM1的初始地址在上一次基础上加一,而RAM2 初始地址依然为0,数组C的初始值依然为0,直到存储在RAM1地址addr=1999的数据读出进行运算完成以后,八个加法器中得到的数据就是第二路信号移位数分别为 -7992,-7991,-7990,-7989,-7988,-7987,-7886,-7985的运算结果。
也就是经过第N轮运算以后,我们从加法器中得到的八个结果就是第二路信号移位数分别为-8000+8*(N-1),-7999+8*(N-1),-7998+8*(N-1),-7997+8*(N-1), -7996+8*(N-1),-7995+8*(N-1),-7994+8*(N-1),-7993+8*(N-1)的运算结果。
这样依次进行下去,直到最后一轮(N=2000),即RAM1的初始地址为1999,而 RAM2的初始地址为0,运算出第二路信号移位数分别为7992,7993,7994,7995,7996,7997,7998,7999的运算结果,这样就实现了两路信号的互相关运算,最终得到16000个运算数据。
4、运算结果存入RAM
互相关运算过程中每次运算结束后将八个加法器中的结果组成一组存入RAM3中,即每个地址中写入8个运算结果,直到运算结束后,运算的结果也刚好全部写入RAM3。
5、以太网输出运算结果
采用千兆以太网将RAM3中的数据发送给上位机进行进一步的处理,找到峰值所对应的移位数,移位数乘以采样的周期即是我们要求的两路信号的时间差值。
【本发明的优点和积极效果】
本发明利用了大规模FPGA硬件资源丰富的特点,用硬件电路实现了互相关运算,有效提高了数据处理速度,实现了数据检测的实时性。如果采用传统的每个地址中存取一个数据的方法,那么最终的运算时间 t=16000*(16000+1)/2*10ns=1.28S,而采用每个地址存取八个数据的方法最终运算时间t=2000*(2000+1)/2*10ns=20.01ms,可以看到,运算时间缩短了约64倍,极大地提高了运算速度和效率。
【附图说明】
图1是数据写入完成以后RAM的存储状态;
图2是addr=0的数据;
图3是数组C;
图4是系统原理框图;
图5是第一路正弦信号;
图6是第二路正弦信号;
图7是互相关运算结果;
图8是互相关运算流程图。
【实例说明】
我们对两路相同的正弦信号进行互相关运算,见图5和图6,其互相关运算结果如图7所示,可以看到,由于两路信号没有时间差,所以峰值出现在中间的位置。

Claims (1)

1.一种基于FPGA实现互相关运算的方法,其有以下两个主要特征:
1、该运算方法通过AD采样模块进行数据采集,将模拟信号转换为数字信号,然后利用FPGA硬件资源丰富的特点,采用硬件电路实现两路信号的互相关运算。
2、该方法比传统的从FPGA的RAM地址取出单一数据进行乘累加运算具有更高的速度和效率,可以充分利用FPGA并行运算的特点,将运算时间降低几十倍甚至百倍。
CN201710956434.2A 2017-10-11 2017-10-11 一种基于fpga实现互相关运算的方法 Pending CN108089839A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710956434.2A CN108089839A (zh) 2017-10-11 2017-10-11 一种基于fpga实现互相关运算的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710956434.2A CN108089839A (zh) 2017-10-11 2017-10-11 一种基于fpga实现互相关运算的方法

Publications (1)

Publication Number Publication Date
CN108089839A true CN108089839A (zh) 2018-05-29

Family

ID=62171970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710956434.2A Pending CN108089839A (zh) 2017-10-11 2017-10-11 一种基于fpga实现互相关运算的方法

Country Status (1)

Country Link
CN (1) CN108089839A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158636A (zh) * 2019-12-03 2020-05-15 中国人民解放军战略支援部队信息工程大学 可重构计算结构及乘累加计算处理阵列的路由寻址方法、装置
CN112558921A (zh) * 2020-12-23 2021-03-26 广东高云半导体科技股份有限公司 一种实现互相关运算的装置及方法
CN112597432A (zh) * 2020-12-28 2021-04-02 华力智芯(成都)集成电路有限公司 基于fft算法的复序列互相关在fpga上的加速实现方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231632A (zh) * 2007-11-20 2008-07-30 西安电子科技大学 应用fpga进行浮点fft处理的方法
CN101577025A (zh) * 2009-06-15 2009-11-11 上海华魏光纤传感技术有限公司 一种新型数据采集累加器及其实现方法
CN102684831A (zh) * 2012-03-21 2012-09-19 上海交通大学 一种数字多通道相关处理系统及用于该系统中的缓存模块的输出方法
CN103179065A (zh) * 2011-12-21 2013-06-26 北京普源精电科技有限公司 偏移正交相移键控调制方法、装置和数字信号发生器
CN103310228A (zh) * 2013-05-28 2013-09-18 南京邮电大学 基于归一化相关系数的模板匹配高速并行实现方法和装置
CN103677739A (zh) * 2013-11-28 2014-03-26 中国航天科技集团公司第九研究院第七七一研究所 一种可配置的乘累加运算单元及其构成的乘累加运算阵列
CN103927219A (zh) * 2014-05-04 2014-07-16 南京大学 可重构专用处理器核的周期精确的仿真模型及其硬件架构
CN104794002A (zh) * 2014-12-29 2015-07-22 南京大学 一种基于特定资源的多路并行划分方法及其硬件架构

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231632A (zh) * 2007-11-20 2008-07-30 西安电子科技大学 应用fpga进行浮点fft处理的方法
CN101577025A (zh) * 2009-06-15 2009-11-11 上海华魏光纤传感技术有限公司 一种新型数据采集累加器及其实现方法
CN103179065A (zh) * 2011-12-21 2013-06-26 北京普源精电科技有限公司 偏移正交相移键控调制方法、装置和数字信号发生器
CN102684831A (zh) * 2012-03-21 2012-09-19 上海交通大学 一种数字多通道相关处理系统及用于该系统中的缓存模块的输出方法
CN103310228A (zh) * 2013-05-28 2013-09-18 南京邮电大学 基于归一化相关系数的模板匹配高速并行实现方法和装置
CN103677739A (zh) * 2013-11-28 2014-03-26 中国航天科技集团公司第九研究院第七七一研究所 一种可配置的乘累加运算单元及其构成的乘累加运算阵列
CN103927219A (zh) * 2014-05-04 2014-07-16 南京大学 可重构专用处理器核的周期精确的仿真模型及其硬件架构
CN104794002A (zh) * 2014-12-29 2015-07-22 南京大学 一种基于特定资源的多路并行划分方法及其硬件架构

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158636A (zh) * 2019-12-03 2020-05-15 中国人民解放军战略支援部队信息工程大学 可重构计算结构及乘累加计算处理阵列的路由寻址方法、装置
CN112558921A (zh) * 2020-12-23 2021-03-26 广东高云半导体科技股份有限公司 一种实现互相关运算的装置及方法
CN112558921B (zh) * 2020-12-23 2021-08-31 广东高云半导体科技股份有限公司 一种实现互相关运算的装置及方法
CN112597432A (zh) * 2020-12-28 2021-04-02 华力智芯(成都)集成电路有限公司 基于fft算法的复序列互相关在fpga上的加速实现方法及系统

Similar Documents

Publication Publication Date Title
CN108089839A (zh) 一种基于fpga实现互相关运算的方法
CN107341544A (zh) 一种基于可分割阵列的可重构加速器及其实现方法
CN100504400C (zh) 一种示波器的高速信号重构方法
CN105212922A (zh) 面向fpga实现心电信号r波自动检测的方法及系统
CN103678729B (zh) 一种基于fpga实现的高速a/d采样数据实时存储方法
CN104077492B (zh) 一种基于fpga的采样数据内插方法
CN102053186A (zh) 一种具有可变阶数数字滤波器的数字示波器
Aggarwal et al. FIR filter designing using Xilinx system generator
CN104504205B (zh) 一种对称fir算法的并行化二维分割方法及其硬件结构
CN105227158B (zh) 一种高精度信号实时滤波器
CN103197287A (zh) 高速实时频域脉冲压缩器及其处理方法
CN103176949B (zh) 实现fft/ifft变换的电路及方法
CN106093884A (zh) 一种改进的基于fpga的多通相关处理实现方法
CN102314215B (zh) 集成电路系统中小数乘法器的低功耗优化方法
CN104132884A (zh) 一种用于信号处理系统中信号基线的快速处理方法及装置
CN104459259A (zh) 一种用于示波器的改进型波形内插系统
CN210090954U (zh) 一种神经元模拟电路
CN103716055A (zh) 一种预调制积分型多通道并行模拟信息转换电路
CN105354803A (zh) 截断直方图均衡实现装置及方法
CN116578819A (zh) 一种稀疏分数傅里叶变换fpga实现方法及系统
CN107358292B (zh) 一种基于化学反应网络的卷积加速单元设计方法
CN114185014B (zh) 一种应用于雷达信号处理的并行卷积方法及装置
CN1195204C (zh) 传感器动态非线性实时校正系统
CN102253924B (zh) 开方运算的硬件实现方法以及开方运算器
CN110007285A (zh) 一种基于fpga的探地雷达分布式滤波方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180529