CN110489812B - 多层层级网表处理方法、装置、计算机设备及存储介质 - Google Patents
多层层级网表处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110489812B CN110489812B CN201910677435.2A CN201910677435A CN110489812B CN 110489812 B CN110489812 B CN 110489812B CN 201910677435 A CN201910677435 A CN 201910677435A CN 110489812 B CN110489812 B CN 110489812B
- Authority
- CN
- China
- Prior art keywords
- module
- level
- netlist
- layer
- rlt
- 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.)
- Active
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种多层层级网表处理方法、装置、设备及介质。该方法包括:获取硬件电路设计,基于所述硬件电路设计生成多层层级网表;对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象;依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,并在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,获取目标单层网表。该方法解决了当前多层结构设计进行网表构建过程中存在的网表处理复杂度高或网表信息丢失的问题。
Description
技术领域
本发明涉及EDA软件开发技术领域,尤其涉及一种多层层级网表处理方法、装置、计算机设备及存储介质。
背景技术
在硬件电路设计过程中,为满足设计代码的复用性并提高可维护性,一般需要将某些特定功能编写成单独的设计模块并在其他逻辑中对这些设计模块进行实例化操作。其中,硬件电路设计生成的硬件电路是电路系统的重要组成部分,硬件电路是由各部分设计模块组成的电路,其中,设计模块包括但不限于稳压电源电路、运算放大器电路、比较器电路、单片机最小系统、H桥电机驱动电路、RC/LC滤波和场效应管/三极管组成的电子开关等。
对于较大规模的硬件电路设计,往往会定义及使用大量设计模块,这些设计模块之间存在复杂的调用关系,使得这些设计模块之间基于调用关系形成多层结构。在硬件电路设计过程中,需基于多层结构设计进行网表构建,以便后续利用所构建的网表进行后续的操作。当前对多层结构设计有如下两种方式进行网表构建:一种是完全保留层级结构,对每个设计模块建立独立的网表,这种方式可以保留层级结构,但会造成同一设计模块的多个模块实例化对象之间失去独立性,大大增加了对所构建的网表进行后续操作的复杂度。另一种是将所有实例化完全展开,构建唯一的单层网表,这种方式会导致模块间连接信息(如调用关系)丢失,可能会导致最终构建的网表与用户设计无法对应。因此,如何简化网表处理复杂度并保证网表信息完整性是当前多层结构设计构建网表过程中亟待解决的问题。
发明内容
本发明实施例提供一种多层层级网表处理方法、装置、计算机设备及存储介质,以解决当前多层结构设计进行网表构建过程中存在的网表处理复杂度高或网表信息丢失的问题。
一种多层层级网表处理方法,包括:
获取硬件电路设计,基于所述硬件电路设计生成多层层级网表;
对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象;
依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,获取目标单层网表。
一种多层层级网表处理装置,包括:
多层层级网表生成模块,用于获取硬件电路设计,基于所述硬件电路设计生成多层层级网表;
模块调用关系树生成模块,用于对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象;
目标单层网表获取模块,用于依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,获取目标单层网表。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述多层层级网表处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述多层层级网表处理方法的步骤。
上述多层层级网表处理方法、装置、计算机设备及存储介质,获取硬件电路设计,基于所述硬件电路设计生成多层层级网表,对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象,以便后续根据该模块调用关系树对多层层级网表进行处理,以降低用户对多层层级模块进行操作时的难度。依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,以消除同一个上层层级模块的多个模块实例化对象的强逻辑关系,以便后续对同一个上层层级模块的下层层级模块进行调用时,可以使用不同的处理逻辑而互不干扰,降低操作难度,加快工作效率。在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,获取目标单层网表,以便隔离上层层级模块和下层层级模块,避免替换后该下层层级模块的器件与其他下层层级模块混淆。由于目标单层网表中的每一虚拟节点均存储有相应的模块信息,可以有效保证网表信息的完整性,避免网表展开处理过程中存在模块信息丢失。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中多层层级网表处理方法的一流程图;
图2是本发明一实施例中多层层级网表处理方法的另一流程图;
图3是本发明一实施例中多层层级网表处理方法的另一流程图;
图4是本发明一实施例中多层层级网表处理方法的另一流程图;
图5是本发明一实施例中多层层级网表处理装置的一示意图;
图6是本发明一实施例中计算机设备的一示意图;
图7是本发明一实施例中模块调用关系树的一示意图;
图8是本发明一实施例中插入虚拟节点一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种多层层级网表处理方法,该多层层级网表处理方法应用在多层层级网表处理系统(以下简称为“系统”)中,根据模块调用关系树将上层层级模块的模块实例化对象替换为完整的下层层级模块,以实现将多层层级网表展开为目标单层网表,便于后续对目标单层网表进行操作,并在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,以隔离上层层级模块和下层层级模块,以确保EDA软件运行稳定性,简化运行逻辑,有效提高EDA软件的运行效率;由于虚拟节点存放有模块信息,可以有效避免将多层层级网表展开为目标单层网表过程存在网表信息丢失的问题,以保证网表信息的完整性。
在一实施例中,如图1所示,本实施例提供一种多层层级网表处理方法,包括多层层级网表处理系统执行的如下步骤:
S101:获取硬件电路设计,基于所述硬件电路设计生成多层层级网表。
其中,硬件电路设计是指系统接收到的可完成特定功能的硬件电路的电路设计。硬件电路是由各部分设计模块组成的电路,该设计模块包括但不限于稳压电源设计模块、运算放大器设计模块、比较器设计模块、单片机最小系统模块、H桥电机驱动设计模块、RC/LC滤波模块和场效应管/三极管组成的电子开关模块等。在电子设计自动化中,网表(netlist),即连接表,是指用基础的逻辑门来描述数据电路连接情况的描述方式。网表用于传递电路连接方面信息,网表通常包括模块实例、模块间调用、线网和相关属性,若网表需要包含更多的硬件信息,通常会使用硬件描述语言。多层层级网表是用于反映包含多层结构的设计模块对应的网表。
具体地,系统采用自动化工具读入自动将硬件电路设计转化为对应的多层层级网表,以降低了处理超大规模硬件电路设计的繁琐程度,加快生成多层层级网表的速度。在本实施例中,自动化工具是指综合工具gwSyn解析器。
S102:对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象。
其中,模块调用关系树是指根据多层层级网表形成的各设计模块之间的调用关系的树状图。模块调用关系树上包括根节点对应的顶层层级模块、中间节点对应的中间层级模块和叶子节点的底层层级模块。该底层层级模块是指可以完成特定功能的最小模块。其中,根节点是模块调用关系树上只有子节点而无父节点的节点;叶子节点是模块调用关系树上只有父节点而无子节点的节点;中间节点是模块调用关系树上既有子节点又有父节点的节点。
本实施例中,服务器根据模块间调用关系,确定存在直接调用关系的上层层级模块和下层层级模块。一般来说,对于任一组存在直接调用关系的上层层级模块和下层层级模块而言,下层层级模块为上层层级模块的模块实例化对象。例如,对于存在三层结构的模块调用关系而言,第一层为顶层层级模块,第二层为中间层级模块,第三层为底层层级模块,则第一层与第二层之间存在直接调用关系,此时,顶层层级模块为上层层级模块,中间层级模块为下层层级模块;第二层与第三层之间存在直接调用关系,此时,中间层级模块为上层层级模块,底层层级模块为下层层级模块。可以理解地,此处的上层层级模块和下层层级模块是相对设置的,依据其模块间调用关系确定。
例如,假设用户原始设计伪代码如下:
该原始设计伪代码定义了三层结构的模块调用,第一层为顶层层级模块,即module top;第二层为中间层级模块,即模块a和模块b;第三层为底层层级模块,即模块c;则第一层与第二层之间存在直接调用关系,此时,module top为上层层级模块,模块a和模块b为下层层级模块;第二层与第三层之间存在直接调用关系,此时,模块a和模块b为上层层级模块,模块c为下层层级模块。
依据上述原始设计伪代码进行分析,获取的模块调用关系树如图7所示。其分析过程具体如下:首先,根据所述多层层级网表,获取该多层层级网表的顶层层级模块,例如,可以根据所述多层层级网表中模块定义的关键字module top获取顶层层级模块,或者可以根据硬件电路设计中的根节点确定多层层级网表中的顶层层级模块。然后,根据所述顶层层级模块自顶层层级模块向下逐层分析多层层级网表,获得多层层级网表中的不同层级模块的关系,以生成多层层级网表对应的模块调用关系树,以便后续对多层层级网表进行处理。一般来说,一个多层层级网表对应一个模块调用关系树,该模块调用关系树中任一个下层层级模块可以同时被至少一个上层层级模块调用,如上述的模块c可以同时被模块a和模块b调用。
S103:依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,获取目标单层网表。
其中,虚拟节点是指用于隔离上层层级模块和下层层级模块的节点,虚拟节点不参与操作。本实施例中,在下层层级模块与上层层级模块的连接位置插入的虚拟节点上存放有模块信息,该模块信息是多层层级网表在展开过程中需要保存以避免遗失的信息,将模块信息存储在虚拟节点中,有助于保证多层层级网表展开为目标单层网表过程中的网表信息的完整性。
目标单层网表是指对多层层级网表中上层层级模块的模块实例化对象进行替换后的网表,将多层层级网表转化为目标单层网表,可简化后续操作的复杂度,加快工作效率。
由于在多层层级网表中,同一个下层层级模块可能被实例化多次,而每次实例化调用之间没有直接关系,若不对多层层级网表处理,后续对多层层级网表进行操作时,操作难度大,工作效率较低。本实施例中,根据模块间调用关系,将模块调用关系树的底层层层级模块确定为第一个需要进行分析的下层层级模块,从下层层级模块逐层向上查找到实例化该下层层级模块的上层层级模块,依次将上层层级模块对应的模块实例化对象替换为下层层级模块,并在下层层级模块与上层层级模块的连接位置插入存储有模块信息虚拟节点,生成目标单层网表。本实施例中,虚拟节点既起到隔离具有直接调用关系的上层层级模块和下层层级模块的作用,又可存放在网表展开过程中可能遗失的模块信息,以保证所形成的目标单层网表中网表信息的完整性,可有效避免将多层层级网表展开为目标单层网表过程存在网表信息丢失的问题。
例如,步骤S102中的原始设计伪代码定义了三层结构的模块调用,如图7所示,第一层为顶层层级模块,即module top;第二层为中间层级模块,即模块a和模块b;第三层为底层层级模块,即模块c,则以模块c为第一个下层层级模块,逐层向上查找到实例化该下层层级模块的上层层级模块,可找到模块a和模块b,在模块c和模块a的连接位置插入虚拟节点,在模块c和模块b的连接位置插入虚拟节点;同理地,在模块a和module top的连接位置插入虚拟节点,在模块b和模块module top的连接位置插入虚拟节点,以形成如图8所示的目标单层网表,以实现利用虚拟节点隔离上层层级模块和下层层级模块的目的,在虚拟节点中存放模块信息,可以保证网表展开过程中信息的完整性。
可以理解地,将上层层级模块对应的模块实例化对象替换为下层层级模块,使得替换后的下层层级模块具有独立性,以消除了同一模块的多个模块实例化对象之间的强逻辑关系,以便后续对同一上层层级模块的下层层级模块可以使用不同处理逻辑而互不干扰,降低后续对网表进行操作的难度,提高工作效率;在下层层级模块与上层层级模块的连接位置插入虚拟节点,以便隔离上层层级模块和下层层级模块,避免不同模块的器件混淆。
本实施例所提供的多层层级网表处理方法中,获取硬件电路设计,基于所述硬件电路设计生成多层层级网表,对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象,后续根据该模块调用关系树对多层层级网表进行处理,以降低用户对多层层级模块进行操作时的难度。依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,以消除同一个上层层级模块的多个模块实例化对象的强逻辑关系,以便后续对同一个上层层级模块的下层层级模块进行调用时,可以使用不同的处理逻辑而互不干扰,降低操作难度,加快工作效率。在下层层级模块与上层层级模块的连接位置插入虚拟节点,获取目标单层网表,以便隔离上层层级模块和下层层级模块,避免替换后该下层层级模块的器件与其他下层层级模块的器件混淆。由于目标单层网表中的每一虚拟节点均存储有相应的模块信息,可以有效保证网表信息的完整性,避免网表展开处理过程中存在模块信息丢失。
在一实施例中,步骤S102,即在下层层级模块与上层层级模块的连接位置插入虚拟节点,包括:在下层层级模块与上层层级模块的连接位置采用容器技术插入虚拟节点,并将所述下层层级模块对应的模块信息存储在所述虚拟节点中。
其中,容器技术是一种虚拟化技术,虚拟化技术是将计算机的各种实体资源,如服务器、网络、内存和存储等,予以抽象和转换后呈现出来,打破实体资源间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。本实施例中,模块信息是指下层层级模块对应的模块实例化对象中的信息,所述模块信息包括但不限于端口信息、属性信息和约束信息。
本实施例中,在下层层级模块与上层层级模块的连接位置采用容器技术插入虚拟节点,以便实现隔离上层层级模块对应的模块内部器件和下层层级模块对应的模块内部器件。即在每进行一次实例化替换操作时,在上层层级模块对应的模块内部器件与下层层级模块对应的模块内部器件的连接位置插入一个特殊类型的虚拟节点,该虚拟节点可以归属为下层层级模块中的一个模块内部器件,但其不参与任何操作,仅在插入时作为容器存储下层层级模块所在连接位置的基本信息、端口信息、属性信息和约束信息。该下层层级模块对应的模块内部器件是指在硬件电路设计时采用的用于实现下层层级模块的特定功能的器件。上层层级模块对应的模块内部器件是指在硬件电路设计时采用的用于实现上层层级模块的特定功能的器件。
具体地,系统通过模块调用关系树可以快速获取模块实例化对象,在对模块实例化对象替换为对应的下层层级模块后,由于将模块实例化对象替换为下层层级模块,为了避免替换后的下层层级模块与上层层级模块连接的器件的模块信息丢失或者被覆盖,导致生成的网表出现错误,与用户设计不一致,因此,在下层层级模块与上层层级模块的连接位置采用容器技术插入虚拟节点,以隔离上层层级模块的模块内部器件和下层层级模块的模块内部器件,从而可避免避免不同模块的器件混淆,同时将下层层级模块对应的模块信息存储在所述虚拟节点中,确保模块信息完整,避免模块信息丢失。
在一实施例中,如图2所示,步骤S101,获取硬件电路设计,基于所述硬件电路设计生成多层层级网表,包括:
S201:采用读取工具读取所述硬件电路设计的RLT文件,根据所述RLT文件建立对应的RLT结构树。
其中,RLT(Register Transfer Level)文件,指寄存器传输级电路文件,通过描述寄存器与寄存器之间的逻辑功能描述电路的HDL层次,是一种高级抽象层次文件。读取工具是指读取硬件电路设计中RLT文件的工具,该读取工具是一种自动化综合工具,采用读取工具读取RLT文件可降低用户的工作量,加快工作效率。RLT结构树是指RLT文件中寄存器之间的连接关系树状图,该RLT结构树具体是以顶层层级模块为根节点,以其他层级模块为叶子节点的树状图。
具体地,采用读取工具读取所述硬件电路设计的RLT文件,快速从RLT文件的代码中找到顶层层级模块,并以该顶层层级模块作为RLT结构树的根节点,按照RLT文件中的代码的层次结构,建立与所述RLT代码对应的RLT结构树,以便后续生成多层层级网表。
S202:对所述RLT结构树进行转换,生成对应的多层层级网表。
具体地,根据所述RLT结构树,通过编译器检测RLT代码是否存在错误以及检查初步逻辑功能,然后,采用综合工具依据所述RLT结构树对所述RLT文件转换进行综合,以转换为多层层级网表,以便后续对多层层级网表进行处理。
本实施例所提供的多层层级网表处理方法中,采用读取工具读取所述硬件电路设计的RLT文件,自动化读取RTL文件,简化读取RTL的步骤,加快工作效率,根据所述RLT文件建立对应的RLT结构树,对所述RLT结构树进行转换,生成对应的多层层级网表,以便后续对多层层级网表进行处理,以降低用户对网表进行操作的难度。
在一实施例中,如图3所示,步骤S102,即对所述多层层级网表进行分析,生成对应的模块调用关系树,包括:
S301:基于所述RLT结构树的根节点,获取所述多层层级网表对应的顶层层级模块。
具体地,采用读取工具读取所述硬件电路设计的RLT文件,从RLT文件的代码中找到寄存器顶层模块,并以该寄存器顶层模块作为根节点,由于多层层级网表是从RLT文件转换生成的,则多层层级网表的结构与RLT结构树的结构是相对应的,因此,基于RLT结构树的根节点,快速获取所述多层层级网表对应的顶层层级模块。
S302:采用深度优先遍历算法遍历所述RLT结构树的根节点对应的中间节点和叶子节点,分别获取中间层级模块和底层层级模块,确定模块间调用关系,生成所述多层层级网表对应的模块调用关系树。
其中,深度优先遍历算法类似于二叉树的层次遍历,按优先级从高到低进行遍历代码,深度优先遍历算法是将RLT结构树的根节点作为顶层层级模块,遍历所述RLT结构树的中间节点,然后根据所述中间节点确定叶子节点,以确定模块间调用关系,采用深度优先遍历算法以快速确定模块间调用关系。中间节点是指RLT结构树中的既有父节点又有子节点的节点,叶子节点是指RLT结构树的末端节点,是只有父节点没有子节点的节点。叶子节点对应多层层级网表中的底层层级模块。中间节点与多层层级网表中的中间层级模块对应,对应于多层层级网表的不同层级模块。
具体地,在获取到多层层级网表对应的顶层层级模块后,采用深度优先遍历算法对所述多层层级网表进行分析,具体是对RLT结构树进行深度优先遍历,以确定与RLT结构树的根节点对应的中间节点和叶子节点,以获取中间层级模块和底层层级模块,即所述中间节点对应中间层级模块,叶子节点对应于底层层级模块,从而根据深度优先遍历算法遍历RLT结构树,以准确确定模块间调用关系,生成所述多层层级网表对应的模块调用关系树,以便后续根据所述模块调用关系树,将多层层级网表快速展开为可简化网表处理复杂度并保证网表信息完整性的目标单层网表。
本实施例所提供的多层层级网表处理方法中,基于所述RLT结构树的根节点,获取所述多层层级网表对应的顶层层级模块,然后,采用深度优先遍历算法遍历所述RLT结构树的根节点对应的中间节点和叶子节点,分别准确获取中间层级模块和底层层级模块,以准确确定模块间调用关系,生成所述多层层级网表对应的模块调用关系树,以便后续根据所述模块调用关系树,将多层层级网表快速展开为可简化网表处理复杂度并保证网表信息完整性的目标单层网表。
在一实施例中,所述模块间调用关系包括调用序号,如图4所示,步骤S103,即所述依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,包括:
S401:对所述多层结构网表中的模块间调用关系对应的调用序号进行排序,获取调用顺序。
其中,调用序号是指模块间调用时每一层级模块对应的序号,具体可以理解为顶层层级模块、中间层级模块与底层层级模块之间调用的先后顺序。同一层级模块的调用序号相同,即模块调用关系树中只要保证每一层级模块的完整即可,不强调同一层级模块的调用先后顺序。例如,如图8所示,模块间调用关系树中第一层为顶层层级模块即moduletop;第二层为中间层级模块即模块a和模块b,第三层为底层层级模块即模块c,则moduletop的调用序号为001,模块a和模块b的调用序号为010,模块c的调用序号为011。进一步地,所述调用序号可以逐层递加,直至底层层级模块;或者调用序号可以逐层递减,直至底层层级模块,在此不做限定。模块调用关系树中顶层层级模块对应的调用序号不需要要进行模块实例化对象替换;模块调用关系树中底层层级模块对应的调用序号不需要要进行模块实例化对象替换。
具体地,依据所述多层结构网表中的模块间调用关系对应的调用序号进行排序,获取模块间的调用顺序,以便后续根据所述调用顺序对模块实例化对象进行替换。例如,对调用序号进行排序可以根据正序顺序进行排序,对调用序号进行排序也可以根据降序顺序进行排序。
S402:基于所述调用顺序,依次将每一所述模块实例化对象替换为下层层级模块。
具体地,根据由先到后的调用顺序,依次将每一所述模块实例化对象替换为下层层级模块,即从模块间调用关系树自下到上依次对模块实例化对象进行替换,实现将多层层级网表展开为目标单层网表,以减低后续对目标单层网表进行操作的难度。
本实施例所提供的多层层级网表处理方法中,对所述多层结构网表中的模块间调用关系对应的调用序号进行排序,获取调用顺序,根据所述调用顺序由先到后的顺序依次将每一所述模块实例化对象替换为下层层级模块,实现了将多层层级网表展开为目标单层网表,以减低后续对目标单层网表进行操作的难度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种多层层级网表处理装置,该多层层级网表处理装置与上述实施例中多层层级网表处理方法一一对应。如图5所示,该多层层级网表处理装置包括多层层级网表生成模块501、模块调用关系树生成模块502、和目标单层网表获取模块503。各功能模块详细说明如下:
多层层级网表生成模块501,用于获取硬件电路设计,基于所述硬件电路设计生成多层层级网表。
模块调用关系树生成模块502,用于对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象。
目标单层网表获取模块503,用于依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,并在下层层级模块与上层层级模块的连接位置插入虚拟节点,获取目标单层网表。
优选地,目标单层网表获取模块503,包括:虚拟节点插入单元。
虚拟节点插入单元,用于在下层层级模块与上层层级模块的连接位置采用容器技术插入虚拟节点,并将所述下层层级模块对应的模块信息存储在所述虚拟节点中。
优选地,多层层级网表生成模块501,包括:RLT结构树建立单元和RLT结构树转换单元。
RLT结构树建立单元,用于采用读取工具读取所述硬件电路设计的RLT文件,根据所述RLT文件建立对应的RLT结构树。
RLT结构树转换单元,用于单元对所述RLT结构树进行转换,生成对应的多层层级网表。
优选地,模块调用关系树生成模块502,包括:顶层层级模块获取单元和模块间调用关系确定单元。
顶层层级模块获取单元,用于基于所述RLT结构树的根节点,获取所述多层层级网表对应的顶层层级模块。
模块间调用关系确定单元,用于采用深度优先遍历算法遍历所述RLT结构树的根节点对应的中间节点和叶子节点,分别获取中间层级模块和底层层级模块,确定模块间调用关系,生成所述多层层级网表对应的模块调用关系树。
优选地,所述模块间调用关系包括调用序号,其特征在于,目标单层网表获取模块503,包括:调用顺序获取单元和替换单元
调用顺序获取单元,用于对所述多层结构网表中的模块间调用关系对应的调用序号进行排序,获取调用顺序。
替换单元,用于基于所述调用顺序,依次将每一所述模块实例化对象替换为下层层级模块。
关于多层层级网表处理装置的具体限定可以参见上文中对于多层层级网表处理方法的限定,在此不再赘述。上述多层层级网表处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,该多层层级网表处理系统可以为单机设备,即可以为内部结构如图6所示的计算机设备,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行上述多层层级网表处理方法过程中采用或者生成的数据,如目标单层网表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多层层级网表处理方法。
在一实施例中,该多层层级网表处理系统可以包括客户终端和与客户终端通过网络通信相连的服务器,该服务器可以为如图6所示的计算机设备。其中,客户终端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机和笔记本电脑上。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中多层层级网表处理方法,例如图1所示的步骤S101-S103,或者图2至图4中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时多层层级网表处理方法这一实施例中的各模块/单元的功能,例如图5所示的多层层级网表生成模块501、模块调用关系树生成模块502、和目标单层网表获取模块503的功能,为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中多层层级网表处理方法,例如图1所示的步骤S101-S103,或者图2至图4中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时多层层级网表处理方法这一实施例中的各模块/单元的功能,例如图5所示的多层层级网表生成模块501、模块调用关系树生成模块502、和目标单层网表获取模块503的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.一种多层层级网表处理方法,其特征在于,包括:
获取硬件电路设计,基于所述硬件电路设计生成多层层级网表;
对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象;
依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,获取目标单层网表,其中,模块信息是指下层层级模块对应的模块实例化对象中的信息。
2.如权利要求1所述的多层层级网表处理方法,其特征在于,所述在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,包括:
在下层层级模块与上层层级模块的连接位置采用容器技术插入虚拟节点,并将所述下层层级模块对应的模块信息存储在所述虚拟节点中。
3.如权利要求1所述的多层层级网表处理方法,其特征在于,所述获取硬件电路设计,基于所述硬件电路设计生成多层层级网表,包括:
采用读取工具读取所述硬件电路设计的RLT文件,根据所述RLT文件建立对应的RLT结构树;
对所述RLT结构树进行转换,生成对应的多层层级网表。
4.如权利要求3所述的多层层级网表处理方法,其特征在于,所述对所述多层层级网表进行分析,生成对应的模块调用关系树,包括:
基于所述RLT结构树的根节点,获取所述多层层级网表对应的顶层层级模块;
采用深度优先遍历算法遍历所述RLT结构树的根节点对应的中间节点和叶子节点,分别获取中间层级模块和底层层级模块,确定模块间调用关系,生成所述多层层级网表对应的模块调用关系树。
5.如权利要求1所述的多层层级网表处理方法,所述模块间调用关系包括调用序号,其特征在于,所述依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,包括:
对所述多层结构网表中的模块间调用关系对应的调用序号进行排序,获取调用顺序;
基于所述调用顺序,依次将每一所述模块实例化对象替换为下层层级模块。
6.一种多层层级网表处理装置,其特征在于,包括
多层层级网表生成模块,用于获取硬件电路设计,基于所述硬件电路设计生成多层层级网表;
模块调用关系树生成模块,用于对所述多层层级网表进行分析,生成对应的模块调用关系树,所述模块调用关系树包括上层层级模块、下层层级模块和模块间调用关系,每一所述上层层级模块包括至少一个模块实例化对象;
目标单层网表获取模块,用于依据所述模块间调用关系,依次将每一所述模块实例化对象替换为下层层级模块,在下层层级模块与上层层级模块的连接位置插入存放有模块信息的虚拟节点,获取目标单层网表,其中,模块信息是指下层层级模块对应的模块实例化对象中的信息。
7.如权利要求6所述的多层层级网表处理装置,其特征在于,目标单层网表获取模块,包括:
虚拟节点插入单元,用于在下层层级模块与上层层级模块的连接位置采用容器技术插入虚拟节点,将所述下层层级模块对应的模块信息存储在所述虚拟节点中。
8.如权利要求6所述的多层层级网表处理装置,其特征在于,多层层级网表生成模块,包括:
RLT结构树建立单元,用于采用读取工具读取所述硬件电路设计的RLT文件,根据所述RLT文件建立对应的RLT结构树;
RLT结构树转换单元,用于单元对所述RLT结构树进行转换,生成对应的多层层级网表。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述多层层级网表处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述多层层级网表处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677435.2A CN110489812B (zh) | 2019-07-25 | 2019-07-25 | 多层层级网表处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677435.2A CN110489812B (zh) | 2019-07-25 | 2019-07-25 | 多层层级网表处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489812A CN110489812A (zh) | 2019-11-22 |
CN110489812B true CN110489812B (zh) | 2020-08-25 |
Family
ID=68548314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910677435.2A Active CN110489812B (zh) | 2019-07-25 | 2019-07-25 | 多层层级网表处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489812B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111079362A (zh) * | 2019-12-18 | 2020-04-28 | 京微齐力(北京)科技有限公司 | 一种利用层次化信息的并行综合算法 |
CN111580912A (zh) * | 2020-05-09 | 2020-08-25 | 北京飞讯数码科技有限公司 | 一种多层次结构资源组的展示方法及存储介质 |
CN112464591B (zh) | 2020-11-19 | 2022-10-18 | 苏州浪潮智能科技有限公司 | 一种多端口嵌套模型连接分析方法及介质 |
CN113032401B (zh) * | 2021-03-31 | 2023-09-08 | 合安科技技术有限公司 | 基于异形结构树的大数据处理方法、装置及相关设备 |
CN113255262B (zh) * | 2021-06-07 | 2021-09-28 | 上海国微思尔芯技术股份有限公司 | 对象分配方法、装置、计算机设备和存储介质 |
CN117217147B (zh) * | 2023-09-21 | 2024-06-07 | 苏州异格技术有限公司 | 一种用于fpga的逻辑映射方法、装置、设备及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8181145B2 (en) * | 2009-03-11 | 2012-05-15 | Synopsys, Inc. | Method and apparatus for generating a floorplan using a reduced netlist |
US8667455B1 (en) * | 2010-06-11 | 2014-03-04 | Worldwide Pro Ltd. | Hierarchical visualization-based analysis of integrated circuits |
CN103678745B (zh) * | 2012-09-18 | 2016-09-28 | 中国科学院微电子研究所 | 一种用于fpga的跨平台多层次集成设计系统 |
US10394983B2 (en) * | 2017-06-14 | 2019-08-27 | Excellicon Corporation | Method to automatically generate and promote timing constraints in a Synopsys Design Constraint format |
CN108924215B (zh) * | 2018-06-28 | 2021-03-19 | 北京顺丰同城科技有限公司 | 一种基于树形结构的服务发现处理方法及装置 |
CN109388875A (zh) * | 2018-09-05 | 2019-02-26 | 重庆创速工业有限公司 | 一种弹性元件模块的设计实现方法 |
CN110046394B (zh) * | 2019-03-20 | 2019-12-27 | 广东高云半导体科技股份有限公司 | 集成电路网表生成方法、装置、计算机设备及存储介质 |
-
2019
- 2019-07-25 CN CN201910677435.2A patent/CN110489812B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110489812A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489812B (zh) | 多层层级网表处理方法、装置、计算机设备及存储介质 | |
Pai et al. | Automatic synthesis of dynamic fault trees from UML system models | |
EP1706833B1 (en) | System and method for modeling, abstraction, and analysis of software | |
Wen et al. | An empirical study on challenges of application development in serverless computing | |
US6877150B1 (en) | Method of transforming software language constructs to functional hardware equivalents | |
US9665674B2 (en) | Automating a microarchitecture design exploration environment | |
Spies et al. | Transfinite Iris: resolving an existential dilemma of step-indexed separation logic | |
Meloni et al. | System adaptivity and fault-tolerance in NoC-based MPSoCs: the MADNESS project approach | |
CN113255258B (zh) | 逻辑综合方法、装置、电子设备及存储介质 | |
McFarland et al. | An abstract model of behavior for hardware descriptions | |
CN105786715A (zh) | 一种程序静态自动分析方法 | |
CN114707445A (zh) | 集成电路的综合方法、装置、计算机设备及存储介质 | |
JP2017174418A (ja) | モデルチェックのためのデータ構造抽象化 | |
CN110659029B (zh) | 生成表示计算机程序的语义流图 | |
US10338891B2 (en) | Migration between model elements of different types in a modeling environment | |
Le Tallec et al. | Combining SystemC, IP-XACT and UML/MARTE in model-based SoC design | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
Stoppe et al. | Validating SystemC implementations against their formal specifications | |
CN116976252A (zh) | 一种回归仿真方法、装置、设备、介质及程序产品 | |
CN116738900B (zh) | 知识产权块的代码转换装置和方法 | |
Kaiser et al. | BDD complexity reduction by component fault trees | |
CN117372182B (zh) | 一种基于快速开发持久层代码辅助方法的保险管理系统 | |
Yuan et al. | Managing complexity through abstraction: A refinement-based approach to formalize instruction set architectures | |
US11836426B1 (en) | Early detection of sequential access violations for high level synthesis | |
EP4270237A1 (en) | Model-driven approach for failure mode, effects, and diagnostic analysis (fmeda) automation for hardware intellectual property of complex electronic systems |
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 |