FPGA云主机开发方法和系统与流程

文档序号:17719328发布日期:2019-05-22 02:02阅读:207来源:国知局
FPGA云主机开发方法和系统与流程

本发明涉及互联网技术领域,尤其涉及一种fpga云主机开发方法和系统。



背景技术:

fpga云主机或者称为fpga云服务器是基于现场可编程阵列(fieldprogrammablegatearray,简称fpga)的计算服务,一方面它是属于异构计算平台的硬件体系结构,通过并行计算方式,提高服务器计算性能、能效比和计算实时性,对应用实现底层的硬件加速处理;另一方面,通过云服务提供给用户,使得用户可按需付费使用fpga,极大降低fpga的使用成本。

fpga云主机可以理解为一个带有fpga设备的普通的云主机(虚拟机)。用户购买fpga云主机后,如果想要使用其中的fpga,需要对fpga进行开发,得到一个烧写文件,然后将这个文件烧写到fpga中,fpga就实现了用户开发的功能。

而传统的fpga开发环境和流程,都是用户在线下的自有环境即用户侧环境中进行fpga的开发和调试,fpga硬件为开发者所有。但是,在fpga云主机的场景下,fpga的开发将会面临一些新的安全挑战,既要保证用户能够开发fpga,又要保证云主机的安全,防止恶意攻击。



技术实现要素:

有鉴于此,本发明实施例提供一种fpga云主机开发方法和系统,用以实现用户对fpga的开发,并且防止对fpga硬件进行恶意攻击。

第一方面,本发明实施例提供一种fpga云主机开发方法,应用于开发管理平台中,包括:

响应于开发设备上传的设计文件,对所述设计文件中包含的实际约束文件进行合法性检测,所述实际约束文件与所述fpga云主机的fpga对应;

若所述合法性检测通过,则对所述设计文件进行综合处理;

将综合处理获得的烧写文件烧写到所述fpga中。

可选地,所述将综合处理获得的烧写文件烧写到所述fpga中之前,还包括:

将综合处理获得的综合报告反馈至所述开发设备;

从而,所述将综合处理获得的烧写文件烧写到所述fpga中,包括:

响应于通过所述开发设备触发的烧写指示,将所述烧写指示对应的所述烧写文件烧写到所述fpga中。

第二方面,本发明实施例提供一种fpga云主机开发方法,应用于开发设备中,包括:

向开发管理平台上传设计文件,所述设计文件中包含与所述fpga云主机的fpga对应的实际约束文件,以供所述开发管理平台对所述实际约束文件进行合法性检测,并在检测通过时对所述设计文件进行综合处理;

接收所述开发管理平台发送的综合报告;

向所述开发管理平台发送根据所述综合报告触发的烧写指示,所述烧写指示用于指示将所述设计文件对应的烧写文件烧写到所述fpga中。

第三方面,本发明实施例提供一种fpga云主机开发系统,包括:

开发设备、与所述开发设备远程通信连接的开发管理平台,以及fpga云主机中的fpga;

所述开发设备,用于进行设计文件的设计,并将得到的设计文件上传至所述开发管理平台,所述设计文件中包括与所述fpga对应的实际约束文件;

所述开发管理平台,用于对所述实际约束文件进行合法性检测,若合法性检测通过,则对所述设计文件进行综合处理,将综合处理获得的烧写文件烧写到所述fpga中。

在一个可能的设计中,上述开发管理平台的结构中包括处理器和存储器,所述存储器用于存储支持开发管理平台执行上述第一方面中fpga云主机开发方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述开发管理平台还可以包括通信接口,用于开发管理平台与其他设备或通信网络通信。

本发明实施例提供了一种计算机存储介质,用于储存开发管理平台所用的计算机软件指令,其包含用于执行上述第一方面中fpga云主机开发方法所涉及的程序。

在另一可能的设计中,上述开发设备的结构中包括处理器和存储器,所述存储器用于存储支持开发设备执行上述第二方面中fpga云主机开发方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述开发设备还可以包括通信接口,用于开发设备与其他设备或通信网络通信。

本发明实施例提供了另一种计算机存储介质,用于储存开发设备所用的计算机软件指令,其包含用于执行上述第二方面中fpga云主机开发方法所涉及的程序。

