CN109783118A - Fpga云主机开发方法和系统 - Google Patents

Fpga云主机开发方法和系统 Download PDF

Info

Publication number
CN109783118A
CN109783118A CN201711117784.6A CN201711117784A CN109783118A CN 109783118 A CN109783118 A CN 109783118A CN 201711117784 A CN201711117784 A CN 201711117784A CN 109783118 A CN109783118 A CN 109783118A
Authority
CN
China
Prior art keywords
fpga
development
programming
file
management platform
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
CN201711117784.6A
Other languages
English (en)
Other versions
CN109783118B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201711117784.6A priority Critical patent/CN109783118B/zh
Priority to PCT/CN2018/113901 priority patent/WO2019091348A1/zh
Priority to JP2020526207A priority patent/JP2021502648A/ja
Priority to EP18875358.6A priority patent/EP3712764B1/en
Publication of CN109783118A publication Critical patent/CN109783118A/zh
Priority to US15/930,113 priority patent/US11132436B2/en
Application granted granted Critical
Publication of CN109783118B publication Critical patent/CN109783118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明实施例提供一种FPGA云主机开发方法和系统,该方法可以由开发管理平台执行,包括:响应于开发设备上传的设计文件,对设计文件中包含的与FPGA云主机的FPGA对应的实际约束文件进行合法性检测;若合法性检测通过,则对设计文件进行综合处理;将综合处理获得的烧写文件烧写到FPGA中。通过对实际约束文件进行合法性检测,以防止了用户对FPGA硬件的恶意攻击。

Description

