Soc芯片的测试方法
【技术领域】
[0001]本发明涉及测试验证领域,更具体地涉及一种S0C芯片的测试方法及测试系统。
【背景技术】
[0002]S0C芯片设计完后最重要的环节在于验证,验证的主要任务是确保S0C芯片符合设计要求,保证设计的正确性。
[0003]在小规模S0C芯片的验证方法中,基本上都是先设定固定的场景,再在固定场景中产生激励信号,再将激励信号直接灌入进DUT (待测设备)中,然后通过芯片端口来检查芯片功能是否正确。这种直接向量测试(Direct Vector Test)运用在小的系统的中,能获得不错的覆盖率。
[0004]而在中大规模S0C芯片的验证方法中,目前常用的验证方法是VMM (Verificat1nMethodology Manual)。它是一种事务级(Transact1n Level)的验证方法。VMM验证系统的架构如图1所示,通过配置生成器和驱动器的约束条件来约束生成器产生测试数据,然后将测试数据灌入DUT中,并通过检查器对结果进行自动比较。VMM验证方法可以实现受约束的随机验证(CRV,Constrained Random Verificat1n)。CRV是一种在设定的约束条件下进行随机的方法,它可以覆盖很多测试案例,特别是直接向量测试不能包含的那些意外的测试案例。测试结束的条件是以覆盖率检查器输出的覆盖率来确定的。当功能覆盖率、代码覆盖率均达到测试开始前设定的阈值以后停止随机验证。在自动比较过程中,如果遇到错误,则会在输出测试文件中打印出错误信息并停止仿真。VMM验证方法由于采用了继承基类的方式来扩展事务,所以VMM验证方法具有很好的移植性。而且可以在测试结果文件中实时地查看当前仿真进度。VMM验证方法实现了验证方法从信号级向事务级的转变,这大大简易了中大规模的S0C芯片的验证。
[0005]但是,直接向量测试(direct vector test)验证方法要求事先必须设计出芯片的各种工作场景,验证人员需要直接处理非常低层次的信号级信息。采用这种验证方法,验证人员工作量很大,并且一些意外场景、错误处理场景不可能一一考虑和验证到,很容易导致验证不全面。而VMM验证方法的数据交互和控制比较复杂,对多媒体芯片来说,操作待验证S0C芯片的方法相当复杂,不方便控制仿真流程,易用性低,而且因为其无法加入设备驱动,故无法验证复杂的应用场景和升级成系统级验证。
[0006]因此,有必要提供一种改进的S0C芯片测试方法来克服上述缺陷。
【发明内容】
[0007]本发明的目的是提供一种S0C芯片的测试方法,本发明的S0C芯片的测试方法能够很好地帮助验证工程师针对S0C芯片进行测试验证。在本发明实施例中验证工程师并不需要了解底层硬件的具体实施,验证工程师所编写的系统测试程序能够很好地移植到其它项目中,简化了测试过程,通用性强。
[0008]为实现上述目的,本发明提供了一种S0C芯片的测试方法,其包括以下步骤:a.编写对应的测试程序,并初始化测试环境;b.加载测试程序至中央处理器;C.测试数据发生器根据加载的测试程序在系统函数库中调用对应的系统函数并生成测试事务列表;d.根据事务列表测试待测SOC芯片判断待测SOC芯片的测试覆盖率。
[0009]较佳地,所述步骤初始化测试环境具体为,根据设计文档和USB3.0协议初始化待测S0C芯片中的寄存器,且根据设计文档和USB3.0协议配置测试程序的描述符。
[0010]较佳地,所述描述符包括系统描述符、设备描述符及中断描述符。
[0011]较佳地,所述测试程序内的变量名及函数名的命名规则符合统一的规则。
[0012]较佳地,所述统一的规则包括微软命名规则与linux命名规则。
[0013]较佳地,所述测试事务列表为能被VMM结构的功能层识别的事务列表。
[0014]较佳地,在所述中央处理器内预设有设定阈值,所述步骤判断待测S0C芯片的测试覆盖率具体为:当覆盖率小于设定阈值时重复步骤b-d ;当覆盖率大于或等于设定阈值时,结束测试。
[0015]较佳地,所述测试程序、系统函数库均预先存储于一固定存储设备中。
[0016]与现有技术相比,本发明的S0C芯片的测试方法由于采用了抽象化的事物列表来随机产生测试数据能够很好地帮助验证工程师针对S0C设计系统进行验证,验证工程师可以用灵活的高级语言如C/C++来编写测试程序,且在本发明实施例中验证工程师并不需要了解底层硬件的具体实施,从而验证工程师所编写的测试程序能够很好地移植到其它项目中。
[0017]通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
【附图说明】
[0018]图1为本发明S0C芯片的测试方法的流程图。
【具体实施方式】
[0019]现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。如上所述,本发明提供了一种S0C芯片的测试方法,本发明的S0C芯片的测试方法能够很好地帮助验证工程师针对S0C芯片进行测试验证。在本发明实施例中验证工程师并不需要了解底层硬件的具体实施,验证工程师所编写的系统测试程序能够很好地移植到其它项目中,简化了测试过程,通用性强。
[0020]请参考图1,图1为本发明S0C芯片的测试方法的流程图,如图所示,本发明SOCK片的测试方法具体包括如下步骤:
[0021]步骤S101,编写对应的测试程序,并初始化测试环境;在本步骤中,始化测试环境具体为:根据设计文档和USB3.0协议初始化待测S0C芯片中的寄存器,且根据设计文档和USB3.0协议配置测试程序的描述符,以为后续测试步骤做准备。其中,所述描述符包括系统描述符、设备描述符及中断描述符,当然在本发明的【具体实施方式】中,并不限于这几类描述符,其它可能用到的描述符均需进行配置。另外,所述测试程序内的变量名、函数名的命名规则符合统一的规则,所述统一的规则包括微软命名规则、linux命名规则;也即是,所述测试程序内的变量名、函数名的命名规则均符合微软命名规则,或均符合linux命名规则,以保证系统函数配置器能够准确的调用系统函数;再有,所述设计文档是指对待测SOC芯片进行测试的具体项目,该测试的具体项目在测试之前已编辑好并生成所述设计文档。
[0022]步骤S102,加载测试程序至中央处理器;在本步骤中,所述中央处理器根据加载的测试程序而产生相应的测试命令,并将所述测试命令发送至待测S0C芯片,以在后续步骤中对待测S0C进行测试;其中,在所述中央处理器内预设有设定阈值;所述设定阈值的取值可以根据具体的待测S0C芯片而设定,以便于测试不同的S0C芯片。
[0023]步骤S103,测试数据发生器根据加载的测试程序在系统函数库中调用对应的系统函数并生成测试事务列表;在本步骤中,将随机组合测试命令,产生事物列表;所述测试事务列表为能被VMM结构的功能层识别的事务列表。且,其中,所述测试程序、系统函数库均预先存储于一固定存储设备中。
[0024]步骤S104,根据事务列表测试待测S0C芯片;在本步骤中,所述事务列表中还包括有测试顺序,其中,测试顺序包括:顺序执行、倒序执行及随机执行;在运行动作测试列表时,具体是按顺序执行、倒序执行还是随机执行可由测试人员在测试开始前进行指定。
[0025]步骤S105,判断待测S0C芯片的测试覆盖率;在本步骤中,当判断测试覆盖率小于设定阈值时重复执行步骤S102-S104,直到测试覆盖率大于或等于设定阈值;而当判测试断覆盖率大于或等于设定阈值时,结束测试;从而保证了测试的覆盖率达到设定目标,以确保测试的准确性。
[0026]本发明的S0C芯片的测试方法由于采用了抽象化的事物列表来随机产生测试数据能够很好地帮助验证工程师针对S0C设计系统进行验证,验证工程师可以用灵活的高级语言如C/C++来编写测试程序,且在本发明实施例中验证工程师并不需要了解底层硬件的具体实施,从而验证工程师所编写的测试程序能够很好地移植到其它项目中,简化了测试过程,通用性强;而且当测试覆盖率达不到设定阈值时,将反复对待测S0C芯片进行测试,保证了测试的准确性。
[0027]以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。
【主权项】
1.一种SOC芯片的测试方法,其特征在于,包括以下步骤: a.编写对应的测试程序,并初始化测试环境; b.加载测试程序至中央处理器; c.测试数据发生器根据加载的测试程序在系统函数库中调用对应的系统函数并生成测试事务列表; d.根据事务列表测试待测S0C芯片; e.判断待测S0C芯片的测试覆盖率。2.如权利要求1所述的S0C芯片的测试方法,其特征在于,所述步骤初始化测试环境具体为,根据设计文档和USB3.0协议初始化待测S0C芯片中的寄存器,且根据设计文档和USB3.0协议配置测试程序的描述符。3.如权利要求2所述的S0C芯片的测试方法,其特征在于,所述描述符包括系统描述符、设备描述符及中断描述符。4.如权利要求1所述的S0C芯片的测试方法,其特征在于,所述测试程序内的变量名及函数名的命名规则符合统一的规则。5.如权利要求4所述的S0C芯片的测试方法,其特征在于,所述统一的规则包括微软命名规则与1 inux命名规则。6.如权利要求1所述的S0C芯片的测试方法,其特征在于,所述测试事务列表为能被VMM结构的功能层识别的事务列表。7.如权利要求1所述的S0C芯片的测试方法,其特征在于,在所述中央处理器内预设有设定阈值,所述步骤判断待测S0C芯片的测试覆盖率具体为: 当覆盖率小于设定阈值时重复步骤b-d ; 当覆盖率大于或等于设定阈值时,结束测试。8.如权利要求1所述的S0C芯片的测试方法,其特征在于,所述测试程序、系统函数库均预先存储于一固定存储设备中。
【专利摘要】本发明公开了一种SOC芯片的测试方法,其包括以下步骤:a.编写对应的测试程序,并初始化测试环境;b.加载测试程序至中央处理器;c.测试数据发生器根据加载的测试程序在系统函数库中调用对应的系统函数并生成测试事务列表;d.根据事务列表测试待测SOC芯片;e.判断待测SOC芯片的测试覆盖率。本发明的SOC芯片的测试方法能够很好地帮助验证工程师针对SOC芯片进行测试验证。在本发明实施例中验证工程师并不需要了解底层硬件的具体实施,验证工程师所编写的系统测试程序能够很好地移植到其它项目中,简化了测试过程,通用性强。
【IPC分类】G01R31/28
【公开号】CN105301480
【申请号】CN201510800344
【发明人】舒鹏
【申请人】四川和芯微电子股份有限公司
【公开日】2016年2月3日
【申请日】2015年11月19日