本发明实施例提供的fpga云主机开发方法和系统,用户可以在用户侧的开发设备中进行对fpga的开发设计,以获得包含有用户实际针对fpga设计的实际约束文件的设计文件,进而通过开发设备将该设计文件上传至开发管理平台。开发管理平台通过对实际约束文件进行合法性检测,以避免用户通过更改约束文件对fpga产生的恶意攻击,保证了fpga硬件的安全。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的fpga云主机开发系统实施例一的结构示意图;

图2为本发明实施例提供的fpga云主机开发系统实施例二的结构示意图;

图3为本发明实施例提供的fpga云主机开发方法实施例一的流程图;

图4为本发明实施例提供的fpga云主机开发方法实施例二的流程图;

图5为本发明实施例提供的开发管理平台的结构示意图;

图6为本发明实施例提供的开发设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

进一步值得说明的是,本发明各实施例中各步骤之间的顺序是可以调整的,不是必须按照以下举例的顺序执行。

图1为本发明实施例提供的fpga云主机开发系统实施例一的结构示意图,如图1所示,该系统包括:

开发设备、与开发设备远程通信连接的开发管理平台,以及fpga云主机中的fpga。

其中,开发设备为用户侧自有的开发设备,开发管理平台为网络侧或者说云端的管理平台比如可以是服务器,可以将开发设备与开发管理平台理解为是客户端与服务器的关系,即开发设备中可以设置有支持用户开发的客户端。

开发设备是用户自主选择的,是用于fpga开发的设备,可选地,可以是用户线下设备,比如用户自己的一台电脑,也可以是fpga云主机的虚拟机等。概括来说,用户在该设备中可以进行fpga设计开发的相关工作,比如包括代码编写,约束设计,查看综合报告等。

详细来说,该开发设备,用于供用户进行设计文件的设计,并将得到的设计文件上传至开发管理平台,设计文件中包括与fpga对应的实际约束文件。相应地,开发管理平台,用于对实际约束文件进行合法性检测,若合法性检测通过,则对设计文件进行综合处理,将综合处理获得的烧写文件烧写到fpga中。

在一可选实施例中,开发设备还用于:接收开发管理平台反馈的综合处理获得的综合报告;以及向开发管理平台发送根据该综合报告触发的烧写指示。相应的,开发管理平台还用于:将综合处理获得的综合报告反馈至开发设备;以及根据上述烧写指示将综合处理获得的上述烧写文件烧写到fpga中。

实际应用中,用户在开发设备中进行自己所需的开发文件进行代码编写,并可以对编写的代码进行编译、调试等操作,最终形成设计文件,该设计文件中可以包括用户编写的代码以及实际设计的约束文件,称为实际约束文件。

在对编写的代码进行编译时,往往需要用到fpga的约束文件,为与上述实际约束文件区别,称为模板约束文件。因此,开发设备还用于:响应于用户触发的启动开发操作,向开发管理平台发送开发请求,以请求获得该模板约束文件。从而,开发管理平台还用于:响应于该开发请求,将模板约束文件发送至开发设备。

由于用户是针对自己购买的fpga云主机进行开发,而开发管理平台可以视为一个统一的管理平台,可以协助不同用户对各自的fpga云主机进行开发,因此,在开发设备中可以提供用户的fpga云主机的标识信息的设置项,当用户填写完该设置项并触发某预设控件或菜单项时,认为用户触发了启动开发操作,从而,开发设备向开发管理平台发送的开发请求中可以携带fpga云主机的标识信息,以使得开发管理平台基于该标识信息获取该fpga云主机中fpga的模板约束文件,并将获得的模板约束文件反馈给开发设备。可选地,开发管理平台中可以以fpga云主机的标识信息为存储索引,预先存储众多fpga云主机的fpga对应的模板约束文件。

一般地,本发明实施例中提及到的约束文件的功能为,定义fpga输入输出信号绑定的芯片管脚,即某个信号从fpga的哪个管脚输入,某个信号从fpga的哪个管脚输出。此外,约束文件还定义了fpga中的各种时钟关系,电平标准等等,以及一些其他的约束。

