CN111176619A - Fpga执行流程控制方法、装置、计算机设备及存储介质 - Google Patents
Fpga执行流程控制方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111176619A CN111176619A CN201911346848.9A CN201911346848A CN111176619A CN 111176619 A CN111176619 A CN 111176619A CN 201911346848 A CN201911346848 A CN 201911346848A CN 111176619 A CN111176619 A CN 111176619A
- Authority
- CN
- China
- Prior art keywords
- target
- flow
- node
- fpga
- data file
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种FPGA执行流程控制方法、装置、计算机设备及存储介质。FPGA执行流程控制方法包括:获取流程执行请求,所述流程执行请求包括目标设计和目标流程节点;根据所述目标设计和所述目标流程节点,确定与所述目标流程节点有前向依赖关系的前向流程节点;加载所述前向流程节点预先生成的前向中间数据文件,从所述前向中间数据文件中获取与所述前向流程节点相对应的前向中间结果数据;基于所述前向中间结果数据和所述目标流程节点对应的目标运行参数信息,控制执行所述目标流程节点,获取目标运行结果信息。本发明提供的FPGA执行流程控制方法可缩短FPGA软件设计的设计周期,提高FPGA软件设计的实现效率。
Description
技术领域
本发明涉及FPGA软件设计技术领域,尤其涉及一种FPGA执行流程控制方法、装置、计算机设备及存储介质。
背景技术
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,FPGA设计包括硬件设计和软件设计。软件设计是利用EDA开发软件和编程工具对硬件设计的器件进行开发的过程。软件设计中为实现硬件描述语言需经过EDA工具的综合、布局、布线、码流生成等步骤,在完成以上步骤后为确保设计的功能正确和时序要求,在流程中还需经过必要的仿真或时序分析等步骤。
随着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是本发明一实施例中FPGA执行流程控制装置的一示意图;
图6是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的FPGA执行流程控制方法,该FPGA执行流程控制方法应用在FPGA执行流程控制系统中,该FPGA执行流程控制系统具体包括用于执行FPGA执行流程的软件和安装有该软件的客户端,客户端又称为用户端,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。在本实施中,执行FPGA执行流程的软件是具体是指EDA开发软件。
本实施例所提供的FPGA执行流程控制方法,应用在FPGA软件设计过程中,提供一种灵活的、用户可控的可有效缩短重新编译时间的FPGA执行流程控制方法,在不增加编译流程时间的前提下,不需反复读入FPGA网表文件以重复执行所有流程节点,而是将某一已有流程节点对应的中间结果数据作为输入,继续执行该已有流程节点之后的其他流程节点,以减少重复执行该已有流程节点之前的流程节点,以达到缩短整个FPGA软件设计中所有流程节点对应的执行时间的目的,有助于缩短FPGA软件设计的设计周期,提高FPGA软件设计的实现效率。
在一实施例中,如图1所示,本实施例提供一种FPGA执行流程控制方法,包括FPGA执行流程控制系统执行的如下步骤:
S101:获取流程执行请求,流程执行请求包括目标设计和目标流程节点。
其中,流程执行请求是用户通过客户端触发的用于执行某一FPGA软件设计,以实现仿真验证和时序分析的请求。目标设计是指本次需要执行的FPGA软件设计,具体包括需要执行的至少两个流程节点。目标流程节点是指本次需要执行的FPGA软件设计中开始执行的流程节点,此处的流程节点具体为FPGA软件设计中的某一执行步骤。
具体地,用户在对FPGA软件设计进行重新编译之后,需重新进行仿真验证和时序分析,因此,需要对重新编译后的FPGA软件设计进行执行,此时,可通过客户端上的流程执行配置界面输入目标设计和目标流程节点,以形成流程执行请求,从而进行后续的执行控制。可以理解地,该目标设计可以理解为经过重新编译处理的FPGA软件设计,该目标设计需要重新执行以确定编译后的FPGA软件设计的功能能否实现。目标流程节点可以理解为经过重新编译处理的FPGA软件设计中具体进行过编译修改的流程节点。
例如,若某一FPGA软件设计包括A、B、C和D四个流程节点,若对这一FPGA软件设计进行重新编译,使得流程节点C修改为流程节点C1,由于流程节点C1发生变化,因此需要重新执行该FPGA软件设计,以实现对重新编译的FPGA软件设计进行仿真验证和时序分析,从而保障重新编译的FPGA软件设计的功能实现。此时,可将FPGA软件设计确定为目标设计,而流程节点C1确定为目标流程节点,将目标设计和目标流程节点输入到流程执行配置界面,以形成流程执行请求,以便基于该流程执行请求重新执行该目标流程节点及其以后的流程节点,即流程节点C1和流程节点D,无需执行流程节点A和B,从而缩短目标设计对应的流程执行时间,以缩短设计周期,提高设计效率。
具体地,FPGA软件设计中时序收敛和仿真验证复杂度很高,需要对FPGA软件设计的代码和相关约束进行反复修改,直至满足时序的要求。本实施例中,通过执行FPGA软件设计,存储该FPGA软件设计在执行过程中的每一流程节点对应的中间结果数据,若FPGA软件设计不满足时序要求,则开发人员对FPGA软件设计进行重新编译修改,以便基于重新编译修改后的目标设计和对应的目标流程节点形成新的流程执行请求,基于该流程执行请求再次进行仿真验证和时序收敛分析处理,直至满足时序的要求。可以理解地,目标设计和目标流程节点可由用户自主确定,从而实现灵活且用户可控的流程控制,无需执行目标设计对应的所有流程节点,以缩短目标设计对应的流程执行时间,从而缩短FPGA软件设计的设计周期,并提高FPGA软件设计的设计效率。
S102:根据目标设计和目标流程节点,确定与目标流程节点有前向依赖关系的前向流程节点。
其中,与目标流程节点有前向依赖关系的前向流程节点是指在目标设计中,被目标流程节点直接依赖的前一个流程节点,此处的被目标流程节点直接依赖的前一个流程节点是指前一个流程节点的运行结果信息直接影响目标流程节点的运行。本实施例中,若一流程节点的运行结果信息可以影响目标流程节点的执行时,该流程节点为与目标流程节点有前向依赖关系的前向流程节点。即前向流程节点的执行是执行目标流程节点的充分非必要条件,也就是说若目标流程节点执行前,一定要先执行前向依赖节点;但前向依赖节点执行后,不一定执行目标流程节点。例如,目标设计中包括A、B、C1和D四个流程节点,这四个流程节点需依次执行,若C1为目标流程节点,此时,与目标流程节点C1有前向依赖关系的前向流程节点为流程节点B。
S103:加载前向流程节点预先生成的前向中间数据文件,从前向中间数据文件中获取与前向流程节点相对应的前向中间结果数据。
其中,前向中间数据文件是指用于记录执行前向流程节点过程中形成的中间结果数据的文件。前向中间结果数据是指执行前向流程节点所形成的数据,该前向中间结果数据会影响其后的目标流程节点的运行,因此,在获取基于目标流程节点触发的流程执行请求后,需获取前向中间结果数据。例如,目标设计中包括A、B、C1和D四个流程节点,这四个流程节点需依次执行,若C1为目标流程节点,此时,与目标流程节点C1有前向依赖关系的前向流程节点为流程节点B,则需获取前向流程节点B预先生成的前向中间数据文件,并读取前向中间数据文件中记载的前向流程节点B对应的前向中间结果数据,该前向中间结果数据为在执行本次流程执行请求之前,执行前向流程节点B产生的数据。需要说明的是,本实施例中前向中间结果数据可能被用来执行目标流程节点,也可能被用来执行其他的流程节点,即前向中间结果数据可能被目标流程节点调用,也可能被其他的流程节点调用,但本实施例中仅需执行重新编译的目标流程节点,因此,本实施例中仅需将前向中间结果数据作为重新编译的目标流程节点的输入,以执行重新编译的目标流程节点,以获得相应的输出结果。
具体地,前向流程节点预先生成的前向中间数据文件可能是一个,也可能包括至少两个;在根据目标流程节点加载前向中间数据文件时,可只加载存储有目标流程节点执行过程所需的前向中间结果数据的前向中间数据文件,以保障目标流程节点的可执行性。如上述示例中,前向流程节点B在执行过程中形成W01、W02和W03这三个前向中间数据文件,而目标流程节点C1执行过程所需的前向中间结果数据存储在W02这个前向中间数据文件中,只此时可只加载W02这个前向中间数据文件,无需加载W01和W03这两个前向中间数据文件,保证数据加载的针对性,提高加载效率,缩减加载时间,进而有助于提高执行流程控制的执行效率。
具体地,对FPGA软件设计进行重新编译时,对目标流程节点进行编译修改,在目标流程节点之前的所有流程节点的运行结果是有效的,因此,可通过加载前向流程节点预先生成的前向中间数据文件,以便从该前向中间数据文件获取前向流程节点对应的前向中间结果数据,以便后续实现直接执行目标流程节点,从而减少反复执行目标设计中未进行重新编译所有流程节点的执行时间,提高执行效率。
作为一示例,加载前向流程节点预先生成的前向中间数据文件,是指前向流程节点执行过程中形成的采用特定格式存储执行结果的文件,该特定格式与前向中间数据文件对应的文件扩展名相对应,有助于方便管理前向前向中间数据文件。
S104:基于前向中间结果数据和目标运行参数信息,控制执行目标流程节点,获取目标运行结果信息。
其中,目标运行参数信息是指执行目标流程节点过程中需采用到的运行参数对应的信息,该目标运行参数信息是目标流程节点执行时所需输入的必要参数。相应地,前向中间结果数据也是目标流程节点执行时所需输入的必要参数。本示例中,前向中间结果数据和目标运行参数信息均为目标流程节点中执行动作的输入,其决定执行目标流程节点执行结果输出的目标运行结果信息。
具体地,在获取到前向中间结果数据后,对该前向中间结果数据进行读取或者识别等操作,以使计算机的程序可识别前向中间结果数据,以加快数据处理速度,然后,根据前向中间结果数据和目标运行参数信息这两个必要信息控制执行目标流程节点,获取目标运行结果信息,使得目标流程节点的执行具有可行性。可以理解地,对于任一重新编译的目标设计而言,在重新编译后,从重新编译的目标流程节点开始进行重新执行,以进行仿真验证和时序分析,而无需再次执行没有进行重新编译的目标流程节点之前的流程节点,可以有助于缩短整个FPGA软件设计的设计周期,提高设计效率,并降低目标设计执行过程中的系统负荷。
本实施例所提供的FPGA执行流程控制方法中,用户可通过自主输入的包含目标设计和目标流程节点的流程执行请求,以实现对重新编译后的目标设计进行灵活且自主控制的执行流程控制过程。先根据目标设计和目标流程节点,确定与目标流程节点有前向依赖关系的前向流程节点,以便快速获取重新编译的目标流程节点所直接依赖的前向流程节点;再从与前向流程节点相对应的前向中间数据文件中,获取前向流程节点对应的前向中间结果数据,然后基于前向中间结果数据和目标运行参数信息,控制执行目标流程节点,获取目标运行结果信息,以保证从目标流程节点开始执行的执行流程控制过程具有可行性,无需执行重新编译后的目标设计中所有流程节点,缩短流程执行时间,有助于降低系统负荷,缩短FPGA软件设计的设计周期,提高FPGA软件设计的设计效率。
在一实施例中,如图2所示,步骤S104,即基于前向中间结果数据和目标流程节点对应的目标运行参数信息,控制执行目标流程节点,获取目标运行结果信息,包括:
S201:采用标准库接口读取前向中间结果数据,将前向中间结果数据映射成对应的数据结构,获取读取结果。
其中,数据结构是指数据的逻辑结构和存储方法。本实施例中,在获取到前向中间结果数据后,采用标准库接口读取前向中间结果数据,可以快速将前向中间结果数据映射成对应的数据结构,获取读取结果,以使程序识别该数据结构,减少利用程序对前向中间结果数据进行解析和加工的过程,缩短读取前向中间结果数据的处理时间。本示例中,标准库接口是与前向中间结果数据文件相对应的特定函数接口,可以为但不限于c语言和c++的相关库函数接口,专用于读取前向中间结果数据文件中的数据内容,可有效缩短读取前向中间结果数据的处理时间。
S202:基于读取结果和目标流程节点对应的目标运行参数信息,控制执行目标流程节点。
具体地,读取结果包括前向中间结果数据对应的数据结构,因此,利用读取结果和目标运行参数信息控制执行目标流程节点,从而加快目标执行流程节点的执行效率,获取目标运行结果信息,使得目标流程节点的执行具有可行性。
本实施例所提供的FPGA执行流程控制方法中,采用标准库接口读取前向中间结果数据,将前向中间结果数据映射成对应的数据结构,获取读取结果,以使程序识别该数据结构,减少利用程序对前向中间结果数据进行解析和加工的步骤,缩短前向中间结果数据的处理时间,基于读取结果和目标流程节点对应的目标运行参数信息,从而加快目标执行流程节点的执行效率,控制执行目标流程节点,使得目标流程节点的执行具有可行性。
在一实施例中,如图3所示,在步骤S103之前,即在加载前向流程节点预先生成的前向中间数据文件之前,FPGA执行流程控制方法还包括:
S301:获取与前向流程节点相对应的前向中间数据文件,对前向中间数据文件进行验证,获取验证结果。
具体地,在获取到前向中间数据文件后,则对前向中间数据文件进行验证,获取验证结果,以验证前向中间数据文件是否为执行该前向流程节点后生成的文件,即对前向中间数据文件进行验证是为了判断前向中间数据文件是否准确,确保后续加载与前向流程节点相对应的前向中间数据文件,以保障基于前向中间数据文件获取到的前向中间结果数据,可使目标流程节点被顺利执行,以提高目标设计的设计效率,缩短设计周期。对前向中间数据文件进行验证可以是采用验证工具以验证前向中间数据文件的信息(如文件扩展名或文件头)等进行验证,对前向中间数据文件进行验证也可以是程序自动对文件的信息(如文件扩展名或文件头)等进行验证。其中,验证工具是指用于验证前向中间数据文件是否准确的工具。
S302:若验证结果为验证成功,则执行加载前向流程节点预先生成的前向中间数据文件。
具体地,验证结果为验证成功,则说明前向中间数据文件准确,此时,系统可以加载前向流程节点预先生成的前向中间数据文件,以获得准确的前向中间结果数据,确保基于前向中间数据文件获取到的前向中间结果数据,可使目标流程节点被顺利执行,以提高目标设计的设计效率,缩短设计周期。
S303:若验证结果为验证失败,则将验证失败信息显示在客户端的显示器上。
具体地,验证结果为验证失败,则说明前向中间数据文件有错误,可能是用户使用了错误的前向中间数据文件,或者使用了非兼容版本的软件生成的前向中间数据文件,此时,若验证结果为验证失败,则在客户端上显示该验证失败信息,以便用户了解执行进程,并根据验证失败信息对前向中间数据文件进行更改。
S304:基于验证失败信息,获取与前向流程节点相对应的新的前向中间数据文件,加载新的前向中间数据文件。
由于前向中间数据文件是在执行流程节点过程中形成的人眼不可读的文件,无法更改,只能再次生成。因此,用户根据验证失败信息,则重新生成根据前向流程节点对应的前向中间数据文件,获取新的前向中间数据文件,再次执行步骤S301进行验证,在验证成功后,执行加载新的前向中间数据文件。确保基于准确的前向中间数据文件,获取前向中间结果数据确保目标流程节点被顺利执行,以提高目标设计的设计效率,缩短设计周期。
本实施例所提供的FPGA执行流程控制方法中,获取与前向流程节点相对应的前向中间数据文件,采用验证工具对前向中间数据文件进行验证,获取验证结果,以判断前向中间数据文件是否准确。可以理解地,该验证工具可以是单独设置的验证工具,也可以是嵌入FPGA执行流程控制系统的验证工具。在验证结果为验证成功,则执行加载前向流程节点预先生成的前向中间数据文件,确保基于前向中间数据文件获取到的前向中间结果数据,可使目标流程节点被顺利执行,以提高目标设计的设计效率,缩短设计周期。在验证结果为验证失败时,则将验证失败信息显示在客户端的显示器上,以便用户了解执行进程,然后基于验证失败信息,获取与前向流程节点相对应的新的前向中间数据文件,加载新的前向中间数据文件,确保基于准确的前向中间数据文件,获取前向中间结果数据确保目标流程节点被顺利执行,以提高目标设计的设计效率,缩短设计周期。
在一实施例中,在步骤S104之后,在获取目标运行结果信息之后,FPGA执行流程控制方法还包括:基于目标运行结果信息,形成目标流程节点对应的目标中间数据文件,目标中间数据文件的文件扩展名与目标流程节点相对应。
其中,文件扩展名是用来标志文件类型的一种机制。目标中间数据文件的文件扩展名与目标流程节点相对应。由于每一流程节点的运行结果信息并不相同,程序是可以识别运行结果信息的,因此,在导出中间数据文件时,则依据运行结果信息确定每一中间数据文件的文件扩展名。可以理解地,每一中间数据文件对应一流程节点,因此,每一中间数据文件的文件扩展名与流程节点相对应,以便后续根据中间数据文件对应的文件扩展名可快速加载特定流程节点的中间数据文件。也即最终形成的目标中间数据文件具体是目标流程节点执行后形成的采用特定格式存储执行结果的文件,该特定格式与目标中间数据文件的文件扩展名相对应,以便基于文件扩展名对目标中间数据文件进行统一管理。
在一实施例中,如图4所示,步骤S102,即根据目标设计和目标流程节点,确定与目标流程节点有前向依赖关系的前向流程节点,包括:
S401:根据目标设计,获取与目标设计相对应的至少两个原始流程节点,相邻两个原始流程节点之间存在依赖关系。
其中,原始流程节点是指未经过修改的FPGA软件设计的流程节点。具体地,根据目标设计中流程节点顺序可以快速确定相邻的至少两个原始流程节点,且相邻两个原始流程节点之间存在依赖关系。例如,目标设计中包括A、B、C1和D四个流程节点,这四个流程节点需依次执行,则可以确定A和B为相邻的存在依赖关系的两个原始流程节点,B和C1为相邻的存在依赖关系的两个原始流程节点,C1和D为相邻的存在依赖关系的两个原始流程节点,B为与C1有前向依赖关系的前向流程节点,D为与C1有后向依赖关系的后向流程节点,A为C1的前向流程节点对应的前向流程节点。
S402:从至少两个原始流程节点中,获取与目标流程节点有前向依赖关系的前向流程节点。
具体地,如步骤S401中的C1为目标流程节点,则此时,与流程节点C1有前向依赖关系的前向流程节点为流程节点B,因此,可以确定与目标流程节点有前向依赖关系的前向流程节点,以便后续根据前向流程节点,获取前向中间数据文件。
本实施例所提供的FPGA执行流程控制方法中,根据目标设计,获取与目标设计相对应的至少两个原始流程节点,相邻两个原始流程节点之间存在依赖关系,从至少两个原始流程节点中,确定目标流程节点所处的位置,进而获取与目标流程节点有前向依赖关系的前向流程节点,以便后续根据前向流程节点,获取前向中间数据文件。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种FPGA执行流程控制装置,该FPGA执行流程控制装置与上述实施例中FPGA执行流程控制方法一一对应。如图5所示,该FPGA执行流程控制装置包括流程执行请求获取模块501、前向流程节点确定模块502、前向中间数据文件加载模块503和目标运行结果信息获取模块504。各功能模块详细说明如下:
流程执行请求获取模块501,用于获取流程执行请求,流程执行请求包括目标设计和目标流程节点。
前向流程节点确定模块502,用于根据目标设计和目标流程节点,确定与目标流程节点有前向依赖关系的前向流程节点。
前向中间数据文件加载模块503,用于加载前向流程节点预先生成的前向中间数据文件,从前向中间数据文件中获取与前向流程节点相对应的前向中间结果数据。
目标运行结果信息获取模块504,用于基于前向中间结果数据和目标流程节点对应的目标运行参数信息,控制执行目标流程节点,获取目标运行结果信息。
优选地,目标运行结果信息获取模块504,包括:标准库接口读取模块和信息处理模块。
前向中间数据文件处理单元,用于采用标准库接口读取前向中间结果数据,将前向中间结果数据映射成对应的数据结构,获取读取结果;
目标流程节点执行单元,用于基于读取结果和目标流程节点对应的目标运行参数信息,控制执行目标流程节点。
优选地,在前向中间数据文件加载模块503之前,FPGA执行流程控制装置还包括:前向中间数据文件验证模块、验证成功模块、验证失败模块和前向中间数据文件更改模块。
前向中间数据文件验证模块,用于获取与前向流程节点相对应的前向中间数据文件,对前向中间数据文件进行验证,获取验证结果。
验证成功模块,用于若验证结果为验证成功,则执行加载前向流程节点预先生成的前向中间数据文件。
验证失败模块,用于若验证结果为验证失败,则将验证失败信息显示在客户端的显示器上。
前向中间数据文件更改模块,基于验证失败信息,获取与前向流程节点相对应的新的前向中间数据文件,加载新的前向中间数据文件。
优选地,在目标运行结果信息获取模块504之后,FPGA执行流程控制装置还包括:目标中间数据文件形成模块。
目标中间数据文件形成模块:用于基于目标运行结果信息,形成目标流程节点对应的目标中间数据文件,目标中间数据文件的文件扩展名与目标流程节点相对应。
优选地,前向流程节点确定模块502,包括:原始流程节点获取单元和前向流程节点获取单元。
原始流程节点获取单元,用于根据目标设计,获取与目标设计相对应的至少两个原始流程节点,相邻两个原始流程节点之间存在依赖关系。
前向流程节点获取单元,用于从至少两个原始流程节点中,获取与目标流程节点有前向依赖关系的前向流程节点。
关于FPGA执行流程控制装置的具体限定可以参见上文中对于FPGA执行流程控制方法的限定,在此不再赘述。上述FPGA执行流程控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,该FPGA执行流程控制系统为单机设备,即可以为内部结构如图6所示的计算机设备,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行上述FPGA执行流程控制方法过程中采用或者生成的数据,如目标运行结果信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种FPGA执行流程控制方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中FPGA执行流程控制方法,例如图1所示的步骤S101-S104,或者图2至图4中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时FPGA执行流程控制方法这一实施例中的各模块/单元的功能,例如图5所示的流程执行请求获取模块501、前向流程节点确定模块502、前向中间数据文件加载模块503和目标运行结果信息获取模块504的功能,为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中FPGA执行流程控制方法,例如图1所示的步骤S101-S104,或者图2至图4中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时FPGA执行流程控制方法这一实施例中的各模块/单元的功能,例如图5所示的流程执行请求获取模块501、前向流程节点确定模块502、前向中间数据文件加载模块503和目标运行结果信息获取模块504的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种FPGA执行流程控制方法,其特征在于,包括:
获取流程执行请求,所述流程执行请求包括目标设计和目标流程节点;
根据所述目标设计和所述目标流程节点,确定与所述目标流程节点有前向依赖关系的前向流程节点;
加载所述前向流程节点预先生成的前向中间数据文件,从所述前向中间数据文件中获取与所述前向流程节点相对应的前向中间结果数据;
基于所述前向中间结果数据和所述目标流程节点对应的目标运行参数信息,控制执行所述目标流程节点,获取目标运行结果信息。
2.如权利要求1所述的FPGA执行流程控制方法,其特征在于,所述基于所述前向中间结果数据和所述目标流程节点对应的目标运行参数信息,控制执行所述目标流程节点,包括:
采用标准库接口读取所述前向中间结果数据,将所述前向中间结果数据映射成对应的数据结构,获取读取结果;
基于所述读取结果和所述目标流程节点对应的目标运行参数信息,控制执行所述目标流程节点。
3.如权利要求1所述的FPGA执行流程控制方法,其特征在于,在所述加载所述前向流程节点预先生成的前向中间数据文件之前,所述FPGA执行流程控制方法还包括:
获取与所述前向流程节点相对应的前向中间数据文件,对所述前向中间数据文件进行验证,获取验证结果;
若所述验证结果为验证成功,则执行所述加载所述前向流程节点预先生成的前向中间数据文件。
4.如权利要求3所述的FPGA执行流程控制方法,其特征在于,在所述获取验证结果之后,所述FPGA执行流程控制方法还包括:
若所述验证结果为验证失败,则将验证失败信息显示在客户端的显示器上;
基于所述验证失败信息,获取与所述前向流程节点相对应的新的前向中间数据文件,加载所述新的前向中间数据文件。
5.如权利要求1所述的FPGA执行流程控制方法,其特征在于,在所述获取目标运行结果信息之后,所述FPGA执行流程控制方法还包括:
基于所述目标运行结果信息,形成所述目标流程节点对应的目标中间数据文件,所述目标中间数据文件的文件扩展名与所述目标流程节点相对应。
6.如权利要求1所述的FPGA执行流程控制方法,其特征在于,所述根据所述目标设计和所述目标流程节点,确定与所述目标流程节点有前向依赖关系的前向流程节点,包括:
根据所述目标设计,获取与所述目标设计相对应的至少两个原始流程节点,相邻两个所述原始流程节点之间存在依赖关系;
从至少两个所述原始流程节点中,获取与所述目标流程节点有前向依赖关系的前向流程节点。
7.一种FPGA执行流程控制装置,其特征在于,包括:
流程执行请求获取模块,用于获取流程执行请求,所述流程执行请求包括目标设计和目标流程节点;
前向流程节点确定模块,用于根据所述目标设计和所述目标流程节点,确定与所述目标流程节点有前向依赖关系的前向流程节点;
前向中间数据文件加载模块,用于加载所述前向流程节点预先生成的前向中间数据文件,从所述前向中间数据文件中获取与所述前向流程节点相对应的前向中间结果数据;
目标运行结果信息获取模块,用于基于所述前向中间结果数据和所述目标流程节点对应的目标运行参数信息,控制执行所述目标流程节点,获取目标运行结果信息。
8.如权利要求7所述的FPGA执行流程控制装置,其特征在于,所述目标运行结果信息获取模块,包括:
前向中间数据文件处理单元,用于采用标准库接口读取所述前向中间结果数据,将所述前向中间结果数据映射成对应的数据结构,获取读取结果;
目标流程节点执行单元,用于基于所述读取结果和所述目标流程节点对应的目标运行参数信息,控制执行所述目标流程节点。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述FPGA执行流程控制方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述FPGA执行流程控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346848.9A CN111176619A (zh) | 2019-12-24 | 2019-12-24 | Fpga执行流程控制方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911346848.9A CN111176619A (zh) | 2019-12-24 | 2019-12-24 | Fpga执行流程控制方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111176619A true CN111176619A (zh) | 2020-05-19 |
Family
ID=70652071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911346848.9A Pending CN111176619A (zh) | 2019-12-24 | 2019-12-24 | Fpga执行流程控制方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176619A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202486223U (zh) * | 2011-11-30 | 2012-10-10 | 上海交通大学 | 基于fpga控制的全自动spd热稳仪 |
CN105763258A (zh) * | 2016-03-18 | 2016-07-13 | 苏州盛森集成电路科技有限公司 | 一种基于fpga的数字处理及控制系统 |
WO2018004590A1 (en) * | 2016-06-30 | 2018-01-04 | Intel Corporation | Method and apparatus for remote field programmable gate array processing |
CN110489086A (zh) * | 2019-07-25 | 2019-11-22 | 广东高云半导体科技股份有限公司 | 流程执行控制方法、装置、计算机设备及存储介质 |
-
2019
- 2019-12-24 CN CN201911346848.9A patent/CN111176619A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202486223U (zh) * | 2011-11-30 | 2012-10-10 | 上海交通大学 | 基于fpga控制的全自动spd热稳仪 |
CN105763258A (zh) * | 2016-03-18 | 2016-07-13 | 苏州盛森集成电路科技有限公司 | 一种基于fpga的数字处理及控制系统 |
WO2018004590A1 (en) * | 2016-06-30 | 2018-01-04 | Intel Corporation | Method and apparatus for remote field programmable gate array processing |
CN110489086A (zh) * | 2019-07-25 | 2019-11-22 | 广东高云半导体科技股份有限公司 | 流程执行控制方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1743243A2 (en) | Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems | |
US11954015B2 (en) | Software environment for control engine debug, test, calibration and tuning | |
CN109032631A (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
EP2706459A1 (en) | Apparatus and method for validating a compiler for a reconfigurable processor | |
CN115017058B (zh) | 一种内核模块的测试方法、装置、电子设备及存储介质 | |
KR20220085290A (ko) | 소프트웨어 검증 방법 및 이를 위한 장치 | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
US20220244931A1 (en) | Image file obtaining method and apparatus | |
CN113094252A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN117149209A (zh) | 一种代码增量编译方法、装置、计算机设备及存储介质 | |
JP2019091144A (ja) | シミュレーション装置、シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム | |
CN111176619A (zh) | Fpga执行流程控制方法、装置、计算机设备及存储介质 | |
CN115374017A (zh) | 一种仿真运行可执行文件时抓取现场的方法及计算设备 | |
CN113868127A (zh) | 在线调试方法、装置、计算机设备和存储介质 | |
CN114492266A (zh) | 一种芯片验证方法及装置、电子设备、存储介质 | |
CN108614704A (zh) | 代码编译方法及装置 | |
US20200349304A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
CN112214213A (zh) | Linux内核的开发和管理方法、装置、计算机设备和存储介质 | |
CN113031956A (zh) | 程序编译方法和装置以及程序运行方法和装置 | |
KR101548960B1 (ko) | 가상 플랫폼을 이용한 프로그램 작성과 디버깅 방법 및 장치 | |
CN113407438B (zh) | 模块的测试方法、计算机设备和存储介质 | |
CN112580282B (zh) | 用于集成电路设计验证的方法、装置、设备以及存储介质 | |
CN109200581B (zh) | 通过python代码控制游戏角色的方法、电子设备 | |
CN116774988B (zh) | 解除框架包模式符号依赖的方法及装置 | |
US11719749B1 (en) | Method and system for saving and restoring of initialization actions on dut and corresponding test environment |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200519 |