一种生成Soc随机验证平台的方法

文档序号:8223408阅读:189来源:国知局
一种生成Soc随机验证平台的方法
【技术领域】
[0001]本发明涉及芯片的验证,特别是涉及一种生成SoC随机验证平台的方法。
【背景技术】
[0002]SoC芯片验证是对SoC芯片进行全面的功能验证,以保障SoC芯片的正确工作。随着集成电路产业的飞速发展,SoC芯片规模越来越大,设计也越来越复杂,使得SoC验证也越来越困难。图1是传统的验证平台系统示意框图,主要包括激励产生模块,待验证SoC芯片,结果比对模块。每个验证场景几乎都需要一个独立的激励产生模块产生激励,因此验证场景越多,激励产生模块也就越多,工作量越大,代码维护也更困难。以使用C语言编写激励产生模块为例,每种场景几乎都需要一个C文件编写的激励产生模块,在需要验证该场景时,使用C编译器编译该C文件,生成可执行文件,提供给相应的处理器进行处理操作。然后启动验证平台,SoC芯片内处理器将会载入这个文件,并且按照文件中激励要求产生相应的响应,完成功能的验证。即便两种场景不同的变量只有一个,例如某个寄存器的值,都需要编写多份的C文件进行全面覆盖。这样的实现方式,存在很多的冗余工作。由于验证场景有很多,验证人员需要编写大量的C文件类型的test-case。这样不但会给验证人员带来大量的繁复劳动,而且对后期test-case的维护也相当不利。

【发明内容】

[0003]针对以上缺陷,本发明目的在于提出如何可提高测试代码复用性,减少SoC芯片验证测试用例的编写工作,同时提高代码的可维护性。
[0004]为了实现上述目的,本发明提供了一种生成Soc随机验证平台的方法,其特征在于,根据各种验证场景编写独立的激励产生模块;提取各个激励产生模块需验证的可变参数为变量,所述变量通过随机变量文件设定;所述随机变量文件由随机产生模块自动生成,激励产生模块依据随机变量文件设定的变量生成对应最终的Soc验证的可执行文件。
[0005]所述的生成Soc随机验证平台的方法,其特征在于所述随机产生模块的随机种子是可变的,相同的随机种子生成的随机变量文件相同。
[0006]所述的生成Soc随机验证平台的方法,其特征在于所述的激励产生模块可预先编译生成可执行文件。
[0007]本发明在传统Soc验证技术上增加了随机产生模块,利用随机产生模块的随机性,将传统激励产生模块中的变量抽取出来,由随机产生模块产生,使得激励产生模块变得很简单。甚至使用一个随机产生模块和一个激励产生模块就能完成所有场景的验证。激励产生模块可以得到最大程度的复用,大大减少了测试用例代码的开发工作量,同时,代码维护起来也非常方便。
【附图说明】
[0008]图1是传统的验证平台系统示意框图;
[0009]图2是增加随机产生模块后的验证平台系统示意框图。
【具体实施方式】
[0010]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0011]图2是增加随机产生模块后的验证平台系统示意框图,相比传统的验证方法,增加了一个随机产生模块。以使用C语言编写激励产生模块为例,也可以是采用其它编程语言来实现,使用该随机产生模块后,验证人员不用在C代码的激励产生模块中直接将变量固定为一个值,可以将所有的变量从该C代码提取出来,由随机产生模块提供。
[0012]首先由随机产生模块随机产生各个变量的值,可以在随机产生模块中对这些随机变量进行相应的约束,以便随机成符合规定的变量。
[0013]然后将这些变量值转换为C语言能够识别的语句,并放入到一个或多个文件中,同时在C代码中使用include的方式将这些含有变量的文件包含,或者通过文件读取的方式读取相应变量的值。通过这种方式实现后,每次只需要运行一次随机产生模块,就产生一组随机变量配置,将这些配置输出到一个或多个固定名字的文件中,再在C激励产生模块中使用include的方式将这些文件导入或直接读取的方式读取。所以C激励产生模块本身不需要进行任何改动。
[0014]在验证SoC芯片的时候,只需要编译一次SoC设计代码,然后多次验证的时候,只需要使用一次随机产生模块,然后编译一下C文件即可,非常方便使用。
[0015]为了能够实现验证场景的复现,以便发现bug的时候可以查看,还需要对随机产生模块进行改进,例如使用随机种子的方式,使得随机产生模块在同一个随机种子的作用下,每次产生的随机变量都不会改变,而只有改变随机种子,才会产生出不同的随机变量。
[0016]这里的随机产生模块,可以使用不同的方式来实现。例如,可以使用systemverilog语言来编写随机产生模块,或者使用脚本语言来实现。实现方式简单多样,验证人员可以根据自己的喜好选择一种实现方式。
[0017]这里的激励产生模块,根据处理器的不同,也可以使用不同的语言来编写,例如使用C语言,或者使用汇编语言。
[0018]综上所述,针对集成电路芯片开发必不可少的验证环节设计了本发明,该发明避免了直接编写大量测试文件、浪费大量的工作量和不易维护的弊端,使用方便,实现方式多样,且适用于任何SoC芯片的验证。
[0019]以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
【主权项】
1.一种生成Soc随机验证平台的方法,其特征在于,根据各种验证场景编写独立的激励产生模块;提取各个激励产生模块需验证的可变参数为变量,所述变量通过随机变量文件设定;所述随机变量文件由随机产生模块自动生成,激励产生模块依据随机变量文件设定的变量生成对应最终的Soc验证的可执行文件。
2.根据权利要求1所述的生成Soc随机验证平台的方法,其特征在于所述随机产生模块的随机种子是可变的,相同的随机种子生成的随机变量文件相同。
3.根据权利要求2所述的生成Soc随机验证平台的方法,其特征在于所述的激励产生模块可预先编译生成可执行文件。
【专利摘要】本发明公开了一种生成Soc随机验证平台的方法,其特征在于,根据各种验证场景编写独立的激励产生模块;提取各个激励产生模块需验证的可变参数为变量,所述变量通过随机变量文件设定;所述随机变量文件由随机产生模块自动生成,激励产生模块依据随机变量文件设定的变量生成对应最终的Soc验证的可执行文件。在传统Soc验证技术上增加了随机产生模块,利用随机产生模块的随机性,将传统激励产生模块中的变量抽取出来,由随机产生模块产生,使得激励产生模块变得很简单。甚至使用一个随机产生模块和一个激励产生模块就能完成所有场景的验证。激励产生模块可以得到最大程度的复用,大大减少了测试用例代码的开发工作量,同时,代码维护起来也非常方便。
【IPC分类】G06F11-36
【公开号】CN104536885
【申请号】CN201410788503
【发明人】陈明园, 余桉, 汤晓东
【申请人】记忆科技(深圳)有限公司
【公开日】2015年4月22日
【申请日】2014年12月17日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1