CN112540766A - 现场可编程门阵列编码方法、装置和系统 - Google Patents

现场可编程门阵列编码方法、装置和系统 Download PDF

Info

Publication number
CN112540766A
CN112540766A CN202011556670.3A CN202011556670A CN112540766A CN 112540766 A CN112540766 A CN 112540766A CN 202011556670 A CN202011556670 A CN 202011556670A CN 112540766 A CN112540766 A CN 112540766A
Authority
CN
China
Prior art keywords
file
primitive
programmable gate
field programmable
gate array
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
CN202011556670.3A
Other languages
English (en)
Other versions
CN112540766B (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.)
Shandong Gowin Semiconductor Technology Co ltd
Original Assignee
Shandong Gowin Semiconductor Technology Co 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 Shandong Gowin Semiconductor Technology Co ltd filed Critical Shandong Gowin Semiconductor Technology Co ltd
Priority to CN202011556670.3A priority Critical patent/CN112540766B/zh
Publication of CN112540766A publication Critical patent/CN112540766A/zh
Application granted granted Critical
Publication of CN112540766B publication Critical patent/CN112540766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种现场可编程门阵列编码方法、装置和系统。其中,该方法包括:获取编码配置需求,以及编程规避规则,其中,编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息;基于编码配置需求,生成源文件;基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件。本发明解决了相关技术中不同厂商的现场可编程门阵列器件与编码实现方式不同,导致开发进程缓慢的技术问题。

Description