FPGA云主机开发方法和系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种FPGA云主机开发方法和系统。
背景技术
FPGA云主机或者称为FPGA云服务器是基于现场可编程阵列(Field ProgrammableGate Array,简称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的某个管脚输入,如果模板约束文件中同样也约束该信号从该管脚输入,那么两个文件对该管脚的信号输入约束是一致的。
当开发管理平台检测出实际约束文件未通过合法性检测时,可以向开发设备发送错误提示信息,以使用户重新进行设计文件的设计。当开发管理平台检测出实际约束文件通过合法性检测时,可以进而对开发设备上传的设计文件进行综合处理,实际应用中,可以通过使用现有的综合工具实现该综合处理,因此,开发管理平台中设置有综合工具。
综合处理包括分析、综合和优化三个步骤。设计文件可以采用硬件描述语言(Hardware Description Language,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)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (17)

1.一种FPGA云主机开发方法,应用于开发管理平台中,其特征在于,包括:
响应于开发设备上传的设计文件,对所述设计文件中包含的实际约束文件进行合法性检测,所述实际约束文件与所述FPGA云主机的FPGA对应;
若所述合法性检测通过,则对所述设计文件进行综合处理;
将综合处理获得的烧写文件烧写到所述FPGA中。
2.根据权利要求1所述的方法,其特征在于,所述将综合处理获得的烧写文件烧写到所述FPGA中之前,还包括:
将综合处理获得的综合报告反馈至所述开发设备;
所述将综合处理获得的烧写文件烧写到所述FPGA中,包括:
响应于通过所述开发设备触发的烧写指示,将所述烧写指示对应的所述烧写文件烧写到所述FPGA中。
3.根据权利要求1所述的方法,其特征在于,所述对所述设计文件中包含的实际约束文件进行合法性检测,包括:
若存储于本地的模板约束文件与所述实际约束文件的比对结果表示所述模板约束文件与所述实际约束文件一致,则确定所述实际约束文件通过合法性检测,所述模板约束文件与所述FPGA对应。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于通过所述开发设备触发的开发请求,将所述模板约束文件发送至所述开发设备。
5.根据权利要求1所述的方法,其特征在于,所述对所述设计文件进行综合处理,包括:
若所述设计文件中调用了第三方IP核,则对存储于本地的被调用的第三方IP核和所述设计文件进行综合处理;
所述将综合处理获得的综合报告反馈至所述开发设备,包括:
将综合处理获得的预先定义的非敏感综合报告反馈至所述开发设备,所述非敏感综合报告中不包含所述被调用的第三方IP核的信息。
6.根据权利要求2所述的方法,其特征在于,所述将所述烧写指示对应的所述烧写文件烧写到所述FPGA中,包括:
将所述烧写文件传输至所述FPGA云主机对应的虚拟机管理器中,以通过所述虚拟机管理器将所述烧写文件烧写到所述FPGA中。
7.一种FPGA云主机开发方法,应用于开发设备中,其特征在于,包括:
向开发管理平台上传设计文件,所述设计文件中包含与所述FPGA云主机的FPGA对应的实际约束文件,以供所述开发管理平台对所述实际约束文件进行合法性检测,并在检测通过时对所述设计文件进行综合处理;
接收所述开发管理平台发送的综合报告;
向所述开发管理平台发送根据所述综合报告触发的烧写指示,所述烧写指示用于指示将所述设计文件对应的烧写文件烧写到所述FPGA中。
8.根据权利要求7所述的方法,其特征在于,所述向开发管理平台上传设计文件之前,还包括:
响应于启动开发操作,向所述开发管理平台发送开发请求;
接收所述开发管理平台响应于所述开发请求发送的与所述FPGA对应的模板约束文件。
9.一种FPGA云主机开发系统,其特征在于,包括:
开发设备、与所述开发设备远程通信连接的开发管理平台,以及FPGA云主机中的FPGA;
所述开发设备,用于进行设计文件的设计,并将得到的设计文件上传至所述开发管理平台,所述设计文件中包括与所述FPGA对应的实际约束文件;
所述开发管理平台,用于对所述实际约束文件进行合法性检测,若合法性检测通过,则对所述设计文件进行综合处理,将综合处理获得的烧写文件烧写到所述FPGA中。
10.根据权利要求9所述的系统,其特征在于,所述开发设备还用于:接收所述开发管理平台反馈的综合处理获得的综合报告,以及向所述开发管理平台发送根据所述综合报告触发的烧写指示;
所述开发管理平台还用于:将综合处理获得的综合报告反馈至所述开发设备;以及根据所述烧写指示将所述烧写文件烧写到所述FPGA中。
11.根据权利要求9所述的系统,其特征在于,所述开发管理平台具体用于:
比对存储于本地的模板约束文件与所述实际约束文件,若比对结果表示所述模板约束文件与所述实际约束文件一致,则确定所述实际约束文件通过合法性检测,所述模板约束文件与所述FPGA对应。
12.根据权利要求11所述的系统,其特征在于,所述开发设备还用于:
响应于启动开发操作,向所述开发管理平台发送开发请求;
所述开发管理平台还用于:响应于所述开发请求,将所述模板约束文件发送至所述开发设备。
13.根据权利要求9所述的系统,其特征在于,所述开发管理平台中存储有第三方IP核,所述开发管理平台具体用于:
若所述设计文件中调用了所述第三方IP核,则对被调用的第三方IP核和所述设计文件进行综合处理,将综合处理获得的预先定义的非敏感综合报告反馈至所述开发设备,所述非敏感综合报告中不包含所述被调用的第三方IP核的信息。
14.根据权利要求9所述的系统,其特征在于,还包括:
虚拟机管理器,用于接收所述开发管理平台发送的所述烧写文件,将所述烧写文件烧写到所述FPGA中。
15.根据权利要求9所述的系统,其特征在于,还包括:
与所述FPGA之间存在数据访问链路的用户虚拟机,用于部署所述设计文件中的代码以及通过所述数据访问链路访问所述FPGA。
16.一种开发管理平台,其特征在于,包括:存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至6中任一项所述的FPGA云主机开发方法。
17.一种开发设备,其特征在于,包括:存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求7或8所述的FPGA云主机开发方法。
CN201711117784.6A 2017-11-13 2017-11-13 Fpga云主机开发方法和系统 Active CN109783118B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201711117784.6A CN109783118B (zh) 2017-11-13 2017-11-13 Fpga云主机开发方法和系统
PCT/CN2018/113901 WO2019091348A1 (zh) 2017-11-13 2018-11-05 Fpga云主机开发方法和系统
JP2020526207A JP2021502648A (ja) 2017-11-13 2018-11-05 Fpgaクラウドホストの開発方法およびシステム
EP18875358.6A EP3712764B1 (en) 2017-11-13 2018-11-05 Fpga cloud host development method and system
US15/930,113 US11132436B2 (en) 2017-11-13 2020-05-12 FPGA cloud host development method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711117784.6A CN109783118B (zh) 2017-11-13 2017-11-13 Fpga云主机开发方法和系统

Publications (2)

Publication Number Publication Date
CN109783118A true CN109783118A (zh) 2019-05-21
CN109783118B CN109783118B (zh) 2022-10-25

Family

ID=66438210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711117784.6A Active CN109783118B (zh) 2017-11-13 2017-11-13 Fpga云主机开发方法和系统

Country Status (5)

Country Link
US (1) US11132436B2 (zh)
EP (1) EP3712764B1 (zh)
JP (1) JP2021502648A (zh)
CN (1) CN109783118B (zh)
WO (1) WO2019091348A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569042A (zh) * 2019-08-19 2019-12-13 苏州浪潮智能科技有限公司 一种支持虚拟机内更新fpga功能的系统,方法,设备及存储介质
CN114650246A (zh) * 2020-12-18 2022-06-21 中国移动通信有限公司研究院 Ip核调用的检测方法、装置及设备
WO2023174127A1 (zh) * 2022-03-14 2023-09-21 阿里巴巴(中国)有限公司 基于云的fpga管理控制系统、方法及电子设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11128646B1 (en) * 2018-04-16 2021-09-21 Trend Micro Incorporated Apparatus and method for cloud-based accelerated filtering and distributed available compute security processing
CN111431749B (zh) * 2020-03-27 2022-10-14 重庆海云捷迅科技有限公司 一种fpga云服务器管理平台及其使用方法
CN111694309A (zh) * 2020-06-18 2020-09-22 中国科学技术大学 一种fpga线上平台的实现方法
US20220335004A1 (en) * 2021-04-16 2022-10-20 Raytheon Company Universal synchronous fifo ip core for field programmable gate arrays
CN113722271B (zh) * 2021-07-20 2023-11-21 湖南艾科诺维科技有限公司 用于数据采集回放的文件管理方法、系统及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711674B1 (en) * 2000-02-24 2004-03-23 Xilinx, Inc. Method of watermarking configuration data in an FPGA by embedding the watermark corresponding to a macro obtained upon encountering a first watermark tag from the macro
US20040060032A1 (en) * 2002-05-17 2004-03-25 Mccubbrey David L. Automated system for designing and developing field programmable gate arrays
US20100325597A1 (en) * 2006-09-25 2010-12-23 Cadence Design Systems, Inc. Generalized constraint collection management method
CN101976431A (zh) * 2010-11-02 2011-02-16 公安部第三研究所 一种基于动态可重构技术的通用图像处理平台及其实现方法
CN102156789A (zh) * 2011-04-27 2011-08-17 迈普通信技术股份有限公司 Fpga约束文件自动生成系统及方法
CN103000230A (zh) * 2011-09-09 2013-03-27 上海华虹Nec电子有限公司 一种非易失性存储器ip核的测试和验证开发系统
CN203416233U (zh) * 2013-06-24 2014-01-29 成都鸿芯纪元科技有限公司 一种fpga上电复位系统
US20150143350A1 (en) * 2007-08-29 2015-05-21 Convey Computer Multistate development workflow for generating a custom instruction set reconfigurable processor
US20170195173A1 (en) * 2015-12-31 2017-07-06 Amazon Technologies, Inc. Fpga-enabled compute instances
CN107273171A (zh) * 2017-07-10 2017-10-20 郑州云海信息技术有限公司 一种fpga板卡的烧录方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699399A (zh) * 2012-09-27 2014-04-02 中国科学院微电子研究所 一种使可部分配置的fpga芯片系统具有高可靠性的方法
CN106415583A (zh) 2014-01-22 2017-02-15 英派尔科技开发有限公司 通过现场可编程门阵列的电压测量结果来检测恶意软件
US9444827B2 (en) 2014-02-15 2016-09-13 Micron Technology, Inc. Multi-function, modular system for network security, secure communication, and malware protection
CN106155661B (zh) * 2015-04-14 2020-01-21 阿里巴巴集团控股有限公司 一种控件接入方法及装置
US9811621B2 (en) * 2015-05-01 2017-11-07 Altera Corporation Implementing integrated circuit designs using depopulation and repopulation operations
RU2015144655A (ru) * 2015-10-16 2017-04-24 Кейденс Дизайн Системс, Инк. Процесс проверки достоверности ограничений
US11017125B2 (en) 2016-12-13 2021-05-25 University Of Florida Research Foundation, Incorporated Uniquified FPGA virtualization approach to hardware security
US10540506B2 (en) 2017-01-12 2020-01-21 Microsoft Technology Licensing, Llc Field-programmable gate array virtualization
US10972277B2 (en) 2017-03-15 2021-04-06 Intel Corporation Confidential verification of FPGA code
US10764129B2 (en) * 2017-04-18 2020-09-01 Amazon Technologies, Inc. Logic repository service supporting adaptable host logic

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711674B1 (en) * 2000-02-24 2004-03-23 Xilinx, Inc. Method of watermarking configuration data in an FPGA by embedding the watermark corresponding to a macro obtained upon encountering a first watermark tag from the macro
US20040060032A1 (en) * 2002-05-17 2004-03-25 Mccubbrey David L. Automated system for designing and developing field programmable gate arrays
US20100325597A1 (en) * 2006-09-25 2010-12-23 Cadence Design Systems, Inc. Generalized constraint collection management method
US20150143350A1 (en) * 2007-08-29 2015-05-21 Convey Computer Multistate development workflow for generating a custom instruction set reconfigurable processor
CN101976431A (zh) * 2010-11-02 2011-02-16 公安部第三研究所 一种基于动态可重构技术的通用图像处理平台及其实现方法
CN102156789A (zh) * 2011-04-27 2011-08-17 迈普通信技术股份有限公司 Fpga约束文件自动生成系统及方法
CN103000230A (zh) * 2011-09-09 2013-03-27 上海华虹Nec电子有限公司 一种非易失性存储器ip核的测试和验证开发系统
CN203416233U (zh) * 2013-06-24 2014-01-29 成都鸿芯纪元科技有限公司 一种fpga上电复位系统
US20170195173A1 (en) * 2015-12-31 2017-07-06 Amazon Technologies, Inc. Fpga-enabled compute instances
CN107273171A (zh) * 2017-07-10 2017-10-20 郑州云海信息技术有限公司 一种fpga板卡的烧录方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XILINX: "Vivado Design Suite User Guide", 《HTTPS://WWW.XILINX.COM/SUPPORT/DOCUMENTATION/SW_MANUALS/XILINX2017_3/UG893-VIVADO-IDE.PDF》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569042A (zh) * 2019-08-19 2019-12-13 苏州浪潮智能科技有限公司 一种支持虚拟机内更新fpga功能的系统,方法,设备及存储介质
CN110569042B (zh) * 2019-08-19 2022-11-11 苏州浪潮智能科技有限公司 一种支持虚拟机内更新fpga功能的系统,方法,设备及存储介质
CN114650246A (zh) * 2020-12-18 2022-06-21 中国移动通信有限公司研究院 Ip核调用的检测方法、装置及设备
WO2023174127A1 (zh) * 2022-03-14 2023-09-21 阿里巴巴(中国)有限公司 基于云的fpga管理控制系统、方法及电子设备

Also Published As

Publication number Publication date
EP3712764B1 (en) 2024-04-10
EP3712764A4 (en) 2021-08-18
US20200272730A1 (en) 2020-08-27
JP2021502648A (ja) 2021-01-28
EP3712764A1 (en) 2020-09-23
US11132436B2 (en) 2021-09-28
CN109783118B (zh) 2022-10-25
WO2019091348A1 (zh) 2019-05-16

Similar Documents

Publication Publication Date Title
CN109783118A (zh) Fpga云主机开发方法和系统
US10372596B2 (en) Distributed system test device
US9992166B2 (en) Hierarchical rule development and binding for web application server firewall
Hu et al. A review on cloud computing: Design challenges in architecture and security
CN105871838B (zh) 一种第三方账号的登录控制方法及用户中心平台
CN108780448A (zh) 域内网页编辑
US20160127418A1 (en) Policy-guided fulfillment of a cloud service
CN106559438A (zh) 一种基于目标网络平台的程序上传方法和装置
US8732094B2 (en) Enforcement of security requirements for a business model
CN104298604A (zh) 云服务健壮性测试系统及测试方法
JP2017514218A (ja) サードパーティアプリケーションの実行
US11042654B2 (en) Using domains for flexible data access in heterogeneous system landscapes
CN110213105A (zh) 一种跨平台微应用创建方法
TWI737172B (zh) 用於安全作業系統映像之增量解密及完整度驗證之電腦系統、電腦程式產品及電腦實施方法
Mann et al. RADAR: Data protection in cloud-based computer systems at run time
CN110309669A (zh) 一种数据标注方法、装置及设备
Kirkman et al. Using smart contracts and blockchains to support consumer trust across distributed clouds
WO2022001879A1 (en) Management of computing secrets
CN109639462A (zh) 数据置换安全屋综合服务管理平台
US11799864B2 (en) Computer systems for regulating access to electronic content using usage telemetry data
Troubitsyna et al. Generating cloud monitors from models to secure clouds
CN114969832A (zh) 一种基于无服务器架构的隐私数据管理方法和系统
US20160378982A1 (en) Local environment protection method and protection system of terminal responding to malicious code in link information
US11652652B2 (en) Function as a service console for an online application exchange platform
Layeb et al. Metrics, platforms, emulators, and testnets for ethereum

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant