CN103559156A - 一种fpga与计算机之间的通信系统 - Google Patents

一种fpga与计算机之间的通信系统 Download PDF

Info

Publication number
CN103559156A
CN103559156A CN201310556229.9A CN201310556229A CN103559156A CN 103559156 A CN103559156 A CN 103559156A CN 201310556229 A CN201310556229 A CN 201310556229A CN 103559156 A CN103559156 A CN 103559156A
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.)
Granted
Application number
CN201310556229.9A
Other languages
English (en)
Other versions
CN103559156B (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.)
Peking University
Original Assignee
Peking University
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 Peking University filed Critical Peking University
Priority to CN201310556229.9A priority Critical patent/CN103559156B/zh
Publication of CN103559156A publication Critical patent/CN103559156A/zh
Application granted granted Critical
Publication of CN103559156B publication Critical patent/CN103559156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种FPGA与计算机之间的通信系统,包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIe IP核。通过FPGA硬件中独立的发送和接收模块实现全双工、高吞吐率的DMA数据传输,通过发送或接收模块中对数据流和控制流的单独处理实现低延迟的数据传输,通过上述DMA数据传输,将FPGA和计算机连接在一起。利用本发明提供的技术方案,可以提高FPGA应用与计算机集成的效率,加快FPGA应用的研发、测试及推向市场速度,节省了FPGA应用与计算机集成所花费的时间与人力投入。

Description

