发明名称 一种FPGA与计算机之间的通信系统
摘要 本发明提供了一种FPGA与计算机之间的通信系统,包括:DMA引擎、PIO引擎、寄存器组、报文控制器、中断控制器和PCIe IP核。通过FPGA硬件中独立的发送和接收模块实现全双工、高吞吐率的DMA数据传输,通过发送或接收模块中对数据流和控制流的单独处理实现低延迟的数据传输,通过上述DMA数据传输,将FPGA和计算机连接在一起。利用本发明提供的技术方案,可以提高FPGA应用与计算机集成的效率,加快FPGA应用的研发、测试及推向市场速度,节省了FPGA应用与计算机集成所花费的时间与人力投入。
申请公布号 CN103559156B 申请公布日期 2016.04.06
申请号 CN201310556229.9 申请日期 2013.11.11
申请人 北京大学 发明人 王韬;龚健
分类号 G06F13/28(2006.01)I;G06F13/38(2006.01)I 主分类号 G06F13/28(2006.01)I
代理机构 北京万象新悦知识产权代理事务所(普通合伙) 11360 代理人 朱红涛
主权项 一种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写的完成中断请求,或中断控制器将收到DMA读或DMA写的出错中断请求;(5.2)中断控制器通过PCIe IP核将中断请求发送到PCIe总线上,进而引发计算机系统中的中断过程;(6)所述PCIe IP核用于和PCIe总线进行交互,将PCIe总线信号中的数据提取出来。
地址 100871 北京市海淀区颐和园路5号