虽然开发管理平台将用户需要开发的fpga的模板约束文件通过开发设备提供给了用户,但是用户在实际开发过程中,可能会对该模板约束文件进行修改、删除、增加等操作,从而形成实际设计的实际约束文件,而这些操作会使得fpga本身以及其周围的软硬件系统受损,因此,为了保证fpga的安全,防止用户的恶意攻击,用户在通过开发设备将设计文件提交即上传至开发管理平台后,开发管理平台需要对该设计文件进行合法性检测,具体是对该设计文件中的实际约束文件进行合法性检测。可选地,开发管理平台可以比对存储于本地的与所述fpga对应的模板约束文件与该实际约束文件,若比对结果表示模板约束文件与实际约束文件一致,则确定实际约束文件通过合法性检测。其中,模板约束文件与实际约束文件一致是指两个文件中包含的各种约束对应相同,比如:实际约束文件中约束某个信号从fpga的某个管脚输入,如果模板约束文件中同样也约束该信号从该管脚输入,那么两个文件对该管脚的信号输入约束是一致的。

当开发管理平台检测出实际约束文件未通过合法性检测时,可以向开发设备发送错误提示信息,以使用户重新进行设计文件的设计。当开发管理平台检测出实际约束文件通过合法性检测时,可以进而对开发设备上传的设计文件进行综合处理,实际应用中,可以通过使用现有的综合工具实现该综合处理,因此,开发管理平台中设置有综合工具。

综合处理包括分析、综合和优化三个步骤。设计文件可以采用硬件描述语言(hardwaredescriptionlanguage,hdl)进行描述,分析是采用标准的hdl语法规则对hdl设计文件进行分析并纠正语法错误;综合是以选定的fpga结构和器件为目标,对hdl和fpga网表文件进行逻辑综合,将设计文件编译成由与门、或门、非门、ram、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路;优化则是根据用户的设计约束对速度和面积进行逻辑优化,产生一个优化的fpga网表文件,以供fpga布局和布线工具使用。综合完成后可以输出若干综合报告和烧写文件,其中,综合报告比如包含时序报告、功率报告、温度报告等等,烧写文件可以类比于应用程序编译后的可执行文件。报告文件,列出综合状态与综合结果,如资源使用情况、综合后的层次信息等。

值得说明的是,在fpga云主机的开发过程中,为避免重复开发,用户可以使用第三方ip核即第三方的知识产权核。用户通过授权(购买或其他方式)后可以使用这些ip核。

简单来说,ip核为实现了某个功能的模块,用户可以在应用程序代码中直接调用某个ip核,以实现相应的功能,相当于直接使用某个已有的功能模块,避免重复开发。

第三方ip核虽然可以提高用户的开发效率,避免重复开发,但是需要从技术上防止用户将这些ip核输出到自有设备中,因为一旦扩散出去,用户可以将ip核再提供给其他非授权用户使用或者传播到互联网上去等等,造成“一人购买,全体使用”的问题。因此,为保证第三方ip核的使用安全,不被扩散给非授权用户,本发明实施例中,还提供了保护第三方ip核的方案。

具体来说,开发管理平台可以预先获取用户授权可用的第三方ip核,并将第三方ip核存储于本地,即开发管理平台中存储有用户可用的第三方ip核。其中,如前述提及的fpga云主机的标识信息的设置项,开发设备中还可以设置有用户标识的设置项,从而,上述开发请求中还可以包括用户标识,从而,开发管理平台可以基于该用户标识通过维护有第三方ip核的服务器获取对应的第三方ip核。

本发明实施例中,将第三方ip核存储在开发管理平台中,而不暴露给用户,即不提供给用户开发设备。

当用户开发过程中需要使用第三方ip核时,可以通过调用的方式来使用,比如:可以将用户可用的第三方ip核的功能描述以及输入参数提供给用户,以方便用户结合实际需求选择调用哪个第三方ip核。从而用户在开发过程中,当需要调用某个第三方ip核时,仅需要在设计文件中写入调用该第三方ip核的调用代码即可,相当于声明需要调用哪个第三方ip核。

当用户调用了第三方ip核时,开发管理平台还用于:若设计文件中调用了第三方ip核,则对被调用的第三方ip核和设计文件进行综合处理,将综合处理获得的预先定义的非敏感综合报告反馈至开发设备,其中,非敏感综合报告中不包含被调用的第三方ip核的信息。

也就是说,当用户的设计文件中调用了第三方ip核时,综合处理的输入除了包含设计文件外,还包含被调用的第三方ip核。可选地,开发管理平台可以通过分析设计文件中是否含有第三方ip核的名称来确定是否调用了第三方ip核以及调用了哪个第三方ip核。