现场可编程门阵列编码方法、装置和系统
技术领域
本发明涉及现场可编程门阵列领域,具体而言,涉及一种现场可编程门阵列编码方法、装置和系统。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列),拥有大量的可编程逻辑单元,可根据客户需求定制算法设计,具有可编程灵活性高、开发周期短、并行计算可编程灵活性高等优点,广泛应用于通信、汽车电子、工业控制等领域。
目前,不同厂商的FPGA器件的编码实现方式不同,当编程人员使用一个新的FPGA器件进行编程时,编程人员首先需要熟悉该FPGA器件的编程实现方法,然后进行开发,导致开发进程缓慢,研发成本较高。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种现场可编程门阵列编码方法、装置和系统,以至少解决相关技术中不同厂商的现场可编程门阵列器件与编码实现方式不同,导致开发进程缓慢的技术问题。
根据本发明实施例的一个方面,提供了一种现场可编程门阵列编码方法,包括:获取编码配置需求,以及编程规避规则,其中,编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息;基于编码配置需求,生成源文件;基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件。
可选地,配置信息包括:激励文件对应的目标编程语言,其中,基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成现场可编程门阵列器件的激励文件包括:提取接口数据的信号信息;基于编程规避规则和信号信息,生成激励数据,其中,激励数据包括如下至少之一:控制信号数据、时钟信号数据、输入信号数据、输出信号数据和仿真数据;将激励数据写入目标编程语言对应的文件中,生成激励文件。
可选地,在基于编码配置需求,生成源文件之后,该方法还包括:提取接口数据的信号信息;基于信号信息和配置信息,生成现场可编程门阵列器件的仿真脚本,其中,配置信息还包括:仿真脚本对应的目标仿真工具。
可选地,在基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成现场可编程门阵列器件的激励文件之前,该方法还包括:对源文件进行解析,得到解析文件;对解析文件进行深度辨识,得到接口数据。
可选地,在对源文件进行解析,得到解析文件之前,该方法还包括:检测源文件中包含的原语是否与现场可编程门阵列器件相对应;如果检测到源文件中包含的原语与现场可编程门阵列器件不对应,则对源文件进行原语转换,得到待解析文件,并对待解析文件进行解析,得到解析文件,其中,待解析文件中包含的原语与现场可编程门阵列器件相对应;如果检测到源文件中包含的原语与现场可编程门阵列器件相对应,则对源文件进行解析,得到解析文件。
可选地,在对源文件进行原语转换,得到待解析文件之前,该方法还包括:判断是否存在相应的原语转换规则;如果存在原语转换规则,则按照原语转换规则对源文件进行原语转换,得到待解析文件;如果不存在原语转换规则,则确定源文件为非法文件。
可选地,在对源文件进行原语转换,得到待解析文件之后,该方法还包括:判断待解析文件是否为网表文件;如果待解析文件不是网表文件,则对待解析文件进行语法检测和原语连接检测;如果待解析文件是网表文件,则对待解析文件的资源信息进行统计,并基于统计结果对待解析文件进行资源检测。
可选地,如果检测到待解析文件存在语法问题或原语连接问题,则生成待解析文件对应的第一检测报告。
可选地,基于统计结果对待解析文件进行资源检测包括:判断统计结果是否超出现场可编程门阵列器件的资源;如果统计结果超出现场可编程门阵列器件的资源,则生成待解析文件对应的第二检测报告。
可选地,在获取编码配置需求之前,该方法还包括:接收检索指令;获取预先存储的多个原语模块中与检索指令对应的目标原语模块,其中,多个原语模块与多种不同现场可编程门阵列器件相对应;展示目标原语模块;基于目标原语模块,确定编码配置需求。
根据本发明实施例的另一方面,还提供了一种现场可编程门阵列编码装置,包括:获取模块,用于获取编码配置需求,以及编程规避规则,其中,编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息;第一生成模块,用于基于编码配置需求,生成源文件;第二生成模块,用于基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件。
根据本发明实施例的另一方面,还提供了一种现场可编程门阵列编码系统,包括:原语编码模块,用于基于编码配置需求,生成源文件;激励编码模块,与原语编码模块连接,用于基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件,其中,编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息。
可选地,配置信息包括:激励文件对应的目标编程语言,其中,激励编码模块包括:编码规避模块,用于输出编程规避规则;激励模块,与原语编码模块和编码规避模块连接,用于提取接口数据的信号信息,基于编程规避规则和信号信息,生成激励数据,并将激励数据写入目标编程语言对应的文件中,生成激励文件,其中,激励数据包括如下至少之一:控制信号数据、时钟信号数据、输入信号数据、输出信号数据和仿真数据。
可选地,激励编码模块包括:激励模块,与原语编码模块连接,用于提取接口数据的信号信息,并基于信号信息和配置信息,生成现场可编程门阵列器件的仿真脚本,其中,配置信息还包括:仿真脚本对应的目标仿真工具。
可选地,该系统还包括:端口信号解析模块,与原语编码模块和激励编码模块连接,用于对源文件进行解析,得到解析文件,并对解析文件进行深度辨识,得到接口数据。
可选地,该系统还包括:原语转换模块,与原语编码模块连接,用于在检测到源文件中包含的原语与现场可编程门阵列器件不对应的情况下,对源文件进行原语转换,得到待解析文件,其中,待解析文件中包含的原语与现场可编程门阵列器件相对应;端口信号解析模块,与原语转换模块、原语编码模块和激励编码模块连接,用于对待解析文件进行解析,得到解析文件,或,对源文件进行解析,得到解析文件。
可选地,原语转换模块还用于按照相应的原语转换规则对源文件进行原语转换,得到待解析文件,或,确定源文件为非法文件。
可选地,该系统还包括:语法检查模块,用于在待解析文件不是网表文件的情况下,对待解析文件进行语法检测和原语连接检测;资源检查模块,用于在待解析文件是网表文件的情况下,对待解析文件的资源信息进行统计,并基于统计结果对待解析文件进行资源检测。
可选地,语法检查模块还用于如果检测到待解析文件存在语法问题或原语连接问题,则生成待解析文件对应的第一检测报告。
可选地,资源检查模块还用于如果统计结果超出现场可编程门阵列器件的资源,则生成待解析文件对应的第二检测报告。
可选地,原语编码模块还用于执行如下步骤:接收检索指令;获取预先存储的多个原语模块中与检索指令对应的目标原语模块,其中,多个原语模块与多种不同现场可编程门阵列器件相对应;展示目标原语模块;基于目标原语模块,确定编码配置需求。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述的现场可编程门阵列编码方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的现场可编程门阵列编码方法。
在本发明实施例中,在获取到编码配置需求和编程规避规则之后,可以基于编码配置需求生成源文件,并基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件,从而实现了FPGA编码的目的。容易注意到的是,由于激励文件是在编程规避规则的指导下生成的,从而实现帮助编程人员在开发过程中规避当前器件的缺陷,达到提高研发效率,降低研发成本的技术效果,进而解决了相关技术中不同厂商的现场可编程门阵列器件与编码实现方式不同,导致开发进程缓慢的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种现场可编程门阵列编码方法的流程图;
图2是根据本发明实施例的一种可选的原语编码模块的执行流程的示意图;
图3是根据本发明实施例的一种可选的激励编码模块的执行流程的示意图;
图4是根据本发明实施例的一种可选的设计分析模块的执行流程的示意图;
图5是根据本发明实施例的一种现场可编程门阵列编码装置的示意图;
图6是根据本发明实施例的一种现场可编程门阵列编码系统的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面首先对本发明中的技术特征或技术名称进行如下解释说明:
原语:可以是指FPGA软件集成开发环境所提供的一系列底层逻辑功能单元,也即硬件逻辑单元,与不同厂商的FPGA器件有关。
RTL:Register-Transfer Level,寄存器转换级,可以是指对同步数位电路的抽象模型,该模型是根据数字信号在硬件寄存器、存储器、组合逻辑装置和总线等逻辑单元之间的流动,以及其逻辑代数运作方式来确定的,该模型在诸如Verilog和VHDL的硬件描述语言中被用于创建对实际电路的高层次描述,而低层次描述甚至实际电路可以通过高层次描述导出。
激励文件:RTL代码设计完成后,需要进行逻辑功能仿真。激励文件最基本的结构包括信号声明、激励和模块例化。
网表文件:用于描述电路元件相互之间连接关系,可以是一个遵循某种标记语法的文本文件。
实施例1
根据本发明实施例,提供了一种现场可编程门阵列编码方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种现场可编程门阵列编码方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取编码配置需求,以及编程规避规则,其中,编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息。
上述步骤中的编码配置需求可以是编码人员使用FPGA器件进行编程的编程需求。编码规避规则可以是使用FPGA器件进行编程过程中需要规避的信息,其中,编码规避规则可以包括FPGA器件需要规避的信息,以及仿真过程中需要规避的信息。
在一种可选的实施例中,编码人员在使用FPGA器件进行编程时,可以提供编码配置需求,另外,为了帮助编码人员在开发过程中规避FPGA器件和仿真的缺陷,还可以提供FPGA器件的编程规避规则。
步骤S104,基于编码配置需求,生成源文件。
上述步骤中的源文件可以是RTL代码文件。
在一种可选的实施例中,可以根据编程人员的编码配置需求生成不同FPGA语言形式的RTL代码。
步骤S106,基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件。
可选的,上述的配置信息可以包括:激励文件对应的目标编程语言,目标编程语言可以是指编程人员当前编程使用的FPGA器件的FPGA语言。
在一种可选的实施例中,在生成RTL代码之后,可以在编程规避规则的指导下,生成配置信息中指定的FPGA语言的激励文件,该激励文件可以用于对源文件进行验证。
通过本发明上述实施例,在获取到编码配置需求和编程规避规则之后,可以基于编码配置需求生成源文件,并基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件,从而实现了FPGA编码的目的。容易注意到的是,由于激励文件是在编程规避规则的指导下生成的,从而实现帮助编程人员在开发过程中规避当前器件的缺陷,达到提高研发效率,降低研发成本的技术效果,进而解决了相关技术中不同厂商的现场可编程门阵列器件与编码实现方式不同,导致开发进程缓慢的技术问题。
可选地,在本发明上述实施例中,基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成现场可编程门阵列器件的激励文件包括:提取接口数据的信号信息;基于编程规避规则和信号信息,生成激励数据,其中,激励数据包括如下至少之一:控制信号数据、时钟信号数据、输入信号数据、输出信号数据和仿真数据;将激励数据写入目标编程语言对应的文件中,生成激励文件。
在一种可选的实施例中,在生成RTL代码之后,可以提取接口数据的信息,在编程规避规则的指导下产生相应的控制、时钟、输入、输出和仿真等激励数据,并将激励数据写入配置信息指定的目标编程语言的激励文件中,从而可以通过激励文件对RTL代码进行逻辑功能仿真。
可选地,在本发明上述实施例中,在基于编码配置需求,生成源文件之后,该方法还包括:提取接口数据的信号信息;基于信号信息和配置信息,生成现场可编程门阵列器件的仿真脚本,其中,配置信息还包括:仿真脚本对应的目标仿真工具。
在一种可选的实施例中,在生成RTL代码之后,不仅仅可以生成激励文件,还可以提取接口数据的信息,并根据提取出的信息,生成配置信息中指定的目标仿真工具的仿真脚本。
可选地,在本发明上述实施例中,在基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成现场可编程门阵列器件的激励文件之前,该方法还包括:对源文件进行解析,得到解析文件;对解析文件进行深度辨识,得到接口数据。
在一种可选实施例中,在生成RTL代码之后,首先可以对RTL代码进行解析,解析出包含接口数据的信息,也即,得到解析文件,进而通过深度辨识方式识别编程人员设计的时钟、控制、输入、输出等信号,得到接口数据,最后基于接口数据生成激励文件和仿真脚本。
可选地,在本发明上述实施例中,在对源文件进行解析,得到解析文件之前,该方法还包括:检测源文件中包含的原语是否与现场可编程门阵列器件相对应;如果检测到源文件中包含的原语与现场可编程门阵列器件不对应,则对源文件进行原语转换,得到待解析文件,并对待解析文件进行解析,得到解析文件,其中,待解析文件中包含的原语与现场可编程门阵列器件相对应;如果检测到源文件中包含的原语与现场可编程门阵列器件相对应,则对源文件进行解析,得到解析文件。
由于编程人员在编码过程中,可以根据自身需要对原语进行配置,但是,编程人员自行配置的原语可能并不是不同厂商的FPGA器件的原语,导致最后无法生成相应的激励文件。
为了解决上述问题,在一种可选的实施例中,可以针对不同厂商的FPGA器件的原语构建原语库,在生成RTL代码之后,可以判断RTL代码中的原语是否为原语库中的原语,也即,判断RTL代码中是否存在非库原语,如果RTL代码中存在非库原语,则表明RTL代码中的原语是编程人员自行配置的原语,需要对RTL代码进行原语转换,将非库原语转换为原语库中的原语,进一步可以基于转换后的RTL代码生成激励文件;如果RTL代码中不存在非库原语,则表明RTL代码中的原语均为原语库中的原语,可以直接基于RTL代码生成激励文件。
可选地,在本发明上述实施例中,在对源文件进行原语转换,得到待解析文件之前,该方法还包括:判断是否存在相应的原语转换规则;如果存在原语转换规则,则按照原语转换规则对源文件进行原语转换,得到待解析文件;如果不存在原语转换规则,则确定源文件为非法文件。
上述步骤中的非法文件可以是指存在非法原语,无法进行原语转换的文件。
由于编程人员在编码过程中,可以根据自身需要对原语进行配置,但是,编程人员自行配置的原语可能并不是不同厂商的FPGA器件的原语,甚至可能存在错误或者非法配置的情况,导致RTL代码包含非法代码,最后无法生成相应的激励文件。
为了解决上述问题,在一种可选的实施例中,在对RTL代码进行原语转换之前,首先判断是否存在能够进行原语转换的原语转换规则,如果存在原语转换规则,则表明编程人员自行配置的原语合法,可以通过原语转换,转换成原语库中包含的原语;如果不存在原语转换规则,则表明编程人员自行配置的原语非法或存在错误,可以直接输出提示信息,提示RTL代码为非法文件,需要编程人员检查修改。
可选地,在本发明上述实施例中,在对源文件进行原语转换,得到待解析文件之后,该方法还包括:判断待解析文件是否为网表文件;如果待解析文件不是网表文件,则对待解析文件进行语法检测和原语连接检测;如果待解析文件是网表文件,则对待解析文件的资源信息进行统计,并基于统计结果对待解析文件进行资源检测。
在一种可选的实施例中,为了确保最终生成激励文件能够正常进行逻辑功能验证,不会出现错误,在得到待解析文件之后,可以对待解析文件进行语法、原语和资源检查,避免编程人员的设计存在问题。
可选地,在本发明上述实施例中,如果检测到待解析文件存在语法问题或原语连接问题,则生成待解析文件对应的第一检测报告。
上述步骤中的第一检测报告中可以包含具体的问题信息,以及存在问题的具体位置等。
在一种可选的实施例中,如果通过语法、原语连接等检查,确定编程人员的设计存在问题,则可以以报告的形式详细向编程人员描述问题信息。
可选地,在本发明上述实施例中,基于统计结果对待解析文件进行资源检测包括:判断统计结果是否超出现场可编程门阵列器件的资源;如果统计结果超出现场可编程门阵列器件的资源,则生成待解析文件对应的第二检测报告。
上述步骤中的第二检测报告中可以包含统计得到的资源信息。
在一种可选的实施例中,可以通过检查统计结果,也即,编程人员设计资源是否超出当前FPGA器件资源,实现资源检查的目的,如果设计资源超出当前FPGA器件资源,则可以以报告的形式向编程人员展示资源信息。
可选地,在本发明上述实施例中,在获取编码配置需求之前,该方法还包括:接收检索指令;获取预先存储的多个原语模块中与检索指令对应的目标原语模块,其中,多个原语模块与多种不同现场可编程门阵列器件相对应;展示目标原语模块;基于目标原语模块,确定编码配置需求。
上述步骤中的多个原语模块可以是不同厂商FPGA器件的所有原语的实例化方式以及绝大部分原语实现方式。上述步骤中的检测指令可以是编程人员对当前FPGA器件的原语模块进行检索的指令。
在一种可选的实施例中,编程人员可以通过检索方式查找需要的原语模块,并以简易图形形式展示检索到的原语模块,以帮助编程人员高效的了解当前FPGA器件的原语、实现以及实例化方法;而且,编程人员可以使用检索到的原语模块进行自行配置,或者将检索到的原语模块进行组合编程,生成相应的编码配置需求,从而提高编码效率。
下面结合图2至图4对本发明一种优选的实施例进行详细说明。本发明提供了一种FPGA自动编码系统,该系统可以由原语编码模块、激励编码模块、设计分析模块和案例定制模块组成。
原语编码模块涵盖了所有原语的实例化方式以及绝大部分原语实现形式。如图2所示,可以通过检索方式查找需要的原语模块,并以简易图形形式展示该原语端口,旨在帮助编程人员高效的了解器件原语、实现以及实例化方法。同时编程人员可以使用该模块进行原语配置,并实现原语之间的组合编码,得到相应的编程配置需求,提高编程人员的编码效率。该模块还可以根据编程配置需求生成不同FPGA语言形式的RTL代码,并将接口数据和配置信息传递给激励编码模块,用于后续的激励文件和仿真脚本的生成。
激励编码模块可以由激励模块和陷阱规避模块组成,可以根据设计的接口数据和配置信息生成相应的激励文件和仿真脚本。其中,陷阱规避模块内含当前FPGA器件需要规避的信息以及仿真需要规避的信息;如图3所示,激励模块在接收到接口数据之后,可以提取接口数据的信息,并根据配置信息中指定激励编程语言确定相应的陷阱规避模块,从而可以在陷阱规避模块的指导下产生相应的时钟信号数据、控制信号数据、输入数据、输出数据、仿真需求信息等激励数据,并将激励数据写入配置信息指定语言的激励文件中;同时,可以生成配置信息中指定仿真工具的脚本文件。
设计分析模块包括:端口信号解析、语法检查、资源检查与统计、原语转换等模块。原语转换模块可实现不同厂商原语之间的等价转换。如图4所示,原语编码模块生成的RTL代码可以传输给设计分析模块,首先判断是否存在非库原语,如果存在非库原语,进一步判断原语转换模块中是否存在相应的原语转换规则,如果不存在原语转换规则,则确定为非法文件;如果存在原语转换规则,则通过原语转换模块进行原语转换,得到待解析文件;如果不存在非库原语,则直接确定为待解析文件。端口信号解析模块可以对待解析文件进行解析,并通过深度辨识方式解析编程人员设计的时钟、控制、输入、输出等端口数据,并将这些信号信息编码成接口数据传递给激励编码模块生成设计激励文件。语法检查模块可以对待解析文件进行语法、原语连接等检查,对于非网表文件进行语法检查,若设计存在问题,则可以生成语法解析报告,以报告的形式详细向编程人员描述问题信息。资源检查与统计模块可以统计网表文件的各类资源信息,检查设计资源是否超出当前器件资源,并生成资源统计与解析报告,以报告形式向用户展示资源信息。
案例定制模块可以根据编程人员的配置生成相应的案例及激励文件,从而编程人员可根据需求对案例端口、资源类型与大小范围、逻辑级数等信息进行配置,批量产生一定数量的指定类型的案例。
通过上述方案,可以帮助FPGA编程人员快速高效的熟悉当前FPGA厂商器件编程;同时通过激励编码模块、设计分析模块和案例定制模块等模块可以帮助FPGA厂商研发人员进行研发自测;另外,通过内置的陷阱规避模块可以帮助FPGA编程人员在开发过程规避当前器件的缺陷,提高研发效率,降低研发成本。
实施例2
根据本发明实施例,还提供了一种现场可编程门阵列编码装置,该装置可以执行上述实施例中提供的现场可编程门阵列编码方法,具体实现方案与优选应用场景与上述实施例相同,在此不做赘述。
图5是根据本发明实施例的一种现场可编程门阵列编码装置的示意图,如图5所示,该装置包括:
获取模块52,用于获取编码配置需求,以及编程规避规则,其中,编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息。
第一生成模块54,用于基于编码配置需求,生成源文件。
第二生成模块56,用于基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件。
可选地,在本发明上述实施例中,第二生成模块56包括:提取单元,用于提取接口数据的信号信息;第一生成单元,用于基于编程规避规则和信号信息,生成激励数据,其中,激励数据包括如下至少之一:控制信号数据、时钟信号数据、输入信号数据、输出信号数据和仿真数据;第二生成单元,用于将激励数据写入目标编程语言对应的文件中,生成激励文件。
可选地,在本发明上述实施例中,该装置还包括:提取模块(图中未示出),用于提取接口数据的信号信息;第三生成模块(图中未示出),用于基于信号信息和配置信息,生成现场可编程门阵列器件的仿真脚本,其中,配置信息还包括:仿真脚本对应的目标仿真工具。
可选地,在本发明上述实施例中,该装置还包括:解析模块(图中未示出),用于对源文件进行解析,得到解析文件;识别模块(图中未示出),用于对解析文件进行深度辨识,得到接口数据。
可选地,在本发明上述实施例中,该装置还包括:检测模块(图中未示出),用于检测源文件中包含的原语是否与现场可编程门阵列器件相对应;转换模块(图中未示出),用于如果检测到源文件中包含的原语与现场可编程门阵列器件不对应,则对源文件进行原语转换,得到待解析文件,其中,待解析文件中包含的原语与现场可编程门阵列器件相对应;解析模块还用于对待解析文件进行解析,得到解析文件;解析模块还用于如果检测到源文件中包含的原语与现场可编程门阵列器件相对应,则对源文件进行解析,得到解析文件。
可选地,在本发明上述实施例中,该装置还包括:第一判断模块(图中未示出),用于判断是否存在相应的原语转换规则;转换模块还用于如果存在原语转换规则,则按照原语转换规则对源文件进行原语转换,得到待解析文件;第一确定模块(图中未示出),用于如果不存在原语转换规则,则确定源文件为非法文件。
可选地,在本发明上述实施例中,该装置还包括:第二判断模块(图中未示出),用于判断待解析文件是否为网表文件;第一检测模块(图中未示出),用于如果待解析文件不是网表文件,则对待解析文件进行语法检测和原语连接检测;第二检测模块(图中未示出),用于如果待解析文件是网表文件,则对待解析文件的资源信息进行统计,并基于统计结果对待解析文件进行资源检测。
可选地,在本发明上述实施例中,该装置还包括:第四生成模块(图中未示出),用于如果检测到待解析文件存在语法问题或原语连接问题,则生成待解析文件对应的第一检测报告。
可选地,在本发明上述实施例中,第二检测模块包括:判断单元,用于判断统计结果是否超出现场可编程门阵列器件的资源;第三生成单元,用于如果统计结果超出现场可编程门阵列器件的资源,则生成待解析文件对应的第二检测报告。
可选地,在本发明上述实施例中,该装置还包括:接收模块(图中未示出),用于接收检索指令;获取模块(图中未示出),还用于获取预先存储的多个原语模块中与检索指令对应的目标原语模块,其中,多个原语模块与多种不同现场可编程门阵列器件相对应;展示模块,用于展示目标原语模块;第二确定模块(图中未示出),用于基于目标原语模块,确定编码配置需求。
实施例3
根据本发明实施例,还提供了一种现场可编程门阵列编码系统,该系统可以执行上述实施例中提供的现场可编程门阵列编码方法,具体实现方案与优选应用场景与上述实施例相同,在此不做赘述。
图6是根据本发明实施例的一种现场可编程门阵列编码系统的示意图,如图6所示,该系统包括:
原语编码模块62,用于基于编码配置需求,生成源文件。
激励编码模块64,与原语编码模块连接,用于基于编程规避规则、源文件的接口数据、以及编码配置需求的配置信息,生成激励文件,其中,编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息。
可选地,在本发明上述实施例中,激励编码模块64包括:编码规避模块,用于输出编程规避规则;激励模块,与原语编码模块和编码规避模块连接,用于提取接口数据的信号信息,基于编程规避规则和信号信息,生成激励数据,并将激励数据写入目标编程语言对应的文件中,生成激励文件,其中,激励数据包括如下至少之一:控制信号数据、时钟信号数据、输入信号数据、输出信号数据和仿真数据。
可选地,在本发明上述实施例中,激励编码模块64还包括:激励模块,与原语编码模块连接,用于提取接口数据的信号信息,并基于信号信息和配置信息,生成现场可编程门阵列器件的仿真脚本,其中,配置信息还包括:仿真脚本对应的目标仿真工具。
可选地,在本发明上述实施例中,该系统还包括:端口信号解析模块(图中未示出),与原语编码模块和激励编码模块连接,用于对源文件进行解析,得到解析文件,并对解析文件进行深度辨识,得到接口数据。
可选地,在本发明上述实施例中,该系统还包括:原语转换模块(图中未示出),与原语编码模块连接,用于在检测到源文件中包含的原语与现场可编程门阵列器件不对应的情况下,对源文件进行原语转换,得到待解析文件,其中,待解析文件中包含的原语与现场可编程门阵列器件相对应;端口信号解析模块(图中未示出),与原语转换模块、原语编码模块和激励编码模块连接,用于对待解析文件进行解析,得到解析文件,或,对源文件进行解析,得到解析文件。
可选地,在本发明上述实施例中,原语转换模块还用于按照相应的原语转换规则对源文件进行原语转换,得到待解析文件,或,确定源文件为非法文件。
可选地,在本发明上述实施例中,该系统还包括:语法检查模块(图中未示出),用于在待解析文件不是网表文件的情况下,对待解析文件进行语法检测和原语连接检测;资源检查模块(图中未示出),用于在待解析文件是网表文件的情况下,对待解析文件的资源信息进行统计,并基于统计结果对待解析文件进行资源检测。
可选地,在本发明上述实施例中,语法检查模块还用于如果检测到待解析文件存在语法问题或原语连接问题,则生成待解析文件对应的第一检测报告。
可选地,在本发明上述实施例中,资源检查模块还用于如果统计结果超出现场可编程门阵列器件的资源,则生成待解析文件对应的第二检测报告。
可选地,在本发明上述实施例中,原语编码模块还用于执行如下步骤:接收检索指令;获取预先存储的多个原语模块中与检索指令对应的目标原语模块,其中,多个原语模块与多种不同现场可编程门阵列器件相对应;展示目标原语模块;基于目标原语模块,确定编码配置需求。
实施例4
根据本发明实施例,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例1中的现场可编程门阵列编码方法。
实施例5
根据本发明实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例1中的现场可编程门阵列编码方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种现场可编程门阵列编码方法,其特征在于,包括:
获取编码配置需求,以及编程规避规则,其中,所述编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息;
基于所述编码配置需求,生成源文件;
基于编程规避规则、所述源文件的接口数据、以及所述编码配置需求的配置信息,生成激励文件。
2.根据权利要求1所述的方法,其特征在于,所述配置信息包括:所述激励文件对应的目标编程语言,其中,基于所述编程规避规则、所述源文件的接口数据、以及所述编码配置需求的配置信息,生成所述现场可编程门阵列器件的激励文件包括:
提取所述接口数据的信号信息;
基于所述编程规避规则和所述信号信息,生成激励数据,其中,所述激励数据包括如下至少之一:控制信号数据、时钟信号数据、输入信号数据、输出信号数据和仿真数据;
将所述激励数据写入所述目标编程语言对应的文件中,生成所述激励文件。
3.根据权利要求1所述的方法,其特征在于,在基于所述编码配置需求,生成源文件之后,所述方法还包括:
提取所述接口数据的信号信息;
基于所述信号信息和所述配置信息,生成所述现场可编程门阵列器件的仿真脚本,其中,所述配置信息还包括:所述仿真脚本对应的目标仿真工具。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,在基于所述编程规避规则、所述源文件的接口数据、以及所述编码配置需求的配置信息,生成所述现场可编程门阵列器件的激励文件之前,所述方法还包括:
对所述源文件进行解析,得到解析文件;
对所述解析文件进行深度辨识,得到所述接口数据。
5.根据权利要求4所述的方法,其特征在于,在对所述源文件进行解析,得到解析文件之前,所述方法还包括:
检测所述源文件中包含的原语是否与所述现场可编程门阵列器件相对应;
如果检测到所述源文件中包含的原语与所述现场可编程门阵列器件不对应,则对所述源文件进行原语转换,得到待解析文件,并对所述待解析文件进行解析,得到所述解析文件,其中,所述待解析文件中包含的原语与所述现场可编程门阵列器件相对应;
如果检测到所述源文件中包含的原语与所述现场可编程门阵列器件相对应,则对所述源文件进行解析,得到所述解析文件。
6.根据权利要求5所述的方法,其特征在于,在对所述源文件进行原语转换,得到待解析文件之前,所述方法还包括:
判断是否存在相应的原语转换规则;
如果存在所述原语转换规则,则按照所述原语转换规则对所述源文件进行原语转换,得到所述待解析文件;
如果不存在所述原语转换规则,则确定所述源文件为非法文件。
7.根据权利要求5所述的方法,其特征在于,在对所述源文件进行原语转换,得到待解析文件之后,所述方法还包括:
判断所述待解析文件是否为网表文件;
如果所述待解析文件不是网表文件,则对所述待解析文件进行语法检测和原语连接检测;
如果所述待解析文件是网表文件,则对所述待解析文件的资源信息进行统计,并基于统计结果对所述待解析文件进行资源检测。
8.根据权利要求7所述的方法,其特征在于,如果检测到所述待解析文件存在语法问题或原语连接问题,则生成所述待解析文件对应的第一检测报告。
9.根据权利要求7所述的方法,其特征在于,基于统计结果对所述待解析文件进行资源检测包括:
判断所述统计结果是否超出所述现场可编程门阵列器件的资源;
如果所述统计结果超出所述现场可编程门阵列器件的资源,则生成所述待解析文件对应的第二检测报告。
10.根据权利要求1所述的方法,其特征在于,在获取编码配置需求之前,所述方法还包括:
接收检索指令;
获取预先存储的多个原语模块中与所述检索指令对应的目标原语模块,其中,所述多个原语模块与多种不同现场可编程门阵列器件相对应;
展示所述目标原语模块;
基于所述目标原语模块,确定所述编码配置需求。
11.一种现场可编程门阵列编码装置,其特征在于,包括:
获取模块,用于获取编码配置需求,以及编程规避规则,其中,所述编程规避规则用于配置现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息;
第一生成模块,用于基于所述编码配置需求,生成源文件;
第二生成模块,用于基于所述编程规避规则、所述源文件的接口数据、以及所述编码配置需求的配置信息,生成激励文件。
12.一种现场可编程门阵列编码系统,其特征在于,包括:
原语编码模块,用于基于编码配置需求,生成源文件;
激励编码模块,与所述原语编码模块连接,用于基于编程规避规则、所述源文件的接口数据、以及所述编码配置需求的配置信息,生成激励文件,其中,所述编程规避规则用于配置所述现场可编程门阵列器件的规避信息,以及仿真过程中的规避信息。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至10中任意一项所述的现场可编程门阵列编码方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至10中任意一项所述的现场可编程门阵列编码方法。
CN202011556670.3A 2020-12-24 2020-12-24 现场可编程门阵列编码方法、装置和系统 Active CN112540766B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011556670.3A CN112540766B (zh) 2020-12-24 2020-12-24 现场可编程门阵列编码方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011556670.3A CN112540766B (zh) 2020-12-24 2020-12-24 现场可编程门阵列编码方法、装置和系统

Publications (2)

Publication Number Publication Date
CN112540766A true CN112540766A (zh) 2021-03-23
CN112540766B CN112540766B (zh) 2024-10-18

Family

ID=75017455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011556670.3A Active CN112540766B (zh) 2020-12-24 2020-12-24 现场可编程门阵列编码方法、装置和系统

Country Status (1)

Country Link
CN (1) CN112540766B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118260143A (zh) * 2024-05-30 2024-06-28 成都迪真计算机科技有限公司 一种fpga跨时钟分析检测方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041286A (ja) * 2000-07-21 2002-02-08 Ryosan Co Ltd ソースプログラム自動変換装置及び方法
CN101030147A (zh) * 2007-03-13 2007-09-05 杭州华为三康技术有限公司 逻辑器件在线编程的方法及装置
CN101413990A (zh) * 2008-12-03 2009-04-22 北京大学 一种现场可编程门阵列的测试方法及系统
CN104679511A (zh) * 2015-02-10 2015-06-03 北京系统工程研究所 基于MDE模型转换的MapReduce代码生成方法
US20160314025A1 (en) * 2015-04-22 2016-10-27 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
CN106708475A (zh) * 2015-07-16 2017-05-24 中兴通讯股份有限公司 一种北向数据转换方法和装置
CN109086202A (zh) * 2018-07-19 2018-12-25 北京计算机技术及应用研究所 基于关联规则的fpga/ip核代码规则检查方法
CN109739766A (zh) * 2018-12-29 2019-05-10 湖北航天技术研究院总体设计所 一种快速搭建fpga数字仿真模型的系统及方法
CN109800152A (zh) * 2018-12-14 2019-05-24 平安普惠企业管理有限公司 一种自动化测试方法及终端设备
CN110376959A (zh) * 2019-07-25 2019-10-25 大连理工大学 一种基于fpga平台的软plc组态软件生成系统
CN110941444A (zh) * 2019-12-28 2020-03-31 深圳开立生物医疗科技股份有限公司 一种升级配置逻辑电路、方法、系统及可编程逻辑器件

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041286A (ja) * 2000-07-21 2002-02-08 Ryosan Co Ltd ソースプログラム自動変換装置及び方法
CN101030147A (zh) * 2007-03-13 2007-09-05 杭州华为三康技术有限公司 逻辑器件在线编程的方法及装置
CN101413990A (zh) * 2008-12-03 2009-04-22 北京大学 一种现场可编程门阵列的测试方法及系统
CN104679511A (zh) * 2015-02-10 2015-06-03 北京系统工程研究所 基于MDE模型转换的MapReduce代码生成方法
US20160314025A1 (en) * 2015-04-22 2016-10-27 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
CN106708475A (zh) * 2015-07-16 2017-05-24 中兴通讯股份有限公司 一种北向数据转换方法和装置
CN109086202A (zh) * 2018-07-19 2018-12-25 北京计算机技术及应用研究所 基于关联规则的fpga/ip核代码规则检查方法
CN109800152A (zh) * 2018-12-14 2019-05-24 平安普惠企业管理有限公司 一种自动化测试方法及终端设备
CN109739766A (zh) * 2018-12-29 2019-05-10 湖北航天技术研究院总体设计所 一种快速搭建fpga数字仿真模型的系统及方法
CN110376959A (zh) * 2019-07-25 2019-10-25 大连理工大学 一种基于fpga平台的软plc组态软件生成系统
CN110941444A (zh) * 2019-12-28 2020-03-31 深圳开立生物医疗科技股份有限公司 一种升级配置逻辑电路、方法、系统及可编程逻辑器件

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FPGA技术江湖: "简谈FPGA研发设计相关规范", Retrieved from the Internet <URL:https://blog.csdn.net/qq_40310273/article/details/106280283> *
刘元章: "明导国际HDL Designer新增支持Altera和Xilinx规则集", Retrieved from the Internet <URL:https://www.dzsc.com/data/2007-12-6/55268.html> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118260143A (zh) * 2024-05-30 2024-06-28 成都迪真计算机科技有限公司 一种fpga跨时钟分析检测方法