一种FPGA与计算机之间的通信系统
技术领域
本发明提供一种FPGA(现场可编程门阵列,Field-Programmable Gate Array)与计算机之间的通信系统,具体涉及一种高效、易用的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,and R.Manner.The mprace framework:An opensource stack for communication with custom fpga-based accelerators.In Programmable Logic(SPL),2011VII Southern Conference on,pages155–160,2011.)是一个使用PCIe连接FPGA和计算机的系统。该系统使用DDR RAM(double data rate random access memory)接口作为和用户硬件的数据接口,并提供若干寄存器作为用户硬件的控制接口。在软件方面,该系统提供的软件接口暴露了很多数据传输过程中的细节,抽象层次较低。这种方法只能对于采用DDR接口的用户硬件提供较大的方便,且由于软件抽象层次较低,使用比较麻烦。
Speedy Bus Mastering PCI Express(R.Bittner.Speedy bus mastering pci express.In FieldProgrammable Logic and Applications(FPL),201222nd International Conference on,pages523–526,2012.)是一个将PCIe总线信号转化为局部总线的系统。该系统的数据传输控制都需要用户自己完成,并且没有提供对应的软件支持。该系统提供了一个带有DDR RAM的示例,并对这个示例提供了对应的软件程序,但是该示例不具有通用性。
一种PCIe多功能设备和硬件加速算法集成装置(实用新型专利申请号201220109341.9)是一个具有片上总线结构的加速算法装置。该装置虽然可以被用于FPGA与计算机的通信,但只能支持一个算法加速逻辑设备,降低了系统的可用性。且没有在软件端对系统提供支持,不易于用户使用。且该装置的数据通路中存在其它装置,增加了数据传输延迟,降低了数据传输性能。
发明内容
为了便于说明,本文约定:“DMA”表示直接内存访问,即Directly memory access。“PIO”表示programmed input/output,“IP核”表示已验证、可重利用并具有某种确定功能的硬件电路模块,即Intellectual Property Core。
本发明的目的是提供一种基于PCIe总线的通信系统,用以解决FPGA与计算机之间高效、易用的数据通信的问题。
本发明的原理是:通过FPGA硬件中独立的发送和接收模块实现全双工、高吞吐率的DMA数据传输,通过发送或接收模块中对数据流和控制流的单独处理实现低延迟的数据传输,通过上述DMA数据传输,将FPGA和计算机连接在一起。
本发明提供的技术方案如下:
一种FPGA与计算机之间的通信系统,包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIe IP核;其中,
(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引擎通过报文控制器和PCIe IP核向PCIe总线上回复读取到的数据;对于PIO写请求,PIO引擎向寄存器组给出PIO写地址和数据,以使数据被写入寄存器中;
(3)所述寄存器组由一系列的状态与控制寄存器构成,用于对系统进行控制,包括DMA读开始寄存器、DMA写开始寄存器、DMA读操作描述符地址寄存器、DMA写操作描述符地址寄存器;
(4)所述报文控制器通过PCIe IP核与PCIe总线连接,控制数据的发送和接收;
(4.1)报文控制器将通过PCIe IP核接收到的不同类别的数据分发到PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块中;
(4.2)报文控制器从PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块接收数据,并通过PCIe IP核将数据发送到PCIe总线;
(5)所述中断控制器通过与PCIe IP核与PCIe总线连接,控制中断请求的发送;
(5.1)中断控制器接收DMA引擎中下行DMA控制模块、上行DMA控制模块的中断请求,当DMA完成或出现错误时,中断控制器将收到DMA读或DMA写的完成或出错中断请求;
(5.2)中断控制器通过PCIe IP核将中断请求发送到PCIe总线上,进而引发计算机系统中的中断过程;
(6)所述PCIe IP核用于和PCIe总线进行交互,将PCIe总线信号中的数据提取出来。
所述的FPGA与计算机之间的通信系统,还包括PIO接口模块,该模块为用户FPGA应用提供寄存器接口,该模块从PIO引擎获得PIO请求,完成对用户寄存器的读写操作。
所述的FPGA与计算机之间的通信系统,还包括中断接口模块,该模块为用户FPGA应用提供中断接口,该模块将用户FPGA应用的中断请求传递到中断控制器模块中,并由中断控制器通过PCIe IP核产生PCIe总线上的中断。
所述的FPGA与计算机之间的通信系统,还包括排序模块,该模块对下行DMA数据进行重排序,并为用户FPGA应用提供连续的数据。
本发明的有益效果:利用本发明提供的技术方案,可以提高FPGA应用与计算机集成的效率,加快FPGA应用的研发、测试及推向市场速度,节省了FPGA应用与计算机集成所花费的时间与人力投入。
附图说明
图1本发明的系统结构图
图2扩展的系统结构图
具体实施方式
本发明的具体实施方式如下:
一种FPGA与计算机之间的通信系统,包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIe IP核(参见图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引擎通过报文控制器和PCIe IP核向PCIe总线上回复读取到的数据;对于PIO写请求,PIO引擎向寄存器组给出PIO写地址和数据,以使数据被写入寄存器中;
C.寄存器组由一系列的状态与控制寄存器构成,用于对系统进行控制,包括DMA读开始寄存器、DMA写开始寄存器、DMA读操作描述符地址寄存器、DMA写操作描述符地址寄存器(可选的,寄存器组还可以包括其它寄存器,比如当前系统的状态寄存器,硬件版本号寄存器等等);
D.报文控制器通过PCIe IP核与PCIe总线连接,控制数据的发送和接收;
a)报文控制器将通过PCIe IP核接收到的不同类别的数据分发到PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块中;
b)报文控制器从PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块接收数据,并通过PCIe IP核将数据发送到PCIe总线;
E.中断控制器通过与PCIe IP核与PCIe总线连接,控制中断请求的发送;
a)中断控制器接收DMA引擎中下行DMA控制模块、上行DMA控制模块的中断请求,当DMA完成或出现错误时,中断控制器将收到DMA读或DMA写的完成或出错中断请求;
b)中断控制器通过PCIe IP核将中断请求发送到PCIe总线上,进而引发计算机系统中的中断过程;
F.PCIe IP核用于和PCIe总线进行交互,将PCIe总线信号中的数据提取出来;
优选的,所述FPGA与计算机之间的通信系统还可以包括(参见图2):
G.PIO接口模块,为用户FPGA应用提供寄存器接口。PIO接口模块从PIO引擎获得PIO请求,完成对用户寄存器的读写操作;
H.中断接口模块,为用户FPGA应用提供中断接口。中断接口模块可以将用户FPGA应用的中断请求传递到中断控制器模块中,并由中断控制器通过PCIe IP核产生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进行数据请求,该请求会依次经过报文控制器模块和PCIe IP核,并传递到PCIe总线上。PCIe总线将响应该请求,并将位于内存0x43000000的数据传递给PCIe IP核。DMA描述符会依次经过PCIe IP核和报文控制器,被传递到下行DMA控制模块。
下行DMA控制模块通过解析DMA描述符,获得DMA的地址为0x45000004,DMA数据长度为4字节,并将DMA的地址和长度信息传递给下行DMA数据处理模块。
下行DMA数据处理模块请求从0x45000004地址开始的4字节的数据,该请求会经过报文控制器模块和PCIe IP核模块,并传递到PCIe总线上。PCIe总线将相应该请求,并将从内存0x45000004地址开始的4字节数据传递给PCIe IP核,该数据即为包含有“1234”这一字符串的PCIe报文。该数据会依次经过PCIe IP核模块和报文控制器模块,并被传递到下行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进行数据请求,该请求会依次经过报文控制器模块和PCIe IP核,并传递到PCIe总线上。PCIe总线将响应该请求,并将位于内存0x44000000的数据传递给PCIe IP核。DMA描述符会依次经过PCIe IP核和报文控制器,被传递到上行DMA控制模块。
上行DMA控制模块通过解析DMA描述符,获得DMA的地址为0x46000004,DMA数据长度为4字节,并将DMA的地址和长度信息传递给上行DMA数据处理模块。
上行DMA数据处理模块将用户FPGA应用传递过来的头4个字节进行打包,生成PCIe总线中的存储器写请求报文,并通过报文控制器与PCIe IP核模块将该请求报文发送到PCIe总线上。随后再发送对0x46000004地址的读请求报文。该读请求报文用于确定上述写请求报文已经被处理。当对应于0x46000004地址的读请求报文的回复报文依次经过PCIe IP核和报文控制器模块后,上行DMA数据处理模块确认DMA数据已经被处理。
上述过程完成后,上行DMA控制模块将请求中断控制器模块,发送DMA写完成中断,以告知计算机本次DMA写操作已经完成。
实施例3:计算机到FPGA方向的PIO数据传输
在附带有PIO接口模块的系统中,假定本发明所述的FPGA与计算机之间的通信系统收到了用户软件的PIO写请求,需要将0号寄存器写入0x00030002。
软件的PIO写请求会通过PCIe总线传递到PCIe IP核,并经过报文控制器被传输到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总线传递到PCIe IP核,并经过报文控制器被传输到PIO引擎。PIO引擎判断读取的地址后,发现软件的PIO读请求的寄存器地址位于用户自定义寄存器地址范围,因此将该PIO请求交给PIO接口模块进行处理。PIO接口模块判断后,得知软件的PIO读请求需要对0号寄存器进行读操作。因此PIO接口模块发送读取0号寄存器请求。当PIO接口模块收到读取0号寄存器请求对应的回复后,会从回复中得到0号寄存器的值为0x00010002。
此时PIO接口模块会回复PIO引擎读取到的0号寄存器的值为0x00010002,PIO引擎会依据0号寄存器的值生成回复报文,并将该报文经由报文控制器和PCIe IP核发送到PCIe总线上,从而使软件获得0号寄存器的值为0x00010002。
实施例5:用户自定义中断
在附带有中断接口模块的系统中,假定本发明所述的FPGA与计算机之间的通信库系统收到用户FPGA应用给出的用户自定义中断请求。
如果中断被使能,中断接口模块会将该请求传递给中断控制器模块,中断控制器模块将通过PCIe IP核在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总线的协议,PCIe IP核收到上述回复报文的可能顺序为:回复报文2-1,回复报文1-1回复报文1-2,回复报文2-2。这时,排序模块会将打乱顺序的四个报文重新进行排序,并向用户FPGA应用传输以下数据:回复报文1-1中的数据,回复报文1-2中的数据,回复报文2-1中的数据,回复报文2-2中的数据。

Claims (5)

1.一种FPGA与计算机之间的通信系统,其特征是,所述通信系统包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIe IP核;其中,
(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引擎通过报文控制器和PCIe IP核向PCIe总线上回复读取到的数据;对于PIO写请求,PIO引擎向寄存器组给出PIO写地址和数据,以使数据被写入寄存器中;
(3)所述寄存器组由一系列的状态与控制寄存器构成,用于对系统进行控制,包括DMA读开始寄存器、DMA写开始寄存器、DMA读操作描述符地址寄存器、DMA写操作描述符地址寄存器;
(4)所述报文控制器通过PCIe IP核与PCIe总线连接,控制数据的发送和接收;
(4.1)报文控制器将通过PCIe IP核接收到的不同类别的数据分发到PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块中;
(4.2)报文控制器从PIO引擎或DMA引擎中的下行DMA控制模块、下行DMA数据处理模块、上行DMA控制模块、上行DMA数据处理模块接收数据,并通过PCIe IP核将数据发送到PCIe总线;
(5)所述中断控制器通过与PCIe IP核与PCIe总线连接,控制中断请求的发送;
(5.1)中断控制器接收DMA引擎中下行DMA控制模块、上行DMA控制模块的中断请求,当DMA完成或出现错误时,中断控制器将收到DMA读或DMA写的完成或出错中断请求;
(5.2)中断控制器通过PCIe IP核将中断请求发送到PCIe总线上,进而引发计算机系统中的中断过程;
(6)所述PCIe IP核用于和PCIe总线进行交互,将PCIe总线信号中的数据提取出来。
2.如权利要求1所述的FPGA与计算机之间的通信系统,其特征是,所述通信系统还包括PIO接口模块,该模块为用户FPGA应用提供寄存器接口,该模块从PIO引擎获得PIO请求,完成对用户寄存器的读写操作。
3.如权利要求1所述的FPGA与计算机之间的通信系统,其特征是,所述通信系统还包括中断接口模块,该模块为用户FPGA应用提供中断接口,该模块将用户FPGA应用的中断请求传递到中断控制器模块中,并由中断控制器通过PCIe IP核产生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写操作。
CN201310556229.9A 2013-11-11 2013-11-11 一种fpga与计算机之间的通信系统 Active CN103559156B (zh)

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 true CN103559156A (zh) 2014-02-05
CN103559156B 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)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104821849A (zh) * 2015-05-12 2015-08-05 北京大学 一种基于fpga的无线电光纤连接接口通信库及其实现方法
CN105786752A (zh) * 2016-01-22 2016-07-20 北京大学 一种计算设备与fpga间的usb通信方法和通信系统
CN106257434A (zh) * 2015-06-16 2016-12-28 深圳市中兴微电子技术有限公司 一种基于增强型外设互连协议总线的数据传输方法及装置
CN106445869A (zh) * 2016-09-20 2017-02-22 烟台大学 一种基于FPGA和PCIe的高速数据交换构架
CN107391403A (zh) * 2017-07-28 2017-11-24 郑州云海信息技术有限公司 一种存储设备中多路控制器间的通信方法及装置
CN107885693A (zh) * 2017-11-28 2018-04-06 南京理工大学 基于pcie3.0的大容量高速数据传输与存储系统及方法
WO2018120780A1 (zh) * 2016-12-27 2018-07-05 深圳开立生物医疗科技股份有限公司 PCIe中断方法和系统
CN108664444A (zh) * 2017-03-31 2018-10-16 北京大学 基于fpga上微处理器的可重构无线mac层结构
CN110851376A (zh) * 2019-10-21 2020-02-28 天津大学 一种基于FPGA的PCIe接口设计方法
CN111221755A (zh) * 2019-12-28 2020-06-02 重庆秦嵩科技有限公司 一种FPGA2子模块的io中断控制方法
CN111813713A (zh) * 2020-09-08 2020-10-23 苏州浪潮智能科技有限公司 数据加速运算处理方法、装置及计算机可读存储介质
CN112115081A (zh) * 2020-09-16 2020-12-22 南京艾科朗克信息科技有限公司 证券期货领域Fpga与计算机之间的DMA传输系统和方法
CN114448780A (zh) * 2022-01-27 2022-05-06 西安微电子技术研究所 一种基于pcie接口的以太网控制器异常处理系统和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262738A1 (en) * 2009-04-08 2010-10-14 Google Inc. Command and interrupt grouping for a data storage device
CN102411553A (zh) * 2011-08-01 2012-04-11 北京航空航天大学 基于cpci总线的1553b协议数据通信及串行加载模块
CN102521182A (zh) * 2011-11-23 2012-06-27 华南师范大学 一种可扩展多通道并行实时数据采集装置和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262738A1 (en) * 2009-04-08 2010-10-14 Google Inc. Command and interrupt grouping for a data storage device
CN102411553A (zh) * 2011-08-01 2012-04-11 北京航空航天大学 基于cpci总线的1553b协议数据通信及串行加载模块
CN102521182A (zh) * 2011-11-23 2012-06-27 华南师范大学 一种可扩展多通道并行实时数据采集装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
单天昌等: "基于FPGA的PCI接口DMA传输的设计与实现", 《计算机技术与发展》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104821849B (zh) * 2015-05-12 2017-05-31 北京大学 一种基于fpga的无线电光纤连接接口通信库及其实现方法
CN104821849A (zh) * 2015-05-12 2015-08-05 北京大学 一种基于fpga的无线电光纤连接接口通信库及其实现方法
CN106257434B (zh) * 2015-06-16 2019-04-30 深圳市中兴微电子技术有限公司 一种基于增强型外设互连协议总线的数据传输方法及装置
CN106257434A (zh) * 2015-06-16 2016-12-28 深圳市中兴微电子技术有限公司 一种基于增强型外设互连协议总线的数据传输方法及装置
CN105786752B (zh) * 2016-01-22 2018-08-28 北京大学 一种计算设备与fpga间的usb通信方法和通信系统
CN105786752A (zh) * 2016-01-22 2016-07-20 北京大学 一种计算设备与fpga间的usb通信方法和通信系统
CN106445869A (zh) * 2016-09-20 2017-02-22 烟台大学 一种基于FPGA和PCIe的高速数据交换构架
CN106445869B (zh) * 2016-09-20 2018-11-13 烟台大学 一种基于FPGA和PCIe的高速数据交换方法
WO2018120780A1 (zh) * 2016-12-27 2018-07-05 深圳开立生物医疗科技股份有限公司 PCIe中断方法和系统
CN108664444A (zh) * 2017-03-31 2018-10-16 北京大学 基于fpga上微处理器的可重构无线mac层结构
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接口设计方法
CN111221755A (zh) * 2019-12-28 2020-06-02 重庆秦嵩科技有限公司 一种FPGA2子模块的io中断控制方法
CN111813713A (zh) * 2020-09-08 2020-10-23 苏州浪潮智能科技有限公司 数据加速运算处理方法、装置及计算机可读存储介质
CN111813713B (zh) * 2020-09-08 2021-02-12 苏州浪潮智能科技有限公司 数据加速运算处理方法、装置及计算机可读存储介质
CN112115081A (zh) * 2020-09-16 2020-12-22 南京艾科朗克信息科技有限公司 证券期货领域Fpga与计算机之间的DMA传输系统和方法
CN114448780A (zh) * 2022-01-27 2022-05-06 西安微电子技术研究所 一种基于pcie接口的以太网控制器异常处理系统和方法

Also Published As

Publication number Publication date
CN103559156B (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN103559156B (zh) 一种fpga与计算机之间的通信系统
TWI746878B (zh) 高頻寬記憶體系統以及邏輯裸片
US10152441B2 (en) Host bus access by add-on devices via a network interface controller
CN109522052B (zh) 一种计算装置及板卡
KR101035832B1 (ko) 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템
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
US7672828B2 (en) Memory access to virtual target device
CN103198042A (zh) Pci航空串行总线板卡及实现动态加载数据处理方法
CN112347721B (zh) 基于fpga实现数据处理加速的系统及其加速方法
CN113760748A (zh) 一种fpga原型验证装置及方法
CN107645457A (zh) 一种PCIe交换机系统和方法
CN103729319A (zh) 基于串行总线的设备系统及数据传输方法
US8510759B1 (en) Scatter gather emulation
CN103714044A (zh) 一种基于片上网络的高效率矩阵转置簇以及转置方法
WO2022032990A1 (zh) 一种命令信息传输方法、系统、装置及可读存储介质
US9053092B2 (en) System authorizing direct data transfers between memories of several components of that system
CN108984350B (zh) 一种中断处理功能验证系统和方法
CN112256331B (zh) 虚拟机指令解析加速方法、装置和计算机存储介质
CN106294225A (zh) 一种数据读取方法、对端设备及控制器
CN209560543U (zh) 大数据运算芯片
CN107066395A (zh) 基于Linux系统实现外设数据高速传输与处理的方法
Kim et al. Compression accelerator for hadoop appliance
CN106569967A (zh) 双列直插式存储器模块固态硬盘片上系统及模拟方法
CN105676726A (zh) 基于spi接口的多mems传感器快速数据存取系统及方法
CN209149287U (zh) 大数据运算加速系统

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