另外,本发明实施例中,为了保护第三方ip核,除了不把第三方ip核暴露给用户外,还不把综合结果中可以反推或提取出第三方ip核的综合报告提供给用户。从而,开发管理平台对被调用的第三方ip核和设计文件进行综合处理后,仅将综合处理结果中预先定义的非敏感综合报告反馈至开发设备,其中,非敏感综合报告中不包含被调用的第三方ip核的信息,即不会反推或提取出第三方ip核的综合报告。

由于综合处理得到的综合报告的数量和种类往往是固定的,因此,可以预先定义哪些综合报告是容易包含第三方ip核的相关信息的,将这些综合报告定义为敏感综合报告,其他综合报告定义为非敏感综合报告。

因此,通过不把第三方ip核以及包含第三方ip核信息的综合结果反馈给用户可以实现对第三方ip核的保护。

进而,用户可以对通过开发设备接收到的综合报告进行分析,以确定是否还需要修改针对fpga的设计文件。如果需要修改,则重新进行设计文件的设计,进而再重新触发上述设计文件的上传、合法性检测、综合等处理。如果不需要修改,用户可以通过开发设备触发针对当前的设计文件的烧写指示,意味着指示需要将哪个设计文件对应的烧写文件烧写到fpga中。

可选地,开发设备中可以显示有设计文件的标识如设计文件的名称以及与设计文件对应的勾选框和烧写控件,用户可以通过对设计文件的勾选框进行选择操作,并点击对应的烧写控件触发上述烧写指示。从而,开发管理平台可以根据烧写指示中携带的设计文件标识获知用户想要烧写哪个设计文件对应的烧写文件,从而将该设计文件综合处理后得到的烧写文件烧写至fpga中。

实际上,用户开发过程中可能开发了多个设计文件,不同的设计文件将由开发管理平台综合出不同的烧写文件,开发管理平台保存综合得到的这些对应于不同设计文件的烧写文件,而至于应该向fpga中烧写哪个烧写文件可以是由用户自主选择的。

如图2所示,可选地,该fpga云主机开发系统中还可以包括与fpga云主机对应的即用于管理fpga云主机的虚拟机管理器(hypervisor),从而,开发管理平台可以通过该虚拟机管理器实现向fpga的烧写文件的烧写。具体地,虚拟机管理器,用于接收开发管理平台发送的烧写文件,通过运行预设的烧写程序以将烧写文件烧写到fpga中。

另外,如图2所示,该fpga云主机开发系统中还包括:与fpga之间存在数据访问链路的用户虚拟机,用于部署设计文件中的代码以及通过数据访问链路访问fpga。

用户虚拟机是交付给用户使用的虚拟机,用户在该虚拟机中可以看到fpga设备,部署自己的设计代码,并通过数据链路访问fpga设备。

虚拟机管理器对用户虚拟机和fpga云主机进行管理,用户无法进入虚拟机管理器,但虚拟机管理器不把fpga的下载链路暴露给用户虚拟机,从而用户无法在用户虚拟机中直接对fpga发起下载操作,即用户无法直接将烧写文件烧写至fpga中。由于fpga的下载链路不会暴露给用户,用户无法对fpga执行下载类型的操作,仅能够进行访问操作,从而可以防止用户将含有恶意攻击成分的烧写文件烧写至fpga中。另外,通过虚拟机管理器烧写到fpga的烧写文件来自于经过合法性检测后的设计文件的综合结果,从而也防止了对fpga的恶意攻击。

综上,用户可以在用户侧的开发设备中进行对fpga的开发设计,以获得包含有用户实际针对fpga设计的实际约束文件的设计文件,进而通过开发设备将该设计文件上传至开发管理平台。开发管理平台通过对实际约束文件进行合法性检测,以避免用户通过更改约束文件对fpga产生的恶意攻击。进而,开发管理平台通过对设计文件进行综合处理,将综合处理结果中的综合报告反馈给开发设备以供用户查看,并响应于用户针对某设计文件或者针对某综合报告触发的烧写指示,将相应的综合处理结果中包含的烧写文件烧写至fpga中,从而在实现对fpga开发的同时,保证了fpga硬件的安全。

