一种基于PCIE接口高速传输方法、存储介质及终端转让专利

申请号 : CN201911239764.5

文献号 : CN111045964B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴滔谢雪辉张吉锋曹叶

申请人 : 上海国微思尔芯技术股份有限公司

摘要 :

本发明公开了一种基于PCIE接口高速传输方法、存储介质及终端,所述方法包括:判断FPGA原型验证开发板中功能库是否存在,在确定功能库存在之后对所述功能库进行初始化;调用设备查找打开接口,枚举当前终端中所有的PCIe设备,并打开设备CAPI;对指定地址进行寄存器读写,之后根据读写结果判断数据比对是否正确,如果正确,则对指定地址进行DMA传输,并对数据进行对比和处理,之后关闭设备CAPI;如果判断数据比对结果为错误时,则直接关闭设备CAPI,停止传输,能够高速的在主机和原型之间传输大量数据,接近实时测试并可以以硬件速度执行用户设计,加速了设计验证,并增加了FPGA原型验证的测试覆盖面,能有效的解决背景技术提出的问题。

权利要求 :

1.一种基于PCIE接口高速传输方法,其特征在于,包括:判断开发板中功能库是否存在,在确定功能库存在之后对所述功能库进行初始化;

调用设备查找打开接口,枚举当前终端中所有的PCIe设备,并打开设备CAPI;

对指定地址进行寄存器读写,之后根据读写结果判断数据比对是否正确,如果正确,则对指定地址进行DMA传输,并对数据进行对比和处理,之后关闭设备CAPI;

如果判断数据比对结果为错误时,则直接关闭设备CAPI,停止传输。

2.根据权利要求1所述的一种基于PCIE接口高速传输方法,其特征在于,所述判断开发板中功能库的方式具体通过连接计算机检测得到。

3.根据权利要求1所述的一种基于PCIE接口高速传输方法,其特征在于,所述对指定地址进行寄存器读写的过程通过寄存器数据读写函数实现。

4.根据权利要求3所述的一种基于PCIE接口高速传输方法,其特征在于,所述寄存器数据读写函数的过程为:

输入参数,读取数据的PCI设备句柄handle和PCI设备偏移地址;

输入参数,写入数据的PCI设备句柄handle和PCI设备偏移地址;

向指定的地址空间写入指定位宽的数据。

5.根据权利要求1所述的一种基于PCIE接口高速传输方法,其特征在于,所述DMA数据传输过程为:

向指定设备偏移地址DMA写入一定长度数据;

从指定设备偏移地址DMA读取一定长度数据,完成数据传输。

6.根据权利要求5所述的一种基于PCIE接口高速传输方法,其特征在于,所述向指定设备偏移地址DMA写入一定长度数据的过程为:输入参数,指定PCIe设备句柄handle;

输入参数,由设备CAPI分配后写向设备的偏移地址。

7.根据权利要求5所述的一种基于PCIE接口高速传输方法,其特征在于,所述从指定设备偏移地址DMA读取一定长度数据的过程为:输入参数,指定PCIe设备handle;

输入参数,由CAPI设备分配,从指定设备地址中读取一定字节长度的数据。

8.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7中任一项所述的方法。

9.一种终端,其特征在于,包括:处理器及存储器;

所述存储器用于存储计算机程序;

所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行权利要求1至7中任一项所述的方法。

说明书 :

一种基于PCIE接口高速传输方法、存储介质及终端

技术领域

[0001] 本发明涉及数据传输技术领域,具体为一种基于PCIE接口高速传输方法、存储介质及终端。

背景技术

[0002] 开发板是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件。开发板一般由嵌入式系
统开发者根据开发需求自己订制,也可由用户自行研究设计。开发板是为初学者了解和学
习系统的硬件和软件,同时部分开发板也提供的基础集成开发环境和软件源代码和硬件原
理图等。常见的开发板有51、ARM、FPGA、DSP开发板。
[0003] 开发板是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件,一般由嵌入式系统开发
者根据开发需求自己订制,也可由用户自行研究设计。开发板是为初学者了解和学习系统
的硬件和软件,同时部分开发板也提供的基础集成开发环境和软件源代码和硬件原理图
等。常见的开发板有51、ARM、FPGA、DSP开发板。
[0004] 而在开发板开发设计的过程中,主机和设计原型之间需要高速传输大量的数据,从而用于实时测试并执行用户设计,因此对接口的传输效率提出了较高的要求,而现有技
术中的开发板接口传输速率有时无法达到要求。

发明内容

[0005] 为了克服现有技术方案的不足,本发明提供一种基于PCIE接口高速传输方法、存储介质及终端,能够高速的在主机和原型之间传输大量数据,接近实时测试并可以以硬件
速度执行用户设计,加速了设计验证,并增加了FPGA原型验证的测试覆盖面,能有效的解决
背景技术提出的问题。
[0006] 本发明解决其技术问题所采用的技术方案是:
[0007] 一种基于PCIE接口高速传输方法,包括:
[0008] 判断开发板中功能库是否存在,在确定功能库存在之后对所述功能库进行初始化;
[0009] 调用设备查找打开接口,枚举当前终端中所有的PCIe设备,并打开设备CAPI;
[0010] 对指定地址进行寄存器读写,之后根据读写结果判断数据比对是否正确,如果正确,则对指定地址进行DMA传输,并对数据进行对比和处理,之后关闭设备CAPI;
[0011] 如果判断数据比对结果为错误时,则直接关闭设备CAPI,停止传输。
[0012] 进一步地,所述判断开发板中功能库的方式具体通过连接计算机检测得到。
[0013] 进一步地,所述对指定地址进行寄存器读写的过程通过寄存器数据读写函数实现。
[0014] 进一步地,所述寄存器数据读写函数的过程为:
[0015] 输入参数,读取数据的PCI设备句柄handle和PCI设备偏移地址;
[0016] 输入参数,写入数据的PCI设备句柄handle和PCI设备偏移地址;
[0017] 向指定的地址空间写入指定位宽的数据。
[0018] 进一步地,所述DMA数据传输过程为:
[0019] 向指定设备偏移地址DMA写入一定长度数据;
[0020] 从指定设备偏移地址DMA读取一定长度数据,完成数据传输。
[0021] 进一步地,所述向指定设备偏移地址DMA写入一定长度数据的过程为:
[0022] 输入参数,指定PCIe设备句柄handle;
[0023] 输入参数,由设备CAPI分配后写向设备的偏移地址。
[0024] 进一步地,所述从指定设备偏移地址DMA读取一定长度数据的过程为:
[0025] 输入参数,指定PCIe设备handle;
[0026] 输入参数,由CAPI设备分配,从指定设备地址中读取一定字节长度的数据。
[0027] 本发明提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法。
[0028] 本发明提供一种终端,包括:处理器及存储器;所述存储器用于存储计算机程序;所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述的方法。
[0029] 与现有技术相比,本发明的有益效果是:
[0030] 本发明能够高速的在主机和原型之间传输大量数据,接近实时测试并可以以硬件速度执行用户设计,加速了设计验证,并增加了FPGA原型验证的测试覆盖面,还可以帮助开
发者在开发板FPGA设计验证环境间任意切换并实现协同设计验证和调试,提供了共享存储
器空间访问机制,实现多个处理器可同时访问相同的存储器空间,并解决了由此可能带来
的设计性能瓶颈。

附图说明

[0031] 图1为本发明的传输方法整体工作流程示意图。

具体实施方式

[0032] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0033] 如图1所示,本发明提供了一种基于PCIE接口高速传输方法,包括:
[0034] 判断开发板中功能库是否存在,在确定功能库存在之后对所述功能库进行初始化;
[0035] 调用设备查找打开接口,枚举当前终端中所有的PCIe设备,并打开设备CAPI;
[0036] 对指定地址进行寄存器读写,之后根据读写结果判断数据比对是否正确,如果正确,则对指定地址进行DMA传输,并对数据进行对比和处理,之后关闭设备CAPI;
[0037] 如果判断数据比对结果为错误时,则直接关闭设备CAPI,停止传输。
[0038] 需要说明的是,本方法的硬件运行逻辑中主要包含两部分,一部分是在PC主机端运行的用于与FPGA通信的驱动模块和C‑API软件调用模块,另一部分是配置在FPGA内部的
用于连接主机和DUT用户设计的桥接模块,两部分结构通过PCIe缆线进行物理连接,其中,
PCIe模块实现PCIe协议与AXI4协议的转换;
[0039] AXI XBAR模块实现AXI4总线内部连接,支持数据传输的不同时钟域,不同位宽间的转换;
[0040] DMA模块实现对主机进行直接地快速数据搬运,无需主机的CPU参与。
[0041] 在使用时,用户可以在PC主机上自动分配一块存储器空间,作为共享存储器,用户的软件设计环境和FPGA原型验证平台都可以对共享存储器进行数据读写访问,同时允许不
同的FPGA中多个从设备接口访问相同的存储空间。
[0042] 目前为用户分别提供了8个AXI主设备接口和8个AXI从设备接口,在用户设计中可最多挂接16个AXI接口设备。
[0043] 本发明的技术方案通过对指定地址进行寄存器读写,之后根据读写结果判断数据比对是否正确,如果正确,则UI指定地址进行DMA传输,并对数据进行对比和处理,通过预先
比对的方式,保证后续的传输效率,实现接口的高速传输。
[0044] 优选的是,所述判断开发板中功能库的方式具体通过连接计算机检测得到。
[0045] 其中,所述对指定地址进行寄存器读写的过程通过寄存器数据读写函数实现。
[0046] 所述寄存器数据读写函数的过程为:
[0047] 输入参数,读取数据的PCI设备句柄handle和PCI设备偏移地址;
[0048] 输入参数,写入数据的PCI设备句柄handle和PCI设备偏移地址;
[0049] 向指定的地址空间写入指定位宽的数据。
[0050] 进一步的,所述DMA数据传输过程为:
[0051] 向指定设备偏移地址DMA写入一定长度数据;
[0052] 从指定设备偏移地址DMA读取一定长度数据,完成数据传输。
[0053] 所述向指定设备偏移地址DMA写入一定长度数据的过程为:
[0054] 输入参数,指定PCIe设备句柄handle;
[0055] 输入参数,由设备CAPI分配后写向设备的偏移地址。
[0056] 所述从指定设备偏移地址DMA读取一定长度数据的过程为:
[0057] 输入参数,指定PCIe设备handle;
[0058] 输入参数,由CAPI设备分配,从指定设备地址中读取一定字节长度的数据。
[0059] 本发明的存储介质上存储有计算机程序,该程序被处理器执行时实现上述的方法。所述存储介质包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介
质。
[0060] 本发明的终端,包括处理器及存储器。
[0061] 所述存储器用于存储计算机程序。优选地,所述存储器包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
[0062] 所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述终端执行上述的方法。
[0063] 优选地,所述处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器
(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific 
Integrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,
简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0064] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论
从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权
利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有
变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。