本发明属于ic验证,具体涉及一种soc芯片系统问题定位方法及装置。
背景技术:
1、ic验证中,特别是在soc芯片系统验证中,经常需要加载固件程序进行仿真,然后通过观测相关信号的结果状态来证明是否功能正确。一般地,一段驱动程序对应一种功能实现,较复杂的功能的实现与证明则需要通过很多步骤的执行,比如配置参数、响应中断、读相应结果状态值或输出结果到相应文件、检查结果或文件的正确性等;则现有技术中对soc芯片系统的检查方法如下:
2、由于soc芯片往往存在很多寄存器,专门存储各个模块或系统的状态值,则对于某种功能的检查,应用程序可以通过读取相应的状态寄存器,然后比较结果检查;除此之外,有些模块是有数据输出到芯片管脚的,这种则需要在验证平台上进行检测获取,并与参考模型的文件进行一致性对比。
3、以上检查的方法都是通过检查结果数据的正确性来进行证明功能正确,所以当最后结果比较不一致需要进行问题定位时,往往需要借助仿真工具调出波形进行检查哪个步骤出现问题;这种通过仿真波形进行问题定位的方法,对于简单功能来说能保证正常的定位效率,但如果对于较复杂的功能来说,由于其驱动程序的复杂性,对应的波形也很长,需要一段代码程序一段波形逐个的检查,将会消耗大量时间,问题定位的难度较大且定位效率较低。
技术实现思路
1、本发明的目的在于提供一种soc芯片系统问题定位方法及装置,用于解决现有技术中soc芯片系统的问题定位方法在功能复杂的情况下问题定位的难度较大且定位效率较低的问题。
2、为了实现上述目的,本发明提供了一种soc芯片系统问题定位方法,包括如下步骤:
3、1)从soc芯片系统的驱动程序中选取至少一个程序运行节点,对选取的程序运行节点进行标记;标记方式为对选取的程序运行节点设置对应的用于写入soc芯片系统的某段memory设定标记信息,以在驱动程序仿真运行至选取的程序运行节点时,将对应的设定标记信息写入soc芯片系统的某段memory;
4、2)设置监控器,对该段memory的写操作进行监控;当监控器检测到该段memory的写操作时,输出写操作对应的memory地址以及写入的信息,同时核对所写入信息的正确性,然后输出写操作检查结果;所述检查结果包括写操作信息检查状态;
5、3)soc芯片系统加载驱动程序进行仿真后,对仿真结果数据与对应期望值的一致性进行检查;当仿真结果数据与对应期望值不一致时,通过检查仿真报告,进行问题定位;所述仿真报告包括输出的写操作对应的memory地址、写入的信息以及写操作检查结果。
6、上述技术方案的有益效果为:从soc芯片系统的驱动程序中选取至少一个程序运行节点,通过将对应的设定标记信息写入soc芯片系统的某段memory的方式标记程序运行节点,并设置专门的监控器,当监控器检测到该段memory的写操作时,输出写操作对应的memory地址、写入的信息以及写操作检查结果;由此,当soc芯片系统加载驱动程序进行仿真后发现存在问题时,通过检查写操作对应的memory地址以及写入的信息,找到写入信息不正确的memory地址对应的程序运行节点,仅检查对应节点前的驱动程序以及出现错误的仿真时间点所对应的波形即可实现问题定位,从而减少问题定位所需要处理的数据量,提高定位效率。
7、进一步地,所述程序运行节点包括进入中断、退出中断、进入某循环、退出某循环、进入某工作状态或退出某工作状态的时刻。
8、上述技术方案的有益效果为:在进行选取时,选取有参考意义的节点进行标记,由此能够尽量保证在后续的问题定位过程中对功能完整的各段驱动程序进行分析,便于将soc芯片系统出现问题的位置与memory中写操作出现问题的位置进行对应。
9、进一步地,所述检查结果还包括写操作对应的仿真时间点。
10、上述技术方案的有益效果为:在后续分析中,能够根据写操作对应的仿真时间点,查找出现错误的仿真时间点所对应的波形并进行针对性分析,无需对大量输出波形进行检查,降低问题定位的难度。
11、进一步地,所述输出写操作对应的memory地址以及写入的信息的方式为:将对应的memory地址以及存储的信息进行打印;
12、所述输出写操作检查结果的方式为:将写操作检查结果进行打印。
13、上述技术方案的有益效果为:便于后续相人员直接查看和相关程序读取。
14、进一步地,所述设定标记信息包括自定义字符串和/或读取的相关寄存器的结果值。
15、本发明还提供了一种soc芯片系统问题定位装置,包括处理器,所述处理器用于执行程序指令,以实现如下步骤:
16、1)从soc芯片系统的驱动程序中选取至少一个程序运行节点,对选取的程序运行节点进行标记;标记方式为对选取的程序运行节点设置对应的用于写入soc芯片系统的某段memory设定标记信息,以在驱动程序仿真运行至选取的程序运行节点时,将对应的设定标记信息写入soc芯片系统的某段memory;
17、2)设置监控器,对该段memory的写操作进行监控;当监控器检测到该段memory的写操作时,输出写操作对应的memory地址以及写入的信息,同时核对所写入信息的正确性,然后输出写操作检查结果;所述检查结果包括写操作信息检查状态;
18、3)soc芯片系统加载驱动程序进行仿真后,对仿真结果数据与对应期望值的一致性进行检查;当仿真结果数据与对应期望值不一致时,通过检查仿真报告,进行问题定位;所述仿真报告包括输出的写操作对应的memory地址、写入的信息以及写操作检查结果。
19、上述技术方案的有益效果为:从soc芯片系统的驱动程序中选取至少一个程序运行节点,通过将对应的设定标记信息写入soc芯片系统的某段memory的方式标记程序运行节点,并设置专门的监控器,当监控器检测到该段memory的写操作时,输出写操作对应的memory地址、写入的信息以及写操作检查结果;由此,当soc芯片系统加载驱动程序进行仿真后发现存在问题时,通过检查写操作对应的memory地址以及写入的信息,找到写入信息不正确的memory地址对应的程序运行节点,仅检查对应节点前的驱动程序以及出现错误的仿真时间点所对应的波形即可实现问题定位,从而减少问题定位所需要处理的数据量,提高定位效率。
20、进一步地,所述程序运行节点包括进入中断、退出中断、进入某循环、退出某循环、进入某工作状态或退出某工作状态的时刻。
21、上述技术方案的有益效果为:在进行选取时,选取有参考意义的节点进行标记,由此能够尽量保证在后续的问题定位过程中对功能完整的各段驱动程序进行分析,便于将soc芯片系统出现问题的位置与memory中写操作出现问题的位置进行对应。
22、进一步地,所述检查结果还包括写操作对应的仿真时间点。
23、上述技术方案的有益效果为:在后续分析中,能够根据写操作对应的仿真时间点,查找出现错误的仿真时间点所对应的波形并进行针对性分析,无需对大量输出波形进行检查,降低问题定位的难度。
24、进一步地,所述输出写操作对应的memory地址以及写入的信息的方式为:将对应的memory地址以及存储的信息进行打印;
25、所述输出写操作检查结果的方式为:将写操作检查结果进行打印。
26、上述技术方案的有益效果为:便于后续相人员直接查看和相关程序读取。
27、进一步地,所述设定标记信息包括自定义字符串和/或读取的相关寄存器的结果值。