下面以一个实际的例子简单说明上述开发系统在实际使用过程中的开发流程,可以包括如下过程:

a.用户通过开发设备获取fpga基础工程,包括工程文件,顶层文件,约束文件等。

如前述所说,用户可以通过在开发设备的开发界面中执行启动开发的操作而触发向开发管理平台发送开发请求,响应于该开发请求,开发管理平台可以向用户开发设备反馈包含上述约束文件即前述提及的模板约束文件的fpga基础工程,供用户开发使用。

b.用户在其开发设备中进行工程开发,包括应用程序的代码编写、仿真等,以获得设计文件。

c.用户开发完成后,将设计文件提交给开发管理平台。

d.开发管理平台对用户提交的设计文件进行合法性检测,如果不通过,将错误提示信息返回给用户,回到步骤b;如果通过,进入后面的步骤。

e.开发管理平台确定用户设计文件中是否调用了第三方ip核。如果是,将需要针对被调用的第三方ip核和设计文件进行综合处理,如果否,则直接针对设计文件进行综合处理。

f.将不敏感的综合结果返回给开发设备。

g.用户分析综合结果,决定是否烧写(下载)fpga,如果否,回到步骤b,修改fpga的设计文件。如果是,进入后面步骤。

h.开发管理平台将需要烧写的烧写文件发送至虚拟机管理器,虚拟机管理器然后调用相关驱动来烧写fpga。

i.开发管理平台通知用户fpga烧写成功,用户通过用户虚拟机开始对fpga进行访问。

图3为本发明实施例提供的fpga云主机开发方法实施例一的流程图,本实施例提供的该fpga云主机开发方法用于实现用户对fpga云主机中fpga的开发,该方法由上述开发系统中的开发管理平台来执行,该开发管理平台可以是一服务器。如图3所示,该方法包括如下步骤:

301、响应于通过开发设备触发的开发请求,将与fpga云主机的fpga对应的模板约束文件发送至开发设备。

值得说明的是,上述步骤301为可选步骤,实际上,用户也可以通过其他方式获得模板约束文件,比如用户通过登录自己购买的fpga云主机,通过fpga云主机获得该模板约束文件。

302、响应于开发设备上传的设计文件,对设计文件中包含的实际约束文件进行合法性检测,实际约束文件与fpga云主机的fpga对应。

可选地,开发管理平台可以对比存储于本地的模板约束文件与设计文件中的实际约束文件,若比对结果表示模板约束文件与实际约束文件一致,则确定实际约束文件通过合法性检测,否则未通过合法性检测。

303、若合法性检测通过,则对设计文件进行综合处理。

可选地,用户的设计文件中可能会调度第三方ip核,因此,若设计文件中调用了第三方ip核,则对存储于本地的被调用的第三方ip核和设计文件进行综合处理,反之,若未调用第三方ip核,则对设计文件进行综合处理。

可选地,综合处理后,可以直接将综合处理获得的烧写文件烧写至fpga中。也可以按如下方式处理:

304、将综合处理获得的综合报告反馈至开发设备。

可以预先定义综合处理得到的综合报告中哪些是敏感综合报告,哪些是非敏感综合报告,非敏感综合报告中不包含被调用的第三方ip核的信息。从而,在综合处理后,仅将非敏感综合报告反馈至开发设备。

305、响应于通过开发设备触发的烧写指示,将烧写指示对应的烧写文件烧写到fpga中,烧写文件通过综合处理获得。

用户基于收到的综合报告若确定无需进一步修改设计文件,则可以触发针对某设计文件的烧写指示。开发管理平台基于该烧写指示,将相应设计文件对应的烧写文件烧写至fpga中。可选地,开发管理平台可以将烧写文件传输至fpga云主机对应的虚拟机管理器中,以通过虚拟机管理器将该烧写文件烧写到fpga中。

本实施例中未尽的详细描述过程可以参见前述系统实施例中的开发管理平台相关的描述,在此不再赘述。

本实施例中,通过网络侧的开发管理平台来远程协助完成用户对fpga云主机中fpga进行开发,一方面,通过对用户上传的设计文件的合法性检测,以避免用户对fpga硬件的恶意攻击,另一方面,不把需要保护的第三方ip核暴露给用户,综合过程在开发管理平台侧完成,综合结果中的敏感部分不提供给用户,从而实现了对第三方ip核的保护,再一方面,通过开发管理平台来对fpga进行烧写,也防止了用户直接对fpga烧写导致的恶意攻击。

