CN111949577B - 一种高速高精度采样数据大容量存储快速传输方法 - Google Patents
一种高速高精度采样数据大容量存储快速传输方法 Download PDFInfo
- Publication number
- CN111949577B CN111949577B CN202010748778.6A CN202010748778A CN111949577B CN 111949577 B CN111949577 B CN 111949577B CN 202010748778 A CN202010748778 A CN 202010748778A CN 111949577 B CN111949577 B CN 111949577B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- fifo
- write
- clock
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种高速高精度采样数据大容量存储快速传输方法,通过硬件对大容量数据存储模块数据的读写使能的控制,使读写使能能够循环产生,并通过地址累加系统保证大容量存储器的读地址的循环产生,且能够进行累加。保证数据的快速从DRR3 SDRAM当中迅速读出。对高速高精度采样数据的大容量存储装置的传输路径进行优化,对传输路径上的FIFO进行优化,以此来减少从数据采样到软件端数据接收完成的整体时间,减少读取地址循环产生的时间,提高数据传输的效率。
Description
技术领域
本发明属于数字示波器技术领域,更为具体地讲,涉及一种高速高精度采样数据大容量存储快速传输方法。
背景技术
在现有的示波器的多ADC高速高精度采样数据大容量存储方案当中,数据的读写使能,尤其是读使能是由软件来控制的,读写使能不能够循环产生。大容量存储器的读地址的不能够循环产生的特性,导致了读地址不能够进行累加。大容量存储读取存储数据的传输路线和普通容量存储的数据传输路线一致,对数据进行了许多不必要的处理。因此需要对高速高精度采样数据的大容量存储装置的读写控制进行优化,需要对传输路径进行优化,需要对传输路径上的FIFO进行优化,以此来减少从数据采样到软件端数据接收完成的整体时间,减少读取地址循环产生的时间,提高数据传输的效率。
如图1所示,在现有的大容量存储SDRAM的读写控制框架设计当中,不管是读使能还是写使能都是通过软件来发送的。当DDR3 SDRAM初始化完成和复位完成后,进入等待状态,等待读写命令的到来;当写命令到来时,DDR3进入写状态,直到写满预先设定的存储深度,写满之后系统产生一个写完成标志,回到等待状态。而读过程也是同样的道理,通过触发地址,计算好读起始地址后,当读取一定数据量数据后(例如10K数据量的数据),读完成标志拉高,同时回到等待状态。
其中在读状态跳转的过程当中,当读完给定的数据量后,读完成标志位有效,此时状态机从读状态跳转回等待状态。现有的读写控制框架当中多次读数据之间需要软件发送命令进行控制,导致每次读给定量的数据之间,需要等待软件进行判断,并由软件发送下一次读的命令。这样的读使能控制和读地址的累加,需要等待软件的判断和命令,这样就导致了多次循环读取数据的效率低下,时间缓慢,需要将循环机制进行改进才能满足高速高精度采样数据大容量存储快速传输的需求。
在原有大容量存储数据的传输路径当中会经过采集板、处理板、PCIE板最终到达PC端。而在其中处理板的传输路径需要经过多个模块,其中在处理板传输路径当中,数据总共会经过三个FIFO,这三个FIFO的配置、FIFO的读写控制和FIFO之间的数据处理方式会影响数据传输的速度和效率。三个FIFO分别为处理板上的异步FIFO(Async_fifo),同步FIFO(Sync_fifo),以及处理板最后一级FIFO(Soft_fifo)。在同步FIFO和最后一级FIFO之间存在四个模块,分别为数据拼合模块、深存储抽点模块、频率补偿模块、差值模块。如图2所示,这是现有的大容量存储数据在处理板上的传输方案。
在现有的PCIE传输方案当中,数据以10bit差分的数据形式从处理板送到PCIE后,在PCIE当中将差分数据信号在PCIE当中现将差分信号变成单端的10bit信号.而10bit在PCIE的数据接收端,分成4个通道的数据,而分别用4个fifo来缓存接受的数据,这4个fifo对fifo的读使能进行控制,在普通的深存储模式下,读使能是等fifo满了后再读,这个会导致数据的传输变慢,需要改进。
发明内容
本发明的目的在于克服现有技术的不足,提供一种高速高精度采样数据大容量存储快速传输方法,使数字示波器快速实现采样数据大容量存储。
为实现上述发明目的,本发明一种高速高精度采样数据大容量存储快速传输方法,其特征在于,包括以下步骤:
(1)、利用每片ADC对经过示波器通道的模拟信号进行采样,再将采样数据输入至深存储模块;
(2)、在深存储模块中,将多个时钟的采样数据拼合在一起,使其数据位宽达到多个SDRAM-DDR3突发长度的数据位宽;
(3)、上位机向FPGA发送写起始地址、写入的数据地址数量及写使能命令,然后深存储模块进入写状态并开始写入数据;FPGA则从写起始地址开始,根据数据地址数量产生相应的写地址;
(4)、将系统时钟作为采集板的异步FIFO1的写入时钟,以SDRAM-DDR3的工作时钟作为异步FIFO1的读取时钟,将经过异步FIFO1的写地址和写使能命令以及采样数据同时送入到SDRAM-DDR3;
(5)、当用户读取数据时,上位机向FPGA的快速传输模块发送快速传输使能;快速传输模块收到快速传输使能后,上位机再按顺序发送读过程初始地址addr_fast_init=C、快速传输循环次数fast_rd_num=A及每次循环读过程的传输地址累加数值num_rd_ddr3_rcd=B;
(6)、计数器以读过程初始地址addr_fast_init=C为起始地址,每n个时钟产生一组突发长度为L的读取地址,直到每次循环读过程的传输地址到达累加数值num_rd_ddr3_rcd=B为止;再通过异步FIFO1将产生的读地址及读使能命令送入到SDRAM-DDR3;
(7)、SDRAM-DDR3接收到读地址和读使能命令后,响应读命令,并根据读地址在SDRAM-DDR3中寻址,读取对应地址中的数据,再将数据送入到采集板的异步FIFO2进行位宽转换;其中,FIFO2的写入时钟为MIG核的读取数据时钟c0_ui_clk,FIFO2的读出时钟为FPGA的系统时钟;
(8)、将位宽转换后的数据经过后抽点模块的抽点处理,再通过并行转串行模块转换成串行的数据,然后经过单端转差分模块转换成差分信号送入到处理板;
(9)、处理板将差分信号依次经过差分转单端模块、串行转并行模块、丢点模块和多路数据的多个异步FIFO3后输入至同步FIFO实现多路数据拼合;其中,异步FIFO3的写使能为数据送进模块的有效编制,读使能为多个异步FIFO3的非空标志的与;
用户根据选择的通道将同步FIFO输出数据送到处理板的最后一级FIFO;
其中,当用户选择通道1时,同步FIFO输出数据经过频率补偿、误差校正、和峰值检测后传送到PCIE板;当用户选择通道2时,同步FIFO输出数据直接送到PCIE板;
(10)、利用计数器对等待时间进行计数,记为cnt;在每个时钟上升沿到来时判断处理板最后一级FIFO是否为空,若不为空,则将计数器的计数值cnt加1,再判断cnt是否大于预设值,如果小于预设值,则进入步骤(13),否则,向上位机发送失败指令read_faliure=1,并跳转到步骤(14);若为空,则将计数器的计数值cnt置0,再进入步骤(11);
(11)、判断当前的读过程循环计数值是否小于快速传输循环次数fast_rd_num=A,若小于,则进入步骤(12),否则,进入步骤(15);
(12)、令读过程初始地址addr_init=addr_init+C+B,然后返回至步骤(6);
(13)、PCIE板将数据先后通过PCIE板内的第一级异步FIFO和第二级异步FIFO,第二级异步FIFO的输出数据通过DMA转换为可操作的256bit的数据并上传给上位机;
其中,第一级异步FIFO的读时钟为系统时钟,读使能采用第一级异步FIFO非空的时候读,数据位宽设置为输入数据的两倍,读数据的速率快于数据写入的速度;
第二级异步FIFO的读写时钟为系统时钟,写使能为第一级异步FIFO的读数据有效,读使能采用第二级异步FIFO非空的时候读,读数据位宽设为256bit;
(14)、上位机接收完上传数据后,系统进行复位,然后返回步骤(5),等待下一轮数据的传输;
(15)、FPGA向上位机发送数据快速传输完成标志fast_rd_finish=1,标示硬件完成一次完整的快速传输循环读过程;
本发明的发明目的是这样实现的:
本发明一种高速高精度采样数据大容量存储快速传输方法,通过硬件对大容量数据存储模块数据的读写使能的控制,使读写使能能够循环产生,并通过地址累加系统保证大容量存储器的读地址的循环产生,且能够进行累加。保证数据的快速从DRR3 SDRAM当中迅速读出。对高速高精度采样数据的大容量存储装置的传输路径进行优化,对传输路径上的FIFO进行优化,以此来减少从数据采样到软件端数据接收完成的整体时间,减少读取地址循环产生的时间,提高数据传输的效率。
同时,本发明一种高速高精度采样数据大容量存储快速传输方法还具有以下有益效果:
(1)、读取地址的循环累加系统,由软件发送读取数据的起始地址,读取数据的循环次数,读取数据每次循环的读取数据量和地址量,这样保证系统每次循环产生的读地址是连续的,且每次产生的地址的数量符合系统预先设定的地址产生量,且每次循环产生地址的开始,可以准确的发送出读使能至DDR3 SDRAM中。
(2)、本发明在读取设计时,在处理板前级设计两个FIFO,FIFO的容量,以及读取设计保证在数据不丢失的情况下速度最大化,且不会影响其他功能;同时将数据处理过程简化,提高数据传输效率。
(3)、在处理板最后一级FIFO设计时,不仅仅可以读出特定数据量的数据,还可以在硬件控制下循环写入读出数据。
附图说明
图1是现有SDRAM的读写控制框架设计框图;
图2是现有处理板数据传输流程示意图;
图3是SDRAM存储设计整体框图;
图4是采样数据大容量存储原理图;
图5是本发明一种高速高精度采样数据大容量存储快速传输方法流程图;
图6是PCIE传输流程示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
在本实施例中,模数转换器(ADC)采集到的数据传输到采集板上,存入SDRAM DDR3当中,然后写过程完成之后,硬件控制循环读出数据。如图3所示,模数转换器(ADC)采集到的数据传输到采集板上,SDRAM DDR3初始化完成之后,软件发送写使能,系统进入写状态。由采集板产生写地址,将采集到的数据根据产生的写的地址存入到SDRAM DDR3当中。当数据写满预设的存储深度,即写完成时,加入一个状态机循环控制DDR3模块,即上图当中的快速传输读地址控制模块。该模块的加入和实现可控制数据读写状态机当中读状态的循环开启,对数据的读取地址也可以由硬件控制循环产生,对已经存储的数据进行连续不间断的循环读。该模块接收从PC端传过来的快速传输使能信号,开始进行大容量数据的快速传输。根据从PC端传过来的起始地址和每次累加地址的设定累加值,开始产生地址。例如,采集板每次可以读取10k(可设定的)数据量,当一次传输结束的时候,等待从处理板端传过来的同步FIFO空标志,然后开启第二次地址的循环产生,第二次从第一次读结束时的地址接着继续读(保证读取的数据的连续)。我们在第二次读地址产生的时候从第一次结束的地址开始产生。例如,第一次从0地址开始产生读地址,已经传输数据量10K个点,则第二次从10K个点的地址开始,第三次从20K个点的地址开始,以此类推,直到循环次数满足软件预设的循环次数,同时采集板向PC端发送快速传输结束指令。而其中采集板多次循环读出连续的数据,并将数据经过处理板,PCIE板传递到PC端,这个传输的过程当中就涉及到了多级缓冲的传输方案。
从DDR SDRAM当中读取出来的数据经过多级缓冲系统才传送到PC端,如图4所示,而多级缓冲分别分布在采集板、处理板和PCIE这三个部分当中。其中数据在采集板当中,分别从DDR3 SDRAM的颗粒和内存条当中将存储的数据读出,将读出来的数据分别放到一个内存条数据读取缓冲FIFO和一个内存颗粒的读取缓冲FIFO当中,将两个FIFO的数据进行同步处理,即使用同一个读使能控制两个FIFO的读取。将经过同步处理之后的数据存入到内存条内存颗粒同步FIFO当中。因为DDR3 SDRAM的读写时钟和采集板的系统时钟不一致,所以数据需要经过跨时钟转换FIFO,经过跨时钟转换的数据经过差分处理传送到处理板上。处理板接收到差分的数据转换成单端数据,存储到处理板异步FIFO当中。而多ADC系统不同ADC的数据存储到不同的异步FIFO当中。在多ADC的模块当中,其中多ADC的数据需要进行同步处理,所以数据分别送入处理板同步FIFO当中进行同步处理。同步FIFO利用同一个读使能进行FIFO读取,将经过同步处理的信号送入处理板端放置数据的缓冲FIFO当中,经过缓冲FIFO,再将数据差分并送到PCIE板上。在PCIE板子上数据先进行差分转单端,然后数据缓存到PCIE数据接收的异步FIFO当中,再将数据读出经过位宽转换,转化成DMA传输需要的位宽,存入到PCIE发送数据缓冲异步FIFO当中,最后通过DMA数据进行传输传输至PC端。
在本实施例中,如图5所示,本发明一种高速高精度采样数据大容量存储快速传输方法,包括以下步骤:
S1、数据采集
利用每片ADC对经过示波器通道的模拟信号进行采样,再将采样数据输入至深存储模块;以ADC为5G的采样率,10bit的垂直分辨率为例。在一个FPGA的系统时钟(312.5MHZ)当中,总共可以采集到160bit的并行的采样数据。
S2、数据位宽转换
在深存储模块中,将多个时钟的采样数据拼合在一起,使其数据位宽达到多个SDRAM-DDR3突发长度的数据位宽;
在本实施例中,SDRAM-DDR3的存储设计整体框,如图4所示,将送入深存储模快当中的数据首先要进行位宽转换。因为现在市场上的SDRAMDDR3颗粒的工作时钟最高速度达到了1333MHZ,即双沿2666Mb/S的数据传输速率。本方案以800MHZ的工作时钟为例,即双沿1600Mb/S的传输速率。而突发长度(即同一行中相邻的存储单元连续进行数据传输的最大长度),一般为4或者8,而在本方案中突发长度为8.所以DDR3在突发长度的模式下工作工作的速率为200MHz,而数据位宽为颗粒的数据位宽乘以8。在本案例当中运用5个16位颗粒,所以数据突发长度下数据位宽为640bit。所以我们需要对系统时种下160bit的数据进行数据位宽转换,使数据达到内存颗粒突发长度的640bit数据位宽。我们采用将多个时钟的数据拼合在一起的方法。即第一个时钟的数据放在新的位宽转换的数据的最低位,第二个时钟数据的数据放在新的位宽转换的数据次低位,以此类推,直到第四个数据放在新的位宽转换的最高位,位宽转换结束。
S3、写地址及指令产生
上位机向FPGA发送写起始地址、写入的数据地址数量及写使能命令,然后深存储模块进入写状态并开始写入数据;FPGA则从写起始地址开始,根据数据地址数量产生相应的写地址;
在本实施例中,写地址是通过计数器来产生的。根据我们数据位宽转换的情况的进行写地址产生。例如位宽转换将4个时钟的信号拼合成一个新的数据信号,这时突发长度为8。所以要求我们在输出一个突发长度的数据的时候,地址需要产生8个地址。所以我们运用计数器来产生写地址。即4个时钟累加8个地址且要求在每四个时钟的末尾,产生的8个地址,且地址有效。加一的条件是没有复位,且写使能打开,并且满足数据拼合的要求。而计数器停止的状态地址产生到了我们设定的写如数据的地址数,或者达到了最大的存储深度。
由于写地址和写命令产生以及数据位宽转换的时钟(312.5MHZ)和DDR3的工作的时钟(200MHZ)是不一样的,所以需要进行跨时钟域的变换。我们通过使用异步fifo来产生跨时钟域的方案。将系统时钟(312.5MHZ)作为异步FIFO的写入时钟,以DDR3的工作时钟200MHZ作为异步FIFO的读取时钟。将经过异步FIFO的写地址和写命令以及数据分别同时送入到DDR3当中。
S4、异步FIFO1的时钟配置
将系统时钟作为采集板的异步FIFO1的写入时钟,以SDRAM-DDR3的工作时钟作为异步FIFO1的读取时钟,将经过异步FIFO1的写地址和写使能命令以及采样数据同时送入到SDRAM-DDR3;
S5、读操作相关指令的发送
当用户读取数据时,上位机向FPGA的快速传输模块发送快速传输使能;快速传输模块收到快速传输使能后,上位机再按顺序发送读过程初始地址addr_fast_init=C、快速传输循环次数fast_rd_num=A及每次循环读过程的传输地址累加数值num_rd_ddr3_rcd=B;
在本实施例中,上位机向FPGA的快速传输模块发送快速传输使能fast_rd_en=1,同时发送读过程初始地址addr_fast_init=0,同时发送本次快传输的次数fast_rd_num=100,每次传输地址累加的数值num_rd_ddr3_rcd=1280,因为DDR一个地址存了8个采集到的点,所以num_rd_ddr3_rcd=1280,代表依次读出数据10240个,而循环次数fast_rd_num=100,即循环读100次,总共可以读出1000K的数据点。
S6、读地址及指令产生
计数器以读过程初始地址addr_fast_init=C为起始地址,每n个时钟产生一组突发长度为L的读取地址,直到每次循环读过程的传输地址到达累加数值num_rd_ddr3_rcd=B为止;再通过异步FIFO1将产生的读地址及读使能命令送入到SDRAM-DDR3;
S7、读命令响应
SDRAM-DDR3接收到读地址和读使能命令后,响应读命令,并根据读地址在SDRAM-DDR3中寻址,读取对应地址中的数据,再将数据送入到采集板的异步FIFO2进行位宽转换;其中,FIFO2的写入时钟为MIG核的读取数据时钟c0_ui_clk,FIFO2的读出时钟为FPGA的系统时钟;
S8、将读取数据转换成差分信号
将位宽转换后的数据经过后抽点模块的抽点处理,再通过并行转串行模块转换成串行的数据,然后经过单端转差分模块转换成差分信号送入到处理板;
在本实施例中,在读地址产生的同时,数据从DDR3当中读取出来,数据为200MHZ的640bit的数据流。数据经过异步FIFO从200MHZ的640bit转化为312.5MHZ的320bit的数据。从异步FIFO读出来的320bit的数据,经过并行转串行,变成串行的单端信号,单端信号转化为差分信号传送到处理板上。
S9、多路数据拼合
处理板将差分信号依次经过差分转单端模块、串行转并行模块、丢点模块和多路数据的多个异步FIFO3后输入至同步FIFO实现多路数据拼合;其中,异步FIFO3的写使能为数据送进模块的有效编制,读使能为多个异步FIFO3的非空标志的与;
用户根据选择的通道将同步FIFO输出数据送到处理板的最后一级FIFO;
其中,当用户选择通道1时,同步FIFO输出数据经过频率补偿、误差校正、和峰值检测后传送到PCIE板;当用户选择通道2时,同步FIFO输出数据直接送到PCIE板;
S10、判断处理板最后一级FIFO是否为空
利用计数器对等待时间进行计数,记为cnt;在每个时钟上升沿到来时判断处理板最后一级FIFO是否为空,若不为空,则进入步骤S11,若为空,则将计数器的计数值cnt置0,再进入步骤S12;
S11、判断cnt是否大于预设值
将计数器的计数值cnt加1,再判断cnt是否大于预设值,如果小于预设值,则进入步骤S14,否则,向上位机发送失败指令read_faliure=1,并跳转到步骤S15;
S12、判断当前的读过程循环计数值是否小于快速传输循环次数fast_rd_num=A,若小于,则进入步骤S13,否则,进入步骤S16;
S13、更新读过程初始地址
令读过程初始地址addr_init=addr_init+C+B,然后返回至步骤S6;
S14、PCIE板将数据上传给上位机
PCIE板将数据先后通过PCIE板内的第一级异步FIFO和第二级异步FIFO,第二级异步FIFO的输出数据通过DMA转换为可操作的256bit的数据并上传给上位机;
其中,第一级异步FIFO的读时钟为系统时钟,读使能采用第一级异步FIFO非空的时候读,数据位宽设置为输入数据的两倍,读数据的速率快于数据写入的速度;
第二级异步FIFO的读写时钟为系统时钟,写使能为第一级异步FIFO的读数据有效,读使能采用第二级异步FIFO非空的时候读,读数据位宽设为256bit;
在本实施例中,在快速传输模式下,采用非空就读,因为读时钟比写时钟快,所以在非空就读模式下,从fifo读出的数据是不连续的,因此要对读出的数据进行一系列处理。
因为PCIE接收端的数据位宽大小时256bit。所以要把异步fifo读出的4路10bit位宽的数据进行位宽转换。如图6所示,在数据有效的时候,对4路数据的高位补零,组合成16bit数据,将四路16bit数据组合成64bit数据。同时在数据有效时,计数器开始计数,一旦计数器计数到3时,计数器清零,重新开始计数。
因为后端传送的数据位宽为256bit,所以要把已经拼好的64bit数据拼接成256bit;在第一个时钟下,把64bit数据给到256bit数据的低64位,第二个时钟下把64bit数据给到256bit数据的65-127位,一次执行,4个时钟拼接好256bit数据,同时在第四个时种下产生一个数据有效信号。把拼好的256bit数据和数据有效送给下一级。
PCIE端由于从fifo读出的数据采用边读边写的模式,所以为了与以前的模式区分,单独写了一个模块来对fifo读出的数据进行位宽转换等处理。
S15、上位机接收完上传数据后,系统进行复位,然后返回步骤S5,等待下一轮数据的传输;
S16、FPGA向上位机发送数据快速传输完成标志fast_rd_finish=1,标示硬件完成一次完整的快速传输循环读过程。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (1)
1.一种高速高精度采样数据大容量存储快速传输方法,其特征在于,包括以下步骤:
(1)、利用每片ADC对经过示波器通道的模拟信号进行采样,再将采样数据输入至深存储模块;
(2)、在深存储模块中,将多个时钟的采样数据拼合在一起,使其数据位宽达到多个SDRAM-DDR3突发长度的数据位宽;
(3)、上位机向FPGA发送写起始地址、写入的数据地址数量及写使能命令,然后深存储模块进入写状态并开始写入数据;FPGA则从写起始地址开始,根据数据地址数量产生相应的写地址;
(4)、将系统时钟作为采集板的异步FIFO1的写入时钟,以SDRAM-DDR3的工作时钟作为异步FIFO1的读取时钟,将经过异步FIFO1的写地址和写使能命令以及采样数据同时送入到SDRAM-DDR3;
(5)、当用户读取数据时,上位机向FPGA的快速传输模块发送快速传输使能;快速传输模块收到快速传输使能后,上位机再按顺序发送读过程初始地址addr_fast_init=C、快速传输循环次数fast_rd_num=A及每次循环读过程的传输地址累加数值num_rd_ddr3_rcd=B;
(6)、计数器以读过程初始地址addr_fast_init=C为起始地址,每n个时钟产生一组突发长度为L的读取地址,直到每次循环读过程的传输地址到达累加数值num_rd_ddr3_rcd=B为止;再通过异步FIFO1将产生的读地址及读使能命令送入到SDRAM-DDR3;
(7)、SDRAM-DDR3接收到读地址和读使能命令后,响应读命令,并根据读地址在SDRAM-DDR3中寻址,读取对应地址中的数据,再将数据送入到采集板的异步FIFO2进行位宽转换;其中,FIFO2的写入时钟为MIG核的读取数据时钟c0_ui_clk,FIFO2的读出时钟为FPGA的系统时钟系统时钟;
(8)、将位宽转换后的数据经过后抽点模块的抽点处理,再通过并行转串行模块转换成串行的数据,然后经过单端转差分模块转换成差分信号送入到处理板;
(9)、处理板将差分信号依次经过差分转单端模块、串行转并行模块、丢点模块和多路数据的多个异步FIFO3后输入至同步FIFO实现多路数据拼合;其中,异步FIFO3的写使能为数据送进模块的有效编制,读使能为多个异步FIFO3的非空标志的与;
用户根据选择的通道将同步FIFO输出数据送到处理板的最后一级FIFO;
其中,当用户选择通道1时,同步FIFO输出数据经过频率补偿、误差校正、和峰值检测后传送到PCIE板;当用户选择通道2时,同步FIFO输出数据直接送到PCIE板;
(10)、利用计数器对等待时间进行计数,记为cnt;在每个时钟上升沿到来时判断处理板最后一级FIFO是否为空,若不为空,则将计数器的计数值cnt加1,再判断cnt是否大于预设值,如果小于预设值,则进入步骤(13),否则,向上位机发送失败指令read_faliure=1,并跳转到步骤(14);若为空,则将计数器的计数值cnt置0,再进入步骤(11);
(11)、判断当前的读过程循环计数值是否小于快速传输循环次数fast_rd_num=A,若小于,则进入步骤(12),否则,进入步骤(15);
(12)、令读过程初始地址addr_init=addr_init+C+B,然后返回至步骤(6);
(13)、PCIE板将数据先后通过PCIE板内的第一级异步FIFO和第二级异步FIFO,第二级异步FIFO的输出数据通过DMA转换为可操作的256bit的数据并上传给上位机;
其中,第一级异步FIFO的读时钟为系统时钟,读使能采用第一级异步FIFO非空的时候读,数据位宽设置为输入数据的两倍,读数据的速率快于数据写入的速度;
第二级异步FIFO的读写时钟为系统时钟,写使能为第一级异步FIFO的读数据有效,读使能采用第二级异步FIFO非空的时候读,读数据位宽设为256bit;
(14)、上位机接收完上传数据后,系统进行复位,等待下一轮数据的传输;
(15)、FPGA向上位机发送数据快速传输完成标志fast_rd_finish=1,标示硬件完成一次完整的快速传输循环读过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010748778.6A CN111949577B (zh) | 2020-07-30 | 2020-07-30 | 一种高速高精度采样数据大容量存储快速传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010748778.6A CN111949577B (zh) | 2020-07-30 | 2020-07-30 | 一种高速高精度采样数据大容量存储快速传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949577A CN111949577A (zh) | 2020-11-17 |
CN111949577B true CN111949577B (zh) | 2023-03-14 |
Family
ID=73338609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010748778.6A Active CN111949577B (zh) | 2020-07-30 | 2020-07-30 | 一种高速高精度采样数据大容量存储快速传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949577B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113093585A (zh) * | 2021-03-03 | 2021-07-09 | 桂林电子科技大学 | 基于NoC的高速数据采集系统与上位机通信接口控制器 |
CN113806277B (zh) * | 2021-09-06 | 2023-03-07 | 电子科技大学 | 基于srio协议的fpga与dsp的数据传输系统 |
CN115237369B (zh) * | 2022-09-23 | 2022-12-13 | 成都博宇利华科技有限公司 | 一种高精度信息戳标记方法 |
CN115563035B (zh) * | 2022-10-27 | 2024-08-13 | 成都玖锦科技有限公司 | 一种基于fpga的ddr3高分辨粒度读写方法 |
CN117112447B (zh) * | 2023-10-17 | 2023-12-22 | 北京开源芯片研究院 | 一种数据传输方法、装置、电子设备及可读存储介质 |
CN118606222B (zh) * | 2024-08-07 | 2024-10-01 | 四川九洲软件有限公司 | 一种多用户操作的复杂电磁信号样本管理方法及计算机装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104599227A (zh) * | 2013-10-30 | 2015-05-06 | 南京理工大学 | 用于高速ccd数据存储的ddr3仲裁控制器及方法 |
WO2015138737A1 (en) * | 2014-03-12 | 2015-09-17 | Brass Roots Technologies, LLC | Bit plane memory system |
CN105224482A (zh) * | 2015-10-16 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种fpga加速卡高速存储系统 |
CN110569204A (zh) * | 2019-07-23 | 2019-12-13 | 广东工业大学 | 基于fpga和ddr3 sdram的可配置图像数据缓存系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826113B2 (en) * | 2003-03-27 | 2004-11-30 | International Business Machines Corporation | Synchronous dynamic random access memory device having memory command cancel function |
US10698440B2 (en) * | 2018-01-10 | 2020-06-30 | International Business Machines Corporation | Reducing latency of memory read operations returning data on a read data path across multiple clock boundaries, to a host implementing a high speed serial interface |
-
2020
- 2020-07-30 CN CN202010748778.6A patent/CN111949577B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104599227A (zh) * | 2013-10-30 | 2015-05-06 | 南京理工大学 | 用于高速ccd数据存储的ddr3仲裁控制器及方法 |
WO2015138737A1 (en) * | 2014-03-12 | 2015-09-17 | Brass Roots Technologies, LLC | Bit plane memory system |
CN105224482A (zh) * | 2015-10-16 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种fpga加速卡高速存储系统 |
CN110569204A (zh) * | 2019-07-23 | 2019-12-13 | 广东工业大学 | 基于fpga和ddr3 sdram的可配置图像数据缓存系统 |
Non-Patent Citations (1)
Title |
---|
A novel method of random equivalent sampling with full-digital reconstruction;Huang Wuhuang等;《2019 14th IEEE International Conference on Electronic Measurement & Instruments (ICEMI)》;第351-360页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111949577A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949577B (zh) | 一种高速高精度采样数据大容量存储快速传输方法 | |
CN111400205B (zh) | 一种先进先出地址轮询缓存读写方法、系统及装置 | |
CN107133011B (zh) | 一种示波记录仪的多通道数据存储方法 | |
KR100945968B1 (ko) | 반도체기억장치 | |
CN113946297B (zh) | 基于FPGA和PCIe的光纤数据采集存储系统及方法 | |
CN111832240A (zh) | Fifo数据传输方法及fifo存储装置 | |
CN111966628B (zh) | 一种多核组合式大容量数据同步存储方法 | |
CN103309981A (zh) | 一种具有高存储效率的adc数据组织系统及其方法 | |
CN103592489A (zh) | 数字示波器深存储设计方法 | |
CN111338983B (zh) | 一种高速数据缓存结构及方法 | |
CN116431539A (zh) | 一种基于fdma ddr存储器读写设计 | |
CN113806277B (zh) | 基于srio协议的fpga与dsp的数据传输系统 | |
CN101110259A (zh) | 先进先出存储器 | |
CN107608654B (zh) | 多路异步信息的传输控制装置及方法 | |
US20070208980A1 (en) | Method of transmitting data between different clock domains | |
CN115328822A (zh) | 一种基于ddr3的读写控制动态调度方法及其存储介质 | |
CN110059036B (zh) | 一种存储体内部多异步接口访问控制装置及方法 | |
KR101534790B1 (ko) | 데이터 저장 시스템들을 위한 구조 | |
CN110209609B (zh) | 串行接口电路、半导体装置以及串行并行转换方法 | |
CN100481913C (zh) | 实时图像异步采集接口装置 | |
CN117420342B (zh) | 多通道采集方法、装置、系统、fpga及采样示波器 | |
CN118606222B (zh) | 一种多用户操作的复杂电磁信号样本管理方法及计算机装置 | |
WO2022126893A1 (zh) | 用于serdes接口的桥接模块 | |
CN112349330B (zh) | 一种sfq电路与cmos电路间交互方法及系统 | |
CN110225211B (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 |