CN111966628B - 一种多核组合式大容量数据同步存储方法 - Google Patents

一种多核组合式大容量数据同步存储方法 Download PDF

Info

Publication number
CN111966628B
CN111966628B CN202010748797.9A CN202010748797A CN111966628B CN 111966628 B CN111966628 B CN 111966628B CN 202010748797 A CN202010748797 A CN 202010748797A CN 111966628 B CN111966628 B CN 111966628B
Authority
CN
China
Prior art keywords
data
fifo
read
write
memory
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
CN202010748797.9A
Other languages
English (en)
Other versions
CN111966628A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202010748797.9A priority Critical patent/CN111966628B/zh
Publication of CN111966628A publication Critical patent/CN111966628A/zh
Application granted granted Critical
Publication of CN111966628B publication Critical patent/CN111966628B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R13/00Arrangements for displaying electric variables or waveforms
    • G01R13/02Arrangements for displaying electric variables or waveforms for displaying measured electric variables in digital form
    • 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)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Dram (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明公开了一种多核组合式大容量数据同步存储方法,采用将内存颗粒和内存条组合起来的方法实现多核组合式大容量数据同步存储;其中,先分别将内存颗粒和内存条视为各自的MIG核,进行多核的数据存储;再对多核的数据进行读写控制,并将多核的数据进行同步处理,将多同步后的数据拼合传送至处理板上;最后对多ADC的多核数据在处理板端进行数据同步和拼合的处理,实现多核组合式大容量数据同步存储。

Description

一种多核组合式大容量数据同步存储方法
技术领域
本发明属于数字存储示波器技术领域,更为具体地讲,涉及一种多核组合 式大容量数据同步存储方法。
背景技术
随着示波器系统的不断发展,示波器系统的采样率、垂直分辨率、存储深 度也在不断提高。示波器采样率的提高以及分辨率的提高,意味着示波器采集 系统输出数据的速率对应提高,针对高速高精度的采样数据流,对示波器的存 储系统提出了更高的要求,特别是大容量存储系统的设计。
目前国内大容量存储系统的设计多是通过FPGA外接SDRAM存储器的方 式实现的,较高采样率示波器系统都是由多ADC组合而成,针对多ADC系统, 本文提出一种基于多FPGA的多存储器模组并行同步存储方式,同时为了针对 单个ADC采集的高速高精度的采样数据流,为了实现数据的正确存储,提出一 种多存储控制核组合存储方式。
数据存储系统是数字存储示波器中的一个重要组成系统,在现有示波器存 储系统设计中,常见的存储方式主要要有两种,一种是普通存储,另一种是大 容量存储。普通存储是利用FPGA自带的fifo资源进行存储,数据读写快,控 制简单,但是要占用有效的FPGA资源,所以能够缓存的数据量相对较小;大 容量数据存储是利用FPGA外接DDR3 SDRAM的方式实现,控制复杂,但是 能够缓存大量的采样数据,同时有利于波形细节观察,在大时基档位也能工作 在较高采样率下。
当前市面上主流的DDR3SDRAM存储芯片,其对应的内存条数据位宽为 64bit,目前DDR3 SDRAM的数据传输速率最快可达到2133MHz。在以前的示 波器设计中,采用的ADC采样率为5Gsps,垂直分辨率为8bit,外部存储器采 用的是64bit的DDR3 SDRAM内存条。其采样数据大容量存储结构图如图1所 示:ADC采样之后,将采样数据分四路以DDR传输方式输出,数据传输时钟 为625MHz,对应数据流速率为40Gbit/s。采样数据在FPGA中经过处理后,送往DDR3 SDRAM存储器进行存储,数据位宽为64bit,DDR传输方式进行数据 传输,传输时钟为400MHz,即数据吞吐量为400MHz*64bit*2,为51.2Gbit/s,大 于ADC产生的数据流,满足系统设计要求。
然后,由于DDR3 SDRAM存储器是同步动态随机存储器,是一种电容存储 介质,而电容具有漏电效应,需要不断地刷新来保存数据,在SDRAM存储器 刷新和预充电的时间内SDRAM存储器是不能进行读写操作的,所以单片DDR3 SDRAAM存储器的实际传输速率是小于51.2Gbit/s,不能保正前端ADC采样的 数据全部存入SDRAM存储器,故需要提高存储器的传输速度。
发明内容
本发明的目的在于克服现有技术的不足,提供一种多核组合式大容量数据 同步存储方法,实现并行采集系统下的多片FPGA的大容量数据同步存储。
为实现上述发明目的,本发明一种多核组合式大容量数据同步存储方法, 其特征在于,包括以下步骤:
(1)、数据采集
将采样率为20GSPS、垂直分辨率为10bit的高速高精度数据同时输入至采 集系统的每一片ADC并对其采样,每一片ADC分4路输出采样数据,其中, 每路采样数据的时钟为625MHz,采样率为5GSPS以及垂直分辨率为10bit,并 以双沿数据传输方式传输输入至FPGA;
(2)、利用数据接收模块降速
FPGA中的数据接收模块接收到采样数据,并进行解串处理,使采样数据的 传输时钟降至为315MHz,数据位宽为160bit,然后再输入至抽点模块;
(3)、深度存储控制模块控制抽点后的数据存储
利用抽点模块先对降速后的采样数据进行抽点,再将抽点后的数据送到深 存储模块的写地址模块,将160bit的数据缓存4个时钟,再将四个时钟的数据 位拼接成640bit位宽的采样数据;
(4)、写地址和写指令的产生
根据4个时钟产生640bit的数据,每4个时钟需要产生8个写地址,同时 每4个时钟产生一个写地址使能syn_en_addr_wr和写入数据指令。
(5)、采样数据、写地址和写指令的时钟域转换
将640bit位宽的采样数据,32bit的写地址和写入数据指令一起送入跨时钟 域模块,在跨时钟域模块中采用两组异步FIFO分别对写入内存条和内存颗粒的 数据进行时钟域的转换;
其中,内存条和内存颗粒的跨时钟域记为c0_fifo_adc和c1_fifo_adc,在写 模式下,将写地址使能syn_en_addr_wr作为跨时钟域c0_fifo_adc和c1_fifo_adc 的写数据使能,将写时钟设置为312.5MHz;将读使能设置为各自FIFO的非空 信号和各自MIG的接口的空闲标志以及各自FIFO接收写入数据的有效信号相 与,读时钟设置为100MHz;
具体转换过程为:对写入跨时钟域c0_fifo_adc的数据,取每10bit数据的 高八位,一共512bit的采样数据点,同写地址和写入数据指令共32bit对齐后组 成544bit数据作为写入数据写入c0_fifo_adc;对写入跨时钟域c1_fifo_adc的数 据,取每10bit数据点的低2位,共128bit数据点,同地址和命令共32bit对齐 后组成160bit数据作为写入数据写入c1_fifo_adc;两组异步FIFO的输出数据分 别发送给内存条和内存颗粒并写入,实现写入数据的时钟域转换;
(6)、读地址和读指令的产生
当用户读取存入在内存颗粒和内存条的数据时,系统先进入读模式,然后 根据8个写地址产生出对应的8个读地址,同时产生一个读地址使能 syn_en_addr_rd和读取数据指令;
(7)、读地址和读指令的时钟域转换
将读地址和读指令一起送入跨时钟域模块,在跨时钟域模块中采用两组异 步FIFO将读地址和读命令经过跨时钟域转换后发送给内存颗粒和内存条
在读模式下,将读地址使能syn_en_addr_rd作为跨时钟域c0_fifo_adc和 c1_fifo_adc的读数据使能,读时钟设置为312.5M;
作为跨时钟c0_fifo_adc和c1_fifo_adc的写数据使能,写时钟设置为 312.5MHz。读使能采用接口反接的技术,将读使能设置为fifo的非空信号和MIG 的接口空闲标志相与,读时钟设置为100MHz;
(8)、内存颗粒和内存条响应读命令,读取中数据并通过FIFO同步转换
设置两组异步FIFO,记为c0_rd_ddr_fifo和c1_rd_ddr_fifo;其中,c0_rd_ddr_fifo写入数据和读出数据的位宽为512bit,c1_rd_ddr_fifo写入数据和 读出数据的位宽为128bit;两组异步FIFO的写入时钟设置为各自MIG的读取时 钟,即c0_ui_clk和c1_ui_clk;两组异步FIFO的写使能分别采用从两组MIG核 送出数据的数据有效位;两组异步FIFO的读使能运用同一个读使能,均为两组 异步FIFO非空相与再取反;
内存颗粒和内存条响应读命令,从内存颗粒和内存条中读取数据,再通过 c0_rd_ddr_fifo和c1_rd_ddr_fifo输出,然后将两组异步FIFO的输出数据进行拼 合,其中,c0_rd_ddr_fifo的512bit数据放低位,c1_rd_ddr_fifo的128bit数据放 高位;最后将拼合好的数据送入到读时钟为312.5MHZ的异步FIFO中,然后将 此异步FIFO的输出数据进行抽点处理后发送到处理板;
(9)、多FPGA的多核数据同步储存
处理板统一产生写使能,并发送给各个深存储模块,各个深存储模块在写 使能下实现数据同步储存。
本发明的发明目的是这样实现的:
本发明一种多核组合式大容量数据同步存储方法,采用将内存颗粒和内存 条组合起来的方法实现多核组合式大容量数据同步存储;其中,先分别将内存 颗粒和内存条视为各自的MIG核,进行多核的数据存储;再对多核的数据进行 读写控制,并将多核的数据进行同步处理,将多同步后的数据拼合传送至处理 板上;最后对多ADC的多核数据在处理板端进行数据同步和拼合的处理,实现 多核组合式大容量数据同步存储。
同时,本发明一种多核组合式大容量数据同步存储方法还具有以下有益效 果:
(1)、本发明采用采用DDR3 SDRAM内存条加DDR3 SDRAM内存颗粒的 形式实现并行存储,对内存条和内存颗粒的数据进行拼合,从而实现多核组合 式大容量数据同步存储;
(2)、读写控制及跨时钟域设计;由于DDR3 SDRAM存储器不能同时进行 读写,所以在控制读写是和使用fifo进行存储不同,只能通过记录触发地址的 方式,整个存储过程通过状态机控制;大容量数据读写复复杂,数据读写需要 通过MIG核控制,MIG核工作时钟核深存储控制器工作时钟不同,所以数据读 写时会对读写地址进行跨时钟域设计;
(3)、本系统涉及到多片FPGA的存储系统设计,软件端给多片FPGA对 应的存储器发送开始存储命令时,命令到达各个FPGA的时间是具有时间差的, 各个存储器组不是同时工作的,故在给各个FPGA发送存储命令前需要对写使 能进行同步设计,确保写命令到达各个FPGA的时间是同时的。
附图说明
图1是原单核大容量存储方案图;
图2是大容量存储系统的整体架构图;
图3是本发明一种多核组合式大容量数据同步存储方法流程图;
图4是读写地址转换的数据进行跨时钟域设计原理图;
图5是多存储器并行存储同步模块设计原理图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更 好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设 计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
在本实施例中,主要针对20GSPS采样率、10bit垂直分辨率下高速高精度 采样数据大容量存储与处理技术进行研究设计,涉及到多片ADC共同构成 20Gsps的采集系统,物理结构主要包括四块信号调理通道板、四块采集板、一 块处理板、一块PCIe板以及一台工控机及其外设,每片FPGA都会对应大容量 存储系统的设计,故会涉及到多FPGA下多核存储器的同步设计,大容量存储 系统的整体架构如图2所示。
深存储模式是利用SDRAM存储器对采样数据进行存储。深存储控制模块 在接收到写起始命令之后,生成写地址,同时接收采样数据,并将写地址与采 样数据对齐后一起送往MIG核,并存入SDRAM存储器中。
因此,在考虑深存储模式的同步存储时,需要考虑各个深存储模块中写地 址的同步生成。而写地址的同步生成主要包含两个方面,一是各个写地址的起 始地址以及存储空间大小是否一致,二是各个深存储模块的写起始使能是否同 步。
保证各个深存储模块中的写起始地址以及存储空间大小一致,只需要保证 在后端控制器对深存储模块进行配置时,对各个深存储模块都进行一致的配置 即可保证。因此重点在于写起始使能的同步问题。
对于5Gsps采样系统存储模块设计,示波器的最高采样率为5GSPS,即只 需要对一个ADC的采样数据进行存取,即可实现深存储功能。在此设计中,深 存储写使能采用软件发送寄存器即可,在需要开启波形数据存储时,后端控制 器通过通信协议配置写开始寄存器为有效即可。
在设计中,通信协议的时钟与深存储模块地址产生模块的时钟不同,在后 端控制器对写开始使能进行配置时,无法保证命令发出到接收差距多少延时。 而在本项目中,在深存储模式下,最高采样率需达到20GSPS,需要4片ADC 共同采集,此时在4片FPGA上分别各有1个深存储控制模块。由于各个深存 储模块的写开始使能从后端控制器发出到被接收到的时间延时无法确定,则难 以实现对写开始使能的同步校正。
在深存储模式下,深存储模块接收到写命令开启存储过程,接收采样数据。 因此,在深存储模式下,采用写使能由处理板统一产生的方式,将各个深存储 模块的写开始使能信号设计为由处理板统一产生,实现对各个深存储模块写开 始使能的同步设计。
下面我们结合图2,对本发明进行详细说明,如图3所示,本发明一种多核 组合式大容量数据同步存储方法,包括以下步骤:
S1、数据采集
将采样率为20GSPS、垂直分辨率为10bit的高速高精度数据同时输入至采 集系统的每一片ADC并对其采样,每一片ADC分4路输出采样数据,其中, 每路采样数据的时钟为625MHz,采样率为5GSPS以及垂直分辨率为10bit,并 以双沿数据传输方式传输输入至FPGA;
在本实施例中,ADC采样数据分4路输出,以双沿数据传输方式传输,时 钟为625MHz,对应5GSPS采样率以及10bit垂直分辨率的数据流。采样数据进 入FPGA中,经过数据接收模块接收后,将数据传输时钟降为312.5MHz,数据 位宽为160bit,经过前抽点模块后送往深存储控制器模块。
S2、利用数据接收模块降速
FPGA中的数据接收模块接收到采样数据,并进行解串处理,使采样数据的 传输时钟降至为315MHz,数据位宽为160bit,然后再输入至抽点模块;
S3、深度存储控制模块控制抽点后的数据存储
利用抽点模块先对降速后的采样数据进行抽点,再将抽点后的数据送到深 存储模块的写地址模块,将160bit的数据缓存4个时钟,再将四个时钟的数据 位拼接成640bit位宽的采样数据;
S4、写地址和写指令的产生
根据4个时钟产生640bit的数据,每4个时钟需要产生8个写地址,同时 每4个时钟产生一个写地址使能syn_en_addr_wr和写入数据指令。
S5、采样数据、写地址和写指令的时钟域转换
将640bit位宽的采样数据,32bit的写地址和写入数据指令一起送入跨时钟 域模块,在跨时钟域模块中采用两组异步FIFO分别对写入内存条和内存颗粒的 数据进行时钟域的转换;
其中,内存条和内存颗粒的跨时钟域记为c0_fifo_adc和c1_fifo_adc,在写 模式下,将写地址使能syn_en_addr_wr作为跨时钟域c0_fifo_adc和c1_fifo_adc 的写数据使能,将写时钟设置为312.5MHz;将读使能设置为各自FIFO的非空 信号和各自MIG的接口的空闲标志以及各自FIFO接收写入数据的有效信号相 与,读时钟设置为100MHz;
具体转换过程为:对写入跨时钟域c0_fifo_adc的数据,取每10bit数据的 高八位,一共512bit的采样数据点,同写地址和写入数据指令共32bit对齐后组 成544bit数据作为写入数据写入c0_fifo_adc;对写入跨时钟域c1_fifo_adc的数 据,取每10bit数据点的低2位,共128bit数据点,同地址和命令共32bit对齐 后组成160bit数据作为写入数据写入c1_fifo_adc;两组异步FIFO的输出数据分 别发送给内存条和内存颗粒并写入,实现写入数据的时钟域转换;
在本实施例中,深存储控制器模块负责与存储器接口生成器(Memory InterfaceGenerator,MIG)内核的交互,其中MIG内核是用于与DDR3 SDRAM 内存条的进行具体的数据交互。当存储的采样数据从内存条中读出后,经过深 存储控制器模块送往数据发送模块。由数据发送模块进行并串转换后,送往后 端进行其他处理与显示。
DDR3 SDRAM内存条和内存颗粒一个地址分别对应64bit和16bit位宽,通 常采用8为其突发长度来进行传输,传输数据位宽分别为512bit和128bit。由上 述分析可知,FPGA内部数据流经过降速为160bit*312.5MHz,需要将其位宽转 化为640bit传输给DDR3 SDRAM模组。由于高清晰数据的每一个点是10bit位 宽,所以如何将数据存入到以8bit字节为单位的DDR3中,是本次设计的关 紧,在数据写入到大容量存储中时,将10bit的高清晰数据拆分,高八位由 64bit位宽的DDR3内存条来储存,低2位选用16bit位宽的DDR3颗粒存储。 此方案会在写入数据前及读出数据后增加数据拆分与数据组合的部分,但是由 于选择的是16bit及64bit位宽的内存芯片,因此同一个数据点在DDR3内存条 与DDR3颗粒中的地址都是相同的,两者每一个存储单元都存放了8个数据点 的信息,减小了存取地址生成以及数据点的定位的难度。
DDR3 SDRAM内部结构复杂,其读写访问时数据与地址的时序复杂,且需 要考虑当前硬件的状态,这对FPGA外接内存条接口的设计带来了巨大的难度。 Xilinx公司针对这一问题提供了MIG(Memory Interface Generator)解决方案,最 高可以同时对8片存储芯片进行控制,为本设计同时控制DDR3内存条与DDR3 内存颗粒降低了难度。
大容量存储模块工作时钟为312.5MMhz,DDR3 SDRAM内存模组工作时钟 为400Mhz,由于SDRAM和MIG时钟配比关系为4:1,所以MIG核工作时钟 为100MHz,由于大容量存储模块工作时钟和MIG核工作时钟不一致,如果数 据直接通过读写写地址模块进行位宽转换之后直接通过MIG核写入SDRAM内 存模组,很大可能会造成亚稳态,所以为了避免亚稳态的发生造成数据点的丢 失,在数据写入MIG核之前会对读写地址转换的数据进行跨时钟域设计,如图 4所示,将读写命令和地址从312.5MHz转换为100MHz。(介绍突发、位宽转换)DDR3 SDRAM是以突发方式进行数据地址读写的,本次设计采用的突发长度 BL为8,由于内存条和内存颗粒的数据位宽分别为64bit和16bit,所以DDR3 SDRAM内存模组一次突发传输的数据位宽为(64+16)bit*8=640bit,对采样数 据的存储过程中,采样数据以每个312.5MHz的时钟采集把160bit的数据流送入 深存储模块,数据流首先进入写地址模块,在写地址模块数据会进行位宽拼接, 数据流从写地址模块出来后会变成312.5MHz、672bit的数据流,其中的640bit 位数据流,29bit位地址生成模块生成的地址app_addr,3bit为MIG核读写命令 控制app_cmd,对于app_cmd为3'b000时为写操作,为3'b001时为读操作,在 写地址模块将数据和使能会对齐送入MIG核,每四个时钟产生640bit数据流的 同时每四个时钟产生一个数据有效使能,保证数据和数据有效对齐送入后级模 块。经过拼接后的640bit数据,对应64个采样点,由于这次存储是由两组存储 器并行存储的,把64个采样点的高8位组成一组,总共512bit数据一起送进 c0_fifo_adc,把64个采样点的低两位组成一组数据,总共128bit数据送进 c1_fifo_adc.不管是送进c0_fifo_adc或者c1_fifo_adc的数据位宽都是各自对应的 SDRAM内存条和SDRAM内存颗粒数据位宽的8倍,满足SDRAM内存条和SDRAM内存颗粒输入的数据位宽要求,为了保证数据、命令和地址是对齐送入 两个异步fifo,将c0_fifo_adc对应的512bit数据和32bit地地址和命令同时送入 c0_fifo_ad,将c1_fifo_adc对应的256bit数据和32bit地地址和命令同时送入 c1_fifo_ad,两个异步fifo同时共用同一个写使能,不管读写过程都是读写地址 模块每四个时钟产生读写地址有效使能,使能和数据是对应产生的,保证了数 据和有效使能的对齐。对于多位宽的数据处理本次跨时钟域设计采用异步fifo 实现,图中的c0_fifo_adc和c1_fifo_adc作为跨时钟域处理fifo,由于DDR3内 存条或颗粒在读写数据时存在定时刷新和预充电等操作,则写入过程也不是一 直连续的,那么内存条与颗粒写入数据的时刻也就不一样,所以需要构建两组 FIFO来分别转换各自所需要的地址和数据。从写地址模块出来的数据、地址和 命令经过数据组合后会被一起送进c0_fifo_ad和c1_fifo_ad,将数据和命令地址 都进行跨时钟域处理,确保地址数据是对齐的,在跨时钟域处理中,数据、地 址需要从312.5MHz转换到100MHz的时钟,读写时钟对比会发现写时钟快于读 时钟,由于ADC采集数据在开启采集后是持续有效的,这样会照成数据写满fifo 溢出,照成数据点丢失,丢掉有效的采集数据,但是由于写数据和写地址有效 使能都是每两个时钟产生一次,这个写地址有效使能作为连个跨时钟域fifo的 写使能,则c0_fifo_adc和c1_fifo_adc实际有效的写时钟为312.4MHz/2=156.25MHz,是慢于读时钟的,所以不会造成fifo的堵塞,故两个fifo 的深度设为1024即可满足要求。
S6、读地址和读指令的产生
当用户读取存入在内存颗粒和内存条的数据时,系统先进入读模式,然后 根据8个写地址产生出对应的8个读地址,同时产生一个读地址使能 syn_en_addr_rd和读取数据指令;
S7、读地址和读指令的时钟域转换
将读地址和读指令一起送入跨时钟域模块,在跨时钟域模块中采用两组异 步FIFO将读地址和读命令经过跨时钟域转换后发送给内存颗粒和内存条
在读模式下,将读地址使能syn_en_addr_rd作为跨时钟域c0_fifo_adc和 c1_fifo_adc的读数据使能,读时钟设置为312.5M;
作为跨时钟c0_fifo_adc和c1_fifo_adc的写数据使能,写时钟设置为 312.5MHz。读使能采用接口反接的技术,将读使能设置为fifo的非空信号和MIG 的接口空闲标志相与,读时钟设置为100MHz;
S8、内存颗粒和内存条响应读命令,读取中数据并通过FIFO同步转换
设置两组异步FIFO,记为c0_rd_ddr_fifo和c1_rd_ddr_fifo;其中, c0_rd_ddr_fifo写入数据和读出数据的位宽为512bit,c1_rd_ddr_fifo写入数据和 读出数据的位宽为128bit;两组异步FIFO的写入时钟设置为各自MIG的读取时 钟,即c0_ui_clk和c1_ui_clk;两组异步FIFO的写使能分别采用从两组MIG核 送出数据的数据有效位;两组异步FIFO的读使能运用同一个读使能,均为两组 异步FIFO非空相与再取反;
内存颗粒和内存条响应读命令,从内存颗粒和内存条中读取数据,再通过 c0_rd_ddr_fifo和c1_rd_ddr_fifo输出,然后将两组异步FIFO的输出数据进行拼 合,其中,c0_rd_ddr_fifo的512bit数据放低位,c1_rd_ddr_fifo的128bit数据放 高位;最后将拼合好的数据送入到读时钟为312.5MHZ的异步FIFO中,然后将 此异步FIFO的输出数据进行抽点处理后发送到处理板;
在本实施例中,在大容量存储模块设计中,采用DDR3 SDRAM内存条 +DDR3 SDRASM颗粒对数据并行存储,但是由于SDRAM存储器预充电等操 作,MIG核用户接口的有效信号app_rdy信号不可能一直有效,根据MIG核时 序要求可知,两组存储器的用户接口不是同时对内存控制模块发送的地址命令 进行操作的,所以不管对SDRAM进行写还是读操作,两组存储器对应的数据 都是不同步的,需要对两组SDRAM存储器写入和读出的数据进行同步处理。 多存储器并行存储同步模块设计如图5所示,在跨时钟域模块已经仔细介绍过 两个异步fifo c0_fifo_adc和c1_fifo_adc的读写控制,在对SDRAM内存条和 SDRAM内存颗粒进行写操作的过程中,采样数据在通过异步fifo转换时,在数 据写入C0和C1的过程中,是共用同一个写使能,而且是对同一个数据高位低 位拆分存储送进两个异步fifo的,所以在写入fifo的过程中,两个fifo的数据是 同步的,但是由于两组存储器的预充电时间不一样,则c0_app_rdy和c0_app_rdy 无效的时间也不一样,根据跨时钟域模块介绍的异步fifo读使能的控制可知, 数据从c0_fifo_adc和c1_fifo_adc读出的时间也不一样,但是数据在存入两组 MIG核时是对应的同一组地址,只要在数据读出MIG核是根据正确的地址进行 重组即可,所以在写入过程的同步只需要正确控制两组异步fifo的读使能即可。
数据从SDRAM存储模组读出的过程中,数据也是分别从SDRAM内存条 内应的MIG核c0和SDRAM内存颗粒对应的MIG核c1读出,从MIG核模组 输出的数据会送入深存储控制模块进行处理,和数据写入过程相似的是SDRAM 的预充电操作同样会导致从SDRAM内存条和SDRAM内存颗粒读出来的数据 也是不同时的,和写操作对应,从c0读出的数据位宽是512bit,从c1读出的数 据位宽是128bit,写操作时对12bit的高分辨采样点进行了拆分存储,高八位送 入c0核,低两位送进c1核,所以在数据读出过程中也要对数据重新拼合,但是由于c0和c1核接口输出数据的时间不同步,过需要对数据同步后再进行拼合处 理。本次项目采取两个异步fifo对两组数据进行同步接收,如图5所示,数据 从MIG核模组输出后,对内存条对应的数据流采用c0_rd_ddr进行接收,对内 存颗粒对应的数据流采用c1_rd_ddr进行接收,由于此次异步fifo的作用只是对 数据进行缓存然后同步输出,不涉及位宽的转换,所以两组异步fifo c0_rd_ddr 和c1_rd_ddr均使用100MHz时钟,写时钟接口采用各自内核的时钟,由于MIG 存在app_rdy信号无效的时间,为了保证送入c0_rd_ddr和ca_rd_ddr的数据是 有效的,所以两个fifo的写使能分别采用从两组MIG核送出数据的数据有效位,对fifo的读使能设计是保证此次数据同步的关键,由于两组fifo没有涉及位宽的 转换,输入位宽和输出位宽相等,所以设计重点在于在两组fifo的时钟和读使 能进行设计,本次两组fifo的读时钟采用同一个时钟,在设计中采用的c0_rd_ddr 对应的100MHz读时钟,读使能由两组fifo的编程空信号共同配置,采用两组 fifo都不是编程空时才开启读使能,两个fifo共用同一个读时钟,同一个读使能 保证了数据的同时读出。
S9、多FPGA的多核数据同步储存
处理板统一产生写使能,并发送给各个深存储模块,各个深存储模块在写 使能下实现数据同步储存。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的 技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本 技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的 本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明 创造均在保护之列。

Claims (1)

1.一种多核组合式大容量数据同步存储方法,其特征在于,包括以下步骤:
(1)、数据采集
将采样率为20GSPS、垂直分辨率为10bit的高速高精度数据同时输入至采集系统的每一片ADC并对其采样,每一片ADC分4路输出采样数据,其中,每路采样数据的时钟为625MHz,采样率为5GSPS以及垂直分辨率为10bit,并以双沿数据传输方式传输输入至FPGA;
(2)、利用数据接收模块降速
FPGA中的数据接收模块接收到采样数据,并进行解串处理,使采样数据的传输时钟降至为315MHz,数据位宽为160bit,然后再输入至抽点模块;
(3)、深度存储控制模块控制抽点后的数据存储
利用抽点模块先对降速后的采样数据进行抽点,再将抽点后的数据送到深存储模块的写地址模块,将160bit的数据缓存4个时钟,再将四个时钟的数据位拼接成640bit位宽的采样数据;
(4)、写地址和写指令的产生
根据4个时钟产生640bit的数据,每4个时钟需要产生8个写地址,同时每4个时钟产生一个写地址使能syn_en_addr_wr和写入数据指令;
(5)、采样数据、写地址和写指令的时钟域转换
将640bit位宽的采样数据,32bit的写地址和写入数据指令一起送入跨时钟域模块,在跨时钟域模块中采用两组异步FIFO分别对写入内存条和内存颗粒的数据进行时钟域的转换;
其中,内存条和内存颗粒的跨时钟域记为c0_fifo_adc和c1_fifo_adc,在写模式下,将写地址使能syn_en_addr_wr作为跨时钟域c0_fifo_adc和c1_fifo_adc的写数据使能,将写时钟设置为312.5MHz;将读使能设置为各自FIFO的非空信号和各自MIG的接口的空闲标志以及各自FIFO接收写入数据的有效信号相与,读时钟设置为100MHz;
具体具体转换过程为:对写入跨时钟域c0_fifo_adc的数据,取每10bit数据的高八位,一共512bit的采样数据点,同写地址和写入数据指令共32bit对齐后组成544bit数据作为写入数据写入c0_fifo_adc;对写入跨时钟域c1_fifo_adc的数据,取每10bit数据点的低2位,共128bit数据点,同地址和命令共32bit对齐后组成160bit数据作为写入数据写入c1_fifo_adc;两组异步FIFO的输出数据分别发送给内存条和内存颗粒并写入,实现写入数据的时钟域转换;
(6)、读地址和读指令的产生
当用户读取存入在内存颗粒和内存条的数据时,系统先进入读模式,然后根据8个写地址产生出对应的8个读地址,同时产生一个读地址使能syn_en_addr_rd和读取数据指令;
(7)、读地址和读指令的时钟域转换
将读地址和读指令一起送入跨时钟域模块,在跨时钟域模块中采用两组异步FIFO将读地址和读命令经过跨时钟域转换后发送给内存颗粒和内存条
在读模式下,将读地址使能syn_en_addr_rd作为跨时钟域c0_fifo_adc和c1_fifo_adc的读数据使能,读时钟设置为312.5M;
作为跨时钟c0_fifo_adc和c1_fifo_adc的写数据使能,写时钟设置为312.5MHz;读使能采用接口反接的技术,将读使能设置为fifo的非空信号和MIG的接口空闲标志相与,读时钟设置为100MHz;
(8)、内存颗粒和内存条响应读命令,读取中数据并通过FIFO同步转换
设置两组异步FIFO,记为c0_rd_ddr_fifo和c1_rd_ddr_fifo;其中,c0_rd_ddr_fifo写入数据和读出数据的位宽为512bit,c1_rd_ddr_fifo写入数据和读出数据的位宽为128bit;两组异步FIFO的写入时钟设置为各自MIG的读取时钟,即c0_ui_clk和c1_ui_clk;两组异步FIFO的写使能分别采用从两组MIG核送出数据的数据有效位;两组异步FIFO的读使能运用同一个读使能,均为两组异步FIFO非空相与再取反;
内存颗粒和内存条响应读命令,从内存颗粒和内存条中读取数据,再通过c0_rd_ddr_fifo和c1_rd_ddr_fifo输出,然后将两组异步FIFO的输出数据进行拼合,其中,c0_rd_ddr_fifo的512bit数据放低位,c1_rd_ddr_fifo的128bit数据放高位;最后将拼合好的数据送入到读时钟为312.5MHZ的异步FIFO中,然后将此异步FIFO的输出数据进行抽点处理后发送到处理板;
(9)、多FPGA的多核数据同步储存
处理板统一产生写使能,并发送给各个深存储模块,各个深存储模块在写使能下实现数据同步储存。
CN202010748797.9A 2020-07-30 2020-07-30 一种多核组合式大容量数据同步存储方法 Active CN111966628B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010748797.9A CN111966628B (zh) 2020-07-30 2020-07-30 一种多核组合式大容量数据同步存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010748797.9A CN111966628B (zh) 2020-07-30 2020-07-30 一种多核组合式大容量数据同步存储方法

Publications (2)

Publication Number Publication Date
CN111966628A CN111966628A (zh) 2020-11-20
CN111966628B true CN111966628B (zh) 2023-04-18

Family

ID=73362258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010748797.9A Active CN111966628B (zh) 2020-07-30 2020-07-30 一种多核组合式大容量数据同步存储方法

Country Status (1)

Country Link
CN (1) CN111966628B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113109613A (zh) * 2021-03-17 2021-07-13 电子科技大学 兼容多种数据采集模式的示波功率分析仪
CN117573044B (zh) * 2024-01-18 2024-04-30 西安智多晶微电子有限公司 一种拼接实现扩展ddrc位宽的方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103179385A (zh) * 2013-03-29 2013-06-26 苏州皓泰视频技术有限公司 一种基于多核处理器的可扩展nvr系统
CN103592489A (zh) * 2013-11-14 2014-02-19 江苏绿扬电子仪器集团有限公司 数字示波器深存储设计方法
CN105224482A (zh) * 2015-10-16 2016-01-06 浪潮(北京)电子信息产业有限公司 一种fpga加速卡高速存储系统
CN105653476A (zh) * 2014-11-12 2016-06-08 华为技术有限公司 一种数据处理器件与内存设备的通信方法及相关装置
CN107133407A (zh) * 2017-05-11 2017-09-05 成都欧飞凌通讯技术有限公司 一种高带宽下提高ddr ram接口带宽的fpga实现方法
CN107133011A (zh) * 2017-04-25 2017-09-05 电子科技大学 一种示波记录仪的多通道数据存储方法
CN108303935A (zh) * 2018-04-08 2018-07-20 北京强度环境研究所 一种基于多核SoC处理器的振动控制器
CN109741774A (zh) * 2018-11-23 2019-05-10 成都汇蓉国科微系统技术有限公司 一种基于fpga片上ram模拟实现ddr3突发的控制器以及方法
CN109739784A (zh) * 2019-01-08 2019-05-10 郑州云海信息技术有限公司 一种数据处理方法、装置、系统及fpga加速卡
CN110941583A (zh) * 2019-12-10 2020-03-31 云南大学 一种基于fpga的usb3.0数据传输系统控制方法
CN111367495A (zh) * 2020-03-06 2020-07-03 电子科技大学 一种异步先入先出的数据缓存控制器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103179385A (zh) * 2013-03-29 2013-06-26 苏州皓泰视频技术有限公司 一种基于多核处理器的可扩展nvr系统
CN103592489A (zh) * 2013-11-14 2014-02-19 江苏绿扬电子仪器集团有限公司 数字示波器深存储设计方法
CN105653476A (zh) * 2014-11-12 2016-06-08 华为技术有限公司 一种数据处理器件与内存设备的通信方法及相关装置
CN105224482A (zh) * 2015-10-16 2016-01-06 浪潮(北京)电子信息产业有限公司 一种fpga加速卡高速存储系统
CN107133011A (zh) * 2017-04-25 2017-09-05 电子科技大学 一种示波记录仪的多通道数据存储方法
CN107133407A (zh) * 2017-05-11 2017-09-05 成都欧飞凌通讯技术有限公司 一种高带宽下提高ddr ram接口带宽的fpga实现方法
CN108303935A (zh) * 2018-04-08 2018-07-20 北京强度环境研究所 一种基于多核SoC处理器的振动控制器
CN109741774A (zh) * 2018-11-23 2019-05-10 成都汇蓉国科微系统技术有限公司 一种基于fpga片上ram模拟实现ddr3突发的控制器以及方法
CN109739784A (zh) * 2019-01-08 2019-05-10 郑州云海信息技术有限公司 一种数据处理方法、装置、系统及fpga加速卡
CN110941583A (zh) * 2019-12-10 2020-03-31 云南大学 一种基于fpga的usb3.0数据传输系统控制方法
CN111367495A (zh) * 2020-03-06 2020-07-03 电子科技大学 一种异步先入先出的数据缓存控制器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Fenxian Tian等. Design and Implementation of USB3.0 Data Transmission System based on FPGA.《 Proceedings of the 3rd International Conference on Computer Engineering, Information Science &amp Application Technology (ICCIA 2019)》.2019,88-94. *
Myeongsu Kang等.An FPGA-based multicore system for real-time bearing fault diagnosis using ultrasampling rate AE signals.《IEEE Transactions on Industrial Electronics》.2014,2319 - 2329. *
孙冬雪;王竹刚;.基于DDR3 SDRAM的大容量异步FIFO缓存系统的设计与实现.电子设计工程.2018,(09),145-148+152. *
王红兵;强景;周珍龙;.Xilinx MIG IP核的研究及大容量数据缓冲区的实现.电子产品世界.2016,(08),50-51+54-55. *

Also Published As

Publication number Publication date
CN111966628A (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
US8185711B2 (en) Memory module, a memory system including a memory controller and a memory module and methods thereof
CN113553277B (zh) 一种ddr5 sdram的高吞吐率、低延迟phy接口电路装置
CN105468547B (zh) 一种基于axi总线的便捷可配置帧数据存取控制系统
CN102981776B (zh) 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法
CN102543162B (zh) 微线程存储器
KR100695435B1 (ko) 반도체 메모리 소자
CN111966628B (zh) 一种多核组合式大容量数据同步存储方法
US20050044304A1 (en) Method and system for capturing and bypassing memory transactions in a hub-based memory system
CN110569204B (zh) 基于fpga和ddr3 sdram的可配置图像数据缓存系统
JP2015053063A (ja) ホストコンピュータシステムとメモリとの間の通信方法およびメモリ
CN108038068B (zh) 一种基于ddr读数据同步方法及系统
US20080074936A1 (en) Read operation of multi-port memory device
CN209842608U (zh) 一种基于fpga fifo模块的ddr3存储器控制
CN104978150B (zh) 存储器装置的控制方法、存储器装置和存储器系统
JP2008077813A (ja) マルチポートメモリ装置
US8593902B2 (en) Controller and access method for DDR PSRAM and operating method thereof
CN101825997A (zh) 一种异步先入先出存储器
CN102789424B (zh) 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器
CN113220616B (zh) 一种基于fpga的从sdram到mram的接口转换系统及方法
JP2001067871A (ja) 半導体メモリ装置及びライトデータマスキング方法
CN102654852A (zh) 一种异步数据读写控制方法、装置及系统
CN113641625A (zh) 一种基于fpga的四路并行数据处理转置系统
CN108667628B (zh) 一种接口转换装置和接口转换方法
US20020199055A1 (en) Method of operating a memory device having decoupled address and data access
CN116431539A (zh) 一种基于fdma ddr存储器读写设计

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