软件仿真中细化优化方法、装置、计算机设备和存储介质与流程

文档序号:35966936发布日期:2023-11-09 07:10阅读:27来源:国知局
软件仿真中细化优化方法、装置、计算机设备和存储介质与流程

本发明涉及芯片仿真领域,具体涉及一种软件仿真中细化优化方法、装置、计算机设备和存储介质。


背景技术:

1、软件仿真工具用于电路设计、验证和仿真。它的使用可以提高电路设计的精度和效率,减少设计缺陷和调试时间。通过仿真工具,设计人员可以快速验证设计,避免设计中的错误和缺陷,从而提高电路的可靠性和性能。同时,仿真工具也可以帮助设计人员优化电路的性能,如减少功耗、提高传输速率等,从而满足不同应用场景的需求。

2、软件仿真工具是针对硬件描述语言(硬件描述语言可以是verilog语言、systemverilog语言等)进行逻辑仿真的工具。软件仿真工具由以下三个部分组成:前端、后端和运行。其中,前端将源代码分解成一个个的标记(tokens),并进行词法分析,以识别出源代码中的各个单词。然后,语法分析器将这些单词转换成抽象语法树,以检查语法错误和语义错误。接着,语义分析器将抽象语法树进行分析,以检查类型匹配、变量声明和函数调用等语义错误。

3、后端则将抽象语法树转换成中间代码(例如llvm ir等),并进行代码优化,以提高程序的性能。运行主要负责库加载、内存管理、指令执行异常处理等。

4、在仿真流程中,细化(elaboration)是编译器前端的重要组成部分之一。在细化过程中,需要构建设计元素(如模块、端口、信号等)的多个表示。因为设计元素在不同的因素组合下需要不同的表示,所以必须为每个独特的因素组合建立一个单独的表示,而这些表示称为特化(specializations)。而如何高效的创建特化版本也就成为了各个仿真工具的一个优化难点。


技术实现思路

1、因此,为了克服上述现有技术的缺点,本发明提供一种有效地减少时间和内存消耗从而提高整体性能的软件仿真中细化优化方法、装置、计算机设备和存储介质。

2、为了实现上述目的,本发明提供一种软件仿真中细化优化方法,包括:获取所有设计元素的基本实例,并对每个所述基本实例创建基础特化版本;获取由逻辑语言编辑的待处理文本,识别出由待处理实例构成的实例树;基于所述基础特化版本将所述实例树上的待处理实例进行特化,得到特化后的实例树;将所述特化后的实例树进行平坦化,并基于所述设计元素对所述待处理实例的特化版本是否等价进行判断;当存在多个等价的特化版本时,简化所述特化后的实例树,得到简化实例树;提取所述简化实例树中各设计元素的特化版本的参数,形成与该设计元素、特化版本均对应的参数集;基于所述参数集对所述简化实例树进行细化,生成细化文件。

3、在一个实施例中,所述提取所述简化实例树中各设计元素的特化版本的参数,形成与该设计元素、特化版本均对应的参数集,包括:基于所述参数集将同一设计元素下的所述待处理实例进行两两比对,判断是否为同构体,所述同构体是指两个待处理实例的参数不同,但参数之间可形成映射;当判定存在同构体时,对所述同构体的关联实例建立依赖关系,所述关联实例是同构体对应的父节点或者父节点以上的实例节点;根据所述简化实例树判断所述依赖关系是否为真;当判定为真时,考虑所述关联实例中所有可能创建隐式特化的设计元素并将它们的依赖关系映射;根据映射结果对所述关联实例再次进行判断,当证明两个关联实例不同构时,则判定不对关联实例去重;当不能证明两个关联实例不同构时,则判定对所述关联实例去重,对所述简化实例树进行二次简化,提取二次简化后的简化实例树中各设计元素的特化版本的参数,形成与该设计元素、特化版本均对应的参数集。

4、在一个实施例中,所述基于所述参数集将同一设计元素下的所述待处理实例进行两两比对,判断是否为同构体,包括:从所述参数集中提取同一设计元素对应的所有参数;当确定两个参数的变量一致,且在参数中变量排布的布局不一致时,判定该设计元素下这两个参数为同构体。