Also Published As

Publication number Publication date
CN112540766B (zh) 2024-10-18

Similar Documents

Publication Publication Date Title
US10831456B1 (en) External code integrations within a computing environment
CN108885545B (zh) 用于实时数据流编程语言的工具和方法
US7975233B2 (en) Automatic conversion of a textual language into a graphical program representation
US8402438B1 (en) Method and system for generating verification information and tests for software
US8127261B2 (en) System for quickly specifying formal verification environments
CN105103148A (zh) 自动化的基于上下文的软件本地化
US20080244541A1 (en) Code translator and method of automatically translating modeling language code to hardware language code
CN103235757B (zh) 基于自动化造数对输入域测试对象进行测试的装置和方法
CN113778864A (zh) 一种测试用例的生成方法和装置、电子设备和存储介质
CN113868046B (zh) 一种pad控制单元的功能验证方法及系统
CN112540766A (zh) 现场可编程门阵列编码方法、装置和系统
CN115757100A (zh) 面向用户界面的自动化测试框架以及方法、设备、介质
CN117350208A (zh) 时序逻辑元件性能检查方法及设备
CN117370203B (zh) 自动化测试方法、系统、电子设备及存储介质
CN117787153A (zh) 一种硬件设计验证方法、装置和存储介质
CN117077583A (zh) 一种寄存器传输级电路设计的资源估算方法及装置
CN117435483A (zh) 基于Formal工具的仿真验证激励生成方法、装置、介质及终端
CN117290233A (zh) 一种基于JMeter的自定义生成身份证号码的方法、系统及设备
CN103678114B (zh) 产生断言的设备和方法以及验证处理器的设备和方法
US9405870B2 (en) Generating coverage data for a switch frequency of HDL or VHDL signals
CN111813648A (zh) 一种应用于App的自动化测试方法、装置、存储介质及电子设备
CN113822002B (zh) 数据处理方法、装置、计算机设备及存储介质
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理系统
Shatnawi et al. Generating a language-independent graphical user interfaces from UML models.
CN109753308B (zh) 指令通路验证系统及指令通路监测方法

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