一种用于验证merge功能的激励方法、装置和系统与流程

文档序号:37346008发布日期:2024-03-18 18:20阅读:11来源:国知局
一种用于验证merge功能的激励方法、装置和系统与流程

本发明属于芯片验证,具体涉及一种用于验证merge功能的激励方法、装置和系统。


背景技术:

1、在基于uvm(universal verification methodology,通用验证方法学)的芯片验证过程中,uvm sequence机制用于产生激励,在验证环境中发挥巨大的作用。在几乎所有的验证方法中,创建出足够随机的transaction(sequence item)是最常用的手段,但是为了覆盖测试点,需要对transaction的随机作出约束。从具体实现的角度来说,对激励的约束可以分为激励内约束、激励间约束。其中,激励内约束是指对一个单独的transaction随机化,各个transaction之间没有联系互不影响;激励间约束是指多个transaction之间有关联,不是单独的个体,在定向验证芯片的某种功能是常常用到。

2、在高速网络芯片中,为了提高访问内存的速度,会将访问相同地址的命令merge在一起形成merge链,这样只需要用merge后的一个命令来访问对应地址的内容,通常使用链头来访问,从而大大节省时间,从验证的角度来看,需要构造出多个相似的读写ram的命令在相近的时间陆续发出,从而构造出验证这一种merge功能的环境。目前普遍的构造方法是将一个构造好的激励在发出的同时推入一个队列暂存,下次发送命令再从队列中取出,这种构造方法可以满足最基本的merge,但是限制极大,模拟出的场景单一。


技术实现思路

1、为了解决现有验证merge功能的方式限制极大,模拟出的场景单一的问题,本发明提供了一种用于验证merge功能的激励方法、装置和系统,本发明提出的激励方法可以通过控制激励池的深度以及激励的权重来构造出多种merge场景,以提高验证的可靠性。

2、本发明通过下述技术方案实现:

3、一种用于验证merge功能的激励方法,所述激励方法包括:

4、初始化步骤:随机例化激励池中激励仓的个数,每个所述激励仓以类的形式保存激励相关信息,包括激励本身的信息、激励在后续发包时需要被重用的权重以及该激励的id号;且所述激励池初始默认为空;

5、激励池检测步骤a:判断所述激励池是否为空,如果为空,则执行激励生成与发送步骤,否则执行激励池检测步骤b;

6、激励生成与发送步骤:根据具体需求生成一个随机激励,并将生成的所述随机激励存入激励仓中,并赋值权重;之后将生成的所述随机激励发出,并将其对应的激励仓中的权重值减1,返回执行激励池检测步骤a,准备下一次的激励发送;

7、激励池检测步骤b:判断所述激励池是否已满,如果没有满,则返回执行激励生成与发送步骤,否则执行激励取出与发送步骤;

8、激励取出与发送步骤:从所述激励仓中按照权重随机取出激励并发出,并将其对应的激励仓中的权重值减1,之后返回执行激励池检测步骤a,准备下一次的激励发送。

9、现有芯片验证过程中,通过将构造好的激励在发出的同时推入一个队列暂存,下次发送命令再从队列中取出,这种激励产生方式仅能够构造单一的merge场景,实际应用受到限制。本发明提出的激励方法通过激励池可以快速便捷地构造出多种merge功能验证场景,提供更加全面的验证场景,提高了验证的可靠性。

10、作为优选实施方式,本发明的激励取出与发送步骤具体包括:

11、将所述激励池中每个激励仓中的个数为各自权重的id号放入一个队列中;

12、调用所述队列的函数shuffle打乱顺序,再从所述队列头取出第一个id号;

13、提取出队列头所述id号对应的激励仓中存储的激励信息作为发出的激励。

14、作为优选实施方式,本发明在将激励发出,并将其对应的激励仓中的权重值减1的操作之后还包括:

15、若权重值已经减为0,则将对应激励仓的内容清空。

16、作为优选实施方式,本发明的激励方法还包括:

17、将所述激励池中任一个激励仓中激励的权重值设置为1,其对应的激励作为干扰命令,以构成发送多个能够被merge的命令中穿插干扰命令的场景。

18、作为优选实施方式,本发明的激励方法还包括:

19、减少所述激励池中例化的激励仓的个数,并增加每个激励仓中激励的权重值,以构成在正式访问内存之前的间隙时间内被merge上的命令数量相对多的场景。

20、作为优选实施方式,本发明的激励方法还包括:

21、增加所述激励池中例化的激励仓的个数,并减少每个激励仓中激励的权重值,以构成在正式访问内存之前的间隙时间内被merge上的命令数量相对少的场景。

22、作为优选实施方式,本发明赋值的权重随机产生。

23、第二方面,本发明提出了一种用于验证merge功能的激励装置,所述激励装置包括:

24、初始化单元,所述初始化单元被配置为执行:随机例化激励池中激励仓的个数并驱动第一检测单元工作;每个所述激励仓以类的形式保存激励相关信息,包括激励本身的信息、激励在后续发包时需要被重用的权重以及该激励的id号;且所述激励池初始默认为空;

25、第一检测单元,所述第一检测单元被配置为执行:判断激励池是否为空,如果为空则驱动激励生成单元工作,否则驱动第二检测单元工作;

26、激励生成单元,所述激励生成单元被配置为执行:根据具体需求生成一个随机激励,将生成的所述随机激励存入激励仓中,并赋值权重,之后驱动激励发送单元工作;

27、第二检测单元,所述第二检测单元被配置为执行:判断所述激励池是否已满,如果没有满,则驱动所述激励生成单元工作,否则驱动所述激励取出单元工作;

28、激励取出单元,所述激励取出单元被配置为执行:从激励仓中按照权重随机取出激励并驱动所述激励发送单元工作;

29、以及激励发送单元,所述激励发送单元被配置为执行:发出激励,并将其对应的激励仓中的权重值减1,之后驱动第一检测单元工作准备下一次的激励发送。

30、作为优选实施方式,本发明的激励发送单元还被配置为执行:

31、若权重值已经减为0,则将其对应的激励仓中的内容清空。

32、第三方面,本发明提出了一种高速网络芯片验证系统,所述验证系统包括本发明所述的激励装置。

33、本发明与现有技术相比,具有如下的优点和有益效果:

34、1、本发明提出的激励技术,通过随机例化激励池的深度并控制激励的权重,可以快速便捷地构造各种merge功能验证场景,例如不仅可以构建被merge成一个命令的多个激励发送的场景,可以构建被merge成一个命令的多个激励中穿插干扰命令的场景,被merge成多个命令的多个激励混合发送等场景,灵活性和适用性极高;

35、2、本发明提出激励技术,还可以通过随机控制激励池的深度和权重值的大小,来间接控制在正式访问内存之前的间隙时间内被merge上的命令数量,例如,可以通过增加激励池的深度,减小权重值来降低被merge上的命令数量,还可以通过减小激励池的深度,增大权重值来提高被merge上的命令数量,以提高验证的广度和可靠性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1