确定目标调用标识的位置信息的方法、电子设备和介质与流程
未命名
08-27
阅读:222
评论:0
1.本发明涉及芯片技术领域,尤其涉及一种确定目标调用标识的位置信息的方法、电子设备和介质。
背景技术:
2.在芯片设计和芯片验证过程中,通常需要查看代码中函数、任务或类在哪些位置被调用,并确定目标调用标识的位置信息查看相关代码。现有的技术不能自动确定目标调用标识的位置信息,通常需要通过全局查找关键字来猜测可能被调用,但在比较复杂的芯片设计中查找,耗时巨大,并且最终查找的结果可能不是目标调用标识的位置信息,无法保证跳转准确性,降低了芯片设计和芯片验证的效率。由此可知,如何快速准确地确定目标调用标识的位置信息,提高芯片设计和芯片验证的效率,成为亟待解决的技术问题。
技术实现要素:
3.本发明目的在于,提供一种确定目标调用标识的位置信息的方法、电子设备和介质,能够快速准确地确定目标调用标识的位置信息,提高了芯片设计和芯片验证的效率。
4.根据本发明第一方面,提供了一种确定目标调用标识的位置信息的方法,包括:步骤s1、为每一调用标识创建对应的跳转列表,每一跳转列表初始为空,当调用标识被调用时,获取调用标识的位置信息,并将调用标识的位置信息按照执行查看定义操作的顺序依次存储至对应的跳转列表中;步骤s2、从芯片代码定义区域获取目标调用标识,若所述目标调用标识对应的跳转列表不为空,则执行步骤s3,否则,执行步骤s4;步骤s3、将目标调用标识对应的跳转列表中当前排在末位的调用标识的位置信息确定为芯片代码目标调用标识的位置信息,并将目标调用标识对应的跳转列表中当前排在末位的调用标识的位置信息移动至目标调用标识对应的跳转列表首位,跳转至目标调用标识的位置信息对应的位置,返回执行步骤s2;步骤s4、编译所述芯片代码获取所有目标调用标识对应的位置信息,遍历所有目标调用标识对应的位置信息,将调用优先级最高的目标调用标识位置信息确定为芯片代码目标调用标识的位置信息,跳转至目标调用标识的位置信息对应的位置,返回执行步骤s2。
5.根据本发明第二方面,提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明第一方面所述的方法。
6.根据本发明第三方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本发明第一方面所述的方法。
7.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种确定目标调用标识的位置信息的方法、电子设备和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明通过设置调用标识创建对应的跳转列表,对于跳转列表不为空的调用标识基于跳转列表确定目标调用标识的位置信息,对于跳转列表为空的调用标识基于优先级确定目标调用标识的位置信息,能够快速准确地确定目标调用标识的位置信息,提高了芯片设计和芯片验证的效率。
附图说明
8.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
9.图1为本发明实施例提供的确定目标调用标识的位置信息的方法流程图。
具体实施方式
10.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
11.本发明实施例提供了一种确定目标调用标识的位置信息的方法,如图1所示,包括:步骤s1、为每一调用标识创建对应的跳转列表,每一跳转列表初始为空,当调用标识被调用时,获取调用标识的位置信息,并将调用标识的位置信息按照执行查看定义操作的顺序依次存储至对应的跳转列表中。
12.需要说明的是,每一调用标识对应的跳转列表记录了该跳转标识触发查看定义操作的位置信息以及触发顺序。每一调用标识对应的调用代码和定义代码可能位于同一个代码文件中,也可能位于不同的代码文件中。且同一个代码文件中,可能包含同一个调用标识对应的多个调用处。所述调用标识为函数名称、任务名称或类名称。
13.步骤s2、从芯片代码定义区域获取目标调用标识,若所述目标调用标识对应的跳转列表不为空,则执行步骤s3,否则,执行步骤s4。
14.需要说明的是,需要跳转回调用位置的场景至少包括两种,一种为调用位置触发查看定义操作,然后从查看定义位置跳转回触发查看定义操作的位置。另一种为,前边没有调用标识跳转到定义代码的操作,而是直接从定义代码位置跳转到一个目标调用位置。现有技术中,无法实现自动准确跳转,需要基于关键字检索,并根据经验进行选择,无法保证准确性,且跳转效率低。
15.步骤s3、将目标调用标识对应的跳转列表中当前排在末位的调用标识的位置信息确定为芯片代码目标调用标识的位置信息,并将目标调用标识对应的跳转列表中当前排在末位的调用标识的位置信息移动至目标调用标识对应的跳转列表首位,跳转至目标调用标识的位置信息对应的位置,返回执行步骤s2。
16.需要说明的是,基于设置的跳转列表,使得目标调用标识的调用标识的位置信息采用先入后出的形式来确定目标调用标识的位置信息,且将已选出的目标调用标识的位置
信息移动至目标调用标识对应的跳转列表首位,从而不会出现误将已经出现将已经触发查看定义操作的情况作为前边没有调用标识跳转到定义代码的操作的情况处理,提高了确定目标调用标识的位置信息的准确性。
17.步骤s4、编译所述芯片代码获取所有目标调用标识对应的位置信息,遍历所有目标调用标识对应的位置信息,将调用优先级最高的目标调用标识位置信息确定为芯片代码目标调用标识的位置信息,跳转至目标调用标识的位置信息对应的位置,返回执行步骤s2。
18.需要说明的是,当目标调用标识对应的跳转列表为空时,说明当前还不存在触发查看定义操作的位置,因此无法通过历史触发查看定义操作来确定目标调用标识的位置信息,需要通过调用标识优先级信息,来确定目标调用标识的位置信息,提高目标调用标识的位置信息确定的准确性。
19.作为一种实施例,所述步骤s1包括:步骤s11、基于芯片代码获取查看定义指令。
20.步骤s12、解析所述查看定义指令,获取查看定义指令对应的调用标识以及调用标识的位置信息,所述调用标识的位置信息包括代码文件信息和代码行信息。
21.步骤s13、将查看定义指令对应的调用标识的位置信息按照执行查看定义操作的顺序依次存储至查看定义指令对应的跳转列表中。
22.其中,具体可以通过点击芯片代码的函数、任务或类的调用位置,来触发生成查看定义指令。包括代码文件信息和代码行信息可以直接获取,在此不再展开描述。
23.由于会将目标调用标识对应的跳转列表中当前排在末位的调用标识的位置信息移动至目标调用标识对应的跳转列表首位,跳转列表的容量是有限制的,因此,随着调用标识的位置信息数量的增加,会导致跳转列表存满,当跳转列表存满之后,直接从跳转列表首位开始删除调用标识的位置信息,具体的,所述方法还包括:步骤s10、当跳转列表中的调用标识的位置信息数量超过预设的缓存数量阈值时,从所述跳转列表首位开始删除调用标识的位置信息,使得所述跳转列表中的位置信息等于预设的缓存数量阈值。
24.通过步骤s10使得在跳转列表存满的情况下,删除已经执行过从定义处跳转回对应位置处的位置信息,或者是在未跳转回对应位置处中在跳列表中存储时间最久的位置信息,从而既能保证调用标识新的位置信息能够正常存入跳转列表,且能保证每次跳转回去的目标调用标识的位置信息均对应最近的查看定义操作的位置,提高了目标调用标识的位置信息的准确性。
25.需要说明的是,对于函数和任务可以设置相同的位置信息的优先级判断方法,类的位置信息的优先级判断方法与函数和任务的不同,以下实施例对函数和任务以及类的位置信息的优先级分别详细描述。
26.作为一种实施例,所述目标调用标识为函数名称或任务名称,所述步骤s4包括:步骤s41、编译所述芯片代码获取所有目标调用标识对应的位置信息{a1,a2,
…
,an,
…
,an},an为芯片代码中第n目标调用标识对应的位置信息,n的取值范围为1到n,n为芯片代码中目标调用标识对应的位置信息的总数。
27.其中,基于所述目标调用标识从预设的数据库中获取所有目标调用标识对应的位置信息{a1,a2,
…
,an,
…
,an},所述预设的数据库中预先存储所有调用标识对应的位置信
息。
28.步骤s42、设置n=1,设置当前第一待对比位置信息b1=an,当前第二待对比位置信息b2=a
n+1
,执行步骤s43。
29.步骤s43、从芯片代码定义区域获取目标调用标识对应的实例模块标识,若b1和b2中仅有一个位置信息对应的实例模块标识与对应的实例模块标识相同,则将b1和b2中与对应的实例模块标识相同的位置信息确定为当前中间位置信息cn,执行步骤s45,否则,执行步骤s44。
30.需要说明的是,步骤s43的判定策略是与函数/任务相同模块的实例中的调用处优于不同模块的实例。
31.步骤s44、从芯片代码定义区域获取目标调用标识对应的当前调试查看文件标识,若b1和b2中仅有一个位置信息对应的文件标识与对应的当前调试查看文件标识相同,则将b1和b2中与对应的当前调试查看文件标识相同的位置信息确定为当前中间位置信息cn,否则,从b1和b2中随机选取一个作为当前中间位置信息cn。
32.需要说明的是,步骤s44的判定策略是当前调试查看的文件中的调用处优于其他文件中的调用。
33.步骤s45、若n=n-1,则将cn确定为目标调用标识的位置信息,否则,设置n=n+1,返回步骤s41。
34.通过步骤s43和步骤s44,两两比对位置信息,并按照步骤s43和步骤s44所设定的优先级判断顺序进行判断,最后确定函数或任务的目标调用标识的位置信息,提高了目标调用标识的位置信息确定的准确性。
35.作为一种实施例,所述目标调用标识为类名称,所述步骤s4包括:步骤s401、编译所述芯片代码获取所有目标调用标识对应的位置信息{a1,a2,
…
,an,
…
,an},an为芯片代码中第n目标调用标识对应的位置信息,n的取值范围为1到n,n为芯片代码中目标调用标识对应的位置信息的总数。
36.其中,基于所述目标调用标识从预设的数据库中获取所有目标调用标识对应的位置信息{a1,a2,
…
,an,
…
,an},所述预设的数据库中预先存储所有调用标识对应的位置信息。
37.步骤s402、设置n=1,设置当前第一待对比位置信息b1=an,当前第二待对比位置信息b2=a
n+1
执行步骤s403。
38.步骤s403、若b1和b2中一个为仅定义未实际使用的实例,另一个为实际使用的实例,则将实际使用的实例确定为当前中间位置信息cn,执行步骤s406,否则,执行步骤s404。
39.需要说明的是,步骤s403的判定策略是类实际使用的实例优先于仅定义未实际使用的实例。
40.步骤s404、若b1和b2中一个为类自身范围内的调用,另一个为类自身范围外的调用,则将类自身范围外的调用确定为当前中间位置信息cn,执行步骤s406,否则,执行步骤s405。
41.需要说明的是,步骤s404的判定策略是类自己范围外的使用优于类自身内的调用。
42.步骤s405、若b1和b2中一个为预设uvm架构中的调用,另一个为芯片自身代码中的
调用,则将芯片自身代码中的调用确定为当前中间位置信息cn,否则,从b1和b2中随机选取一个作为当前中间位置信息cn。
43.需要说明的是,步骤s405的芯片设计自身代码内的使用优于uvm架构内的使用。
44.步骤s406、若n=n-1,则将cn确定为目标调用标识的位置信息,否则,设置n=n+1,返回步骤s41。
45.通过步骤s403至步骤s405,两两比对位置信息,并按照s403至步骤s405所设定的优先级判断顺序进行判断,最后确定函数或任务的目标调用标识的位置信息,提高了目标调用标识的位置信息确定的准确性。
46.需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
47.本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明实施例所述的方法。
48.本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机指令用于执行本发明实施例所述的方法。
49.本发明实施例通过设置调用标识创建对应的跳转列表,对于跳转列表不为空的调用标识基于跳转列表确定目标调用标识的位置信息,对于跳转列表为空的调用标识基于优先级确定目标调用标识的位置信息,能够快速准确地确定目标调用标识的位置信息,提高了芯片设计和芯片验证的效率。
50.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
技术特征:
和b2中仅有一个位置信息对应的文件标识与对应的当前调试查看文件标识相同,则将b1和b2中与对应的当前调试查看文件标识相同的位置信息确定为当前中间位置信息c
n
,否则,从b1和b2中随机选取一个作为当前中间位置信息c
n
;步骤s45、若n=n-1,则将c
n
确定为目标调用标识的位置信息,否则,设置n=n+1,返回步骤s41。6.根据权利要求5所述的方法,其特征在于,所述步骤s41中,基于所述目标调用标识从预设的数据库中获取所有目标调用标识对应的位置信息{a1,a2,
…
,a
n
,
…
,a
n
},所述预设的数据库中预先存储所有调用标识对应的位置信息。7.根据权利要求4所述的方法,其特征在于,所述目标调用标识为类名称,所述步骤s4包括:步骤s401、编译所述芯片代码获取所有目标调用标识对应的位置信息{a1,a2,
…
,a
n
,
…
,a
n
},a
n
为芯片代码中第n目标调用标识对应的位置信息,n的取值范围为1到n,n为芯片代码中目标调用标识对应的位置信息的总数;步骤s402、设置n=1,设置当前第一待对比位置信息b1=a
n
,当前第二待对比位置信息b2=a
n+1
执行步骤s403;步骤s403、若b1和b2中一个为仅定义未实际使用的实例,另一个为实际使用的实例,则将实际使用的实例确定为当前中间位置信息c
n
,执行步骤s406,否则,执行步骤s404;步骤s404、若b1和b2中一个为类自身范围内的调用,另一个为类自身范围外的调用,则将类自身范围外的调用确定为当前中间位置信息c
n
,执行步骤s406,否则,执行步骤s405;步骤s405、若b1和b2中一个为预设uvm架构中的调用,另一个为芯片自身代码中的调用,则将芯片自身代码中的调用确定为当前中间位置信息c
n
,否则,从b1和b2中随机选取一个作为当前中间位置信息c
n
;步骤s406、若n=n-1,则将c
n
确定为目标调用标识的位置信息,否则,设置n=n+1,返回步骤s41。8.根据权利要求7所述的方法,其特征在于,所述步骤s401中,基于所述目标调用标识从预设的数据库中获取所有目标调用标识对应的位置信息{a1,a2,
…
,a
n
,
…
,a
n
},所述预设的数据库中预先存储所有调用标识对应的位置信息。9.一种电子设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行前述权利要求1-8任一项所述的方法。10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行前述权利要求1-8中任一项所述的方法。
技术总结
本发明涉及芯片技术领域,尤其涉及一种确定目标调用标识的位置信息的方法、电子设备和介质,包括步骤S1、为每一调用标识创建对应的跳转列表;步骤S2、从芯片代码定义区域获取目标调用标识,若目标调用标识对应的跳转列表不为空,则执行步骤S3,否则,执行步骤S4;步骤S3、将目标调用标识对应的跳转列表中当前排在末位的调用标识的位置信息确定为芯片代码目标调用标识的位置信息;步骤S4、遍历所有目标调用标识对应的位置信息,将调用优先级最高的目标调用标识位置信息确定为芯片代码目标调用标识的位置信息。本发明能够快速准确地确定目标调用标识的位置信息,提高了芯片设计和芯片验证的效率。验证的效率。验证的效率。
技术研发人员:林航
受保护的技术使用者:上海合见工业软件集团有限公司 成都融见软件科技有限公司
技术研发日:2023.07.20
技术公布日:2023/8/24
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
