System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书涉及电子设计自动化领域,更具体地说,本申请涉及一种多模块聚合方法及相关设备。
技术介绍
1、目前在集成电路设计中,工程师们通常面临着将多个verilog模块合并为一个顶层模块的任务。这种合并操作通常涉及大量的手动操作和重复性的代码编辑,包括但不限于处理模块端口的匹配、信号命名冲突的解决、模块连接关系的梳理等工作。这些手动合并步骤耗时且容易出错,特别是在面对大型系统设计时,复杂度和工作量成倍增加。
2、因此,有必要提出一种多模块聚合方法和相关设备装置,以提升多模块聚合的自动化程度。
技术实现思路
1、在
技术实现思路
部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本申请的
技术实现思路
部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
2、第一方面,本申请提出一种多模块聚合方法,包括:
3、获取上级文件;
4、基于上述上级文件获取上级文件的端口信息,并将上述上级文件的端口信息存储在上级文件端口信息列表;
5、基于上述上级文件确定待合并的例化模块,其中,上述上级文件包括待合并的例化模块、无需合并的例化模块和待合并的例化模块对应的模块列表;
6、获取上述待合并的例化模块对应的待合并的例化模块的端口信息,并将上述待合并的例化模块的端口信息存储在待合并的例化模块端口信息列表;
7、基于上述上级文件端口信息列表
8、将上述新的合并文件的例化部分,保存在上述上级文件中。
9、在一种可行的实施方式中,上述上级文件的端口信息是基于第一正则表达式获取的,上述待合并的例化模块是基于第二正则表达式获取的,上述待合并的例化模块的端口信息是基于第三正则表达式获取的。
10、在一种可行的实施方式中,
11、上述上级文件的端口信息包括上级文件名称信息、上级文件端口方向信息、上级文件端口类型信息和上级文件端口位宽信息;
12、上述待合并的例化模块的端口信息包括例化模块名称信息、例化模块端口方向信息、例化模块端口类型信息和例化模块端口位宽信息。
13、在一种可行的实施方式中,上述基于上述上级文件端口信息列表和上述待合并的例化模块端口信息列表进行信号去重操作、端口分析及信号定义操作和重命名及比较连接操作,以生成新的合并文件,包括:
14、基于上述上级文件端口信息列表和上述待合并的例化模块端口信息列表进行信号去重操作,以清除待合并的例化模块端口信息列表中与上述上级文件端口信息列表重合的信号,生成去重后的待合并的例化模块端口信息列表;
15、对上述的待合并的例化模块端口信息列表进行端口分析及信号定义操作,以确定合并模块所需端口信息,并生成上述所需端口信息的定义信息;
16、将上述待合并的例化模块端口信息列表中的剩余信号端口进行重命名及比较连接操作,以生成新的合并文件,其中,上述待合并的例化模块端口信息列表中的剩余信号为上述待合并的例化模块端口信息列表中除上述合并模块所需端口信息之外的信号端口。
17、在一种可行的实施方式中,上述基于上述上级文件确定待合并的例化模块,包括:
18、获取上述上级文件中的特定标识符对应的语句信息;
19、去除上述特定标识符以获取上述特定标识符对应的语句信息对应的待合并的例化模块,其中,上述特定标识符是用于区分待合并的例化模块的字节信息,上述待合并的例化模块是基于用户选择确定的。
20、在一种可行的实施方式中,上述待合并的例化模块是基于分区策略自动生成的,上述分区策略是基于通信密度、分区相似性、依赖关系和资源约束条件确定的。
21、在一种可行的实施方式中,还包括:
22、基于上述通信密度、上述分区相似性、上述依赖关系确定目标函数;
23、根据上述目标函数和上述资源约束条件基于启发式算法确定上述分区策略;
24、其中,上述目标函数基于下式确定;
25、
26、上述约束条件包括资源约束条件、分区完整性约束条件和最小分区通信密度阈值条件;
27、上述资源约束条件基于下式确定:
28、
29、分区完整性约束条件基于下式确定:
30、
31、最小分区通信密度阈值条件基于下式确定:
32、
33、式中,为目标函数,为分区集合中的某个分区,为所有分区的集合,和为分区中的两个模块,为模块和之间的通信密度,,为和之间的信号交互数量,为模块和的端口总数,为模块和之间的功能相似性,为模块和之间的依赖关系权重,为第一权重因子,为第二权重因子,为第三权重因子,为模块的资源消耗量,为每个分区允许的资源总量上限,表示所有分区中的模块联合起来覆盖整个模块集合,表示不同分区之间的模块无重叠,为分区内的通信密度的最低要求,为所有模块的集合。
34、第二方面、本申请提出一种多模块聚合装置,包括:
35、第一获取单元,用于获取上级文件;
36、第二获取单元,用于基于上述上级文件获取上级文件的端口信息,并将上述上级文件的端口信息存储在上级文件端口信息列表;
37、第一确定单元,用于基于上述上级文件确定待合并的例化模块,其中,上述上级文件包括待合并的例化模块、无需合并的例化模块和待合并的例化模块对应的模块列表;
38、第三获取单元,用于获取上述待合并的例化模块对应的待合并的例化模块的端口信息,并将上述待合并的例化模块的端口信息存储在待合并的例化模块端口信息列表;
39、生成单元,用于基于上述上级文件端口信息列表和上述待合并的例化模块端口信息列表进行信号去重操作、端口分析及信号定义操作和重命名及比较连接操作,以生成新的合并文件;
40、保存单元,用于将上述新的合并文件的例化部分,保存在上述上级文件中。
41、第三方面,一种电子设备,包括:存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器用于执行存储器中存储的计算机程序时实现如上述的第一方面任一项的多模块聚合方法的步骤。
42、第四方面,本申请还提出一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现第一方面任一项的多模块聚合方法。
43、综上,本申请提出的多模块聚合方法,可以使用python脚本对模块进行自动化处理,相比手动合并而言,极大减少了人工操作的时间,尤其是对于大型项目中多模块的合并需求。自动化脚本能够一次性提取、分析并处理所有模块的端口信息和信号关系,合并的效率大幅提升。手动合并模块容易因为工程师的疏忽而产生错误,尤其是信号冲突或未连接情本文档来自技高网...
【技术保护点】
1.一种多模块聚合方法,其特征在于,包括:
2.根据权利要求1所述的多模块聚合方法,其特征在于,所述上级文件的端口信息是基于第一正则表达式获取的,所述待合并的例化模块是基于第二正则表达式获取的,所述待合并的例化模块的端口信息是基于第三正则表达式获取的。
3.根据权利要求1所述的多模块聚合方法,其特征在于,
4.根据权利要求1所述的多模块聚合方法,其特征在于,所述基于所述上级文件端口信息列表和所述待合并的例化模块端口信息列表进行信号去重操作、端口分析及信号定义操作和重命名及比较连接操作,以生成新的合并文件,包括:
5.根据权利要求1所述的多模块聚合方法,其特征在于,所述基于所述上级文件确定待合并的例化模块,包括:
6.根据权利要求1所述的多模块聚合方法,其特征在于,所述待合并的例化模块是基于分区策略自动生成的,所述分区策略是基于通信密度、分区相似性、依赖关系和资源约束条件确定的。
7.根据权利要求6所述的多模块聚合方法,其特征在于,还包括:
8.一种多模块聚合装置,其特征在于,包括:
9
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的多模块聚合方法的步骤。
...【技术特征摘要】
1.一种多模块聚合方法,其特征在于,包括:
2.根据权利要求1所述的多模块聚合方法,其特征在于,所述上级文件的端口信息是基于第一正则表达式获取的,所述待合并的例化模块是基于第二正则表达式获取的,所述待合并的例化模块的端口信息是基于第三正则表达式获取的。
3.根据权利要求1所述的多模块聚合方法,其特征在于,
4.根据权利要求1所述的多模块聚合方法,其特征在于,所述基于所述上级文件端口信息列表和所述待合并的例化模块端口信息列表进行信号去重操作、端口分析及信号定义操作和重命名及比较连接操作,以生成新的合并文件,包括:
5.根据权利要求1所述的多模块聚合方法,其特征在于,所述基于所述上级文件确定待合并的例化...
【专利技术属性】
技术研发人员:马飞,李君豪,
申请(专利权)人:北京汤谷软件技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。