CN113138808A - 一种集成方法、装置、计算机设备和存储介质 - Google Patents
一种集成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113138808A CN113138808A CN202110473959.7A CN202110473959A CN113138808A CN 113138808 A CN113138808 A CN 113138808A CN 202110473959 A CN202110473959 A CN 202110473959A CN 113138808 A CN113138808 A CN 113138808A
- Authority
- CN
- China
- Prior art keywords
- integrated
- file
- module
- information
- integration
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种集成方法、装置、计算机设备和存储介质,其中,该方法包括:获取待集成系统的配置文件;待集成系统包括至少一个待集成模块;对配置文件进行解析,确定集成待集成系统所需的第一集成信息;基于第一集成信息,获取与各个待集成模块相对应的第一目标数据;基于第一目标数据,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。本公开实施例能够实现自动地生成待集成系统集成后的实例化文件,也即自动生成目标文件,自动生成实例化文件的方式,提高了芯片设计的效率。
Description
技术领域
本公开涉及芯片集成技术领域,具体而言,涉及一种集成方法、装置、计算机设备和存储介质。
背景技术
随着人工智能技术的快速发展,系统级芯片的作用也变得愈发重要,然而,在系统级芯片的设计过程中,为了提高系统级芯片的性能或者满足一些特定的功能设计需求,需要对系统级芯片中的部分系统进行重新集成,例如,对系统级芯片中的部分系统重新进行信号申明、定义、连线等操作,重新完成对部分系统的实例化,以实现部分系统的重新集成。
但现有技术中,对系统级芯片中的部分系统进行重新集成的过程都是手动进行的,不仅效率较低,并且由于系统级芯片的内部结构复杂,手动调整的过程中,可能造成例如连线出错、定义出错的问题,进一步降低了集成效率。
发明内容
本公开实施例至少提供一种集成方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种集成方法,包括:
获取待集成系统的配置文件;所述待集成系统包括至少一个待集成模块;
对所述配置文件进行解析,确定集成所述待集成系统所需的第一集成信息;
基于所述第一集成信息,获取与各个所述待集成模块相对应的第一目标数据;
基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
基于对获取的配置文件的解析,能够获取配置文件中包括的用户预先确定的关于待集成系统的具体配置的配置信息,进而,从配置信息中能够筛选出集成待集成系统所需的第一集成信息,例如,待集成模块实例化后的逗号分隔值文件名称。进而,基于确定的第一集成信息,能够准确地获取集成待集成系统所需的、预先生成的第一目标数据,然后通过对第一目标数据的解析处理,利用解析得到的数据,能够实现自动地生成待集成系统集成后的实例化文件,也即自动生成目标文件,自动生成实例化文件的方式,克服了手动集成效率低以及易出错的问题,提高了芯片设计的效率。
在一种可能的实施方式中,还包括存储所述第一目标数据的步骤:
获取所述待集成系统的配置文件;
对所述配置文件进行解析,确定集成所述待集成系统所需的第二集成信息;
基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
基于对获取的配置文件的解析,能够获取配置文件中包括的用户预先确定的关于待集成系统的具体配置的配置信息,进而,从配置信息中能够筛选出集成待集成系统所需的第二集成信息,例如,待集成模块已实例化后的描述文件。进而,通过对获取的第二集成信息的解析处理,能够获取各个待集成模块对应的端口消息、信号声明信息等信息,进而,利用上述信息,能够生成用于确定目标文件的第一目标数据。
在一种可能的实施方式中,所述对所述配置文件进行解析,确定集成所述待集成系统所需的第二集成信息,包括:
解析所述配置文件,提取集成所述待集成系统所需的初始集成信息;
在确定所述初始集成信息完整的情况下,将所述初始集成信息作为集成所述待集成系统所需的第二集成信息。
初始集成信息不完整时,能够表明配置文件中的配置信息或各个待集成模块对应的已实例化后的描述文件不完整,也即,无法利用上述信息生成完整的第一目标数据。因此,通过判断初始集成信息的完整性,能够保证生成的用于集成待集成系统的第一目标数据的完整性和可靠性。
在一种可能的实施方式中,所述第二集成信息包括以下至少一项:
所述待集成系统实例化后的目标系统名称、各个所述待集成模块实例化后的目标模块名称、各个所述待集成模块的初始模块名称、待集成系统实例化后的逗号分隔值文件名称、各个所述待集成模块对应的已实例化后的描述文件、各个所述待集成模块对应的模块实例化数量。
由于第二集成信息中包括待集成系统集成后的实例化信息以及各个待集成模块对应的已实例化后的描述文件,因此,利用从配置文件中解析出的第二集成信息,首先能够生成各个待集成模块对应的第一目标数据,进而,基于第一目标数据,能够得到待集成系统集成后目标文件。
在一种可能的实施方式中,在确定了所述第二集成信息之后,所述方法还包括利用字典的数据结构存储所述第二集成信息。
利用字典的数据结构存储第二集成信息,有利于快速查找到第二集成信息中的部分集成信息。
在一种可能的实施方式中,所述基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据,包括:
从所述第二集成信息中获取各个所述待集成模块对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息;
基于各个所述待集成模块的实例化参数信息和所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
各个待集成模块对应的已实例化后的描述文件,能够反映该待集成模块所包括的详细的实例化参数信息,通过对各个待集成模块对应的描述文件的解析,能够准确地确定集成待集成系统所需要的实例化参数信息,进而,利用实例化参数信息和第二述集成信息,能够确定集成待集成系统所需要的第一目标数据。
在一种可能的实施方式中,所述第一目标数据包括逗号分隔值文件;
所述基于各个所述待集成模块的实例化参数信息和所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据,包括:
针对任一所述待集成模块,确定是否存在预设的逗号分隔值文件模板;
在确定存在所述逗号分隔值文件模板的情况下,基于该待集成模块对应的实例化参数信息,获取该待集成模块对应的连接段的端口信息、该待集成模块对应的可传递参变量信息;
基于所述逗号分隔值文件模板、所述端口信息、所述可传递参变量信息、所述逗号分隔值文件名称,生成并存储该待集成模块对应的所述逗号分隔值文件。
逗号分隔值文件模板能够用于生成逗号分隔值文件,端口信息能够反映待集成模块对应的端口信号等信息,可传递参变量信息够反映待集成模块对应的变量信息,进而,利用上述信息能够生成逗号分隔值文件。
在一种可能的实施方式中,在生成所述逗号分隔值文件之前,所述方法还包括:
确定所述逗号分隔值文件对应的生成路径中是否存在名称与所述逗号分隔值文件名称相一致的已生成的逗号分隔值文件;
在确定存在所述已生成的逗号分隔值文件的情况下,修改所述已生成的逗号分隔值文件的名称,以实现对所述已生成的逗号分隔值文件进行备份。
通过对名称相一致的已生成的逗号分隔值文件备份处理,能够防止新生成的逗号分隔值文件将其替换而导致的文件丢失问题。
在一种可能的实施方式中,在存储所述第一目标数据之后,所述方法还包括:
获取用户输入的目标集成数据;
基于所述目标集成数据和所述第一目标数据,更新所述第一目标数据。
目标集成数据能够反映用户对于待集成系统进行集成时的集成需求和集成目标,例如,各个待集成模块之间的连接逻辑、待集成系统的信号声明信息等,利用目标集成数据对第一目标数据进行更新,使利用更新的第一目标数据得到的目标文件,能够满足用户的集成需求。
在一种可能的实施方式中,所述第一目标数据包括逗号分隔值文件;
所述基于所述第一集成信息,获取与各个所述待集成模块相对应的第一目标数据,包括:
基于所述第一集成信息,确定与各个所述待集成模块相对应的逗号分隔值文件名称;
基于所述逗号分隔值文件名称,确定逗号分隔值文件的生成路径;
基于所述生成路径,获取与各个所述待集成模块相对应的逗号分隔值文件。
生成路径能够反映逗号分隔值文件的存储位置,利用逗号分隔值文件名称,能够确定与该名称对应的逗号分隔值文件的生成路径,进而,利用生成路径,能够准确地获取集成待集成系统所需的逗号分隔值文件。
在一种可能的实施方式中,所述基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,包括:
实例化逗号分隔值文件解析类;
利用所述逗号分隔值文件解析类,对所述第一目标数据进行解析,得到集成所述待集成系统所需的目标类别对应的第一数据;
基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
实例化之后的逗号分隔值文件解析类能够用于对获取的逗号分隔值文件的解析,进而,能够从逗号分隔值文件中解析出得到目标文件所需的第一数据,并且,利用逗号分隔值文件解析类,还能够实现对解析得到的第一数据中的变量的检查,从而,实现在得到目标文件的过程中的自动检查纠错,有利于提高芯片集成的效率。
在一种可能的实施方式中,在得到所述目标文件之前,还包括:
基于所述第一集成信息,获取数据库中存储的数据的数据类型;
基于所述数据类型和数据库存储位置,实例化数据库生成类,得到第一数据库;
将所述第一数据存入所述第一数据库。
通过对数据库生成类的实例化,能够生成用于存储解析得到的第一数据的第一数据库,在将第一数据存储到第一数据库之后,能够实现对第一数据的分类存储,进而,便于后续对第一数据中的特定数据的查找。
在一种可能的实施方式中,所述基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据,包括:
从所述第二集成信息中获取各个所述待集成模块相对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息,并将所述实例化参数信息存入第二数据库;
所述基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,包括:
在所述第一数据库和第二数据库中的预设类别对应的数据相同的情况下,基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件;其中,第一数据库和第二数据库存储的数据的类别相同。
由于第一数据库和第二数据库都是基于从配置文件中获取的集成信息生成的,因此,通过对生成的第一数据库和第二数据库中的预设类别的数据的比较,能够实现对配置文件中的配置信息以及每个待集成模块对应的已实例化后的描述文件的比较,进而,实现对上述信息的检查,从而,实现在得到目标文件的过程中的自动检查纠错,有利于提高芯片集成的效率。
在一种可能的实施方式中,所述基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,包括:
基于所述第一数据,确定各个实例化的所述待集成模块的数据表达式信息;
基于所述第一集成信息,确定各个实例化的所述待集成模块的可传递参变量信息;
基于各个所述待集成模块对应的数据表达式信息和可传递参变量信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
各个待集成模块对应的数据表达式信息对应的值,能够反映用户对于待集成系统进行集成时、针对各个待集成模块的集成需求,例如,端口信号的宽度需求;各个待集成模块对应的可传递参变量信息能够反映对待集成系统进行集成时所需的各个待集成模块对应的变量信息,例如,变量的赋值等,基于上述信息得到的集成后的待集成系统,能够满足用户的集成需求。
在一种可能的实施方式中,所述基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,还包括:
基于所述第一集成信息,分别确定实例化所述待集成系统所用的可传递参变量信息和本地参数信息;
基于所述第一数据,确定集成所述待集成系统所用的连接段的端口信息以及注释所述待集成系统所用的注释段信息;
基于所述待集成系统对应的可传递参变量信息、本地参数信息、所述连接段的端口信息和所述注释段信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
待集成系统对应的可传递参变量信息、本地参数信息、连接段的端口信息和注释段信息,能够反映用户对于待集成系统进行集成时的集成需求,因此,在获取上述信息之后,能够得到满足用户需求、且具有目标功能的集成后的待集成系统以及待集成系统集成后的目标文件。
在一种可能的实施方式中,所述目标文件包括所述待集成系统集成后的实例化文件、所述待集成系统的功能模拟文件、用于获取集成后的所述待集成系统的端口信息的端口文件。
在对任一集成后的待集成系统进行仿真时,利用其他集成后的待集成系统对应的功能模拟文件,能够实现将除正在进行仿真以外的集成后的待集成系统置于不可访问状态,在不影响仿真结果的情况下,提高了仿真速度,从而,提高了芯片测试的效率,另外,通过同步生成上述三种文件的方式,能够避免手动书写上述文件时带来的耗时长、准确性低的问题,提高了芯片集成的效率。
第二方面,本公开实施例还提供一种集成装置,包括:
第一获取模块,用于获取待集成系统的配置文件;所述待集成系统包括至少一个待集成模块;
确定模块,用于对所述配置文件进行解析,确定集成所述待集成系统所需的第一集成信息;
第二获取模块,用于基于所述第一集成信息,获取与各个所述待集成模块相对应的第一目标数据;
集成模块,用于基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述装置还包括:
存储模块,用于按照以下步骤存储所述第一目标数据:
获取所述待集成系统的配置文件;
对所述配置文件进行解析,确定集成所述待集成系统所需的第二集成信息;
基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
在一种可能的实施方式中,所述存储模块,用于解析所述配置文件,提取集成所述待集成系统所需的初始集成信息;
在确定所述初始集成信息完整的情况下,将所述初始集成信息作为集成所述待集成系统所需的第二集成信息。
在一种可能的实施方式中,所述第二集成信息包括以下至少一项:
所述待集成系统实例化后的目标系统名称、各个所述待集成模块实例化后的目标模块名称、各个所述待集成模块的初始模块名称、待集成系统实例化后的逗号分隔值文件名称、各个所述待集成模块对应的已实例化后的描述文件、各个所述待集成模块对应的模块实例化数量。
在一种可能的实施方式中,所述存储模块,还用于在确定了所述第二集成信息之后,利用字典的数据结构存储所述第二集成信息。
在一种可能的实施方式中,所述存储模块,用于从所述第二集成信息中获取各个所述待集成模块对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息;
基于各个所述待集成模块的实例化参数信息和所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
在一种可能的实施方式中,所述第一目标数据包括逗号分隔值文件;
所述存储模块,用于针对任一所述待集成模块,确定是否存在预设的逗号分隔值文件模板;
在确定存在所述逗号分隔值文件模板的情况下,基于该待集成模块对应的实例化参数信息,获取该待集成模块对应的连接段的端口信息、该待集成模块对应的可传递参变量信息;
基于所述逗号分隔值文件模板、所述端口信息、所述可传递参变量信息、所述逗号分隔值文件名称,生成并存储该待集成模块对应的所述逗号分隔值文件。
在一种可能的实施方式中,所述存储模块,在生成所述逗号分隔值文件之前,还用于确定所述逗号分隔值文件对应的生成路径中是否存在名称与所述逗号分隔值文件名称相一致的已生成的逗号分隔值文件;
在确定存在所述已生成的逗号分隔值文件的情况下,修改所述已生成的逗号分隔值文件的名称,以实现对所述已生成的逗号分隔值文件进行备份。
在一种可能的实施方式中,所述装置还包括:
更新模块,用于在所述存储模块存储所述第一目标数据之后,获取用户输入的目标集成数据;
基于所述目标集成数据和所述第一目标数据,更新所述第一目标数据。
在一种可能的实施方式中,所述第一目标数据包括逗号分隔值文件;
所述第二获取模块,用于基于所述第一集成信息,确定与各个所述待集成模块相对应的逗号分隔值文件名称;
基于所述逗号分隔值文件名称,确定逗号分隔值文件的生成路径;
基于所述生成路径,获取与各个所述待集成模块相对应的逗号分隔值文件。
在一种可能的实施方式中,所述集成模块,用于实例化逗号分隔值文件解析类;
利用所述逗号分隔值文件解析类,对所述第一目标数据进行解析,得到集成所述待集成系统所需的目标类别对应的第一数据;
基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述集成模块,在得到所述目标文件之前,还用于基于所述第一集成信息,获取数据库中存储的数据的数据类型;
基于所述数据类型和数据库存储位置,实例化数据库生成类,得到第一数据库;
将所述第一数据存入所述第一数据库。
在一种可能的实施方式中,所述存储模块,用于从所述第二集成信息中获取各个所述待集成模块相对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息,并将所述实例化参数信息存入第二数据库;
所述集成模块,用于在所述第一数据库和第二数据库中的预设类别对应的数据相同的情况下,基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件;其中,第一数据库和第二数据库存储的数据的类别相同。
在一种可能的实施方式中,所述集成模块,用于基于所述第一数据,确定各个实例化的所述待集成模块的数据表达式信息;
基于所述第一集成信息,确定各个实例化的所述待集成模块的可传递参变量信息;
基于各个所述待集成模块对应的数据表达式信息和可传递参变量信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述集成模块,还用于基于所述第一集成信息,分别确定实例化所述待集成系统所用的可传递参变量信息和本地参数信息;
基于所述第一数据,确定集成所述待集成系统所用的连接段的端口信息以及注释所述待集成系统所用的注释段信息;
基于所述待集成系统对应的可传递参变量信息、本地参数信息、所述连接段的端口信息和所述注释段信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述目标文件包括所述待集成系统集成后的实例化文件、所述待集成系统的功能模拟文件、用于获取集成后的所述待集成系统的端口信息的端口文件。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述集成装置、计算机设备、及计算机可读存储介质的效果描述参见上述集成方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种集成方法的流程图;
图2示出了本公开实施例所提供的一种集成后的待集成系统的示意图;
图3示出了本公开实施例所提供的一种获取第二集成信息的方法的流程图;
图4示出了本公开实施例所提供的一种确定并存储第一目标数据的方法的流程图;
图5示出了本公开实施例所提供的一种基于第二数据库,生成并存储逗号分隔值文件的方法的流程图;
图6示出了本公开实施例所提供的一种生成并存储第一目标数据的具体实施过程的流程图;
图7示出了本公开实施例所提供的一种解析逗号分隔值文件的方法的流程图;
图8示出了本公开实施例所提供的一种对待集成系统进行集成操作,得到待集成系统集成后的目标文件的具体实施流程图;
图9示出了本公开实施例所提供的一种集成装置的示意图;
图10示出了本公开实施例所提供的一种计算机设备结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,随着人工智能技术的快速发展,系统级芯片的作用也变得愈发重要,然而,在系统级芯片的设计过程中,为了提高系统级芯片的性能或者满足一些特定的功能设计需求,需要对系统级芯片中的部分系统进行重新集成例如,对系统级芯片中的部分系统重新进行信号申明、定义、连线等操作,重新完成对部分系统的实例化,以实现部分系统的重新集成。但现有技术中,对系统级芯片中的部分系统进行重新集成的过程都是手动进行的,不仅效率较低,并且由于系统级芯片的内部结构复杂,手动调整的过程中,可能造成例如连线出错、定义出错的问题,进一步降低了集成效率。
基于上述研究,本公开提供了一种集成方法、装置、计算机设备和存储介质,基于对获取的配置文件的解析,能够获取配置文件中包括的用户预先确定的关于待集成系统的具体配置的配置信息,进而,从配置信息中能够筛选出集成待集成系统所需的第一集成信息,例如,待集成模块实例化后的逗号分隔值文件名称。进而,基于确定的第一集成信息,能够准确地获取集成待集成系统所需的、预先生成的第一目标数据,然后通过对第一目标数据的解析处理,利用解析得到的数据,能够实现自动地生成待集成系统集成后的实例化文件,也即自动生成目标文件,自动生成实例化文件的方式,克服了手动集成效率低以及易出错的问题,提高了芯片设计的效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,本公开实施例中所提到的特定名词包括:
RTL:register-transfer level,寄存器转换级电路,是用于描述同步数字电路操作的抽象级
Argparse库:是python标准库里面用来处理命令行参数的库;
CSV:Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号,其文件以纯文本形式存储表格数据(数字和文本)。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种集成方法进行详细介绍,本公开实施例所提供的集成方法的执行主体一般为具有一定计算能力的计算机设备,在一些可能的实现方式中,该集成方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为计算机设备为例对本公开实施例提供的集成方法加以说明。
如图1所示,为本公开实施例提供的一种集成方法的流程图,可以包括以下步骤:
S101:获取待集成系统的配置文件;待集成系统包括至少一个待集成模块。
这里,集成后的待集成系统可以是利用描述语言(Verilog)编写的系统,可以用于组成具有一定功能的系统级芯片。待集成系统中可以包括至少一个待集成模块,每一个待集成模块也是利用Verilog编写的,每个实例化后的待集成模块可以称为RTL模块,一个RTL模块对应于一个包括该RTL模块对应的描述文件的Verilog文件包。
配置(config)文件可以是用户根据系统芯片的构架规划和/或功能需求等预先编写的,包括用户预先确定的关于待集成系统的具体配置的配置信息,其中,一个待集成系统对应于一个配置文件。具体实施时,待集成模块的config文件可以是从系统级芯片对应的整体配置文件中筛选出的。
其中,本公开实施例所提供的集成方法的执行主体可以是利用具体的计算机编程语言(例如,Python语言)开发的系统集成工具。
具体实施时,用户可以根据特定的功能需求,在上述系统集成工具中输入用于抓取配置文件的命令行,其中,命令行具有固定的指令格式,然后,系统集成工具可以基于argparse库对用户输入的命令行进行解析,具体的,可以基于该命令行的指令格式,确定命令行中包括的配置文件名称,然后,基于确定的配置文件的名称,可以从整体配置文件中抓取该配置文件名称对应的配置文件,基于此,可以抓取出待集成系统的配置文件。例如,用于输入的命令行可以为“$soconn–f config/chip_core_top.csv.cfg”,其中,$soconn表示执行的脚本命令,-f为抓取配置文件的固定格式,用于抓取配置文件,config/chip_core_top.csv.cfg表示待抓取的配置文件的配置文件名称。
S102:对配置文件进行解析,确定集成待集成系统所需的第一集成信息。
这里,第一集成信息为对待集成系统进行集成所需的集成信息。
其中,第一集成信息可以包括以下至少一项:
待集成系统实例化后的目标系统名称、各个待集成模块实例化后的目标模块名称、各个待集成模块的初始模块名称、各个待集成模块实例化后的逗号分隔值文件名称、各个待集成模块对应的已实例化后的描述文件、各个待集成模块对应的模块实例化数量。
目标系统名称为待集成系统实例化后的顶层名称,目标模块名称为各个待集成模块实例化后的模块名称,初始模块名称为各个待集成模块实例化之前的模块名称,各个待集成模块实例化后的逗号分隔值文件名称为后续基于第二集成信息生成的第一目标数据对应的文件的名称,一个待集成模块可以对应于一个逗号分隔值文件名称,描述文件即上述编写待集成模块的Verilog文件包中的Verilog文件,模块实例化数量表示在对待集成系统进行集成时,该待集成模块需要实例化的次数,例如,待集成模块A的模块实例化数量为3,则表示在对待集成系统进行集成时,待集成模块A需要实例化3次。如图2所示,为本公开实施例中所提供的一种集成后的待集成系统的示意图,包括待集成系统实例化后的顶层和待集成模块A实例化后的模块,其中,顶层名称为A_wrapper,即目标系统名称为A_wrapper;待集成模块A实例化后的模块名称为U_A,即目标模块名称为U_A;A表示待集成模块的初始模块名称。
针对获取的待集成系统的配置文件,系统集成工具可以对其进行解析,确定配置文件中的第一集成信息,然后,可以利用字典的数据结构对其进行存储以及输出,其中,字典中的键key可以是待集成系统的目标系统名称或各个待集成模块实例化后的目标模块名称,字典的值value可以是一个元组,其中,该元组中包括待集成系统中包含的各个待集成模块的初始模块名称、待集成系统实例化后的逗号分隔值文件名称以及各个待集成模块对应的已实例化后的描述文件,其中,在key为待集成系统的目标系统名称时,该key对应的value置为空,因为针对任一待集成系统,集成的目的是确定与该待集成系统的目标系统名称对应的目标文件,而在该步骤中,还未生成目标文件,因此将该key对应的value置为空。
之后,在确定对该配置文件解析无误的情况下,即解析过程中未出现解析异常,并且在各个待集成模块对应的已实例化后的描述文件存在的情况下,确定解析完成,输出得到的字典,即可以得到第一集成信息。
S103:基于第一集成信息,获取与各个待集成模块相对应的第一目标数据。
这里,第一目标数据可以包括预先生成的逗号分隔值文件。
一个待集成系统的集成流程包括根据该待集成系统包括的已实例化的各个RTL模块对应的描述文件,生成各个RTL模块对应的逗号分隔值(CSV)文件,然后再根据生成的CSV文件以及功能需求信息,对该待集成系统进行集成,得到待集成系统集成后的RTL文件。因此,在得到目标文件之前,需要先获取与各个待集成模块相对应的CSV文件,即获取各个待集成模块相对应的第一目标数据。
具体实施时,第一目标数据是已经预先生成的数据,在生成第一目标数据时,将建立第一目标数据与待集成系统对应的config文件中的集成信息之间的映射关系。因此,在基于config文件,获取第一集成信息之后,可以根据该第一集成信息中的集成信息以及映射关系,获取对待集成系统进行集成所需的第一目标数据,也即,获取各个待集成模块相对应的第一目标数据。
或者,在生成第一目标数据时,将建立第一目标数据与待集成系统对应的config文件之间的映射关系,然后可以基于获取的config文件和映射关系,获取对待集成系统进行集成所需的第一目标数据,这里不进行限定。
S104:基于第一目标数据,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。
这里,目标文件可以是实例化文件,针对获取的各个待集成模块相对应的第一目标数据,基于对各个第一目标数据的分析,可以确定对待集成系统进行集成操作所需的集成信息,进而,利用集成信息,可以实现对待集成系统的集成操作,得到待集成系统集成后的实例化文件。
这样,基于对获取的配置文件的解析,能够获取配置文件中包括的用户预先确定的关于待集成系统的具体配置的配置信息,进而,从配置信息中能够筛选出集成待集成系统所需的第一集成信息,例如,待集成模块实例化后的逗号分隔值文件名称。进而,基于确定的第一集成信息,能够准确地获取集成待集成系统所需的、预先生成的第一目标数据,然后通过对第一目标数据的解析处理,利用解析得到的数据,能够实现自动地生成待集成系统集成后的实例化文件,也即自动生成目标文件,自动生成实例化文件的方式,克服了手动集成效率低以及易出错的问题,提高了芯片设计的效率。
在一种实施例中,基于上述实施例可知,在获取第一目标数据之前,需要先生成并存储第一目标数据,具体实施时,可以按照以下步骤生成并存储第一目标数据:
步骤一、获取待集成系统的配置文件;
步骤二、对配置文件进行解析,确定集成待集成系统所需的第二集成信息;
步骤三、基于第二集成信息,生成与各个待集成模块对应的第一目标数据,并存储第一目标数据。
这里,关于步骤一和步骤二的具体实施方式,可以参照S101和S102,这里不再赘述。另外,第二集成信息中除了可以包括上述实施例中的第一集成信息中的集成信息,还可以包括待集成系统实例化后的逗号分隔值文件对应的生成路径,其中,生成路径用于表示生成的第一目标数据对应的文件的存储位置。
针对步骤二,在一种实施例中,可以先基于对获取的配置文件的解析,提取集成待集成系统所需的初始集成信息,然后,确定初始集成信息是否完整,如果是,说明可以利用确定的初始集成信息执行后续步骤,则将确定完整的初始集成信息作为最终的第二集成信息;如果否,则说明初始集成信息中的部分信息丢失,无法利用确定的初始集成信息执行后续步骤,则退出该步骤的执行,结束对第一目标数据的生成操作,并且,本公开实施例所提的系统集成工具还可以在确定初始集成信息不完整的情况下,确定初始集成信息中不完整的信息,然后基于该不完整的信息生成提示信息,以提示用户将缺少的信息进行补全,以重新生成第一目标数据。
例如,确定初始集成信息是否完整可以包括确定各个待集成模块对应的已实例化后的描述文件是否存在,如果存在,则说明可以获取到该描述文件,继续执行该步骤;如果不存在,则无法执行后续对该描述文件进行分析,生成第一目标数据的操作,这样,说明该步骤存在异常,则可以退出该步骤的执行,结束对第一目标数据的生成操作,并可以基于该缺少的描述文件生成提示信息,以提示用户将缺少的描述文件进行补全,以用于后续重新生成第一目标数据。
在一种实施例中,可以按照如图3所示的方法获取第二集成信息,如图3所示,为本公开实施例所提供的一种获取第二集成信息的方法的流程图,可以包括以下步骤:
S301:确定待集成系统的配置文件是否存在。
如果是,执行S302;如果否,流程结束。
本步骤中,在获取用户输入的命令行之后,基于对命令行的解析,可以确定命令行中的配置文件名称,进而,需要确定配置文件名称对应的配置文件是否存在,如果是,则说明可以在整体配置文件中获取该配置文件,则执行S302;如果否,则说明整体配置文件中不存在该配置文件,可能是用户输入的命令行有误,则可以生成提示信息以提醒用户重新输入命令行,并结束此次流程。或者,可能是该配置文件丢失,则可以基于该配置文件生成提示信息以提醒用户补全该配置文件。
S302:获取并解析配置文件。
S303:确定解析配置文件的过程中是否存在解析异常。
如果是,退出流程;如果否,执行S304。
解析异常可以包括获取的初始集成信息不完整以及配置文件解析出错。具体实施时,在对获取的配置文件进行解析的过程中,可以确定是否存在上述两种解析异常的情况,如果是,则结束流程,并基于确定的解析异常对应的异常信息,生成提示信息,以提醒用户。如果否,则可以基于配置文件,获取第二集成信息。
S304:以字典的数据结构输出第二集成信息。
关于S301~S304的具体实施流程,可以参照S101~S102,这里不再赘述。
进一步的,基于输出的第二集成信息,可以生成与各个待集成模块对应的第一目标数据,并存储第一目标数据,也即,生成并存储集成待集成系统所需的第一目标数据。具体实施时,可以按照图4所示的方法确定并存储第一目标数据,如图4所示,为本公开实施例所提供的一种确定并存储第一目标数据的方法的流程图,可以包括以下步骤:
S401:从第二集成信息中获取各个待集成模块对应的已实例化后的描述文件。
S402:针对每个待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息。
S403:基于各个待集成模块的实例化参数信息和第二集成信息,生成与各个待集成模块对应的第一目标数据,并存储第一目标数据。
这里,实例化参数信息可以包括描述文件中的宏变量MACRO、可传递参变量Override Parameter(以下简称OP)、本地参数Local Parameter(以下简称LP)、描述文件对应的RTL模块的端口信息,对描述文件中的变量表达式进行处理得到的表达式的值等信息。
由上述实施例可知,第二集成信息中包括各个待集成模块对应的已实例化后的描述文件,因此,在获取的第二集成信息之后,针对待集成系统,由于第二集成信息是以字典的数据结构输出的,字典中包括若干个键值对,所以可以利用依次读取字典中的键值对的方式,获取第一目标数据。
具体实施时,在读取键值对的过程中,可以先确定该键值对中的键是否为目标系统名称,如果是,则说明该键对应的目标文件为顶层文件,则将该键将对应的数据置为空。如果否,则说明该键为目标模块名,则可以获取与该键对应的值中的待集成模块对应的已实例化后的描述文件。在获取描述文件之后,可以对该描述文件进行解析,确定该描述文件中的实例化参数信息,并在对该描述文件进行解析的过程中,还可以判断解析过程中是否存在解析异常的情况,如果是,则说明描述文件存在异常,退出流程;如果否,可以获取该描述文件中的实例化参数信息。
进而,循环上述步骤,在确定读取的键值对为字典中最后一个键值对、且对该键值对对应的实例化参数信息已经读取完毕的情况下,说明各个待集成模块对应的已实例化后的描述文件已经读取完毕,已经获取到各个待集成模块对应的实例化参数信息。
在一种实施例中,在获取描述文件中的实例化参数信息之后,可以将实例化参数信息存入第二数据库。之后,可以基于第二数据库和第二集成信息对应的字典,确定并存储第一目标数据。
在一种实施例中,第一目标数据可以包括逗号分隔值文件,具体实施时,可以按照以下步骤确定并存储第一目标数据:
步骤一、针对任一待集成模块,确定是否存在预设的逗号分隔值文件模板;
步骤二、在确定存在逗号分隔值文件模板的情况下,基于该待集成模块对应的实例化参数信息,获取该待集成模块对应的连接段的端口信息、该待集成模块对应的可传递参变量信息;
步骤三、基于逗号分隔值文件模板、端口信息、可传递参变量信息、逗号分隔值文件名称,生成并存储该待集成模块对应的逗号分隔值文件。
这里,端口信息可以包括端口名称、端口宽度、宏变量以及端口方向等信息,一个待集成模块对应于一个逗号分隔值文件,一个待集成系统对应于至少一个逗号分隔值文件。
系统集成工具在生成第二数据库之后,针对任一待集成模块,可以先确定是否存在预设的逗号分隔值文件模板,即pattern.csv,如果否,则说明无法利用逗号分隔值文件模板生成该待集成模块对应的逗号分隔值文件,则退出流程。
在确定存在逗号分隔值文件模板的情况下,可以从第二数据库中存储的该待集成模块的实例化参数信息中,获取该待集成模块对应的连接connection段的端口信息、该待集成模块的可传递参变量信息OP;并且,基于生成的字典中的键值对的值,可以确定该待集成模块对应的逗号分隔值文件名称,以及该逗号分隔值文件的生成路径。
然后,可以将该待集成模块的connection段的端口信息和OP填入逗号分隔值文件模板中的connection段和OP段中,并将该待集成模块对应的逗号分隔值文件名称作为该逗号分隔值文件模板的名称,将其存储在生成路径对应的存储位置。
在生成逗号分隔值文件的过程中,还可以基于字典中的键值对,判断当前生成的逗号分隔值文件是否为字典中最后一个键值对中的键对应的逗号分隔值文件,如果是,则流程结束,如果否,则继续执行上述生成逗号分隔值文件的步骤。
基于此,可以生成与各个待集成模块对应的逗号分隔值文件,并将生成的每个逗号分隔值文件存储在该逗号分隔值文件所对应的生成路径所指向的存储位置处。
在一种可能的实施例中,在生成每个待集成模块对应的逗号分隔值文件之前,还需要确定待生成的逗号分隔值文件对应的生成路径中是否存在名称与该逗号分隔值文件的逗号分隔值文件名称相一致的已生成的逗号分隔值文件,如果是,则可以更改已生成的逗号分隔值文件的文件名称,或,将已生成的逗号分隔值文件复制到其他的生成路径中,然后再生成待生成的逗号分隔值文件。
另外,如果确定生成路径中存在多个名称与待生成的逗号分隔值文件的逗号分隔值文件名称属于同一命名规则的已生成的逗号分隔值文件,则可以按照预设规则更改每个已生成的逗号分隔值文件的名称,或,将每个已生成的逗号分隔值文件的名称复制到其他路径中,然后再生成待生成的逗号分隔值文件。例如,待生成的逗号分隔值文件的逗号分隔值文件名称为A.csv,多个属于同一命名规则的已生成的逗号分隔值文件为A.csv,A.1.csv,A.2.csv,则可以将上述多个已生成的逗号分隔值文件的名称依次更改为A.1.csv,A.2.csv,A.3.csv,以完成备份,之后,生成名称为A.csv的逗号分隔值文件。这样,可以实现对已生成的逗号分隔值文件的备份存储,防止新生成的逗号分隔值文件将其替换,导致在需要利用已生成的逗号分隔值文件执行操作时无法获取该文件,进而,影响芯片集成的效率。
在一种实施例中,在存储第一目标数据之后,也即将生成的逗号分隔值文件存储至生成路径中之后,系统集成工具还可以基于生成的第一目标数据,输出如表一所示的电子表格。
表一
其中,MODULE_CSV表示目标模块名称,<INCLUDE>表示声明变量段的开始,<END_INCLUDE>表示声明变量段的结束,<CONNECTION>表示连接段信息的开始,Group表示组,用以表示当前信号是否需要连接;Source Port Name表示源端口信号名,用以表示其对应的信号在原集成后的待集成系统中的名称;Size表示位宽,用以表示信号的宽度;Direction表示方向,指信号在原集成后的待集成系统中的信号方向,包括输入、输出和双向三种方向;Destination表示顶层关联信号名,用以表示在当前的待集成系统中,与待集成模块的信号相关联的信号名称;Destination Detail表示关联信号信息,用以指示信号与待集成模块之间的连接细节信息;Toplevel Signal Name表示顶层信号名称,Dummy Value表示假值,用于表示当前待集成系统集成后对应的功能模拟文件中的值;Comment表示注释段信息,<END CONNECTION>表示连接段的结束,<PRAGMA>表示声明胶合逻辑信息段的开始,<END_PRAGMA>表示声明胶合逻辑信息段的结束,<ARCHITECTURE_DEF>表示寄存器信号声明段的开始,<END_ARCHITECTURE_DEF>表示寄存器信号声明段的结束,<ARCHITECTURE>表示寄存器相关逻辑操作段的开始,<END_ARCHITECTURE>表示寄存器相关逻辑操作段的结束,<GENERIC_MAP>表示待集成模块的传递变量信息段的开始,<END_GENERIC_MAP>表示待集成模块的传递变量信息段的结束)。
在生成电子表格之后,系统集成工具还可以接收用户针对电子表格中的预设位置处的至少部分数据所输入的用于集成待集成系统的目标集成数据,其中,预设位置处可以是电子表格的预设列,如后四列;目标集成数据可以为待集成系统中的端口信号的宽度设置,端口信号的连接位置等数据。进而,可以根据获取的目标集成数据,对生成的第一目标数据进行更新,得到新的第一目标数据。
这样,目标集成数据能够反映用户对于待集成系统进行集成时的集成需求和集成目标,例如,各个待集成模块之间的连接逻辑、待集成系统的信号声明信息等,利用目标集成数据对第一目标数据进行更新,使利用更新的第一目标数据得到的目标文件,能够满足用户的集成需求。
在一种实施例中,针对S102,在获取第一集成信息之后,还可以将得到的第一集成信息与第二集成信息进行比较,如果用户未对配置文件进行更改,第二集成信息将包括与第一集成信息相同的信息。
如果在进行比较之后,确定第一集成信息与第二集成信息不相同,则说明在确定第一集成信息之前用户已经对配置文件进行了更改,根据第一集成信息得到的第一目标数据可能已经发生更新。因此,需要对第一目标数据进行更新,此时,系统集成工具将基于第一集成信息和第二集成信息之间的差异信息,生成提示信息以提示用户重新获取第一目标数据,这样,能够实现在得到目标文件的过程中的自动检查纠错,有利于提高芯片集成的效率。
如图5所示,为本公开实施例所提供的一种基于第二数据库,生成并存储逗号分隔值文件的方法的流程图,可以包括以下步骤:
S501:针对任一待集成模块,基于第二数据库,获取该待集成模块对应的实例化参数信息。
S502:确定是否存在预设的逗号分隔值文件模板。
如果是,执行S503;如果否,结束流程。
S503:基于该待集成模块对应的实例化参数信息,获取该待集成模块对应的连接段的端口信息、该待集成模块对应的可传递参变量信息。
S504:、基于逗号分隔值文件模板、端口信息、可传递参变量信息、逗号分隔值文件名称,生成并存储该待集成模块对应的逗号分隔值文件。
本步骤中,在生成逗号分隔值文件的过程中,还可以基于字典中的键值对,判断当前生成的逗号分隔值文件是否为字典中最后一个键值对中的键对应的逗号分隔值文件,如果是,则流程结束,如果否,则返回执行S501。
基于此,可以生成与各个待集成模块对应的逗号分隔值文件并存储在各个待集成模块对应的生成路径所指向的存储位置处。
关于S501~S504的具体实施例流程,可以参照S401~S403,这里不再赘述。
如图6所示,为本公开实施例所提供的一种生成并存储第一目标数据的具体实施过程的流程图,可以包括以下步骤:
S601:获取用户输入的命令行。
S602:解析获取的命令行,抓取待集成系统的配置文件。
S603:对配置文件进行解析,确定集成待集成系统所需的第二集成信息。
S604:基于第二集成信息,生成与各个待集成模块对应的第一目标数据,并存储第一目标数据。
关于S601~S604的具体实施步骤,可以参照上述实施例中的介绍,这里不再赘述。
在一种实施例中,第一目标数据包括逗号分隔值文件,针对S103,可以按照以下步骤获取与各个待集成模块相对应的第一目标数据:
步骤一、基于第一集成信息,确定与各个待集成模块相对应的逗号分隔值文件名称;
步骤二、基于逗号分隔值文件名称,确定逗号分隔值文件的生成路径;
步骤三、基于生成路径,获取与各个待集成模块相对应的逗号分隔值文件。
由上述实施例可知,在存储第一集成信息的字典中,每个键值对的值包括待集成系统实例化后的逗号分隔值文件名称,因此,通过读取字典中每个键值对的值,可以获取待集成系统中的各个待集成模块对应的逗号分隔值文件名称,然后基于在生成逗号分隔值文件(第一目标数据)之后,建立的逗号分隔值文件和集成信息之间的映射关系,可以确定与每个待集成模块的逗号分隔值文件名称相对应的逗号分隔值文件的生成路径,基于确定的生成路径,可以确定每个待集成模块对应的逗号分隔值文件的存储位置,进而,可以在确定的存储位置处获取与各个待集成模块相对应的逗号分隔值文件。
针对S104,在获取与各个待集成模块相对应的逗号分隔值文件(CSV文件)之后,实例化逗号分隔值文件解析类CSVFileAnalysis class,并设置CSVFileAnalysis class的类内属性,其中,类内属性可以包括变量命名规则,其中,变量命名规则用于检查逗号分隔值文件中的变量是否规范。
然后,可以基于以字典的数据结构输出的第一集成信息,获取数据库中存储的数据的数据类型,其中,数据类型可以包括以键值对的键中的目标系统名称命名的类型、以键值对的键中的目标模块名称命名的类型等。然后,可以获取指定的第一数据库的数据库存储位置,并基于确定的数据类型和数据库存储位置,实例化数据库生成类,以在数据库存储位置处得到第一数据库,并对第一数据库进行初始化操作。
之后,可以利用CSVFileAnalysis class对获取的各个逗号分隔值文件进行解析,获取集成待集成系统所需的目标类别对应的第一数据,其中,目标类别可以包括ConnectInfo、IncludeInfo、PragmaInfo、ArchInfo、ArchDefInfo和GenMapInfo等类别,其中,ConnectInfo表示连接段信息内容,IncludeInfo表示变量声明段信息内容,PragmaInfo表示胶合逻辑段信息内容,ArchInfo表示寄存器操作段信息内容,ArchDefInfo表示寄存器声明段信息内容,GenMapInfo表示待集成模块的传递参数信息内容。然后将获取的目标类别的第一数据填入生成的第一数据库中。
针对每次解析完成的逗号分隔值文件,判断该逗号分隔值文件是否为最后一个逗号分隔值文件,也即,判断是否已经将各个待集成模块对应的逗号分隔值文件解析完成,如果是,则说明此时已经得到集成待集成系统所需的目标类别对应的所有的第一数据,则将此时更新得到的第一数据库作为最终的第一数据库;如果否,则继续解析新的逗号分隔值文件,直至确定将所有的逗号分隔值文件解析完成。
另外,在得到最终的第一数据库之后,可以将第一数据库和已生成的第二数据库进行比较,以确定第一数据库和第二数据库中预设类别的数据是否相同,其中,预设类别的数据可以是第一数据库和第二数据库中的前N(例如,N为3)列的数据,第一数据库和第二数据库存储的数据的类别相同。
在确定第一数据库和第二数据库中的预设类别的数据相同的情况下,说明基于第二数据库生成的第一目标数据为集成待集成系统所需的数据,以及对第一目标数据进行解析得到的第一数据也是集成待集成系统所需的数据。
这样,由于第一数据库和第二数据库都是基于从配置文件中获取的集成信息生成的,因此,通过对生成的第一数据库和第二数据库中的预设类别的数据的比较,能够实现对配置文件中的配置信息以及每个待集成模块对应的已实例化后的描述文件的比较,进而,实现对上述信息的检查,从而,实现在得到目标文件的过程中的自动检查纠错,有利于提高芯片集成的效率。
如图7所示,为本公开实施例所提供的一种解析逗号分隔值文件的方法的流程图,可以包括以下步骤:
S701:实例化逗号分隔值文件解析类。
S702:基于第一集成信息对应的字典,获取数据库中存储的数据的数据类型。
S703:基于数据类型和数据库存储位置,实例化数据库生成类,得到第一数据库,并初始化第一数据库。
S704:利用逗号分隔值文件解析类,解析逗号分隔值文件,得到集成待集成系统所需的目标类别对应的第一数据,并将第一数据填入第一数据库。
S705:确定当前解析的逗号分隔值文件是否为最后一个逗号分隔值文件。
如果是,结束进程;如果否,返回执行S704。
这里,关于S701~S705的具体执行步骤,可以参照针对S104的介绍,这里不再赘述。
最后,在确定第一数据库和第二数据库中的预设类别的数据相同的情况下,可以利用更新后的第一数据库和以字典的数据结构输出的第一集成信息,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。
在一种实施例中,针对S104:基于第一目标数据,对待集成系统进行集成操作,得到待集成系统集成后的目标文件,下面进行详细介绍。
具体实施时,目标文件可以包括待集成系统集成后的实例化(RTL)文件、待集成系统的功能模拟(dummy)文件、待集成系统集成后的只包括端口信息的端口(empty)文件。
其中,dummy文件为用于模仿其所对应的集成后的待集成系统的功能的文件,具体的,在对任一集成后的待集成系统进行仿真时,可以利用其他集成后的待集成系统对应的dummy文件,实现将除正在进行仿真的集成后的待集成系统以外的其他集成后的待集成系统置于不可访问状态,从而提高仿真速度。
empty文件中只存储集成后的待集成系统中的各个端口的端口信息,利用empty文件,可以获取其所对应的集成后的待集成系统的端口信息。
本公开实施例所提供的集成方法,可以实现同步生成由RTL文件、dummy文件和empty文件组成的目标文件。
在获取第一数据之后,可以先对用于生成集成后的待集成系统的RTL文件的GenerateInst类进行实例化,然后,利用第一集成信息对应的字典中的键值对中的键,确定目标系统名称对应的待集成系统实例化后的顶层部分和目标模块名称对应的实例化的待集成模块的模块部分,然后,创建RTL文件、dummy文件和empty文件,并初始化上述三个文件。
如果在创建上述文件的过程中,在上述文件的生成路径中存在与上述待创建的文件重名的已生成文件,则可以先对已生成文件进行备份,然后在创建上述待创建的文件,关于对已生成文件进行备份的方式,可以参照上述在生成CSV文件过程中对已生成的重名CSV文件进行备份的备份方式,这里不再赘述。
之后,可以分别获取顶层部分对应的顶层集成信息和模块部分的模块集成信息,然后利用顶层集成信息和模块集成信息,对待集成系统进行集成操作,以得到待集成系统集成后的目标文件。
在一种实施例中,针对目标系统名称对应的待集成系统实例化后的顶层部分,可以按照以下步骤获取顶层部分对应的顶层集成信息,并利用顶层集成信息对待集成系统进行集成操作,以得到待集成系统集成后的目标文件:
步骤一、基于第一集成信息,分别确定实例化待集成系统所用的可传递参变量信息和本地参数信息;
步骤二、基于第一数据,确定集成待集成系统所用的连接段的端口信息以及注释待集成系统所用的注释段信息;
步骤三、基于待集成系统对应的可传递参变量信息、本地参数信息、连接段的端口信息和所述注释段信息,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。
这里,针对目标系统名称对应的待集成系统实例化后的顶层部分,可以基于第一集成信息对应的字典中的值和第一数据库,确定顶层部分的OP,这里,在收集OP的过程中,可以确定OP对应的数据中是否存在重复的变量,如果是,则结束该步骤的执行,基于重复的变量生成提示信息以提醒用户,如果否,则继续收集顶层部分的LP,这里需要遍历生成的第一数据库以获取LP中的数据。
之后,可以利用Macro变量,确定第一数据库中的CONNECTION段信息,其中,CONNECTION段信息可以包括顶层信号(TopLevel Signal)信息和输出(OUTPUT)端口信息等信息。并且在确定CONNECTION段信息的过程中,还可以利用Macro变量定义获取CONNECTION段信息的顺序,按照Macro变量定义的顺序,调整得到的信息的位置。
进而,在得到CONNECTION段信息之后,可以基于CONNECTION段信息中的TopLevelSignal信息,确定顶层部分的端口信号,以及对TopLevel Signal信息中的信号宽度表达式进行解析,以确定端口信号的宽度。并且,还可以基于TopLevel Signal信息,确定端口信号是否重复以及端口信号的宽度的声明是否不一致,如果是,则结束该步骤的执行,基于重复的端口信号和/或不一致的端口信号的宽度生成提示信息以提示用户;如果否,可以基于OUTPUT端口信息,以及第一数据库中的胶合逻辑段(PRAGMA)段信息,确定顶层部分对应的需要声明的Wire类型的变量以及该类型变量的声明宽度等信息。
进一步的,可以将收集的OP、LP、CONNECTION段信息中的上述信息和PRAGMA段信息中的上述信息,作为顶层集成信息,进而,可以利用得到的顶层集成信息,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。
另外,针对目标模块名称对应的实例化的待集成模块的模块部分,可以按照以下步骤获取模块部分的模块集成信息,并利用顶层集成信息对待集成系统进行集成操作,以得到待集成系统集成后的目标文件:
步骤一、基于第一数据,确定各个实例化的待集成模块的数据表达式信息;
步骤二、基于第一集成信息,确定各个实例化的待集成模块的可传递参变量信息;
步骤三、基于各个待集成模块对应的数据表达式信息和可传递参变量信息,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。
这里,针对目标模块名称对应的实例化的待集成模块的模块部分,可以先对用于确定表达式的值的评估表达式类(EvaluateExpress class)进行初始化,然后,可以利用EvaluateExpress class对第一数据库中与该目标模块名称对应的实例化的待集成模块的数据表达式信息进行计算,确定数据表达式的值,然后可以基于第一集成信息对应的字典中的值和第一数据库,确定该实例化的待集成模块的OP。进而,可以将该实例化的待集成模块对应的数据表达式信息的值和OP,作为该实例化的待集成模块的模块集成信息。进而,基于上述过程,可以获取各个待集成模块对应的数据表达式信息和可传递参变量信息,也即,可以获取各个待集成模块对应的模块集成信息。另外,对TopLevel Signal信息中的信号宽度表达式进行解析的操作也可以是利用EvaluateExpress class完成的。
进而,可以利用得到的模块集成信息和顶层集成信息,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。
具体实施时,在得到模块集成信息和顶层集成信息之后,可以按照以下方式对待集成系统进行集成操作,以得到待集成系统集成后的目标文件,其中,目标文件包括RTL文件、dummy文件和empty文件。也即,利用确定的模块集成信息和顶层集成信息,更新创建的RTL文件、dummy文件和empty文件,以得到最终的RTL文件、dummy文件和empty文件。
具体实施时,针对更新待集成系统集成后的RTL文件的操作,又可以分为写目标模块名称,写端口信号、写OP、写LP、写端口信号声明、写手写代码的信号声明、写Wire类型信号声明、写手写代码、写集成逻辑、写RTL文件和写模块结束操作。这样,可以实现对对待集成系统进行集成操作,并得到待集成系统集成后的RTL文件。
针对更新待集成系统集成后的dummy文件的操作,又可以分为写目标模块名称,写端口信号、写OP、写LP、写端口信号声明、写Wire类型信号声明、写端口赋值dummy值和写模块结束操作。其中,在得到待集成系统集成后的dummy文件之后,针对任一集成后的待集成系统,如果存在对该集成后的待集成系统进行单独仿真以测试该集成后的待集成系统的性能的需求时,可以利用其他集成后的待集成系统对应的dummy文件将其他集成后的待集成系统置为dummy状态,处于dummy状态的集成后的待集成系统不会影响需要进行单独测试的集成后的待集成系统的仿真测试结果,并且由于不需要对其他集成后的待集成系统进行仿真,从而有效地提高了仿真速度。
针对更新待集成系统集成后的empty文件的操作,又可以分为写目标模块名称,写端口信号、写OP、写LP、写端口信号声明和写模块结束操作。其中,empty文件只包括集成后的待集成系统的端口信息。
基于此,可以实现对待集成系统的集成操作,并得到待集成系统集成后的目标文件。
另外,通过同步生成上述三种文件的方式,能够避免手动书写上述文件时带来的耗时长、准确性低的问题,提高了芯片集成的效率。
如图8所示,为本公开实施例所提供的一种对待集成系统进行集成操作,得到待集成系统集成后的目标文件的具体实施流程图,可以包括以下步骤:
S801:实例化GenerateInst类。
S802:分别确定目标系统名称对应的待集成系统实例化后的顶层部分和目标模块名称对应的实例化的待集成模块的模块部分。
S803:创建并初始化实例化文件、功能模拟文件和端口文件。
其中,目标文件包括实例化文件、功能模拟文件和端口文件。
S804:收集顶层部分的可传递参变量信息,确定是否存在重复的变量。
如果是,流程结束;如果否,执行S805。
S805:收集顶层部分的本地参数信息。
S806:初始化评估表达式类。
S807:收集实例化的待集成模块的可传递参变量信息,并确定实例化的待集成模块对应的数据表达式信息的值。
其中,可以利用初始化的评估表达式类,确定实例化的待集成模块对应的数据表达式信息的值。
S808:确定第一数据库中的连接段信息。
S809:基于连接段信息中的顶层信号信息,确定顶层部分的端口信号和端口信号的宽度,并确定端口信号是否重复以及端口信号的宽度的声明是否不一致。
如果是,流程结束;如果否,执行S810。
其中,可以利用初始化的评估表达式类,确定顶层部分的端口信号的宽度。
S810:基于输出端口信息和胶合逻辑段信息,确定顶层部分对应的需要声明的Wire类型的变量以及该类型变量的声明宽度。
S811:更新创建的实例化文件,得到最终的实例化文件。
S812:更新创建的功能模拟文件,得到最终的功能模拟文件。
S813:更新创建的端口文件,得到最终的端口文件。
这里,在执行S801~S813的过程中,可以实现对待集成系统进行集成操作。并且,S811~S813不存在严格的执行顺序,可以同时执行。关于S801~S813的具体执行步骤,可以参照上述针对S104的详细介绍,这里不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与集成方法对应的集成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述集成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,为本公开实施例提供的一种集成装置的示意图,包括:
第一获取模块901,用于获取待集成系统的配置文件;所述待集成系统包括至少一个待集成模块;
确定模块902,用于对所述配置文件进行解析,确定集成所述待集成系统所需的第一集成信息;
第二获取模块903,用于基于所述第一集成信息,获取与各个所述待集成模块相对应的第一目标数据;
集成模块904,用于基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述装置还包括:
存储模块905,用于按照以下步骤存储所述第一目标数据:
获取所述待集成系统的配置文件;
对所述配置文件进行解析,确定集成所述待集成系统所需的第二集成信息;
基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
在一种可能的实施方式中,所述存储模块905,用于解析所述配置文件,提取集成所述待集成系统所需的初始集成信息;
在确定所述初始集成信息完整的情况下,将所述初始集成信息作为集成所述待集成系统所需的第二集成信息。
在一种可能的实施方式中,所述第二集成信息包括以下至少一项:
所述待集成系统实例化后的目标系统名称、各个所述待集成模块实例化后的目标模块名称、各个所述待集成模块的初始模块名称、待集成系统实例化后的逗号分隔值文件名称、各个所述待集成模块对应的已实例化后的描述文件、各个所述待集成模块对应的模块实例化数量。
在一种可能的实施方式中,所述存储模块905,还用于在确定了所述第二集成信息之后,利用字典的数据结构存储所述第二集成信息。
在一种可能的实施方式中,所述存储模块905,用于从所述第二集成信息中获取各个所述待集成模块对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息;
基于各个所述待集成模块的实例化参数信息和所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
在一种可能的实施方式中,所述第一目标数据包括逗号分隔值文件;
所述存储模块905,用于针对任一所述待集成模块,确定是否存在预设的逗号分隔值文件模板;
在确定存在所述逗号分隔值文件模板的情况下,基于该待集成模块对应的实例化参数信息,获取该待集成模块对应的连接段的端口信息、该待集成模块对应的可传递参变量信息;
基于所述逗号分隔值文件模板、所述端口信息、所述可传递参变量信息、所述逗号分隔值文件名称,生成并存储该待集成模块对应的所述逗号分隔值文件。
在一种可能的实施方式中,所述存储模块905,在生成所述逗号分隔值文件之前,还用于确定所述逗号分隔值文件对应的生成路径中是否存在名称与所述逗号分隔值文件名称相一致的已生成的逗号分隔值文件;
在确定存在所述已生成的逗号分隔值文件的情况下,修改所述已生成的逗号分隔值文件的名称,以实现对所述已生成的逗号分隔值文件进行备份。
在一种可能的实施方式中,所述装置还包括:
更新模块906,用于在所述存储模块存储所述第一目标数据之后,获取用户输入的目标集成数据;
基于所述目标集成数据和所述第一目标数据,更新所述第一目标数据。
在一种可能的实施方式中,所述第一目标数据包括逗号分隔值文件;
所述第二获取模块903,用于基于所述第一集成信息,确定与各个所述待集成模块相对应的逗号分隔值文件名称;
基于所述逗号分隔值文件名称,确定逗号分隔值文件的生成路径;
基于所述生成路径,获取与各个所述待集成模块相对应的逗号分隔值文件。
在一种可能的实施方式中,所述集成模块904,用于实例化逗号分隔值文件解析类;
利用所述逗号分隔值文件解析类,对所述第一目标数据进行解析,得到集成所述待集成系统所需的目标类别对应的第一数据;
基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述集成模块904,在得到所述目标文件之前,还用于基于所述第一集成信息,获取数据库中存储的数据的数据类型;
基于所述数据类型和数据库存储位置,实例化数据库生成类,得到第一数据库;
将所述第一数据存入所述第一数据库。
在一种可能的实施方式中,所述存储模块905,用于从所述第二集成信息中获取各个所述待集成模块相对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息,并将所述实例化参数信息存入第二数据库;
所述集成模块904,用于在所述第一数据库和第二数据库中的预设类别对应的数据相同的情况下,基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件;其中,第一数据库和第二数据库存储的数据的类别相同。
在一种可能的实施方式中,所述集成模块904,用于基于所述第一数据,确定各个实例化的所述待集成模块的数据表达式信息;
基于所述第一集成信息,确定各个实例化的所述待集成模块的可传递参变量信息;
基于各个所述待集成模块对应的数据表达式信息和可传递参变量信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述集成模块904,还用于基于所述第一集成信息,分别确定实例化所述待集成系统所用的可传递参变量信息和本地参数信息;
基于所述第一数据,确定集成所述待集成系统所用的连接段的端口信息以及注释所述待集成系统所用的注释段信息;
基于所述待集成系统对应的可传递参变量信息、本地参数信息、所述连接段的端口信息和所述注释段信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
在一种可能的实施方式中,所述目标文件包括所述待集成系统集成后的实例化文件、所述待集成系统的功能模拟文件、用于获取集成后的所述待集成系统的端口信息的端口文件。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图10所示,为本公开实施例提供的一种计算机设备结构示意图,包括:
处理器1001和存储器1002;所述存储器1002存储有处理器1001可执行的机器可读指令,处理器1001用于执行存储器1002中存储的机器可读指令,所述机器可读指令被处理器1001执行时,处理器1001执行下述步骤:S101:获取待集成系统的配置文件;待集成系统包括至少一个待集成模块;S102:对配置文件进行解析,确定集成待集成系统所需的第一集成信息;S103:基于第一集成信息,获取与各个待集成模块相对应的第一目标数据以及S104:基于第一目标数据,对待集成系统进行集成操作,得到待集成系统集成后的目标文件。
上述存储器1002包括内存1021和外部存储器1022;这里的内存1021也称内存储器,用于暂时存放处理器1001中的运算数据,以及与硬盘等外部存储器1022交换的数据,处理器1001通过内存1021与外部存储器1022进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的集成方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的集成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的集成方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的集成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (19)
1.一种集成方法,其特征在于,包括:
获取待集成系统的配置文件;所述待集成系统包括至少一个待集成模块;
对所述配置文件进行解析,确定集成所述待集成系统所需的第一集成信息;
基于所述第一集成信息,获取与各个所述待集成模块相对应的第一目标数据;
基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
2.根据权利要求1所述的方法,其特征在于,还包括存储所述第一目标数据的步骤:
获取所述待集成系统的配置文件;
对所述配置文件进行解析,确定集成所述待集成系统所需的第二集成信息;
基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
3.根据权利要求2所述的方法,其特征在于,所述对所述配置文件进行解析,确定集成所述待集成系统所需的第二集成信息,包括:
解析所述配置文件,提取集成所述待集成系统所需的初始集成信息;
在确定所述初始集成信息完整的情况下,将所述初始集成信息作为集成所述待集成系统所需的第二集成信息。
4.根据权利要求3所述的方法,其特征在于,所述第二集成信息包括以下至少一项:
所述待集成系统实例化后的目标系统名称、各个所述待集成模块实例化后的目标模块名称、各个所述待集成模块的初始模块名称、待集成系统实例化后的逗号分隔值文件名称、各个所述待集成模块对应的已实例化后的描述文件、各个所述待集成模块对应的模块实例化数量。
5.根据权利要求3所述的方法,其特征在于,在确定了所述第二集成信息之后,所述方法还包括利用字典的数据结构存储所述第二集成信息。
6.根据权利要求3所述的方法,其特征在于,所述基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据,包括:
从所述第二集成信息中获取各个所述待集成模块对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息;
基于各个所述待集成模块的实例化参数信息和所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据。
7.根据权利要求6所述的方法,其特征在于,所述第一目标数据包括逗号分隔值文件;
所述基于各个所述待集成模块的实例化参数信息和所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据,包括:
针对任一所述待集成模块,确定是否存在预设的逗号分隔值文件模板;
在确定存在所述逗号分隔值文件模板的情况下,基于该待集成模块对应的实例化参数信息,获取该待集成模块对应的连接段的端口信息、该待集成模块对应的可传递参变量信息;
基于所述逗号分隔值文件模板、所述端口信息、所述可传递参变量信息、所述逗号分隔值文件名称,生成并存储该待集成模块对应的所述逗号分隔值文件。
8.根据权利要求7所述的方法,其特征在于,在生成所述逗号分隔值文件之前,所述方法还包括:
确定所述逗号分隔值文件对应的生成路径中是否存在名称与所述逗号分隔值文件名称相一致的已生成的逗号分隔值文件;
在确定存在所述已生成的逗号分隔值文件的情况下,修改所述已生成的逗号分隔值文件的名称,以实现对所述已生成的逗号分隔值文件进行备份。
9.根据权利要求2至8任一项所述的方法,其特征在于,在存储所述第一目标数据之后,所述方法还包括:
获取用户输入的目标集成数据;
基于所述目标集成数据和所述第一目标数据,更新所述第一目标数据。
10.根据权利要求2至9任一项所述的方法,其特征在于,所述第一目标数据包括逗号分隔值文件;
所述基于所述第一集成信息,获取与各个所述待集成模块相对应的第一目标数据,包括:
基于所述第一集成信息,确定与各个所述待集成模块相对应的逗号分隔值文件名称;
基于所述逗号分隔值文件名称,确定逗号分隔值文件的生成路径;
基于所述生成路径,获取与各个所述待集成模块相对应的逗号分隔值文件。
11.根据权利要求10所述的方法,其特征在于,所述基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,包括:
实例化逗号分隔值文件解析类;
利用所述逗号分隔值文件解析类,对所述第一目标数据进行解析,得到集成所述待集成系统所需的目标类别对应的第一数据;
基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
12.根据权利要求11所述的方法,其特征在于,在得到所述目标文件之前,还包括:
基于所述第一集成信息,获取数据库中存储的数据的数据类型;
基于所述数据类型和数据库存储位置,实例化数据库生成类,得到第一数据库;
将所述第一数据存入所述第一数据库。
13.根据权利要求12所述的方法,其特征在于,所述基于所述第二集成信息,生成与各个所述待集成模块对应的第一目标数据,并存储所述第一目标数据,包括:
从所述第二集成信息中获取各个所述待集成模块相对应的已实例化后的描述文件;
针对每个所述待集成模块对应的已实例化后的描述文件,解析该描述文件,得到该待集成模块的实例化参数信息,并将所述实例化参数信息存入第二数据库;
所述基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,包括:
在所述第一数据库和第二数据库中的预设类别对应的数据相同的情况下,基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件;其中,第一数据库和第二数据库存储的数据的类别相同。
14.根据权利要求13所述的方法,其特征在于,所述基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,包括:
基于所述第一数据,确定各个实例化的所述待集成模块的数据表达式信息;
基于所述第一集成信息,确定各个实例化的所述待集成模块的可传递参变量信息;
基于各个所述待集成模块对应的数据表达式信息和可传递参变量信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
15.根据权利要求13或14所述的方法,其特征在于,所述基于所述第一数据和所述第一集成信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件,还包括:
基于所述第一集成信息,分别确定实例化所述待集成系统所用的可传递参变量信息和本地参数信息;
基于所述第一数据,确定集成所述待集成系统所用的连接段的端口信息以及注释所述待集成系统所用的注释段信息;
基于所述待集成系统对应的可传递参变量信息、本地参数信息、所述连接段的端口信息和所述注释段信息,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
16.根据权利要求1至15任一项所述的方法,其特征在于,所述目标文件包括所述待集成系统集成后的实例化文件、所述待集成系统的功能模拟文件、用于获取集成后的所述待集成系统的端口信息的端口文件。
17.一种集成装置,其特征在于,包括:
第一获取模块,用于获取待集成系统的配置文件;所述待集成系统包括至少一个待集成模块;
确定模块,用于对所述配置文件进行解析,确定集成所述待集成系统所需的第一集成信息;
第二获取模块,用于基于所述第一集成信息,获取与各个所述待集成模块相对应的第一目标数据;
集成模块,用于基于所述第一目标数据,对所述待集成系统进行集成操作,得到所述待集成系统集成后的目标文件。
18.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至16任意一项所述的集成方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至16任意一项所述的集成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110473959.7A CN113138808B (zh) | 2021-04-29 | 2021-04-29 | 一种集成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110473959.7A CN113138808B (zh) | 2021-04-29 | 2021-04-29 | 一种集成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113138808A true CN113138808A (zh) | 2021-07-20 |
CN113138808B CN113138808B (zh) | 2023-08-08 |
Family
ID=76817925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110473959.7A Active CN113138808B (zh) | 2021-04-29 | 2021-04-29 | 一种集成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113138808B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568601A (zh) * | 2021-07-27 | 2021-10-29 | 重庆金康动力新能源有限公司 | 基于集成配置文件的模型软件自动集成和动静态校验方法 |
CN113822002A (zh) * | 2021-08-31 | 2021-12-21 | 上海商汤阡誓科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN114510452A (zh) * | 2022-01-10 | 2022-05-17 | 杭州未名信科科技有限公司 | 片上系统soc集成方法、装置及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012954A (zh) * | 2010-11-29 | 2011-04-13 | 杭州中天微系统有限公司 | 用于系统芯片集成设计的子系统集成方法及其子系统集成系统 |
CN102184280A (zh) * | 2011-04-27 | 2011-09-14 | 广西电力工业勘察设计研究院 | 图模一体可视化集成设计方法 |
CN110209387A (zh) * | 2019-05-27 | 2019-09-06 | 大唐微电子技术有限公司 | 一种顶层hdl文件生成方法和装置、计算机可读存储介质 |
CN110895460A (zh) * | 2018-09-13 | 2020-03-20 | 深圳市优必选科技有限公司 | 基于Jenkins的机器人系统集成方法、装置及终端设备 |
CN111079354A (zh) * | 2019-11-22 | 2020-04-28 | 西安芯海微电子科技有限公司 | 一种芯片集成方法与装置、芯片集成设备及可读存储介质 |
CN111580885A (zh) * | 2020-05-09 | 2020-08-25 | 北京慧德易科技有限责任公司 | 一种基于labview上位机的硬件快速集成方法及系统 |
CN111679868A (zh) * | 2020-06-02 | 2020-09-18 | 上海元城汽车技术有限公司 | 汽车软件模型集成方法、装置、设备及存储介质 |
CN111859827A (zh) * | 2020-06-29 | 2020-10-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片ip集成方法、装置及电子设备和存储介质 |
CN112270149A (zh) * | 2020-10-16 | 2021-01-26 | 山东云海国创云计算装备产业创新中心有限公司 | 验证平台自动化集成方法、系统及电子设备和存储介质 |
-
2021
- 2021-04-29 CN CN202110473959.7A patent/CN113138808B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012954A (zh) * | 2010-11-29 | 2011-04-13 | 杭州中天微系统有限公司 | 用于系统芯片集成设计的子系统集成方法及其子系统集成系统 |
CN102184280A (zh) * | 2011-04-27 | 2011-09-14 | 广西电力工业勘察设计研究院 | 图模一体可视化集成设计方法 |
CN110895460A (zh) * | 2018-09-13 | 2020-03-20 | 深圳市优必选科技有限公司 | 基于Jenkins的机器人系统集成方法、装置及终端设备 |
CN110209387A (zh) * | 2019-05-27 | 2019-09-06 | 大唐微电子技术有限公司 | 一种顶层hdl文件生成方法和装置、计算机可读存储介质 |
CN111079354A (zh) * | 2019-11-22 | 2020-04-28 | 西安芯海微电子科技有限公司 | 一种芯片集成方法与装置、芯片集成设备及可读存储介质 |
CN111580885A (zh) * | 2020-05-09 | 2020-08-25 | 北京慧德易科技有限责任公司 | 一种基于labview上位机的硬件快速集成方法及系统 |
CN111679868A (zh) * | 2020-06-02 | 2020-09-18 | 上海元城汽车技术有限公司 | 汽车软件模型集成方法、装置、设备及存储介质 |
CN111859827A (zh) * | 2020-06-29 | 2020-10-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片ip集成方法、装置及电子设备和存储介质 |
CN112270149A (zh) * | 2020-10-16 | 2021-01-26 | 山东云海国创云计算装备产业创新中心有限公司 | 验证平台自动化集成方法、系统及电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
黄凯杰;黄凯;马德;王钰博;冯炯;葛海通;严晓浪;: "基于IP-XACT标准的SoC集成方法" * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568601A (zh) * | 2021-07-27 | 2021-10-29 | 重庆金康动力新能源有限公司 | 基于集成配置文件的模型软件自动集成和动静态校验方法 |
CN113568601B (zh) * | 2021-07-27 | 2024-04-19 | 重庆金康动力新能源有限公司 | 基于集成配置文件的模型软件自动集成和动静态校验方法 |
CN113822002A (zh) * | 2021-08-31 | 2021-12-21 | 上海商汤阡誓科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN113822002B (zh) * | 2021-08-31 | 2024-03-26 | 上海商汤阡誓科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN114510452A (zh) * | 2022-01-10 | 2022-05-17 | 杭州未名信科科技有限公司 | 片上系统soc集成方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113138808B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113138808B (zh) | 一种集成方法、装置、计算机设备和存储介质 | |
US10691578B2 (en) | Deriving contextual information for an execution constrained model | |
CN109189479B (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
US8051402B2 (en) | Method and apparatus for implementing communication between a software side and a hardware side of a test bench in a transaction-based acceleration verification system | |
US10830818B2 (en) | Ensuring completeness of interface signal checking in functional verification | |
CN111309734B (zh) | 自动生成表数据的方法及系统 | |
CN115167891A (zh) | 接口控制文件的数据更新方法、装置、设备及存储介质 | |
JP2002368104A (ja) | 論理集積回路及び論理集積回路設計方法及び論理集積回路のハードウェア動作記述を生成するハードウェア記述生成方法 | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
US20140324411A1 (en) | Translation validation | |
JP2008305079A (ja) | 要求仕様自動検証方式 | |
CN116126692A (zh) | 一种基于python的算法工具自动化测试系统及方法 | |
CN109582334A (zh) | 可编程逻辑器件的升级方法及装置 | |
CN115732025A (zh) | Ram访问冲突的验证方法及验证装置 | |
CN113238968A (zh) | 系统测试方法、装置、设备、介质及程序产品 | |
CN112464636A (zh) | 约束文件的比较方法、装置、电子设备和存储介质 | |
WO2023233616A1 (ja) | 論理回路の検証方法、論理回路の検証のためのプログラムおよび論理回路の検証のためのシステム | |
CN117807948B (zh) | 顶层网表文件的生成方法、装置、计算机设备及存储介质 | |
CN116861829B (zh) | 用于定位逻辑系统设计中错误的方法、电子设备 | |
CN118428285B (zh) | Chisel高层电路设计的转换和验证方法及装置 | |
CN118350324B (zh) | 测试电路集成方法、装置、电子设备及计算机存储介质 | |
CN115983171B (zh) | 用于对片上系统进行后仿真的方法和仿真平台 | |
JP7238361B2 (ja) | エラー出力装置、エラー出力方法、学習装置、学習済みモデルの生成方法、プログラム、および学習済みモデル | |
JP2018026067A (ja) | シミュレーション装置および同装置における接続情報生成方法 | |
Goli et al. | Application I: Verification |
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 |