CN106776374B - 一种基于fpga的高效数据缓冲方法 - Google Patents
一种基于fpga的高效数据缓冲方法 Download PDFInfo
- Publication number
- CN106776374B CN106776374B CN201710049005.7A CN201710049005A CN106776374B CN 106776374 B CN106776374 B CN 106776374B CN 201710049005 A CN201710049005 A CN 201710049005A CN 106776374 B CN106776374 B CN 106776374B
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- storage unit
- fpga
- header
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA的高效数据缓冲方法,将检测合格的数据和帧头地址分离存储,数据存储于第一存储单元,帧头地址存储于第二存储单元,第二存储单元将存储信息提供给CPU,CPU可以根据自身负荷选择性获取帧头地址对应的数据,从而实现FPGA缓冲区的动态分配,提高FPGA缓冲区的利用率,在FPGA缓冲区中存储多帧完整的数据,进而使CPU有选择的获取数据,避免CPU对无效数据的读取导致数据缓冲效率低下的问题。
Description
技术领域
本发明涉及安全级数字化控制技术领域,具体涉及一种基于FPGA的高效数据缓冲方法。
背景技术
基于FPGA的数据缓冲区是基于CPU+FPGA架构系统一个重要组成部分,主要用于CPU与外设的数据缓冲。外部数据进入FPGA后,FPGA按照帧格式检测并接收数据,接收到一帧完整的数据后通知CPU读取,缓冲区的长度必须按照帧格式允许的最大长度,当帧长度小于最大长度时缓冲区的利用率将降低。在CPU+FPGA的架构中,FPGA接收数据的周期与CPU的查询周期存在偏差,一般都需要FPGA具备2帧以上的数据缓冲能力。
对于CPU+FPGA架构系统的FPGA数据缓冲区管理。目前,较为普遍的是采用以乒乓操作的方法。通过乒乓操作可以保证一帧数据的完整,但空间利用率较低、只能保证缓冲区中有一帧数据是完整的。
发明内容
本发明所要解决的技术问题是FPGA的高效数据缓冲,目的在于提供一种基于FPGA的高效数据缓冲方法,实现FPGA缓冲区的动态分配,提高缓冲区的利用率,在缓冲区中存储多帧完整的数据,从而使CPU有选择的获取数据。
本发明通过下述技术方案实现:
一种基于FPGA的高效数据缓冲方法,包括如下步骤:
A、对输入数据进行帧格式检测,具体包括帧头有效性检测、帧尾有效性检测和帧格式校验;
B、当帧头、帧尾检测有效时,将输入数据存储至第一存储单元;同时,记录存储帧头地址,并将帧头地址写入第二存储单元;
C、CPU获取第二存储单元存储的所有帧头地址,选择帧头地址,读取第一存储单元存储的所选帧头地址对应的数据。
特别地,所述步骤C还包括CPU获取第二存储单元状态数据,所述第二存储单元状态数据包括第二存储单元的空、满信号以及存储的帧头地址个数。
特别地,所述步骤B中当帧头、帧尾检测有效时,将输入数据存储至第一存储单元包括对于每一帧数据,当帧头检测有效时,开始将输入数据存储至第一存储单元,直至检测到帧尾检测有效时,结束存储。
特别地,所述步骤B中记录存储帧头地址,并将帧头地址写入第二存储单元包括对于每一帧数据,当帧头检测有效时,记录当前存储帧头地址,当帧尾检测有效时,将帧头地址写入第二存储单元。
特别地,所述步骤B还包括对于相邻两帧数据,丢弃前一帧帧尾与下一帧帧头之间的数据。
特别地,所述第一存储单元采用RAM。
特别地,所述第二存储单元采用FIFO存储器。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明所述一种基于FPGA的高效数据缓冲方法,可以实现FPGA缓冲区的动态分配,提高FPGA缓冲区的利用率,在FPGA缓冲区中存储多帧完整的数据,从而使CPU有选择的获取数据,避免CPU对无效数据的读取导致数据缓冲效率低下的问题。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例1提供的一种基于FPGA的高效数据缓冲方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1所示,图1为本发明实施例1提供的一种基于FPGA的高效数据缓冲方法流程图。
本实施例中,一种基于FPGA的高效数据缓冲方法具体包括:
S1、对输入数据进行帧格式检测,具体包括帧头有效性检测、帧尾有效性检测和帧格式校验;
数据传输的单位称为帧,帧由几个部分组成,不同部分执行不同的功能,具体包括帧头、数据部分和帧尾,其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含传输的数据。
FPGA的数据缓冲区主要用于CPU与外设的数据缓冲,外部数据输入FPGA后,FPGA按照帧格式接收数据,并对接收的数据进行检测,对于每帧输入数据检测其帧头有效性、帧尾有效性和帧格式校验,所述帧头有效性检测、帧尾有效性检测以及帧格式校验均为现有技术。当检测到有效的帧头,时给出帧头有效标识;检测到帧尾时,给出帧尾有效标识;并检验该帧是否符合帧格式。
S2、当帧头、帧尾检测有效时,将输入数据存储至第一存储单元;同时,记录存储帧头地址,并将帧头地址写入第二存储单元;
对于当前帧,当帧头检测有效时,开始将输入数据存储至第一存储单元,直至检测到帧尾检测有效时,结束存储。当帧头或帧尾检测无效或帧格式校验错误时,认定当前帧为无效数据,放弃存储。同时,对于相邻两帧数据,前一帧帧尾与下一帧帧头之间的数据也被认为是无效数据,放弃存储。所述输入数据存储方式为循环存储,FPGA复位释放后从第一存储单元的地址0开始写入,每写入一帧数据写地址增加1,当写地址达到第一存储单元的最大地址后地址又从0开始,以此循环。
当帧头检测有效时,记录当前存储帧头地址,当帧尾检测有效时,将帧头地址写入第二存储单元,并将存储帧头地址的第二存储单元相关的空、满信号以及存储的帧头地址个数作为第二存储单元状态数据供CPU查询。
S3、CPU获取第二存储单元存储的所有帧头地址,选择帧头地址,读取第一存储单元存储的所选帧头地址对应的数据。
CPU获取第二存储单元存储的所有帧头地址,选择帧头地址,读取第一存储单元存储的所选帧头地址对应的数据,如此CPU可以根据自身负荷选择性的读取数据。通常情况下,CPU按照帧头地址存储的时间顺序,选择最新存储的帧头地址进行读取,但实际CPU可根据自身需要选择任一帧头地址进行读取。同时,CPU还获取第二存储单元状态数据,所述第二存储单元状态数据包括第二存储单元的空、满信号以及存储的帧头地址个数。
所述FPGA缓冲区包括读写控制模块、帧格式检测模块、第一存储器单元和第二存储单元,帧格式检测模块用于帧头、帧尾和帧格式检测,第一存储单元用于存储数据,第二存储单元用于存储帧头地址,读写控制模块用于根据帧格式检测结果进行CPU、第一存储单元、第二存储到单元之间的读写操作。
目前,对于CPU+FPGA架构系统的FPGA数据缓冲区管理普遍采用乒乓操作的方法。所述乒乓操作具体指输入数据流通过“输入数据选择单元”将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,双口RAM(DPRAM)、单口RAM(SPRAM)、FIFO等。在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1”;在第2个缓冲周期,通过“输入数据选择单元”的切换,将输入的数据流缓存到“数据缓冲模块2”,同时将“数据缓冲模块1”缓存的第1个周期数据通过“输出数据选择单元”的选择,送到“数据流运算处理模块”进行运算处理;在第3个缓冲周期通过“输入数据选择单元”的再次切换,将输入的数据流缓存到“数据缓冲模块1”,同时将“数据缓冲模块2”缓存的第2个周期的数据通过“输出数据选择单元”切换,送到“数据流运算处理模块”进行运算处理,如此循环。
本发明的技术方案与现有技术的区别在于本发明将检测合格的数据和帧头地址分离存储,数据存储于第一存储单元,帧头地址存储于第二存储单元,第二存储单元将存储信息提供给CPU,CPU根据自身负荷选择性获取帧头地址对应的数据,从而实现FPGA缓冲区的动态分配,提高FPGA缓冲区的利用率,在FPGA缓冲区中存储多帧完整的数据,进而使CPU有选择的获取数据,避免CPU对无效数据的读取导致数据缓冲效率低下的问题。
本实施例的优选实施方式为所述第一存储单元采用RAM。
本实施例的优选实施方式为所述第二存储单元采用FIFO存储器。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于FPGA的高效数据缓冲方法,其特征在于,包括如下步骤:
A、对输入数据进行帧格式检测,具体包括帧头有效性检测、帧尾有效性检测和帧格式校验;
B、当帧头、帧尾检测有效时,将输入数据存储至第一存储单元;同时,记录存储帧头地址,并将帧头地址写入第二存储单元;
C、CPU获取第二存储单元存储的所有帧头地址,选择帧头地址,读取第一存储单元存储的所选帧头地址对应的数据。
2.根据权利要求1所述的基于FPGA的高效数据缓冲方法,其特征在于,所述步骤C还包括CPU获取第二存储单元状态数据,所述第二存储单元状态数据包括第二存储单元的空、满信号以及存储的帧头地址个数。
3.根据权利要求1所述的基于FPGA的高效数据缓冲方法,其特征在于,所述步骤B中当帧头、帧尾检测有效时,将输入数据存储至第一存储单元包括对于每一帧数据,当帧头检测有效时,开始将输入数据存储至第一存储单元,直至检测到帧尾检测有效时,结束存储。
4.根据权利要求1所述的基于FPGA的高效数据缓冲方法,其特征在于,所述步骤B中记录存储帧头地址,并将帧头地址写入第二存储单元包括对于每一帧数据,当帧头检测有效时,记录当前存储帧头地址,当帧尾检测有效时,将帧头地址写入第二存储单元。
5.根据权利要求1所述的基于FPGA的高效数据缓冲方法,其特征在于,所述步骤B还包括对于相邻两帧数据,丢弃前一帧帧尾与下一帧帧头之间的数据。
6.根据权利要求1所述的基于FPGA的高效数据缓冲方法,其特征在于,所述第一存储单元采用RAM。
7.根据权利要求1所述的基于FPGA的高效数据缓冲方法,其特征在于,所述第二存储单元采用FIFO存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710049005.7A CN106776374B (zh) | 2017-01-23 | 2017-01-23 | 一种基于fpga的高效数据缓冲方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710049005.7A CN106776374B (zh) | 2017-01-23 | 2017-01-23 | 一种基于fpga的高效数据缓冲方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776374A CN106776374A (zh) | 2017-05-31 |
CN106776374B true CN106776374B (zh) | 2021-04-13 |
Family
ID=58942648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710049005.7A Active CN106776374B (zh) | 2017-01-23 | 2017-01-23 | 一种基于fpga的高效数据缓冲方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776374B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073546A (zh) * | 2017-12-27 | 2018-05-25 | 西安奇维科技有限公司 | 一种基于fpga实现网络数据接收及读取控制方法 |
CN112118144B (zh) * | 2019-06-19 | 2022-04-29 | 烽火通信科技股份有限公司 | 一种以太网数据帧输出方法及系统 |
CN117475360B (zh) * | 2023-12-27 | 2024-03-26 | 南京纳实医学科技有限公司 | 基于改进型mlstm-fcn的音视频特点的生物特征提取与分析方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164095A (zh) * | 2011-05-31 | 2011-08-24 | 西安空间无线电技术研究所 | 一种星上交换模块的数据报分段与重组系统及实现方法 |
CN105634988A (zh) * | 2015-12-30 | 2016-06-01 | 瑞斯康达科技发展股份有限公司 | 一种抖动缓存处理方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001218163A (ja) * | 2000-01-31 | 2001-08-10 | Sony Corp | データ受信装置及び方法 |
JP4535047B2 (ja) * | 2006-09-06 | 2010-09-01 | ソニー株式会社 | 画像データ処理方法、画像データ処理方法のプログラム、画像データ処理方法のプログラムを記録した記録媒体及び画像データ処理装置 |
CN102547184A (zh) * | 2011-11-01 | 2012-07-04 | 大连捷成实业发展有限公司 | 一种视频动态标识信息的显示方法及系统 |
CN102629235B (zh) * | 2012-03-01 | 2017-09-19 | 重庆中天重邮通信技术有限公司 | 一种提高ddr存储器读写速率的方法 |
CN102915281B (zh) * | 2012-09-12 | 2015-07-08 | 北京空间飞行器总体设计部 | 一种高可靠的航天器帧格式数据队列缓存系统及缓存方法 |
CN104199783B (zh) * | 2014-09-15 | 2017-06-20 | 烽火通信科技股份有限公司 | Fpga内以太网数据帧的缓存与转发的方法及装置 |
CN104317735A (zh) * | 2014-09-24 | 2015-01-28 | 北京云巢动脉科技有限公司 | 大容量缓存及数据存储和读取、内存分配和回收的方法 |
-
2017
- 2017-01-23 CN CN201710049005.7A patent/CN106776374B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164095A (zh) * | 2011-05-31 | 2011-08-24 | 西安空间无线电技术研究所 | 一种星上交换模块的数据报分段与重组系统及实现方法 |
CN105634988A (zh) * | 2015-12-30 | 2016-06-01 | 瑞斯康达科技发展股份有限公司 | 一种抖动缓存处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
A memory addressing and access design for real time volume rendering;M. Doggett 等;《1999 IEEE International Symposium on Circuits and Systems (ISCAS)》;20020806;第344-347页 * |
FPGA_DSP异构视频处理系统中基于SRIO的数据高效传输方法;姜宏旭 等;《计算机学报》;20150630;第38卷(第6期);第1119-1129页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106776374A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733344B (zh) | 数据读写方法、装置以及环形队列 | |
CN111400205B (zh) | 一种先进先出地址轮询缓存读写方法、系统及装置 | |
CN106776374B (zh) | 一种基于fpga的高效数据缓冲方法 | |
US9026746B2 (en) | Signal control device and signal control method | |
US20110320647A1 (en) | Skip based control logic for first in first out buffer | |
CN107783727B (zh) | 一种内存设备的访问方法、装置和系统 | |
US11425057B2 (en) | Packet processing | |
CN114286035B (zh) | 图像采集卡、图像采集方法及图像采集系统 | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN109803065B (zh) | 一种数据处理方法及系统 | |
CN114466196B (zh) | 视频数据处理方法、系统、装置及计算机可读存储介质 | |
KR20230025858A (ko) | 통신 장치 및 통신 시스템 | |
CN110636219B (zh) | 一种视频数据流的传输方法及装置 | |
JP2007164355A (ja) | 不揮発性記憶装置、そのデータ読出方法及びそのデータ書込み方法 | |
US20050210163A1 (en) | Memory control apparatus | |
CN112637602B (zh) | 一种jpeg接口及数字图像处理系统 | |
CN111279313A (zh) | Fpga芯片和具有该fpga芯片的电子设备 | |
US9723231B2 (en) | Image data processing apparatus and method therefor for pixel data | |
CN112292660B (zh) | 一种调度存储器中数据的方法、数据调度设备及系统 | |
US9965183B2 (en) | Method for processing data in storage device and storage device | |
CN106897021A (zh) | 一种读写数据的方法和装置 | |
CN108614667B (zh) | 可配置广播els数据帧上电自动加载电路及方法 | |
CN112882657B (zh) | 数据读取方法及装置、存储介质、电子装置 | |
CN115022671B (zh) | 多进程视频输出方法、云端、终端、电子设备及存储介质 | |
CN212873459U (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201223 Address after: No.3, Hongda South Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Applicant after: CHINA NUCLEAR CONTROL SYSTEM ENGINEERING Co.,Ltd. Address before: 610000, No. three, 28 south section of Ring Road, Chengdu, Sichuan Applicant before: NUCLEAR POWER INSTITUTE OF CHINA |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |