基于单一处理模块接口的芯片联合仿真方法、设备和介质与流程

未命名 10-26 阅读:44 评论:0


1.本发明涉及芯片验证技术领域,尤其涉及一种基于单一处理模块接口的芯片联合仿真方法、设备和介质。


背景技术:

2.在芯片验证的过程中,需要向待测芯片设计(design under test,简称dut)输入测试激励,并存储待测芯片设计输出的数据,还需要设置一个与待测芯片设计逻辑相同的用c程序写的仿真模型(cmodel),将相同的测试激励(test case)输入到仿真模型中,并存储仿真模型输出的数据。待测芯片设计和仿真模型是分别独立运行的,待测芯片设计和仿真模型全部运行结束需要花费大量额时间,输出的数据也是分别独立存储的,且输出的数据量庞大,需要占据大量的存储空间。当待测芯片设计和仿真模型全部运行完之后,再将待测芯片设计和仿真模型输出的数据进行对比,来验证待测芯片设计。但这种芯片验证方式不具有实时性、验证过程复杂、验证过程耗时,从而使得芯片验证效率低且成本高。由此可知,如何提高芯片验证的效率,降低芯片验证的成本成为亟待解决的技术问题。


技术实现要素:

3.本发明目的在于,提供一种基于单一处理模块接口的芯片联合仿真方法、设备和介质,提高了芯片验证的效率,降低了芯片验证的成本。
4.根据本发明第一方面,提供了一种基于单一处理模块接口的芯片联合仿真方法,包括:步骤s1、同时向待测芯片设计和仿真模型输入相同的测试用例,所述待测芯片设计基于硬件描述语言生成,所述仿真模型基于高级语言生成,所述仿真模型的运行速度快于所述待测芯片设计的运行速度;步骤s2、将第i个单一处理模块仿真输出接口ci输出的数据存储至ci对应的先入先出队列qi中,i的取值范围为1到i,i为单一处理模块输出接口总数,ci仅用于输出单一处理模块的输出数据;步骤s3、实时获取待测芯片设计的第i个单一处理模块待测输出接口di输出的数据dai,并从qi中读取出当前qi中最先存入的数据cai,di仅用于输出单一处理模块的输出数据;步骤s4、对比dai、cai,若所有dai=cai,则循环执行步骤s1-步骤s4进行联合仿真,若出现dai≠cai,则结束联合仿真,并生成芯片验证失败提示信息。
5.根据本发明第二方面,提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明第一方面所述的方法。
6.根据本发明第三方面,提供一种计算机可读存储介质,所述计算机指令用于执行本发明第一方面所述的方法。
7.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于单一处理模块接口的芯片联合仿真方法、设备和介质可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:本发明直接对待测芯片设计和仿真模型进行联合仿真,仅需对仿真模型单一处理模块接口输出的数据进行存储,实时对待测芯片设计输出的数据与仿真模型对应的数据进行对比,实时检测,且检测通过时删除仿真模型对应的数据,减小了存储空间的占用,提高了芯片验证的效率,降低了芯片验证的成本。
附图说明
8.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
9.图1为本发明实施例提供的基于单一处理模块接口的芯片联合仿真方法流程图。
具体实施方式
10.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
11.本发明第一方面实施例提供了一种基于单一处理模块接口的芯片联合仿真方法,如图1所示,包括:步骤s1、同时向待测芯片设计和仿真模型输入相同的测试用例,所述待测芯片设计基于硬件描述语言生成,所述仿真模型基于高级语言生成,所述仿真模型的运行速度快于所述待测芯片设计的运行速度。
12.需要说明的是,待测芯片设计和仿真模型功能相同,所包含的单一处理模块接口也相同,只是采用不同的语言编写生成,作为一种示例,所述硬件描述语言为verilog,所述高级语言为c语言。其中,具体可由设置在芯片验证平台(testbench)的驱动处理模块,同时向待测芯片设计和仿真模型输入相同的测试用例。
13.步骤s2、将第i个单一处理模块仿真输出接口ci输出的数据存储至ci对应的先入先出队列qi中,i的取值范围为1到i,i为单一处理模块输出接口总数,ci仅用于输出单一处理模块的输出数据。
14.其中,所述先入先出队列具体可以为fifo(first input first output)存储器,可以理解的是,仿真模型中,仅存在单个处理模块与ci相连接,通过ci输出数据,对应的,待测芯片设计仅存在单个处理模块与di相连接,通过di输出数据。
15.步骤s3、实时获取待测芯片设计的第i个单一处理模块待测输出接口di输出的数据dai,并从qi中读取出当前qi中最先存入的数据cai,di仅用于输出单一处理模块的输出数据。
16.需要说明的是,仅需设置一个整型“int”数据缓存dai即可,无需额外为di设置存储
器。仅需为ci设置先入先出队列来存储ci输出的数据。作为一种示例,所述步骤s3中,当从qi中读取出当前qi中最先存入的数据cai之后,将读取出的cai从qi中删除。而现有技术中,需要单独运行待测芯片设计和仿真模型,且需要运行完毕后,将所有输出数据分别存储在存储器中,再进行对比,需要占据大量的空间,本发明实施例仅需设置一个小容量的先入先出队列即可,大大缩小了数据占用空间,降低了芯片验证成本。
17.步骤s4、对比dai、cai,若所有dai=cai,则循环执行步骤s1-步骤s4进行联合仿真,若出现dai≠cai,则结束联合仿真,并生成芯片验证失败提示信息。
18.需要说明的是,对于每一待测芯片设计和仿真模型的仿真输出接口输出的数据,均需采用步骤s1-步骤s4的方式,来实时对比,当出现任意一个dai≠cai,则说明芯片验证失败,立即结束联合仿真,并进行提示,无需再执行后续的操作,而现有技术中是需要先将待测芯片设计和仿真模型分别运行完毕之后,才可以进行数据对比,因此,本发明实施例相对于现有技术,极大提升了芯片验证效率,降低了芯片验证成本。
19.作为一种实施例,所述步骤s2包括:步骤s21、将第i个单一处理模块仿真输出接口ci输出的数据转换为systemverilog语言描述的数据。
20.步骤s22、将转换为systemverilog语言描述的数据存入ci对应的先入先出队列qi中。
21.需要说明的是,ci输出的数据为高级语言描述的数据,无法直接与di输出的数据进行对比,因此ci先将输出的数据传输给芯片验证平台,芯片验证平台将ci输出的数据转换为systemverilog语言描述的数据,systemverilog语言描述的数据可以直接与di输出的硬件描述语言的数据进行对比。
22.由于仿真模型的运行速度快于所述待测芯片设计的运行速度,因此,仿真模型会先于待测芯片设计运行,但是对于需要等待回复信息才能继续执行的情况,仿真模型需要等待,对于无需等待回复信息的数据,仿真模型可以先于待测芯片设计执行,从而保证联合仿真的准确性。作为一种实施例,所述步骤s2包括:步骤s211、若当前ci输出的数据cai为预设的第一类型数据,则就继续ci的输出操作,若当前ci输出的数据cai为预设的第二类型数据,则暂停ci的输出操作,待di输出对应的与cai对比的数据dai且cai=dai时,基于dai生成对应的回复信息hi,同时发送给ci和di,当ci接收到hi时,继续ci的输出操作,所述第一类型数据为无需等待回复信息的数据,所述第二类型数据为需要收到回复信息的数据。
23.通过步骤s211,能够保证待测芯片设计和仿真模型的输入信息始终同步,且输入信息均相同。
24.ci输出的数据cai具体可以为控制数据、读指令数据、写指令数据等。
25.作为一种实施例,所述步骤s211中,若ci输出的数据cai为读指令数据,cai包括目标读地址,若该读指令数据为第二类型数据,则待cai=dai时,基于dai从预设的存储器中获取目标读地址对应的目标读数据,并将目标读数据同时发送给ci和di。
26.需要说明的是,在联合仿真过程中,待测芯片设计和仿真模型始终对应的是同一个存储器,当该读指令数据为第二类型数据时,ci输出的数据cai时并不会立即到存储器中读取数据,而是需要等到di输出dai,且对比得到cai=dai结果后,才基于dai从预设的存储器
中获取目标读地址对应的目标读数据,并将目标读数据同时发送给ci和di,从而避免ci和di基于相同的读指令数据获取不同的读取数据,导致联合仿真出错。
27.作为一种实施例,所述步骤s211中,若ci输出的数据cai为写指令数据,cai包括目标写入地址信和目标写入数据,若该写指令数据为第二类型数据,则待cai=dai时,基于dai向预设的存储器的目标写入地址中写入目标写入数据,并生成确认写入信息,同时将所述确认写入信息发送给ci和di。
28.需要说明的是,在联合仿真过程中,待测芯片设计和仿真模型始终对应的是同一个存储器,当该写指令数据为第二类型数据时,ci输出的数据cai时并不会立即向存储器中写入数据,而是需要等到di输出dai,且对比得到cai=dai结果后,才基于dai向预设的存储器的目标写入地址中写入目标写入数据,并将确认写入信息同时发送给ci和di,从而避免导致联合仿真出错。
29.作为一种实施例,所述步骤s4中,生成芯片验证失败提示信息,包括:步骤s41、基于不相等的dai、cai以及对应的di和ci,生成芯片验证失败提示信息。
30.通过步骤s41可知,本发明实施例不仅可以实时获取芯片验证结果,还能在芯片验证结果中包含出错的数据以及对应的接口信息,为用户调试提供支持。
31.在一些应用场景中,虽然每一组cai、dai均对比通过了,但并不意味着芯片验证一定成功,因为可能在联合仿真结束时,待测芯片设计或者是仿真模型中还存在未对比的数据,此情况下,说明芯片验证也是存在问题的,也需要进行对应的报错。
32.作为一种实施例,所述方法还包括步骤s10、从所述待测芯片设计对应的状态机中获取仿真状态标识,若获取到仿真结束标识为结束状态,则执行步骤s20;步骤s20、判断当前是否存在至少一个di还存在未对比的dai,若存在,则生成芯片验证失败提示信息。
33.所述步骤s20中,生成芯片验证失败提示信息,包括:步骤s201、基于未对比的dai以及对应的di和ci生成芯片验证失败提示信息。
34.需要说明的是,当获取到仿真结束标识为结束状态时,说明联合仿真已结束,且联合仿真过程中并没有出现dai≠cai,但当前若存在至少一个di还存在未对比的dai,则说明芯片验证并没有成功,且此时可能是待测芯片设计的问题也可能是仿真模型的问题,因此基于未对比的dai以及对应的di和ci生成芯片验证失败提示信息,为用户后续调试提供参考。
35.作为一种实施例,所述方法还包括步骤s100、从所述待测芯片设计对应的状态机中获取仿真状态标识,若获取到仿真结束标识为结束状态,则执行步骤s200;步骤s200、判断当前是否存在至少一个qi不为空,若存在,则生成芯片验证失败提示信息。
36.所述步骤s200中,生成芯片验证失败提示信息,包括:步骤s2001、基于不为空的qi中的当前最先存入的数据cai,以及对应的di和ci生成芯片验证失败提示信息。
37.需要说明的是,当获取到仿真结束标识为结束状态时,说明联合仿真已结束,且联合仿真过程中并没有出现dai≠cai,但当前若存在至少一个qi不为空,则说明芯片验证并没有成功,且此时可能是待测芯片设计的问题也可能是仿真模型的问题,因此基于不为空的
qi中的当前最先存入的数据cai,以及对应的di和ci生成芯片验证失败提示信息,为用户后续调试提供参考。
38.作为一种实施例,所述方法还包括步骤s01、从所述待测芯片设计对应的状态机中获取仿真状态标识,若获取到仿真结束标识为结束状态,且所有di均不存在未对比的dai,所有qi均为空,则生成芯片验证成功提示信息。
39.需要说明的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
40.本发明实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行本发明实施例所述的方法。
41.本发明实施例还提供一种计算机可读存储介质,所述计算机指令用于执行本发明实施例所述的方法。
42.本发明实施例直接对待测芯片设计和仿真模型进行联合仿真,仅需对仿真模型单一处理模块接口输出的数据进行存储,实时对待测芯片设计输出的数据与仿真模型对应的数据进行对比,实时检测,且检测通过时删除仿真模型对应的数据,减小了存储空间的占用,提高了芯片验证的效率,降低了芯片验证的成本。
43.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

技术特征:
1.一种基于单一处理模块接口的芯片联合仿真方法,其特征在于,包括:步骤s1、同时向待测芯片设计和仿真模型输入相同的测试用例,所述待测芯片设计基于硬件描述语言生成,所述仿真模型基于高级语言生成,所述仿真模型的运行速度快于所述待测芯片设计的运行速度;步骤s2、将第i个单一处理模块仿真输出接口c
i
输出的数据存储至c
i
对应的先入先出队列q
i
中,i的取值范围为1到i,i为单一处理模块输出接口总数,c
i
仅用于输出单一处理模块的输出数据;步骤s3、实时获取待测芯片设计的第i个单一处理模块待测输出接口d
i
输出的数据da
i
,并从q
i
中读取出当前q
i
中最先存入的数据ca
i
,d
i
仅用于输出单一处理模块的输出数据;步骤s4、对比da
i
、ca
i
,若所有da
i
=ca
i
,则循环执行步骤s1-步骤s4进行联合仿真,若出现da
i
≠ca
i
,则结束联合仿真,并生成芯片验证失败提示信息。2.根据权利要求1所述的方法,其特征在于,所述步骤s2包括:步骤s21、将第i个单一处理模块仿真输出接口c
i
输出的数据转换为systemverilog语言描述的数据;步骤s22、将转换为systemverilog语言描述的数据存入c
i
对应的先入先出队列q
i
中。3.根据权利要求1所述的方法,其特征在于,所述步骤s4中,生成芯片验证失败提示信息,包括:步骤s41、基于不相等的da
i
、ca
i
以及对应的d
i
和c
i
,生成芯片验证失败提示信息。4.根据权利要求1所述的方法,其特征在于,所述方法还包括步骤s10、从所述待测芯片设计对应的状态机中获取仿真状态标识,若获取到仿真结束标识为结束状态,则执行步骤s20;步骤s20、判断当前是否存在至少一个d
i
还存在未对比的da
i
,若存在,则生成芯片验证失败提示信息。5.根据权利要求4所述的方法,其特征在于,所述步骤s20中,生成芯片验证失败提示信息,包括:步骤s201、基于未对比的da
i
以及对应的d
i
和c
i
生成芯片验证失败提示信息。6.根据权利要求1所述的方法,其特征在于,所述方法还包括步骤s100、从所述待测芯片设计对应的状态机中获取仿真状态标识,若获取到仿真结束标识为结束状态,则执行步骤s200;步骤s200、判断当前是否存在至少一个q
i
不为空,若存在,则生成芯片验证失败提示信息。7.根据权利要求6所述的方法,其特征在于,所述步骤s200中,生成芯片验证失败提示信息,包括:步骤s2001、基于不为空的q
i
中的当前最先存入的数据ca
i
,以及对应的d
i
和c
i
生成芯片验证失败提示信息。8.根据权利要求1所述的方法,其特征在于,所述硬件描述语言为verilog,所述高级语言为c语言。9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行前述权利要求1-8任一项所述的方法。10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行前述权利要求1-8中任一项所述的方法。

技术总结
本发明涉及芯片验证技术领域,尤其涉及一种基于单一处理模块接口的芯片联合仿真方法、设备和介质,方法包括步骤S1、同时向待测芯片设计和仿真模型输入相同的测试用例;步骤S2、将第i个单一处理模块仿真输出接口C


技术研发人员:高卫
受保护的技术使用者:沐曦集成电路(上海)有限公司
技术研发日:2023.09.13
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