本发明涉及芯片及电子系统设计,具体涉及一种用于芯片仿真的方法。
背景技术:
1、芯片的最终交付需要伴随着配套的软件驱动,以便用户能够有效地使用和配置芯片。软件驱动是沟通操作系统和芯片硬件之间的桥梁,确保硬件设备能被操作系统正确识别和使用。软件驱动是按照芯片的使用手册,配置不同的芯片寄存器来实现的,因此,驱动软件在真正交付前都需要和芯片进行联合测试,使用真实芯片样片或者fpga/emu(现场可编程门阵列/仿真器)搭建的平台,让驱动软件在平台上运行,测试驱动软件在芯片上的功能是否正确。同时,驱动软件对应的是实际的使用场景,这也是通过实际使用场景来验证芯片功能的重要步骤。
2、目前定位这类软硬件联合仿真问题,需要软件驱动编写人员、芯片设计、芯片验证、芯片硬件人员协同定位,逐个排查可能的原因。如果在样片/fpga/emu平台上无法找到原因,还需要在eda验证环境上构造相同的验证场景,进行问题的复现和定位。
3、理论上,无论是fpga/emu还是样片的平台进行测试时,芯片已经经过大量的验证,遗漏的问题不会很多,但每个问题都可能是实际使用中的重要问题,因此会受到很高的重视,每次出现问题都会优先投入人力处理。但在实际执行中,需要定位的大部分是软件本身的问题,其中,配置不符合芯片要求导致的问题占很大一部分,这部分问题实际是对芯片的使用理解错误,并不是芯片本身问题,但却占用了大量的资源和调试时间。
4、为此,需要一种技术方案,解决联合仿真问题效率低,占用大量人力、时间的问题。
技术实现思路
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、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
1.一种用于芯片仿真的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,提取所述驱动软件的寄存器配置包括:
3.根据权利要求1所述的方法,其特征在于,所述运行仿真包括:
4.根据权利要求1所述的方法,其特征在于,将从所述驱动软件的寄存器配置中提取到的有效域段转换为随机约束文件,包括:
5.根据权利要求1所述的方法,其特征在于,还包括:
6.根据权利要求1所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,将从所述驱动软件的寄存器配置中提取到的有效域段转换为随机约束文件,包括:
8.根据权利要求1所述的方法,其特征在于,将生成的实时随机约束文件加入到仿真的约束列表包括:
9.根据权利要求1所述的方法,其特征在于,根据约束求解结果确定是否继续仿真,包括:
10.一种计算设备,其特征在于,包括: