CN105117353A - 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 - Google Patents
带有通用数据交互模块的fpga及采用该fpga的信息处理系统 Download PDFInfo
- Publication number
- CN105117353A CN105117353A CN201510364618.0A CN201510364618A CN105117353A CN 105117353 A CN105117353 A CN 105117353A CN 201510364618 A CN201510364618 A CN 201510364618A CN 105117353 A CN105117353 A CN 105117353A
- Authority
- CN
- China
- Prior art keywords
- data
- processing module
- module
- fpga
- packet
- 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.)
- Granted
Links
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
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及采用该FPGA的信息处理系统,属于FPGA内部数据处理以及通讯技术领域。本发明通过在FPGA内部设计一个通用数据交互模块,通过该模块将传输给FPGA内新增的数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU,通过该通用数据交互模块FPGA能够便捷、通用、可靠的在其已有工程之上添加新的数据处理模块(也可叫做元件模块),降低了新增数据处理模块对fpga原有功能和性能的影响。
Description
技术领域
本发明涉及一种带有通用数据交互模块的FPGA及采用该FPGA的信息处理系统,属于FPGA内部数据处理以及通讯技术领域。
背景技术
目前的嵌入式系统一般都是cpu加FPGA的架构,CPU实现算法比较复杂的功能模块,FPGA实时性要求较高的功能模块,二者相互配合,达到整个嵌入式系统的最优设计。不可避免的,CPU和FPGA需要数据的交互,CPU和FPGA之间的数据交互有总线方式、pcie等各种通讯方式,FPGA内部需要实现通讯模块支持相应的通讯模式。
FPGA需要增加新的数据处理模块(元件)的时候,都需要重新设计新增元件和现有通讯模块之间的接口,而且根据新增元件处理数据的不同,接口可能是各种各样的。这样不利于模块化的设计、不利于重用,而且增加多个元件的时候会对原FPGA工程的性能和时序特性造成不良的影响。
发明内容
本发明的目的是提供一种带有通用数据交互模块的FPGA及采用该FPGA的信息处理系统,以在FPGA已有工程之上便捷、通用、可靠的添加新的数据处理模块。
本发明为解决上述技术问题而提供一种带有通用数据交互模块的FPGA,该FPGA包括依次通信连接的数据通讯处理模块、通用数据交互模块和至少一个数据处理模块,所述数据通讯处理模块用于接收CPU原始数据并对其进行处理并将处理结果返回给CPU;所述通用数据交互模块用于将传输给FPGA内部新增数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU,所述数据处理模块用于处理通用数据交互模块所发送的数据通讯处理模块无法处理的数据。
所述的通用数据交互模块包括依次通信连接的数据分析处理模块、数据交互存储区和数据处理模块通用接口,
所述数据分析处理模块用于将接收到的原始数据打包成统一的数据帧;
所述数据交互存储区包括用于存储数据分析处理模块打包后得到数据帧的原始数据区和用于存储信息处理模块处理结果的结果数据区;
所述数据处理模块通用接口能够与FPGA内部新增的数据处理模块进行信息交互,用于将数据分析处理模块打包的CPU数据交给相应的数据处理模块,同时将数据处理模块的计算结果按照协议格式放入数据交互存储区中的结果数据区。
所述数据包的帧结构包括数据头部结构和有效数据结构,数据头部结构包括数据包有效标志位、数据状态信息位、数据控制信息位和数据包有效数据长度位。
所述数据包帧结构的有效标志位必须在本包数据信息全部写入数据交互存储区之后才能被写入数据交互存储区数据包头部的相应位置。
所述数据交互存储区的数据包数据被全部读取之后,将该数据包的有效标志置0,以避免同时对同一个数据包进行读写操作。
本发明还提供了一种信息处理系统,包括通信连接的CPU和FPGA,所述FPGA包括依次通信连接的数据通讯处理模块、通用数据交互模块和至少一个数据处理模块,所述数据通讯处理模块用于接收CPU原始数据并对其进行处理并将处理结果返回给CPU;所述通用数据交互模块用于将传输给FPGA内部新增数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU,所述数据处理模块用于处理通用数据交互模块所发送的数据通讯处理模块无法处理的数据。
所述的通用数据交互模块包括依次通信连接的数据分析处理模块、数据交互存储区和数据处理模块通用接口,
所述数据分析处理模块用于将接收到的原始数据打包成统一的数据帧;
所述数据交互存储区包括用于存储数据分析处理模块打包后得到数据帧的原始数据区和用于存储信息处理模块处理结果的结果数据区;
所述数据处理模块通用接口能够与FPGA内部新增的数据处理模块进行信息交互,用于将数据分析处理模块打包的CPU数据交给相应的数据处理模块,同时将数据处理模块的计算结果按照协议格式放入数据交互存储区中的结果数据区。
所述数据包的帧结构包括数据头部结构和有效数据结构,数据头部结构包括数据包有效标志位、数据状态信息位、数据控制信息位和数据包有效数据长度位。
所述数据包帧结构的有效标志位必须在本包数据信息全部写入数据交互存储区之后才能被写入数据交互存储区数据包头部的相应位置。
所述数据交互存储区的数据包数据被全部读取之后,将该数据包的有效标志置0,以避免同时对同一个数据包进行读写操作。
本发明的有益效果是:本发明通过在FPGA内部设计一个通用数据交互模块,通过该模块将传输给FPGA内新增的数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU,通过该通用数据交互模块FPGA能够便捷、通用、可靠的在其已有工程之上添加新的数据处理模块(也可叫做元件模块),降低了新增数据处理模块对fpga原有功能和性能的影响。
附图说明
图1是数据通用交互处理模块在fpga内部应用示意图;
图2是数据通用交互处理模块的结构示意图;
图3是数据通用交互处理模块的数据结构协议格式;
图4是数据通用交互处理模块的数据处理示意图;
图5是信息处理系统的数据处理流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的说明。
本发明的一种带有通用数据交互模块的FPGA的实施例
如图1所示,本发明的FPGA包括依次通信连接的数据通讯处理模块、通用数据交互模块和至少一个数据处理模块,数据通讯处理模块用于接收CPU原始数据并对其进行处理并将处理结果返回给CPU;通用数据交互模块用于将传输给数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU;数据处理模块用于处理通用数据交互模块所发送的数据通讯处理模块无法处理的数据,为FPGA新增加的模块。数据交互模块处理的数据一般都是cpu传递给fpga的数据,需要fpga内部的数据处理模块对数据进行处理,然后处理结果再传送回cpu。数据交互处理模块的实现不依赖于cpu和fpga之间的通讯方式,cpu和fpga之间可以是总线、pcie、串口、lvds等等通讯方式,本数据交互模块能够为各种通讯方式提供通用的公共接口来实现cpu数据和fpga的新增数据模块之间的数据交互。
通用数据交互模块如图2所示,包括依次通信连接的数据分析处理模块、数据交互存储区和数据处理模块通用接口。数据分析处理模块用于将接收到的原始数据打包成统一的数据帧;数据交互存储区用于按照数据交互协议的数据结构存储CPU和数据交互模块之间的交互数据,包括用于存储数据分处理模块所发送数据包的原始数据区和用于存储新增数据处理模块处理结果的结果数据区;数据处理模块通用接口用于将数据分析处理模块打包的CPU数据交给相应的数据处理模块,同时将数据处理模块的计算结果按照协议格式放入数据交互存储区。
数据交互模块所打包的数据包数据包头部和数据部分,如图3所示。数据包头部包括数据包有效标识字符(0xEB90)、数据包状态字符(16位)、数据包控制字符(16位)、数据包长度字符(16位)。数据包有效标识的作用是指示本包数据以及信息是否完整有效、存储稳定;数据状态字符指示数据包的状态信息、序号信息等等,对应不同数据数据处理模块信息可能不同;数据包控制字符包括一些cpu和元件模块的一些交互控制信息,不同数据处理模块可能不同;数据包长度表示除去数据包头部的有效数据长度(单位为字节)。数据部分就是需要传输的有效数据,长度由头部的数据包长度字给出。
本发明中数据交互模块实现了一个通用的数据交互机制,如图4所示。
首先fpga和cpu的通讯模块定义多个寄存器组,每个寄存器组都含有数据输入寄存器、数据输出寄存器、控制寄存器、状态寄存器等等;寄存器组之间除了地址不同之外,寄存器的含义都相同。这样的目的是为了给新增加的数据处理模块预留通讯空间以及提供通用的数据处理分析模块接口。
其次,对数据交互存储区数据的读写都要遵循共同的握手协议:数据包有效标志必须在本包数据信息全部写入数据存储区之后才能被写入数据存储区数据包头部的相应位置。在数据存储区的数据包数据被全部读取之后,保证把该数据包的有效标志置0;这样做的目的是为了避免同时对同一个数据包进行读写操作。
最后新增数据处理模块都必须提供一套和数据交互存储模块配套的通用接口:数据包读取接口、数据包写入接口,接口都需要满足上面提到的数据包读写握手协议。
该FPGA中数据的处理流程如图5所示,具体的过程如下:
1.新增数据处理模块
根据项目需求,为fpga增加新数据模块,系统根据增加的数据处理模块的需求,可以得到该模块所需要的数据存储空间大小,系统会给数据处理模块自动分配总线交互的寄存器地址(控制寄存器、读数据寄存器、写数据寄存器)和数据存储区空间。
2.CPU产生新增数据模块需要处理的数据,并同通过localbus总线传递给FPGA的数据通讯处理模块。
为了方便说明本发明中的数据协议和交互机制,本实施例中是以CPU和FPGA之间通讯按照总线通讯的方式为例。当CPU数据通过总线传输到FPGA的数据通讯模块时,数据分析处理模块判断该数据是否为数据处理模块需要的数据,如果是就会接收原始数据,并将原始数据打包为数据通用交互模块的通用数据协议结构,即在原始数据前面增加协议头部,四个16位的字符(0xEB90、状态字符、控制字符和原始数据长度)。
打包完成之后,数据分析处理模块将数据包写入事先给数据处理模块分配好的数据交互存储区里面的原始数据区,注意数据包的预读标志字必须在最后写入数据区(先给数据预读字预留号两个字节的空间,将状态字、原始数据长度和原始数据按顺序写入原始数据存储区,这些完成之后再将数据预读标志0xEB90写入数据包头部),数据分析处理模块保证在数据被取走之后将数据预读标志清0。
数据处理模块会一直检测原始数据区的数据预读标志,数据预读为0的时候不做处理;为0xEB90的时候读取原始数据区数据,并按照元件功能处理数据;既不为0又不是0xEB90时,说明存储区空间数据紊乱、错误。
3.数据经过本数据交互处理模块的处理之后,交给CPU的新增的数据处理模块,新增数据处理模块按照自身功能处理得到计算结果,并将该计算结果再次交给本数据交互模块:数据处理模块数据处理完成之后,在计算结果数据的头部增加协议头部,完成打包之后将数据写入对应的结果数据区,注意数据包的预读标志字0xEB90必须在数据包其他数据全部写完之后才能写入数据区相应位置。之后数据交互模块会实时的更新数据处理模块对应的状态寄存器,表明元件已经计算完成。
4.数据交互处理模块将数据结果通过总线传回给CPU。
CPU取数据之前需要判断状态寄存器里面的数据计算完成标志,有完成标志CPU启动读数读取数据处理模块的计算结果,数据分析处理模块有一个进程,会一直检测结果数据区的数据预读标志,如果预读结果为0xEB90并且CPU要求读取计算结果,将数据取出并解包,之后通过FPGA和CPU之间的数据通讯模块将有效数据传递给CPU。
本发明的一种信息处理系统的实施例
如图1所示,本实施例中的信息处理系统包括通信连接的CPU和FPGA,CPU实现算法比较复杂的功能模块,FPGA实时性要求较高的功能模块,二者相互配合,FPGA包括依次通信连接的数据通讯处理模块、通用数据交互模块和至少一个数据处理模块,数据通讯处理模块用于接收CPU原始数据并对其进行处理并将处理结果返回给CPU;通用数据交互模块用于将传输给数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU;数据处理模块用于处理通用数据交互模块所发送的数据通讯处理模块无法处理的数据,为FPGA新增加的模块。其中通用数据交互模块的结果和工作过程以及整个信息系统的工作流程都已在上个实施例中进行了详细说明,这里不再赘述。
Claims (10)
1.一种带有通用数据交互模块的FPGA,其特征在于,该FPGA包括依次通信连接的数据通讯处理模块、通用数据交互模块和至少一个数据处理模块,所述数据通讯处理模块用于接收CPU原始数据并对其进行处理并将处理结果返回给CPU;所述通用数据交互模块用于将传输给FPGA内部新增数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU,所述数据处理模块用于处理通用数据交互模块所发送的数据通讯处理模块无法处理的数据。
2.根据权利要求1所述的带有通用数据交互模块的FPGA,其特征在于,所述的通用数据交互模块包括依次通信连接的数据分析处理模块、数据交互存储区和数据处理模块通用接口,
所述数据分析处理模块用于将接收到的原始数据打包成统一的数据帧;
所述数据交互存储区包括用于存储数据分析处理模块打包后得到数据帧的原始数据区和用于存储信息处理模块处理结果的结果数据区;
所述数据处理模块通用接口能够与FPGA内部新增的数据处理模块进行信息交互,用于将数据分析处理模块打包的CPU数据交给相应的数据处理模块,同时将数据处理模块的计算结果按照协议格式放入数据交互存储区中的结果数据区。
3.根据权利要求2所述的带有通用数据交互模块的FPGA,其特征在于,所述数据包的帧结构包括数据头部结构和有效数据结构,数据头部结构包括数据包有效标志位、数据状态信息位、数据控制信息位和数据包有效数据长度位。
4.根据权利要求3所述的带有通用数据交互模块的FPGA,其特征在于,所述数据包帧结构的有效标志位必须在本包数据信息全部写入数据交互存储区之后才能被写入数据交互存储区数据包头部的相应位置。
5.根据权利要求3所述的带有通用数据交互模块的FPGA,其特征在于,所述数据交互存储区的数据包数据被全部读取之后,将该数据包的有效标志置0,以避免同时对同一个数据包进行读写操作。
6.一种信息处理系统,包括通信连接的CPU和FPGA,其特征在于,所述FPGA包括依次通信连接的数据通讯处理模块、通用数据交互模块和至少一个数据处理模块,所述数据通讯处理模块用于接收CPU原始数据并对其进行处理并将处理结果返回给CPU;所述通用数据交互模块用于将传输给FPGA内部新增数据处理模块的CPU原始数据打包成统一数据帧并发送相应的数据处理模块,同时接收数据处理模块的处理结果,并将其发送给CPU,所述数据处理模块用于处理通用数据交互模块所发送的数据通讯处理模块无法处理的数据。
7.根据权利要求6所述的信息处理系统,其特征在于,所述的通用数据交互模块包括依次通信连接的数据分析处理模块、数据交互存储区和数据处理模块通用接口,
所述数据分析处理模块用于将接收到的原始数据打包成统一的数据帧;
所述数据交互存储区包括用于存储数据分析处理模块打包后得到数据帧的原始数据区和用于存储信息处理模块处理结果的结果数据区;
所述数据处理模块通用接口能够与FPGA内部新增的数据处理模块进行信息交互,用于将数据分析处理模块打包的CPU数据交给相应的数据处理模块,同时将数据处理模块的计算结果按照协议格式放入数据交互存储区中的结果数据区。
8.根据权利要求7所述的信息处理系统,其特征在于,所述数据包的帧结构包括数据头部结构和有效数据结构,数据头部结构包括数据包有效标志位、数据状态信息位、数据控制信息位和数据包有效数据长度位。
9.根据权利要求8所述的信息处理系统,其特征在于,所述数据包帧结构的有效标志位必须在本包数据信息全部写入数据交互存储区之后才能被写入数据交互存储区数据包头部的相应位置。
10.根据权利要求8所述的信息处理系统,其特征在于,所述数据交互存储区的数据包数据被全部读取之后,将该数据包的有效标志置0,以避免同时对同一个数据包进行读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510364618.0A CN105117353B (zh) | 2015-06-26 | 2015-06-26 | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510364618.0A CN105117353B (zh) | 2015-06-26 | 2015-06-26 | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117353A true CN105117353A (zh) | 2015-12-02 |
CN105117353B CN105117353B (zh) | 2017-11-03 |
Family
ID=54665351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510364618.0A Active CN105117353B (zh) | 2015-06-26 | 2015-06-26 | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117353B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423249A (zh) * | 2017-02-28 | 2017-12-01 | 广东工业大学 | 一种基于AHB‑lite总线协议的从端总线控制器设计方法 |
CN108270694A (zh) * | 2017-12-04 | 2018-07-10 | 山东超越数控电子股份有限公司 | 一种基于lvds的高速传输方法 |
CN110120922A (zh) * | 2019-05-14 | 2019-08-13 | 中国核动力研究设计院 | 一种基于fpga的数据交互网络管理系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126472A1 (en) * | 2006-08-28 | 2008-05-29 | Tableau, Llc | Computer communication |
CN101770442A (zh) * | 2008-12-30 | 2010-07-07 | 易视芯科技(北京)有限公司 | 具有多个外设接口的数据交互系统和方法 |
CN203102274U (zh) * | 2013-03-07 | 2013-07-31 | 成都市未来合力科技有限责任公司 | 一种高速数据传输连接器 |
-
2015
- 2015-06-26 CN CN201510364618.0A patent/CN105117353B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126472A1 (en) * | 2006-08-28 | 2008-05-29 | Tableau, Llc | Computer communication |
CN101770442A (zh) * | 2008-12-30 | 2010-07-07 | 易视芯科技(北京)有限公司 | 具有多个外设接口的数据交互系统和方法 |
CN203102274U (zh) * | 2013-03-07 | 2013-07-31 | 成都市未来合力科技有限责任公司 | 一种高速数据传输连接器 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423249A (zh) * | 2017-02-28 | 2017-12-01 | 广东工业大学 | 一种基于AHB‑lite总线协议的从端总线控制器设计方法 |
CN108270694A (zh) * | 2017-12-04 | 2018-07-10 | 山东超越数控电子股份有限公司 | 一种基于lvds的高速传输方法 |
CN110120922A (zh) * | 2019-05-14 | 2019-08-13 | 中国核动力研究设计院 | 一种基于fpga的数据交互网络管理系统及方法 |
CN110120922B (zh) * | 2019-05-14 | 2022-09-20 | 中核控制系统工程有限公司 | 一种基于fpga的数据交互网络管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105117353B (zh) | 2017-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101501660B (zh) | 因特网连接交换机和因特网连接系统 | |
CN101901205B (zh) | 在PCIExpress上启用基于ID的流的方法和装置 | |
CN113852656B (zh) | 一种数据传输方法、处理器系统及内存访问系统 | |
US20160011987A1 (en) | Efficient search key controller with standard bus interface, external memory interface, and interlaken lookaside interface | |
CN105868136A (zh) | 处理多个命令/命令帧的电子装置及命令帧处理方法 | |
CN104714904A (zh) | 采用窗口映射机制的RapidIO控制器及其控制方法 | |
CN102750249B (zh) | 上位机与下位机通信的方法、装置及系统 | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN109446147B (zh) | 一种网络存储设备与pcie设备的数据交互方法 | |
US20150154004A1 (en) | System and method for supporting efficient buffer usage with a single external memory interface | |
JP6543246B2 (ja) | ネットワークインターフェイス | |
CN105573711A (zh) | 一种数据缓存方法及装置 | |
CN102750245B (zh) | 报文接收方法、报文接收模块、装置及系统 | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 | |
CN108062235A (zh) | 数据处理方法及装置 | |
CN106126465A (zh) | 一种数据传输方法及装置 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN101004674A (zh) | 处理器体系结构 | |
US9594706B2 (en) | Island-based network flow processor with efficient search key processing | |
US8898353B1 (en) | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface | |
CN102420749A (zh) | 一种网卡发包功能的实现装置和方法 | |
CN109979498A (zh) | 磁盘视频数据写入、读取的方法及装置 | |
CN113422792B (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
CN115237829A (zh) | 处理数据的装置、方法及存储介质 | |
CN114238156A (zh) | 处理系统以及操作处理系统的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |