CN112711393B - 一种基于fpga的实时多通道累加方法 - Google Patents

一种基于fpga的实时多通道累加方法 Download PDF

Info

Publication number
CN112711393B
CN112711393B CN202011633701.0A CN202011633701A CN112711393B CN 112711393 B CN112711393 B CN 112711393B CN 202011633701 A CN202011633701 A CN 202011633701A CN 112711393 B CN112711393 B CN 112711393B
Authority
CN
China
Prior art keywords
speed
low
data
accumulation
speed data
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.)
Active
Application number
CN202011633701.0A
Other languages
English (en)
Other versions
CN112711393A (zh
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.)
Hefei Institutes of Physical Science of CAS
Original Assignee
Hefei Institutes of Physical Science of CAS
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 Hefei Institutes of Physical Science of CAS filed Critical Hefei Institutes of Physical Science of CAS
Priority to CN202011633701.0A priority Critical patent/CN112711393B/zh
Publication of CN112711393A publication Critical patent/CN112711393A/zh
Application granted granted Critical
Publication of CN112711393B publication Critical patent/CN112711393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • G06F7/4981Adding; Subtracting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Manipulation Of Pulses (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明公开了一种基于FPGA的实时多通道累加方法,包括如下步骤:(1)根据A/D转换芯片或者高速计数器输出的高速数据序列数据速率fHdata与静态高速存储器SRAM的读写速率fSRAM,将所述高速数据序列,转换成N路低速数据序列;(2)对所述N路低速数据序列中的每个低速数据序列分别进行实时多通道累加,其中,所述每个低速数据序列的累加采用并行方式进行;(3)在所述N路低速数据序列的每个低速数据序列完成一定累加次数的多轮实时多通道累加之后,将存储在所述静态高速存储器SRAM中的累加结果读取出去,以供后续流程对数据进行处理。本发明能适应各种采样速率的数据序列和各种读写速率的静态高速存储器SRAM;实时硬件累加无通道死时间,能够自动适应各种频率的触发信号。

Description

一种基于FPGA的实时多通道累加方法
技术领域
本发明涉及一种激光雷达和分布式光纤传感数据采集中的数据累加方法,尤其是涉及一种基于FPGA的实时多通道累加方法。
背景技术
激光雷达和分布式光纤传感的数据采集都需要采集具有时间分辨能力的数据,为了提高信噪比,均会对采集结果进行一定次数的累加。具体累加方法为:以触发信号为起点,每个触发信号之后按顺序采集一定数量的数据,获得一条数据;每个数据对应一个通道,通道编号与距离触发信号的时间对应,时间越长,编号越大;这样数据就具备了时间分辨能力;然后将多个触发信号采集的数据按通道号进行累加,即多条数据中,通道编号相同的数据累加在一起,从而获得一条累加之后的结果。
目前比较常见的累加方法是利用软件的方法进行累加:每采集一条数据,利用计算机或者其他控制器中运行的软件,将这条数据读取过来,然后将每个通道中的数据与之前累加的结果对应通道中的数据进行累加。软件每累加一条数据都需要一定的时间,因此在一个触发信号到达之后,除去数据采集时间,还需要一定的时间进行数据传输和累加。因此,软件累加只能适用于触发信号频率比较低,而且一个触发周期内有足够时间供软件进行数据传输和累加的场合。
随着激光器的发展,激光器的重复频率达到KHz,软件累加的方式就不适合了,这种情况下使用软件累加会丢失大量的有效数据。因此,比较好的方法是采用硬件实时多通道累加,每采集一个数据就直接累加到对应通道上,这样就不存在KHz触发频率丢脉冲的问题。
由于激光雷达和分布式光纤传感的数据采样率达到10MHZ以上,对应采样周期小于100ns,要求在100ns内完成数据的累加。这种要求只能采用FPGA(Field ProgrammableGate Array,现场可编程门阵列),才能实现对单个数据的快速实时硬件累加。一般硬件累加方法为:在采集一个数据之后,需要从SRAM中读取上一次这个通道的累加结果,然后将采集到的数据与累加结果进行加法运算,然后将计算结果再重新写到SRAM中。每一次累加都需要一次读SRAM操作、一次加法运算和一次写SRAM操作,这些操作需要在一个采样周期内完成。采样速率越高,采样周期越短,留给实时累加的时间就越短;对SRAM读写操作和加法运算的速度要求越高;也就是对FPGA的速度和SRAM的速度要求越高,直接会导致设计难度和成本的增加;尤其是对于100MHz以上采样速率的数据累加,对FPGA设计难度和SRAM的性能要求非常高。
发明内容
本发明的目的就是克服现有技术中的不足,提供一种适用于各种采样速率和触发频率的基于FPGA的实时多通道累加方法,降低对FPGA设计和SRAM器件性能的要求,降低数据累加系统的设计难度和开发成本。
为解决现有技术中的问题,本发明提出一种基于FPGA的实时多通道累加方法,主要是利用FPGA技术,将采集到的高速数据序列转换成多个低速数据序列,从而降低对后续实时多通道累加的速度性能的要求;多个低速数据序列进行并行的多通道实时累加,累加结果存储在对应的SARM中;最后再按照一定的顺序从这些SRAM中读取出一条完成的累加之后的数据。所述方法具体步骤为:
(1)根据A/D转换芯片或者高速计数器输出的高速数据序列数据速率fHdata与静态高速存储器SRAM的读写速率fSRAM,将所述高速数据序列,转换成N路低速数据序列。所述高速数据序列带有高速同步时钟信号,用于所述N路低速数据序列的生成。
所述N路低速数据序列的路数N的选取方法:
n=4fHdata/fSRAM (1)
所述公式(1)n若为整数,则N=n;若n为小数,则N取n的整数部分加1。
所述N路低速数据序列的路数N若为1,则不需要进行数据序列转换;即所述高速数据序列即为所述低速数据序列,所述低速数据序列路数为1;所述高速数据序列的高速同步时钟信号即为所述低速数据序列的低速同步时钟信号。
所述N路低速数据序列的路数N大于1,则需要进行转换;转换方法如下:利用所述高速数据序列的高速同步时钟信号,将高速数据序列按顺序锁存到N个数据缓冲器中,所述N个数据缓冲器编号从0~N-1,将所述高速数据序列中的数据按顺序锁存到所述N个数据缓冲器的第0个数据缓冲器、第1个数据缓冲器、第2个数据缓冲器......第N-1个数据缓冲器;然后将所述高速数据序列中下一个数据锁存到所述第0个数据缓冲器;如此循环,从而将所述高速数据序列中的数据不断的按顺序锁存到所述N个数据缓冲器中,从而产生所述N路低速数据序列,编号依次从0~N-1。同时,将高速同步时钟信号进行分频和相移,产生分别与所述N路低速数据序列中数据同步的低速同步时钟信号。
(2)对所述N路低速数据序列中的每个低速数据序列分别进行实时多通道累加,其中,所述每个低速数据序列的累加是并行进行。
以触发信号上升沿为起始时刻,将所述低速数据序列中在此时刻之后的数据按顺序从0开始进行编号,编号是所述低速数据序列中数据对应的所述静态高速存储器SRAM中的存储空间的地址,所述编号也是实时多通道累加中通道的编号。
单个通道的累加方法如下:在所述低速数据序列的所述编号为m的数据到来之后,在下一数据m+1到来之前,从所述静态高速存储器SRAM的存储空间m中读取上一次的累加结果,将其与所述数据m进行加法运算,然后将计算结果再存储到所述静态高速存储器SRAM地存储空间m中。以所述触发信号上升沿为起始,在下一个所述触发信号上升沿来临之前,依次完成多个数量通道的实时累加,所述触发信号的一个周期对应一轮实时多通道累加。
所述编号最大值为M,M与所述触发信号的频率fTRIGGER和所述低速数据序列的数据速率fLdata有关;同时,M也受所述静态高速存储器SRAM的地址空间最大数量MSRAM限制。若fLdata/fTRIGGER小于MSRAM,则M=fLdata/fTRIGGER-1;若fLdata/fTRIGGER大于MSRAM,则M=MSRAM-1。
若fLdata/fTRIGGER小于MSRAM,对所述低速数据序列中数据的编号将在下一个所述触发信号上升沿之后自动从0开始编号,开始下一轮实时多通道累加;
若fLdata/fTRIGGER大于MSRAM,在编号到M后,停止对所述低速数据序列中数据的编号,直到下一个所述触发信号上升沿之后自动从0开始编号,开始下一个所述触发信号对应的一轮实时多通道累加。
所述单个触发信号对应的一轮实时多通道累加方法如下:
将所述低速数据序列的低速同步时钟信号进行4倍频,产生所述低速数据序列的低速同步时钟信号的4倍频时钟信号;由一个位数为CNbits的倍频时钟计数器对所述4倍频时钟信号的上升沿进行循环加计数,所述倍频时钟计数器在所述触发信号上升沿清零。
所述倍频时钟计数器的第CN-1到第2位的值即为所述低速数据序列当前数据的所述编号。CN的选取要求2的CN方大于4M。
以4倍频时钟信号为主时钟,上升沿触发;当所述倍频时钟计数器低两位计数值为0时,对所述低速数据序列的数据锁存到加法器输入端1,将所述编号输出到所述静态高速存储器SRAM的地址总线,同时输出对所述静态高速存储器SRAM进行读操作的控制信号;当所述倍频时钟计数器低两位计数值为1时,对所述静态高速存储器SRAM的读操作完成,将所述静态高速存储器SRAM数据总线上的数据锁存到所述加法器输入端2,开始进行加法运算;当所述倍频时钟计数器低两位计数值为2时,对所述加法器计算结果进行锁存,输出到所述静态高速存储器SRAM的数据总线上,输出对所述静态高速存储器SRAM进行写操作的控制信号;当所述倍频时钟计数器低两位计数值为3时,完成对所述静态高速存储器SRAM的写操作;至此,完成对所述低速数据序列的一个数据的实时累加。
当所述倍频时钟计数器低两位计数值进1位后再次为0时,所述倍频时钟计数器第CN-1到第2位的值将加1,即所述编号加1,将开始进行下一个通道的实时累加。如此循环,完成M+1个通道的实时累加。
累加次数计数器对所述触发信号上升沿进行计数,当计数值等于要求的累加次数时,完成一次指定所述累加次数的多轮实时多通道累加。
(3)在所述N路低速数据序列的每个低速数据序列完成所述累加次数的多轮实时多通道累加之后,将存储在所述静态高速存储器SRAM中的累加结果读取出去,以供后续流程对数据进行处理。
若所述N路低速数据序列的路数N为1,则累加结果只存储在一个所述静态高速存储器SRAM中,直接读取即可。
若所述N路低速数据序列的路数N大于1,则结果按预定顺序轮流存储在N个所述静态高速存储器SRAM中,读取方法如下:
在读取N个所述静态高速存储器SRAM中的数据时,读取模块给出读操作信号和待读数据的编号,需要将待读数据的编号转换成对应的所述静态高速存储器SRAM的地址和片选信号,从而将数据从对应的所述静态高速存储器SRAM中读出;然后将读出的数据输出到所述读取模块。
所述静态高速存储器SRAM是双端口SRAM,或是单端口SRAM;静态高速存储器SRAM是FPGA内部SRAM,或是片外SRAM芯片。通过高低数据序列的转换匹配所述高速数据序列的数据速率与所述静态高速存储器SRAM的读写速率,降低对所述静态高速存储器SRAM的读写速率的要求。
所述高速数据序列的数据是来自A/D转换芯片输出的数据,或者是高速计数器输出的数据;可以用于ADC多通道硬件累加采集系统;或用于光子多通道计数系统。
所述ADC多通道硬件累加采集系统和所述光子多通道计数系统用于各种激光雷达和分布式光纤传感的数据累加,通过实时累加能够提高采集结果的信噪比,降低数据量和系统复杂性。
本发明与现有技术相比的有益效果:
(1)本发明采用基于FPGA的实时多通道累加方法,能够克服软件累加方法的问题,适用于各种触发频率的数据累加需求。
(2)本发明将高速数据序列转换成低速数据序列,降低对FPGA设计和SRAM读写速度的要求。
(3)本发明可以灵活选择SRAM,可以根据容量和速度要求选择双端口或者单端口SRAM;可以采用外部SRAM或者FPGA内部的SRAM。尤其是采用FPGA内部SRAM,可以大大简化系统的硬件设计,只需要一片容量足够大的FPGA即可实现所有硬件累加功能,大大降低硬件开发难度和成本。
(4)本发明对低速数据序列的多通道实时累加是并行进行的,累加方法一样,利用FPGA设计一个累加模块,然后利用FPGA设计的复用功能,即可完成所有低速数据序列的多通道实时累加设计,大大降低设计的复杂度。
(5)本发明采用基于FPGA的累加方法,完成一个多通道实时累加模块的设计后,可以复用这个模块,实现单个FPGA上多个高速数据序列的同步实时累加,多通道扩展非常方便。
(6)本发明采用基于FPGA的累加方法,数据读取可以根据实际情况兼容各种数据读取方法和读取接口,适用性非常广。
附图说明
图1为本发明基于FPGA的实时多通道累加方法实施例的总体框图;
图2为图1中基于FPGA的实时多通道累加方法实施例的实物图;
图3为图1中本发明实施例中FPGA实现将高速数据序列转换成低速数据序列的结构示意图;
图4为图1中本发明实施例中在FPGA中将低速数据序列进行实时多通道累加的时序图;
图5为图1中本发明实施例中在FPGA中进行一轮实时多通道累加的结构示意图;
图6为图1中本发明实施例中在FPGA中将累加结果从5个SRAM中读取的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明基于FPGA的实时多通道累加方法实施例的总体框图。
如图1所示,采用本发明提出的一种基于FPGA的实时多通道累加方法实现的一种AD数据累加器,包括AD转换芯片1输出的高速数据序列2和高速同步时钟信号7到FPGA3,由FPGA3根据触发信号6进行实时多通道累加,然后由MCU4从FPGA3中读取数据,然后通过网口5发送出去。在本实施例中,AD转换芯片1为转换速率为100MHZ,累加所用的SRAM采用FPGA3中的内部SRAM。
图2为图1中基于FPGA的实时多通道累加方法实施例的实物图。
图3为图1中本发明基于FPGA的实时多通道累加方法实施例中FPGA实现将高速数据序列转换成低速数据序列的结构示意图。如图3所示,高速数据序列2的数据速率fHdata=100MHz,累加所用的SRAM采用FPGA3中的内部SRAM,读写速率比较高,为了确保FPGA时序的可靠性与稳定性,将所述高速数据序列2,转换成5路低速数据序列15、17、19、21和23。高速数据序列2带有高速同步时钟信号7频率为100MHz,用于5路低速数据序列15、17、19、21和23的生成。利用高速同步时钟信号7,将高速数据序列2按顺序锁存到数据缓冲器组8中,数据缓冲器组8中的数据缓冲器编号从0~4,将高速数据序列2中的数据按顺序锁存到所述数据缓冲器组8的第0个数据缓冲器9、第1个数据缓冲器10、第2个数据缓冲器11、第3个数据缓冲器12和第4个数据缓冲器13;然后再将高速数据序列2中下一个数据锁存到所述第0个数据缓冲器9;如此循环,从而将高速数据序列2中的数据按顺序锁存到5个数据缓冲器中,从而产生所述5路低速数据序列15、17、19、21和23。同时,将高速数据序列2的高速同步时钟信号7利用时钟发生器14进行分频和相移,产生分别与5路低速数据序列中数据同步的低速同步时钟信号16、18、20、22和24;低速同步时钟信号16、18、20、22和24的频率为20MHz;低速同步时钟信号16、18、20、22和24的相位依次相差72°。
对图3中所述5路低速数据序列15、17、19、21和23分别进行实时多通道累加,所述图3中5个低速数据序列15、17、19、21和23的实时多通道累加并行进行,累加方法也一样。
图4为图1中本发明基于FPGA的实时多通道累加方法实施例中在FPGA中将图3中低速数据序列15进行实时多通道累加的时序图,图3中其他四个低速数据序列17、19、21和23的实时多通道累加时序图与低速数据序列15的时序图一样。
如图4所示,以触发信号6上升沿为起始时刻,将所述低速数据序列15中在此时刻之后的数据按顺序从0开始进行编号,编号也是所述低速数据序列中数据对应的所述静态高速存储器SRAM中的存储空间25的地址,所述编号也是实时多通道累加中通道的编号。
在所述低速数据序列15的所述编号为m的数据28到来之后,在下一数据m+1 29到来之前,将所述数据m 28累加到所述静态高速存储器SRAM地址空间25中地址为m的存储空间26中。以所述触发信号6上升沿为起始,在下一个所述触发信号上升沿来临之前,依次完成M+1个通道的实时累加。所述触发信号的一个周期对应一轮实时多通道累加。
所述编号最大值M与所述触发信号的频率fTRIGGER和所述低速数据序列的数据速率fLdata=20MHz有关;同时,M也受所述静态高速存储器SRAM的地址空间最大数量MSRAM限制。若fLdata/fTRIGGER小于MSRAM,则M=fLdata/fTRIGGER-1;若fLdata/fTRIGGER大于MSRAM,则M=MSRAM-1。
本实施例中触发信号的频率fTRIGGER是自适应的,可以适应各种频率的触发信号。假设触发频率fTRIGGER=5KHz;那么fLdata/fTRIGGER=4000;本实施例中静态高速存储器SRAM的地址空间最大数量MSRAM=16384;所以M=3999。fLdata/fTRIGGER(4000)小于MSRAM(16384),对所述低速数据序列中数据的编号将在下一个所述触发信号上升沿之后自动从0开始编号,开始下一轮实时多通道累加。
假设触发频率fTRIGGER=20Hz;那么fLdata/fTRIGGER=1000000;本实施例中静态高速存储器SRAM的地址空间最大数量MSRAM=16384;所以M=16383。fLdata/fTRIGGER(1000000)大于MSRAM(16384),在编号到16383后,停止对所述低速数据序列中数据的编号,直到下一个所述触发信号上升沿之后自动从0开始编号,开始下一个所述触发信号对应的一轮实时多通道累加。
图5为图1中本发明基于FPGA的实时多通道累加方法实施例中在FPGA中对图3中低速数据序列15进行一轮实时多通道累加的结构图示意图。图3中其他四个低速数据序列17、19、21和23的一轮实时多通道累加与低速数据序列15的一轮实时多通道累加方法完全一样。
如图5所示,将所述低速数据序列15的低速同步时钟信号16利用4倍频模块30进行4倍频,产生4倍频时钟信号31;由位数16bits的倍频时钟计数器32对所述4倍频时钟信号31的上升沿进行循环加计数,所述倍频时钟计数器32在所述触发信号6上升沿清零。所述倍频时钟计数器32的第15到第2位的值即为所述低速数据序列15当前数据的所述编号。
以4倍频时钟信号31为主时钟,上升沿触发;当所述倍频时钟计数器32低两位计数值为0时,对所述低速数据序列15的数据锁存到加法器35的输入锁存器1 36中,将所述倍频时钟计数器32第15到第2位的值输出到所述静态高速存储器SRAM25的地址总线,同时由累加控制信号产生器33输出对所述静态高速存储器SRAM25进行读操作的控制信号;当所述倍频时钟计数器32低两位计数值为1时,对所述静态高速存储器SRAM25的读操作完成,将所述静态高速存储器SRAM25数据总线上的数据锁存到所述加法器35的输入锁存器2 38,开始进行加法运算;当所述倍频时钟计数器32低两位计数值为2时,对所述加法器35计算结果锁存到输出锁存器37,输出到所述静态高速存储器SRAM 25的数据总线上,由累加控制信号产生器33输出对所述静态高速存储器SRAM 25进行写操作的控制信号;当所述倍频时钟计数器32低两位计数值为3时,完成对所述静态高速存储器SRAM 25的写操作;至此,完成对所述低速数据序列15的一个数据的实时累加。
当所述倍频时钟计数器32低两位计数值进1位后再次为0时,所述倍频时钟计数器32第15到第2位的值将加1,即所述编号加1,将开始进行下一个通道的实时累加。如此循环,完成M+1个通道的实时累加。
累加次数计数器34对所述触发信号6上升沿进行计数,当计数值等于要求的累加次数时,完成一次指定所述累加次数的多轮实时多通道累加。
所述5路低速数据序列的每个低速数据序列完成一定累加次数的多轮实时多通道累加之后,将存储在5个所述静态高速存储器SRAM中的累加结果读取出去,以供后续流程对数据进行处理。
图6为图1中本发明基于FPGA的实时多通道累加方法实施例中在FPGA中将累加结果从5个SRAM中读取的结构图示意图。
如图6所示,需要按照预定的顺序轮流读取所述静态高速存储器SRAM0 25、SRAM139、SRAM2 40、SRAM3 41、SRAM4 42中的数据,才能读取出一条完整数据。读取方法如下:
在读取5个所述静态高速存储器SRAM中的数据时,读取模块MCU4给出数据读取时钟信号44和待读数据的数据编号45,地址分配译码与数据选择模块43将待读数据的编号45转换成对应的所述静态高速存储器SRAM的地址和片选信号,从而将数据从对应的所述静态高速存储器SRAM中读出;然后将读出的数据输出到读取模块MCU4。
总之,本发明的实施例公布的是其中一种实施方式,但并不限于此。本领域的普通技术人员极易根据上述实施例,领会本发明的精神,并做出不同的引申和变化,但只要不脱离本发明的精神,都在本发明的保护范围之内。

Claims (8)

1.一种基于FPGA的实时多通道累加方法 ,其特征在于:实现步骤如下:
(1)根据A/D转换芯片或者高速计数器输出的高速数据序列数据速率fHdata与静态高速存储器SRAM的读写速率fSRAM,将所述高速数据序列,转换成N路低速数据序列;
(2)对所述N路低速数据序列中的每个低速数据序列分别进行实时多通道累加,其中,所述每个低速数据序列的累加采用并行方式进行;
(3)在所述N路低速数据序列的每个低速数据序列完成一定累加次数的多轮实时多通道累加之后,将存储在所述静态高速存储器SRAM中的累加结果读取出去,以供后续流程对数据进行处理;
所述步骤(1):
高速数据序列带有高速同步时钟信号,用于所述N路低速数据序列的生成;
所述N路低速数据序列的路数N的选取方法:
n=4fHdata/fSRAM (1)
所述公式(1)n若为整数,则N=n;若n为小数,则N取n的整数部分加1;
所述N路低速数据序列的路数N若为1,则不需要进行数据序列转换;即所述高速数据序列即为所述低速数据序列,所述低速数据序列路数为1;所述高速数据序列的高速同步时钟信号即为所述低速数据序列的低速同步时钟信号;
所述N路低速数据序列的路数N大于1,则需要进行转换;转换方法如下:利用所述高速数据序列的高速同步时钟信号,将高速数据序列按顺序锁存到N个数据缓冲器中,所述N个数据缓冲器编号从0~N-1,将所述高速数据序列中的数据按顺序锁存到所述N个数据缓冲器的第0个数据缓冲器、第1个数据缓冲器、第2个数据缓冲器......第N-1个数据缓冲器;然后将所述高速数据序列中下一个数据锁存到所述第0个数据缓冲器;如此循环,从而将所述高速数据序列中的数据不断的按顺序锁存到所述N个数据缓冲器中,从而产生所述N路低速数据序列,编号依次从0~N-1;同时,将高速同步时钟信号进行分频和相移,产生分别与所述N路低速数据序列中数据同步的低速同步时钟信号。
2.根据权利要求1所述的一种基于FPGA的实时多通道累加方法 ,其特征在于,所述步骤(2)对所述N路低速数据序列中的每个低速数据序列分别进行实时多通道累加,所述每个低速数据序列的累加是并行进行,具体包括:
以触发信号上升沿为起始时刻,将所述低速数据序列中在此时刻之后的数据按顺序从0开始进行编号,编号是所述低速数据序列中数据对应的所述静态高速存储器SRAM中的存储空间的地址,所述编号也是实时多通道累加中通道的编号;
单个通道的累加方法如下:在所述低速数据序列的所述编号为m的数据到来之后,在下一数据m+1到来之前,从所述静态高速存储器SRAM的存储空间m中读取上一次的累加结果,将其与所述数据m进行加法运算,然后将计算结果再存储到所述静态高速存储器SRAM地存储空间m中;以所述触发信号上升沿为起始,在下一个所述触发信号上升沿来临之前,依次完成多个通道的实时累加,所述触发信号的一个周期对应一轮实时多通道累加。
3.根据权利要求2所述的一种基于FPGA的实时多通道累加方法 ,其特征在于,
所述编号最大值为M,M与所述触发信号的频率fTRIGGER和所述低速数据序列的数据速率fLdata有关;同时,M也受所述静态高速存储器SRAM的地址空间最大数量MSRAM限制;若fLdata/fTRIGGER小于MSRAM,则M=fLdata/fTRIGGER-1;若fLdata/fTRIGGER大于MSRAM,则M=MSRAM-1;
若fLdata/fTRIGGER小于MSRAM,对所述低速数据序列中数据的编号将在下一个所述触发信号上升沿之后自动从0开始编号,开始下一轮实时多通道累加;
若fLdata/fTRIGGER大于MSRAM,在编号到M后,停止对所述低速数据序列中数据的编号,直到下一个所述触发信号上升沿之后自动从0开始编号,开始下一个所述触发信号对应的一轮实时多通道累加。
4.根据权利要求3所述的一种基于FPGA的实时多通道累加方法 ,其特征在于,所述触发信号对应的一轮实时多通道累加方法如下:
将所述低速数据序列的低速同步时钟信号进行4倍频,产生所述低速数据序列的低速同步时钟信号的4倍频时钟信号;由一个位数为CN bits的倍频时钟计数器对所述4倍频时钟信号的上升沿进行循环加计数,所述倍频时钟计数器在所述触发信号上升沿清零;
所述倍频时钟计数器的第 CN-1到第2位的值即为所述低速数据序列当前数据的所述编号,CN的选取要求2的CN方大于4M;
以所述4倍频时钟信号为主时钟,上升沿触发;当所述倍频时钟计数器低两位计数值为0时,对所述低速数据序列的数据锁存到加法器输入端1,将所述编号输出到所述静态高速存储器SRAM的地址总线,同时输出对所述静态高速存储器SRAM进行读操作的控制信号;当所述倍频时钟计数器低两位计数值为1时,对所述静态高速存储器SRAM的读操作完成,将所述静态高速存储器SRAM数据总线上的数据锁存到所述加法器输入端2,开始进行加法运算;当所述倍频时钟计数器低两位计数值为2时,对所述加法器计算结果进行锁存,输出到所述静态高速存储器SRAM的数据总线上,输出对所述静态高速存储器SRAM进行写操作的控制信号;当所述倍频时钟计数器低两位计数值为3时,完成对所述静态高速存储器SRAM的写操作;至此,完成对所述低速数据序列的一个数据的实时累加;
当所述倍频时钟计数器低两位计数值进1位后再次为0时,所述倍频时钟计数器第 CN-1到第2位的值将加1,即所述编号加1,将开始进行下一个通道的实时累加;如此循环,完成M+1个通道的实时累加;
累加次数计数器对所述触发信号上升沿进行计数,当计数值等于要求的累加次数时,完成一次指定所述累加次数的多轮实时多通道累加。
5.根据权利要求1所述的一种基于FPGA的实时多通道累加方法 ,其特征在于,所述步骤(3)在所述N路低速数据序列的每个低速数据序列完成所述累加次数的多轮实时多通道累加之后,将存储在所述静态高速存储器SRAM中的累加结果读取出去,以供后续流程对数据进行处理,具体包括:
若所述N路低速数据序列的路数N为1,则累加结果只存储在一个所述静态高速存储器SRAM中,直接读取即可;
若所述N路低速数据序列的路数N大于1,则结果按预定顺序轮流存储在N个所述静态高速存储器SRAM中,读取方法如下:
在读取N个所述静态高速存储器SRAM中的数据时,读取模块给出读操作信号和待读数据的编号,需要将待读数据的编号转换成对应的所述静态高速存储器SRAM的地址和片选信号,从而将数据从对应的所述静态高速存储器SRAM中读出;然后将读出的数据输出到所述读取模块。
6.根据权利要求1所述的一种基于FPGA的实时多通道累加方法,其特征在于:所述静态高速存储器SRAM是双端口SRAM,或是单端口SRAM;静态高速存储器SRAM是FPGA内部SRAM,或者是片外SRAM芯片;通过高低数据序列的转换匹配所述高速数据序列的数据速率与所述静态高速存储器SRAM的读写速率,降低对所述静态高速存储器SRAM的读写速率的要求。
7.根据权利要求1所述的一种基于FPGA的实时多通道累加方法 ,其特征在于:所述高速数据序列的数据是来自A/D转换芯片输出的数据;或者是高速计数器输出的数据;用于ADC多通道硬件累加采集系统;或用于光子多通道计数系统。
8.根据权利要求7所述的一种基于FPGA的实时多通道累加方法,其特征在于:所述ADC多通道硬件累加采集系统和所述光子多通道计数系统用于各种激光雷达和分布式光纤传感的数据累加,通过实时累加能够提高采集结果的信噪比,降低数据量和系统复杂性。
CN202011633701.0A 2020-12-31 2020-12-31 一种基于fpga的实时多通道累加方法 Active CN112711393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011633701.0A CN112711393B (zh) 2020-12-31 2020-12-31 一种基于fpga的实时多通道累加方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011633701.0A CN112711393B (zh) 2020-12-31 2020-12-31 一种基于fpga的实时多通道累加方法

Publications (2)

Publication Number Publication Date
CN112711393A CN112711393A (zh) 2021-04-27
CN112711393B true CN112711393B (zh) 2023-06-30

Family

ID=75547780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011633701.0A Active CN112711393B (zh) 2020-12-31 2020-12-31 一种基于fpga的实时多通道累加方法

Country Status (1)

Country Link
CN (1) CN112711393B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115412511A (zh) * 2022-07-29 2022-11-29 北京时代民芯科技有限公司 一种用于以太网交换芯片的高性能计数器电路及计数方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102621562A (zh) * 2012-03-20 2012-08-01 东南大学 一种基于fpga的多通道实时gps跟踪方法及其系统
CN110809798A (zh) * 2017-08-31 2020-02-18 美光科技公司 用于ddr5存储器装置中数据路径功率节省的系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0705733D0 (en) * 2007-03-26 2007-05-02 Calrec Audio Ltd Digital signal processing
CN112602054A (zh) * 2018-08-31 2021-04-02 弗莱克斯-罗技克斯技术公司 乘法器累加器电路、用于乘法累加的逻辑瓦片架构和包括逻辑瓦片阵列的ic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102621562A (zh) * 2012-03-20 2012-08-01 东南大学 一种基于fpga的多通道实时gps跟踪方法及其系统
CN110809798A (zh) * 2017-08-31 2020-02-18 美光科技公司 用于ddr5存储器装置中数据路径功率节省的系统及方法

Also Published As

Publication number Publication date
CN112711393A (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN101231877B (zh) 存取n端口存储器m个存储器地址的方法及n端口存储器
CN104407998B (zh) 基于fpga的高速adc采样数据接收缓存方法和系统
CN112711393B (zh) 一种基于fpga的实时多通道累加方法
CN101860358A (zh) 一种单光子计数系统及计数方法
CN104077492A (zh) 一种基于fpga的采样数据内插方法
CN111694029A (zh) 一种生成b1c信号伪随机噪声码的硬件实现方法
CN1892528A (zh) 产生数字信号处理器和存储器的时钟信号的电路和方法
CN103678729A (zh) 一种基于fpga实现的高速a/d采样数据实时存储方法
CN104459259B (zh) 一种用于示波器的改进型波形内插系统
CN112487354B (zh) 一种基于比较器和fpga的多通道高速实时互相关运算装置
CN111966628B (zh) 一种多核组合式大容量数据同步存储方法
US5651014A (en) Rate generator circuit for semiconductor test system
CN110968538B (zh) 一种数据缓冲方法和装置
CN1310532A (zh) 数据传送方法和系统
CN113517894B (zh) 串并转换电路
CN114142831A (zh) 一种具备计数功能的fir滤波器
CN101000590A (zh) 一种读取内存中数据的方法和系统
CN114153758A (zh) 具有帧计数功能的跨时钟域数据处理方法
US20030193995A1 (en) Digital matched filter
CN108509382B (zh) 一种基于fpga实现超长序列快速卷积运算的方法
CN102684648B (zh) 一种基于微控制器的波形产生系统及方法
CN104597805A (zh) 一种基于fifo实现循环移位寄存器的系统及方法
JPS6373323A (ja) バツフアメモリ装置
US10475501B2 (en) Semiconductor device and method for profiling events in semiconductor device
CN115268246A (zh) 基于片上存储的共享型阵列时间数字转换器

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
GR01 Patent grant
GR01 Patent grant