5、在一个实施例中,所述基于所述参数集对所述简化实例树进行细化,生成细化文件,包括:从所述参数集中提取所述简化实例树上的待处理实例的参数,并对该待处理实例的参数进行解析和验证;当验证通过后,基于解析结果判断是否构建过相同参数的实例;当判定为否时,创建该待处理实例的特化版本,并设定该特化版本为标准版本;当判定为是时,将所述待处理实例在细化上下文中的节点重定向到所述标准版本;根据所述标准版本对所述简化实例树进行细化,生成细化文件。

6、在一个实施例中,所述将所述特化后的实例树进行平坦化,包括:提取所述特化后的实例树上的各个程序基本块;创建分发块;为分发块分配一个调度变量并赋值,根据调度变量实现分发块的调度;根据所述特化后的实例树实现调度变量自动调整,并得到平坦化后的实例树。

7、一种软件仿真中细化优化装置,所述装置包括:基础版本创建模块,用于获取所有设计元素的基本实例,并对每个所述基本实例创建基础特化版本;识别模块,用于获取由逻辑语言编辑的待处理文本,识别出由待处理实例构成的实例树;实例树模块,用于基于所述基础特化版本将所述实例树上的待处理实例进行特化,得到特化后的实例树;平坦判断模块,用于将所述特化后的实例树进行平坦化,并基于所述设计元素对所述待处理实例的特化版本是否等价进行判断;简化模块,用于当存在多个等价的特化版本时,简化所述特化后的实例树,得到简化实例树;参数集生成模块,用于提取所述简化实例树中各设计元素的特化版本的参数,形成与该设计元素、特化版本均对应的参数集;细化模块,用于基于所述参数集对所述简化实例树进行细化,生成细化文件。

8、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述方法的步骤。

9、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。

10、与现有技术相比,本发明的优点在于:不受隐式特化和依赖循环等复杂情况的限制,将实例树平坦化后,在最终细化前消除重复实例,避免对最终被确认为重复并被清除的元素进行不必要的分析,在细化文件中自下而上删除重复的实例,并且保证能够完成文本的特化,减少了资源的消耗;而且参数集的设置,可以不需要对实例树进行多次解析就可以进行实例的比对,不仅有效地缩短了特化时长,也进一步降低了资源的占用率,从而提高了仿真的整体性能。整个流程巧妙的与编译器前端中的两个过程紧密结合,不但增加了算法的灵活性,而且降低了耦合性。在优化特化流程的同时也为下一步打好了基础。



技术特征:

1.一种软件仿真中细化优化方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述提取所述简化实例树中各设计元素的特化版本的参数,形成与该设计元素、特化版本均对应的参数集,包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述参数集将同一设计元素下的所述待处理实例进行两两比对,判断是否为同构体,包括:

4.根据权利要求1或2所述的方法,其特征在于,所述基于所述参数集对所述简化实例树进行细化,生成细化文件,包括:

5.根据权利要求1或2所述的方法,其特征在于,所述将所述特化后的实例树进行平坦化,包括:

6.一种软件仿真中细化优化装置,其特征在于,所述装置包括:

7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。


技术总结
本发明提供了一种软件仿真中细化优化方法、装置、计算机设备和存储介质,属于芯片仿真领域,方法包括获取所有设计元素的基本实例,并对每个基本实例创建基础特化版本;获取由逻辑语言编辑的待处理文本,识别出实例树;基于基础特化版本将实例树进行特化,得到特化后的实例树;将特化后的实例树进行平坦化,并基于设计元素对待处理实例的特化版本是否等价进行判断;当存在多个等价的特化版本时,简化特化后的实例树,得到简化实例树;提取简化实例树中各设计元素的特化版本的参数,形成与该设计元素、特化版本均对应的参数集;基于参数集对简化实例树进行细化,生成细化文件。通过本申请的处理方案,有效地减少时间和内存消耗从而提高整体性能。

技术研发人员:张雨桐,黄传动,王晨阳,曹阳,贾非凡
受保护的技术使用者:上海思尔芯技术股份有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1