CN103559156B - 一种fpga与计算机之间的通信系统 - Google Patents
一种fpga与计算机之间的通信系统 Download PDFInfo
- Publication number
- CN103559156B CN103559156B CN201310556229.9A CN201310556229A CN103559156B CN 103559156 B CN103559156 B CN 103559156B CN 201310556229 A CN201310556229 A CN 201310556229A CN 103559156 B CN103559156 B CN 103559156B
- Authority
- CN
- China
- Prior art keywords
- dma
- fpga
- data
- module
- pio
- 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
Landscapes
- Bus Control (AREA)
Abstract
本发明提供了一种FPGA与计算机之间的通信系统,包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIe?IP核。通过FPGA硬件中独立的发送和接收模块实现全双工、高吞吐率的DMA数据传输,通过发送或接收模块中对数据流和控制流的单独处理实现低延迟的数据传输,通过上述DMA数据传输,将FPGA和计算机连接在一起。利用本发明提供的技术方案,可以提高FPGA应用与计算机集成的效率,加快FPGA应用的研发、测试及推向市场速度,节省了FPGA应用与计算机集成所花费的时间与人力投入。
Description
技术领域
本发明提供一种FPGA(现场可编程门阵列,Field-ProgrammableGateArray)与计算机之间的通信系统,具体涉及一种高效、易用的FPGA与计算机之间的PCIe通信系统。
背景技术
现场可编程门阵列(FPGA)是一种可以编程的电路器件。随着FPGA技术的发展,FPGA芯片中的资源不断增加,功能和运算能力也有了很大的提升。很多研究者采用FPGA对算法进行加速。因此FPGA加速器和计算机之间高效、易用的通信就成为了一种需求。
PCIe(PCI-Express,快捷外设互联标准)总线是一种高速的计算机总线,它使用串行的、点对点的方式来连接计算机的外部设备。PCIe总线单条链路的单个方向可以达到2Gbps(1.0协议)、4Gbps(2.0协议)或近8Gbps(3.0协议)的数据传输速率。一个PCIe设备还可以同时使用多条串行链路进行数据传输,因此能够达到很高的数据传输速率。
MPRace(G.Marcus,W.Gao,A.Kugel,andR.Manner.Thempraceframework:Anopensourcestackforcommunicationwithcustomfpga-basedaccelerators.InProgrammableLogic(SPL),2011VIISouthernConferenceon,pages155–160,2011.)是一个使用PCIe连接FPGA和计算机的系统。该系统使用DDRRAM(doubledataraterandomaccessmemory)接口作为和用户硬件的数据接口,并提供若干寄存器作为用户硬件的控制接口。在软件方面,该系统提供的软件接口暴露了很多数据传输过程中的细节,抽象层次较低。这种方法只能对于采用DDR接口的用户硬件提供较大的方便,且由于软件抽象层次较低,使用比较麻烦。
SpeedyBusMasteringPCIExpress(R.Bittner.Speedybusmasteringpciexpress.InFieldProgrammableLogicandApplications(FPL),201222ndInternationalConferenceon,pages523–526,2012.)是一个将PCIe总线信号转化为局部总线的系统。该系统的数据传输控制都需要用户自己完成,并且没有提供对应的软件支持。该系统提供了一个带有DDRRAM的示例,并对这个示例提供了对应的软件程序,但是该示例不具有通用性。
一种PCIe多功能设备和硬件加速算法集成装置(实用新型专利申请号201220109341.9)是一个具有片上总线结构的加速算法装置。该装置虽然可以被用于FPGA与计算机的通信,但只能支持一个算法加速逻辑设备,降低了系统的可用性。且没有在软件端对系统提供支持,不易于用户使用。且该装置的数据通路中存在其它装置,增加了数据传输延迟,降低了数据传输性能。
发明内容
为了便于说明,本文约定:“DMA”表示直接内存访问,即Directlymemoryaccess。“PIO”表示programmedinput/output,“IP核”表示已验证、可重利用并具有某种确定功能的硬件电路模块,即IntellectualPropertyCore。
本发明的目的是提供一种基于PCIe总线的通信系统,用以解决FPGA与计算机之间高效、易用的数据通信的问题。
本发明的原理是:通过FPGA硬件中独立的发送和接收模块实现全双工、高吞吐率的DMA数据传输,通过发送或接收模块中对数据流和控制流的单独处理实现低延迟的数据传输,通过上述DMA数据传输,将FPGA和计算机连接在一起。
本发明提供的技术方案如下:
一种FPGA与计算机之间的通信系统,包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIeIP核;其中,
(1)所述DMA引擎包括下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块,其中,
(1.1)下行DMA控制模块用于对计算机到FPGA方向的DMA进行控制,该方向的DMA也叫DMA读,依据寄存器组给出的DMA读开始、DMA读描述符地址信号对DMA描述符进行DMA操作,然后通过DMA描述符中的DMA地址和DMA长度信息控制下行DMA数据处理模块进行DMA读操作;
(1.2)下行DMA数据处理模块用于对计算机到FPGA方向的DMA数据进行处理,依据下行DMA控制模块输出的DMA地址和DMA长度信息,对数据进行DMA操作,并将DMA的数据输出给用户FPGA应用;
(1.3)上行DMA控制模块用于对FPGA到计算机方向的DMA进行控制,该方向的DMA也叫DMA写,依据寄存器组给出的DMA写开始、DMA写描述符地址信号对DMA描述符进行DMA操作,然后通过DMA描述符中的DMA地址和DMA长度信息控制上行DMA数据处理模块进行DMA写操作;
(1.4)上行DMA数据处理模块用于对FPGA到计算机方向的DMA数据进行处理,从用户FPGA应用获得将要被DMA的数据,并依据上行DMA控制模块输出的DMA地址和DMA长度信息,对数据进行DMA写操作;
(2)所述PIO引擎对PIO的请求进行处理,对于PIO读请求,PIO引擎将向寄存器组给出PIO读地址,当寄存器组返回读取的数据时,PIO引擎通过报文控制器和PCIeIP核向PCIe总线上回复读取到的数据;对于PIO写请求,PIO引擎向寄存器组给出PIO写地址和数据,以使数据被写入寄存器中;
(3)所述寄存器组由一系列的状态与控制寄存器构成,用于对系统进行控制,包括DMA读开始寄存器、DMA写开始寄存器、DMA读操作描述符地址寄存器、DMA写操作描述符地址寄存器;
(4)所述报文控制器通过PCIeIP核与PCIe总线连接,控制数据的发送和接收;
(4.1)报文控制器将通过PCIeIP核接收到的不同类别的数据分发到PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块中;
(4.2)报文控制器从PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块接收数据,并通过PCIeIP核将数据发送到PCIe总线;
(5)所述中断控制器通过与PCIeIP核与PCIe总线连接,控制中断请求的发送;
(5.1)中断控制器接收DMA引擎中下行DMA控制模块、上行DMA控制模块的中断请求,当DMA完成或出现错误时,中断控制器将收到DMA读或DMA写的完成或出错中断请求;
(5.2)中断控制器通过PCIeIP核将中断请求发送到PCIe总线上,进而引发计算机系统中的中断过程;
(6)所述PCIeIP核用于和PCIe总线进行交互,将PCIe总线信号中的数据提取出来。
所述的FPGA与计算机之间的通信系统,还包括PIO接口模块,该模块为用户FPGA应用提供寄存器接口,该模块从PIO引擎获得PIO请求,完成对用户寄存器的读写操作。
所述的FPGA与计算机之间的通信系统,还包括中断接口模块,该模块为用户FPGA应用提供中断接口,该模块将用户FPGA应用的中断请求传递到中断控制器模块中,并由中断控制器通过PCIeIP核产生PCIe总线上的中断。
所述的FPGA与计算机之间的通信系统,还包括排序模块,该模块对下行DMA数据进行重排序,并为用户FPGA应用提供连续的数据。
本发明的有益效果:利用本发明提供的技术方案,可以提高FPGA应用与计算机集成的效率,加快FPGA应用的研发、测试及推向市场速度,节省了FPGA应用与计算机集成所花费的时间与人力投入。
附图说明
图1本发明的系统结构图
图2扩展的系统结构图
具体实施方式
本发明的具体实施方式如下:
一种FPGA与计算机之间的通信系统,包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIeIP核(参见图1);其中,
A.DMA引擎包括下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块,其中,
a)下行DMA控制模块用于对计算机到FPGA方向的DMA(该方向的DMA也叫DMA读)进行控制,依据寄存器组给出的DMA读开始、DMA读描述符地址信号对DMA描述符进行DMA操作,然后通过DMA描述符中的DMA地址和DMA长度信息控制下行DMA数据处理模块进行DMA读操作;
b)下行DMA数据处理模块用于对计算机到FPGA方向的DMA(该方向的DMA也叫DMA读)数据进行处理,依据下行DMA控制模块输出的DMA地址和DMA长度信息,对数据进行DMA操作,并将DMA的数据输出给用户FPGA应用;
c)上行DMA控制模块用于对FPGA到计算机方向的DMA(该方向的DMA也叫DMA写)进行控制,依据寄存器组给出的DMA写开始、DMA写描述符地址信号对DMA描述符进行DMA操作,然后通过DMA描述符中的DMA地址和DMA长度信息控制上行DMA数据处理模块进行DMA写操作;
d)上行DMA数据处理模块用于对FPGA到计算机方向的DMA(该方向的DMA也叫DMA写)数据进行处理,从用户FPGA应用获得将要被DMA的数据,并依据上行DMA控制模块输出的DMA地址和DMA长度信息,对数据进行DMA写操作;
B.PIO引擎对PIO的请求进行处理,对于PIO读请求,PIO引擎将向寄存器组给出PIO读地址,当寄存器组返回读取的数据时,PIO引擎通过报文控制器和PCIeIP核向PCIe总线上回复读取到的数据;对于PIO写请求,PIO引擎向寄存器组给出PIO写地址和数据,以使数据被写入寄存器中;
C.寄存器组由一系列的状态与控制寄存器构成,用于对系统进行控制,包括DMA读开始寄存器、DMA写开始寄存器、DMA读操作描述符地址寄存器、DMA写操作描述符地址寄存器(可选的,寄存器组还可以包括其它寄存器,比如当前系统的状态寄存器,硬件版本号寄存器等等);
D.报文控制器通过PCIeIP核与PCIe总线连接,控制数据的发送和接收;
a)报文控制器将通过PCIeIP核接收到的不同类别的数据分发到PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块中;
b)报文控制器从PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块接收数据,并通过PCIeIP核将数据发送到PCIe总线;
E.中断控制器通过与PCIeIP核与PCIe总线连接,控制中断请求的发送;
a)中断控制器接收DMA引擎中下行DMA控制模块、上行DMA控制模块的中断请求,当DMA完成或出现错误时,中断控制器将收到DMA读或DMA写的完成或出错中断请求;
b)中断控制器通过PCIeIP核将中断请求发送到PCIe总线上,进而引发计算机系统中的中断过程;
F.PCIeIP核用于和PCIe总线进行交互,将PCIe总线信号中的数据提取出来;
优选的,所述FPGA与计算机之间的通信系统还可以包括(参见图2):
G.PIO接口模块,为用户FPGA应用提供寄存器接口。PIO接口模块从PIO引擎获得PIO请求,完成对用户寄存器的读写操作;
H.中断接口模块,为用户FPGA应用提供中断接口。中断接口模块可以将用户FPGA应用的中断请求传递到中断控制器模块中,并由中断控制器通过PCIeIP核产生PCIe总线上的中断;
I.排序模块,对下行DMA数据进行重排序。下行DMA数据在经过PCIe总线过程中,可能会产生先请求的数据后到达的现象。排序模块可以将数据依据请求的顺序进行排序,并为用户FPGA应用提供连续的数据。
下面通过实例对本发明做进一步说明:
实施例1:计算机到FPGA方向的DMA数据传输
假定本发明所述的FPGA与计算机之间的通信系统收到了用户软件的DMA请求,需要将内存0x45000004位置开始的字符串“1234”通过DMA数据传输,传递给用户FPGA应用。而软件已经将描述上述DMA操作的DMA描述符放在内存0x43000000位置。
本发明所述的FPGA与计算机之间的通信系统的PIO引擎将收到两次PIO写请求,第一次写入寄存器组中DMA读操作描述符地址寄存器,写入的值为0x43000000;第二次写入寄存器组中DMA读开始寄存器。此时下行DMA控制模块检测到DMA读开始,因此按照DMA读操作描述符地址寄存器中的值0x43000000进行数据请求,该请求会依次经过报文控制器模块和PCIeIP核,并传递到PCIe总线上。PCIe总线将响应该请求,并将位于内存0x43000000的数据传递给PCIeIP核。DMA描述符会依次经过PCIeIP核和报文控制器,被传递到下行DMA控制模块。
下行DMA控制模块通过解析DMA描述符,获得DMA的地址为0x45000004,DMA数据长度为4字节,并将DMA的地址和长度信息传递给下行DMA数据处理模块。
下行DMA数据处理模块请求从0x45000004地址开始的4字节的数据,该请求会经过报文控制器模块和PCIeIP核模块,并传递到PCIe总线上。PCIe总线将相应该请求,并将从内存0x45000004地址开始的4字节数据传递给PCIeIP核,该数据即为包含有“1234”这一字符串的PCIe报文。该数据会依次经过PCIeIP核模块和报文控制器模块,并被传递到下行DMA数据处理模块。下行DMA数据处理模块将对上述包含着“1234”这一字符串的PCIe报文进行解包处理,并将其中的数据“1234”这一字符串传递给用户FPGA应用。
上述DMA过程完成后,下行DMA控制模块将请求中断控制器模块,发送DMA读完成中断,以告知计算机本次DMA读操作已经完成。
实施例2:FPGA到计算机方向的DMA数据传输
假定本发明所述的FPGA与计算机之间的通信系统收到了用户软件的DMA请求,需要将FPGA中的字符串“5678”传递到计算机中,具体而言是DMA到内存0x46000004开始的4个字节中。软件已经将描述上述DMA操作的DMA描述符放在内存的0x44000000位置。
本发明所述的FPGA与计算机之间的通信系统的PIO引擎将收到两次PIO写请求,第一次写入寄存器组中DMA写描述符地址寄存器,写入的值为0x44000000;第二次写入寄存器组中DMA写开始寄存器。此时上行DMA控制模块检测到DMA写开始,因此按照DMA写操作描述符地址寄存器中的值0x44000000进行数据请求,该请求会依次经过报文控制器模块和PCIeIP核,并传递到PCIe总线上。PCIe总线将响应该请求,并将位于内存0x44000000的数据传递给PCIeIP核。DMA描述符会依次经过PCIeIP核和报文控制器,被传递到上行DMA控制模块。
上行DMA控制模块通过解析DMA描述符,获得DMA的地址为0x46000004,DMA数据长度为4字节,并将DMA的地址和长度信息传递给上行DMA数据处理模块。
上行DMA数据处理模块将用户FPGA应用传递过来的头4个字节进行打包,生成PCIe总线中的存储器写请求报文,并通过报文控制器与PCIeIP核模块将该请求报文发送到PCIe总线上。随后再发送对0x46000004地址的读请求报文。该读请求报文用于确定上述写请求报文已经被处理。当对应于0x46000004地址的读请求报文的回复报文依次经过PCIeIP核和报文控制器模块后,上行DMA数据处理模块确认DMA数据已经被处理。
上述过程完成后,上行DMA控制模块将请求中断控制器模块,发送DMA写完成中断,以告知计算机本次DMA写操作已经完成。
实施例3:计算机到FPGA方向的PIO数据传输
在附带有PIO接口模块的系统中,假定本发明所述的FPGA与计算机之间的通信系统收到了用户软件的PIO写请求,需要将0号寄存器写入0x00030002。
软件的PIO写请求会通过PCIe总线传递到PCIeIP核,并经过报文控制器被传输到PIO引擎。PIO引擎判断写入的地址后,发现软件的PIO写请求写入的寄存器地址位于用户自定义寄存器的地址范围,因此将该PIO请求交由PIO接口模块处理。PIO接口模块判断后,得知软件的PIO写请求需要对0号寄存器写入0x00030002。于是PIO接口模块发送向0号寄存器写入0x00030002的请求。当PIO接口模块收到写0号寄存器请求对应的回复报文后,本次PIO数据传输完成。
实施例4:FPGA到计算机方向的PIO数据传输
在附带有PIO接口模块的系统中,假定本发明所述的FPGA与计算机之间的通信系统收到用户软件的PIO读请求,需要读取0号寄存器的值。而当前0号寄存器的值为0x00010002。
软件的PIO读请求会通过PCIe总线传递到PCIeIP核,并经过报文控制器被传输到PIO引擎。PIO引擎判断读取的地址后,发现软件的PIO读请求的寄存器地址位于用户自定义寄存器地址范围,因此将该PIO请求交给PIO接口模块进行处理。PIO接口模块判断后,得知软件的PIO读请求需要对0号寄存器进行读操作。因此PIO接口模块发送读取0号寄存器请求。当PIO接口模块收到读取0号寄存器请求对应的回复后,会从回复中得到0号寄存器的值为0x00010002。
此时PIO接口模块会回复PIO引擎读取到的0号寄存器的值为0x00010002,PIO引擎会依据0号寄存器的值生成回复报文,并将该报文经由报文控制器和PCIeIP核发送到PCIe总线上,从而使软件获得0号寄存器的值为0x00010002。
实施例5:用户自定义中断
在附带有中断接口模块的系统中,假定本发明所述的FPGA与计算机之间的通信库系统收到用户FPGA应用给出的用户自定义中断请求。
如果中断被使能,中断接口模块会将该请求传递给中断控制器模块,中断控制器模块将通过PCIeIP核在PCIe总线上发送中断请求。计算机中的用户软件收到中断信号,即可进行相应的中断处理。
实施例6:排序模块的使用
在附有排序模块的系统中,假定本发明所述的FPGA与计算机之间的通信库系统接收到软件的DMA读请求,需要将内存中0x45000000开始的256字节DMA到FPGA中。
和实施例1中描述的过程类似,本发明所述的系统将向PCIe总线发送存储器读请求报文,假设发送了两个存储器读请求报文,分别请求128字节的数据。即请求报文1请求了从地址0x45000000开始的128字节的数据,请求报文2请求了从地址0x45000080开始的128字节的数据。假设对于请求报文1,PCIe总线上的回复报文为回复报文1-1和回复报文1-2,它们各包含了64字节的数据;对于请求报文2,PCIe总线上的回复报文为回复报文2-1和回复报文2-2,它们各包含了64字节的数据。用户FPGA应用需要获得的数据顺序应该是:回复报文1-1中的数据,回复报文1-2中的数据,回复报文2-1中的数据,回复报文2-2中的数据。
依据PCIe总线的协议,PCIeIP核收到上述回复报文的可能顺序为:回复报文2-1,回复报文1-1回复报文1-2,回复报文2-2。这时,排序模块会将打乱顺序的四个报文重新进行排序,并向用户FPGA应用传输以下数据:回复报文1-1中的数据,回复报文1-2中的数据,回复报文2-1中的数据,回复报文2-2中的数据。
Claims (5)
1.一种FPGA与计算机之间的通信系统,其特征是,所述通信系统包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIeIP核;其中,
(1)所述DMA引擎包括下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块,其中,
(1.1)下行DMA控制模块用于对计算机到FPGA方向的DMA进行控制;
(1.2)下行DMA数据处理模块用于对计算机到FPGA方向的DMA数据进行处理;
(1.3)上行DMA控制模块用于对FPGA到计算机方向的DMA进行控制;
(1.4)上行DMA数据处理模块用于对FPGA到计算机方向的DMA数据进行处理;
(2)所述PIO引擎对PIO的请求进行处理,对于PIO读请求,PIO引擎将向寄存器组给出PIO读地址,当寄存器组返回读取的数据时,PIO引擎通过报文控制器和PCIeIP核向PCIe总线上回复读取到的数据;对于PIO写请求,PIO引擎向寄存器组给出PIO写地址和数据,以使数据被写入寄存器中;
(3)所述寄存器组由一系列的状态与控制寄存器构成,用于对系统进行控制,包括DMA读开始寄存器、DMA写开始寄存器、DMA读操作描述符地址寄存器、DMA写操作描述符地址寄存器;
(4)所述报文控制器通过PCIeIP核与PCIe总线连接,控制数据的发送和接收;
(4.1)报文控制器将通过PCIeIP核接收到的不同类别的数据分发到PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块中;
(4.2)报文控制器从PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块接收数据,并通过PCIeIP核将数据发送到PCIe总线;
(5)所述中断控制器通过PCIeIP核与PCIe总线连接,控制中断请求的发送;
(5.1)中断控制器接收DMA引擎中下行DMA控制模块、上行DMA控制模块的中断请求,当DMA完成或出现错误时,中断控制器将收到DMA读或DMA写的完成中断请求,或中断控制器将收到DMA读或DMA写的出错中断请求;
(5.2)中断控制器通过PCIeIP核将中断请求发送到PCIe总线上,进而引发计算机系统中的中断过程;
(6)所述PCIeIP核用于和PCIe总线进行交互,将PCIe总线信号中的数据提取出来。
2.如权利要求1所述的FPGA与计算机之间的通信系统,其特征是,所述通信系统还包括PIO接口模块,该模块为用户FPGA应用提供寄存器接口,该模块从PIO引擎获得PIO请求,完成对用户寄存器的读写操作。
3.如权利要求1所述的FPGA与计算机之间的通信系统,其特征是,所述通信系统还包括中断接口模块,该模块为用户FPGA应用提供中断接口,该模块将用户FPGA应用的中断请求传递到中断控制器模块中,并由中断控制器通过PCIeIP核产生PCIe总线上的中断。
4.如权利要求1所述的FPGA与计算机之间的通信系统,其特征是,所述通信系统还包括排序模块,该模块对下行DMA数据进行重排序,并为用户FPGA应用提供连续的数据。
5.如权利要求1所述的FPGA与计算机之间的通信系统,其特征是,所述DMA引擎包括下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块,其中:
(1.1)下行DMA控制模块用于对计算机到FPGA方向的DMA进行控制,该方向的DMA也叫DMA读,依据寄存器组给出的DMA读开始、DMA读描述符地址信号对DMA描述符进行DMA操作,然后通过DMA描述符中的DMA地址和DMA长度信息控制下行DMA数据处理模块进行DMA读操作;
(1.2)下行DMA数据处理模块用于对计算机到FPGA方向的DMA数据进行处理,依据下行DMA控制模块输出的DMA地址和DMA长度信息,对数据进行DMA操作,并将DMA的数据输出给用户FPGA应用;
(1.3)上行DMA控制模块用于对FPGA到计算机方向的DMA进行控制,该方向的DMA也叫DMA写,依据寄存器组给出的DMA写开始、DMA写描述符地址信号对DMA描述符进行DMA操作,然后通过DMA描述符中的DMA地址和DMA长度信息控制上行DMA数据处理模块进行DMA写操作;
(1.4)上行DMA数据处理模块用于对FPGA到计算机方向的DMA数据进行处理,从用户FPGA应用获得将要被DMA的数据,并依据上行DMA控制模块输出的DMA地址和DMA长度信息,对数据进行DMA写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310556229.9A CN103559156B (zh) | 2013-11-11 | 2013-11-11 | 一种fpga与计算机之间的通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310556229.9A CN103559156B (zh) | 2013-11-11 | 2013-11-11 | 一种fpga与计算机之间的通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559156A CN103559156A (zh) | 2014-02-05 |
CN103559156B true CN103559156B (zh) | 2016-04-06 |
Family
ID=50013406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310556229.9A Active CN103559156B (zh) | 2013-11-11 | 2013-11-11 | 一种fpga与计算机之间的通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103559156B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104821849B (zh) * | 2015-05-12 | 2017-05-31 | 北京大学 | 一种基于fpga的无线电光纤连接接口通信库及其实现方法 |
CN106257434B (zh) * | 2015-06-16 | 2019-04-30 | 深圳市中兴微电子技术有限公司 | 一种基于增强型外设互连协议总线的数据传输方法及装置 |
CN105786752B (zh) * | 2016-01-22 | 2018-08-28 | 北京大学 | 一种计算设备与fpga间的usb通信方法和通信系统 |
CN106445869B (zh) * | 2016-09-20 | 2018-11-13 | 烟台大学 | 一种基于FPGA和PCIe的高速数据交换方法 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN108664444B (zh) * | 2017-03-31 | 2021-08-24 | 北京大学 | 基于fpga上微处理器的可重构无线mac层结构 |
CN107391403A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种存储设备中多路控制器间的通信方法及装置 |
CN107885693A (zh) * | 2017-11-28 | 2018-04-06 | 南京理工大学 | 基于pcie3.0的大容量高速数据传输与存储系统及方法 |
CN110851376A (zh) * | 2019-10-21 | 2020-02-28 | 天津大学 | 一种基于FPGA的PCIe接口设计方法 |
CN111221755B (zh) * | 2019-12-28 | 2020-11-10 | 重庆秦嵩科技有限公司 | 一种FPGA2子模块的io中断控制方法 |
CN111813713B (zh) * | 2020-09-08 | 2021-02-12 | 苏州浪潮智能科技有限公司 | 数据加速运算处理方法、装置及计算机可读存储介质 |
CN112115081A (zh) * | 2020-09-16 | 2020-12-22 | 南京艾科朗克信息科技有限公司 | 证券期货领域Fpga与计算机之间的DMA传输系统和方法 |
CN114448780B (zh) * | 2022-01-27 | 2023-06-20 | 西安微电子技术研究所 | 一种基于pcie接口的以太网控制器异常处理系统和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411553A (zh) * | 2011-08-01 | 2012-04-11 | 北京航空航天大学 | 基于cpci总线的1553b协议数据通信及串行加载模块 |
CN102521182A (zh) * | 2011-11-23 | 2012-06-27 | 华南师范大学 | 一种可扩展多通道并行实时数据采集装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8566508B2 (en) * | 2009-04-08 | 2013-10-22 | Google Inc. | RAID configuration in a flash memory data storage device |
-
2013
- 2013-11-11 CN CN201310556229.9A patent/CN103559156B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411553A (zh) * | 2011-08-01 | 2012-04-11 | 北京航空航天大学 | 基于cpci总线的1553b协议数据通信及串行加载模块 |
CN102521182A (zh) * | 2011-11-23 | 2012-06-27 | 华南师范大学 | 一种可扩展多通道并行实时数据采集装置和方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的PCI接口DMA传输的设计与实现;单天昌等;《计算机技术与发展》;20100430;第20卷(第4期);第215-219页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103559156A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559156B (zh) | 一种fpga与计算机之间的通信系统 | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
US7672828B2 (en) | Memory access to virtual target device | |
US8990451B2 (en) | Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller | |
CN103198042A (zh) | Pci航空串行总线板卡及实现动态加载数据处理方法 | |
CN111190842B (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
CN113849433B (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
CN116541227B (zh) | 故障诊断方法、装置、存储介质、电子装置及bmc芯片 | |
JP6998991B2 (ja) | 情報処理用方法及び装置 | |
CN106662895B (zh) | 计算机设备和计算机设备数据读写的方法 | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN104699654A (zh) | 一种基于chi片内互联总线与qpi片间互联总线互联适配系统和方法 | |
CN112749113A (zh) | 一种数据交互的方法、系统、设备及介质 | |
US20190155361A1 (en) | Power state management for lanes of a communication port | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
CN105677491A (zh) | 一种数据传输方法及装置 | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
US9053092B2 (en) | System authorizing direct data transfers between memories of several components of that system | |
CN106294225A (zh) | 一种数据读取方法、对端设备及控制器 | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
CN209560543U (zh) | 大数据运算芯片 | |
CN103678244A (zh) | 一种不使用应用处理器的智能设备 | |
CN116185938A (zh) | 多核异构系统及其交互方法 | |
Kim et al. | Compression accelerator for hadoop appliance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |