本技术涉及芯片仿真验证,尤其涉及一种芯片仿真验证方法、系统、电子设备及程序产品。
背景技术:
1、在芯片投片生产前,为了保证芯片的逻辑功能正常,需要对芯片进行仿真验证。在仿真验证过程中,编写驱动程序,然后在芯片仿真验证系统中控制芯片模型加载并运行编写的驱动程序,从而实现对芯片功能的仿真验证。
2、在芯片设计规模与复杂度日益提高的背景下,对芯片进行仿真验证的步骤越来越多、所花费的时间越来越长,比如,需要编写越来越多的驱动程序,并控制芯片模型一一运行每一个驱动程序从而实现完整、全面的仿真验证。因此有必要探寻更加高效的芯片仿真验证方式,以提高芯片仿真验证效率。
技术实现思路
1、针对上述技术问题,本技术提出一种芯片仿真验证方法、系统、电子设备及程序产品,能够提高芯片仿真验证的效率。
2、本技术第一方面提出一种芯片仿真验证方法,所述方法包括:指示第一验证环境中的待验证芯片模型从目标存储位置加载并运行第一驱动程序;所述第一驱动程序中包括第一节点程序,在所述待验证芯片模型运行所述第一驱动程序的过程中,当所述第一节点程序被所述待验证芯片模型运行时触发芯片仿真验证系统保存所述第一验证环境的数据快照;所述待验证芯片模型具备与目标物理芯片相同的逻辑功能,所述数据快照包括所述待验证芯片模型开始运行所述第一驱动程序至运行所述第一节点程序的过程中全局数据;所述芯片仿真验证系统创建第二验证环境并控制所述第二验证环境恢复所述第一验证环境的数据快照,以使所述第二验证环境中的待验证芯片模型从保存所述数据快照的节点开始、继续从所述目标存储位置加载并运行第二驱动程序;其中,所述第二验证环境中的待验证芯片模型与所述第一验证环境中的待验证芯片模型相同,所述第二驱动程序的结构与所述第一驱动程序的结构相同,所述第二驱动程序为在创建所述第二验证环境的过程中,对存储在所述目标存储位置的所述第一驱动程序进行替换得到的驱动程序。
3、本技术第二方面提出一种芯片仿真验证系统,包括:仿真控制单元,用于指示第一验证环境中的待验证芯片模型从目标存储位置加载并运行第一驱动程序;所述第一驱动程序中包括第一节点程序,在所述待验证芯片模型运行所述第一驱动程序的过程中,当所述第一节点程序被所述待验证芯片模型运行时触发芯片仿真验证系统保存所述第一验证环境的数据快照;所述待验证芯片模型具备与目标物理芯片相同的逻辑功能,所述数据快照包括所述待验证芯片模型开始运行所述第一驱动程序至运行所述第一节点程序的过程中的全局数据;系统启动模块,用于控制所述芯片仿真验证系统创建第二验证环境并控制所述第二验证环境恢复所述第一验证环境的数据快照,以使所述第二验证环境中的待验证芯片模型从保存所述数据快照的节点开始、继续从所述目标存储位置加载并运行第二驱动程序;其中,所述第二验证环境中的待验证芯片模型与所述第一验证环境中的待验证芯片模型相同,所述第二驱动程序的结构与所述第一驱动程序的结构相同,所述第二驱动程序为在创建所述第二验证环境的过程中,对存储在所述目标存储位置的所述第一驱动程序进行替换得到的驱动程序。
4、本技术第三方面提出一种电子设备,包括:存储器和处理器;所述存储器与所述处理器连接,用于存储程序;所述处理器用于通过运行所述存储器中的程序,实现上述的芯片仿真验证方法。
5、本技术第四方面提出一种计算机程序产品,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行上述的芯片仿真验证方法。
6、本技术提出的芯片仿真验证方法能够使得第一验证环境中的待验证芯片模型在从目标存储位置加载并运行第一驱动程序中的第一节点程序时,触发芯片仿真验证系统保存数据快照,芯片仿真验证系统创建第二验证环境并恢复第一验证环境的数据快照,同时,目标存储位置存储的第一驱动程序被替换为与第一驱动程序结构相同的第二驱动程序,芯片仿真验证系统继续执行对待验证芯片模型的仿真验证,使第二验证环境中的待验证芯片模型从保存数据快照的节点开始继续从目标存储位置加载并运行第二驱动程序。上述的芯片仿真验证方法能够在利用第二驱动程序对待验证芯片进行仿真验证时,通过加载和恢复数据快照的方式,借用待验证芯片模型运行第一驱动程序时的至少部分运行过程数据和运行结果数据,从而能减少待验证芯片模型运行第二驱动程序的环节,提高对第二驱动程序的运行效率,进而可以提高芯片仿真验证的效率,尤其是当通过多个相同结构的驱动程序对待验证芯片模型进行仿真验证时,能够节省大量的程序运行环节,显著提高仿真验证效率。
7、在一些实现方式中,所述第二验证环境是与所述第一验证环境并行运行的验证环境。基于该实现方式,第二验证环境与第一验证环境并行运行,可以在第一验证环境中通过第一驱动程序对待验证芯片模型进行仿真验证的过程中,可以同时在第二验证环境中通过第二驱动程序对待验证芯片模型进行仿真验证,这样实现多种仿真验证过程并行执行,可以提高验证效率。
8、在第一方面的一些实现方式中,所述第一驱动程序包括第一程序段和第二程序段,所述第一程序段包括芯片初始化程序,所述待验证芯片模型运行所述芯片初始化程序时执行初始化操作,所述第二程序段包括第一功能测试程序,所述待验证芯片模型运行所述第一功能测试程序时执行所述第一功能测试程序相应的功能操作,所述第一节点程序设置于所述第一程序段中;所述第二驱动程序包括第三程序段和第四程序段,所述第三程序段与所述第一程序段相同,所述第四程序段包括第二功能测试程序,所述待验证芯片模型运行所述第二功能测试程序时执行所述第二功能测试程序相应的功能操作。基于该实现方式,将驱动程序设计为相同的结构,有利于芯片仿真验证系统在基于驱动程序进行芯片仿真验证时解决验证程序,加快对驱动程序的执行。
9、在第一方面的一些实现方式中,所述第一功能测试程序与所述第二功能测试程序为相同的功能测试程序;或者,所述第一功能测试程序与所述第二功能测试程序为不同的功能测试程序。基于该实现方式,可以灵活设计不同驱动程序中的功能测试程序,从而实现对相同功能的多次测试或者实现不同功能的测试,提高芯片仿真验证的灵活性。
10、在第一方面的一些实现方式中,在所述第一程序段和所述第三程序段的末尾分别设置有所述第一节点程序,在所述第二程序段和所述第四程序段的起始位置分别设置有第二节点程序;所述第一节点程序被所述待验证芯片模型运行时,还触发所述待验证芯片模型进入异常状态,并跳转至运行所述第二节点程序;所述第二节点程序被所述待验证芯片模型运行时,触发所述待验证芯片模型退出异常状态并跳转至运行功能测试程序。基于该实现方式,能够使不同驱动程序的结构保持一致,并且保证驱动程序能够被流程运行。
11、在第二方面的一些实现方式中,所述芯片仿真验证系统还包括至少一个存储模块和驱动重载模块;其中,所述目标存储位置设置于所述至少一个存储模块中;所述驱动重载模块,用于在检测到所述第一节点程序被所述待验证芯片模型运行的情况下,保存所述第一验证环境的数据快照,以及,将第二驱动程序存储至所述目标存储位置。基于该实现方式,通过驱动重载模块实现数据快照的保存,提高了数据快照功能的执行效率。
12、在第二方面的一些实现方式中,所述系统还包括异步收发器模块,用于接收所述待验证芯片模型在运行驱动程序的过程中输出的数据;所述第一节点程序被所述待验证芯片模型运行时触发所述待验证芯片模型向所述异步收发器模块发送第一数据;所述驱动重载模块,用于在检测到所述第一节点程序被所述待验证芯片模型运行的情况下,保存所述第一验证环境的数据快照,包括:所述驱动重载模块,用于在检测到所述异步收发器模块接收到所述待验证芯片模型发送的第一数据的情况下,保存所述第一验证环境的数据快照。基于该实现方式,能够有效识别待验证芯片模型是否运行第一节点程序,从而能够精准截取和保存数据快照。
13、在第二方面的一些实现方式中,所述异步收发器模块还用于对接收到的所述第一数据的数量进行计数,从而确定每次接收的所述第一数据对应的计数结果;所述驱动重载模块在检测到所述异步收发器模块接收到所述待验证芯片模型发送的第一数据的情况下,保存所述第一验证环境的数据快照,该数据快照的名称中包含该第一数据对应的计数结果。基于该实现方案能够有序区分和保存不同节点截取的数据快照,从而能够更加灵活的恢复不同节点保存的数据快照,以及提高芯片仿真验证的效率和灵活性。
1.一种芯片仿真验证方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第二验证环境是与所述第一验证环境并行运行的验证环境。
3.根据权利要求1所述的方法,其特征在于,所述第一驱动程序包括第一程序段和第二程序段,所述第一程序段包括芯片初始化程序,所述待验证芯片模型运行所述芯片初始化程序时执行初始化操作,所述第二程序段包括第一功能测试程序,所述待验证芯片模型运行所述第一功能测试程序时执行所述第一功能测试程序相应的功能操作,所述第一节点程序设置于所述第一程序段中;
4.根据权利要求3所述的方法,其特征在于,所述第一功能测试程序与所述第二功能测试程序为相同的功能测试程序;
5.根据权利要求3或4所述的方法,其特征在于,在所述第一程序段和所述第三程序段的末尾分别设置有所述第一节点程序,在所述第二程序段和所述第四程序段的起始位置分别设置有第二节点程序;
6.一种芯片仿真验证系统,其特征在于,包括:
7.根据权利要求6所述的系统,其特征在于,所述芯片仿真验证系统还包括至少一个存储模块和驱动重载模块;
8.根据权利要求7所述的系统,其特征在于,所述系统还包括异步收发器模块,用于接收所述待验证芯片模型在运行驱动程序的过程中输出的数据;
9.根据权利要求8所述的系统,其特征在于,所述异步收发器模块还用于对接收到的所述第一数据的数量进行计数,从而确定每次接收的所述第一数据对应的计数结果;
10.一种电子设备,其特征在于,包括:
11.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如权利要求1至5中任意一项所述的芯片仿真验证方法。