图4为本发明实施例提供的fpga云主机开发方法实施例一的流程图,本实施例提供的该fpga云主机开发方法用于实现用户对fpga云主机中fpga的开发,该方法由上述开发系统中的用户侧的开发设备来执行。如图4所示,该方法包括如下步骤:

401、响应于用户触发的启动开发操作,向开发管理平台发送开发请求。

402、接收开发管理平台响应于开发请求发送的与fpga云主机的fpga对应的模板约束文件。

值得说明的是,上述步骤401-402为可选步骤,实际上,也可以通过其他方式获得模板约束文件,比如用户通过登录自己购买的fpga云主机,通过fpga云主机获得该模板约束文件。

403、向开发管理平台上传设计文件,设计文件中包含与fpga云主机的fpga对应的实际约束文件,以供开发管理平台对实际约束文件进行合法性检测,并在检测通过时对设计文件进行综合处理。

用户通过用户开发设备与开发管理平台间的交互,获得所需的模板约束文件,以用于进行设计文件的设计。但是,用户在实际设计中,可能会对模板约束文件进行更改,导致对fpga硬件的损害,因此,用户的设计文件需要提交给开发管理平台进行合法性检测。

404、接收开发管理平台发送的综合报告。

该综合报告是指非敏感的综合报告,用户通过分析该综合报告可以确定是否还要修改设计文件,若无需修改,则可以触发针对该设计文件的烧写指示,指示开发管理平台将该设计文件对应的烧写文件烧写至fpga中。

405、向开发管理平台发送烧写指示,烧写指示用于指示将设计文件对应的烧写文件烧写到fpga中。

本实施例中未尽的详细描述过程可以参见前述系统实施例中的开发管理平台相关的描述,在此不再赘述。

本实施例中,基于网络侧的开发管理平台的协助,用户可以远程地对fpga云主机中fpga进行开发,简单方便。

在一个可能的设计中,前述开发管理平台可以实现为服务器,如图5所示,该开发管理平台可以包括:处理器11和存储器12。其中,所述存储器12用于存储支持开发管理平台执行上述任一实施例中提供的fpga云主机开发方法的程序,所述处理器11被配置为用于执行所述存储器12中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器11执行时能够实现如下步骤:

响应于开发设备上传的设计文件,对所述设计文件中包含的实际约束文件进行合法性检测,所述实际约束文件与所述fpga云主机的fpga对应;

若所述合法性检测通过,则对所述设计文件进行综合处理;

将综合处理获得的综合报告反馈至所述开发设备;

响应于通过所述开发设备触发的烧写指示,将所述烧写指示对应的烧写文件烧写到所述fpga中,所述烧写文件通过所述综合处理获得。

可选地,所述处理器11还用于执行前述各方法步骤中的全部或部分步骤。

其中,所述开发管理平台的结构中还可以包括通信接口13,用于开发管理平台与其他设备或通信网络通信,比如与用户开发设备等进行通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存开发管理平台所用的计算机软件指令,其包含用于执行上述各方法实施例中fpga云主机开发方法所涉及的程序。

另外,在一个可能的设计中,上述开发设备比如为pc机,如图6所示,该开发设备可以包括:处理器21和存储器22。其中,所述存储器22用于存储支持开发设备执行上述任一实施例中提供的fpga云主机开发方法的程序,所述处理器21被配置为用于执行所述存储器22中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器21执行时能够实现如下步骤:

向开发管理平台上传设计文件,所述设计文件中包含与所述fpga云主机的fpga对应的实际约束文件,以供所述开发管理平台对所述实际约束文件进行合法性检测,并在检测通过时对所述设计文件进行综合处理;

接收所述开发管理平台发送的综合报告;

向所述开发管理平台发送烧写指示,所述烧写指示用于指示将所述设计文件对应的烧写文件烧写到所述fpga中。

可选地,所述处理器21还用于执行前述各方法步骤中的全部或部分步骤。

其中,所述开发设备的结构中还可以包括通信接口23,用于开发设备与其他设备或通信网络通信,比如与开发管理平台进行通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存开发设备所用的计算机软件指令,其包含用于执行上述各方法实施例中fpga云主机开发方法所涉及的程序。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1