在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1871|回复: 3

[求助] 进行随机配置测试的时候和功能覆盖率收集时的困惑

[复制链接]
发表于 2019-3-1 10:46:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 851018986@qq.co 于 2019-3-1 15:20 编辑

刚接触sv做验证,有很多疑问,望有知道的人士解答心中困惑
1、进行随机配置参数测试的时候,循环的次数由什么决定,还是说设置成无限循环,当达到所设定的功能覆盖率时退出,    还是设定成有限的次数看看最后的功能覆盖率多少再决定增加次数,那么这个次数多少合适

2、功能覆盖率比如要收集dut代码中的某些变量覆盖率的时候怎么写,例如要覆盖代码中转态机的覆盖率,这时候的功能覆盖率写在哪里
    是需要建一个相同的参考模型,在其rm里面添加吗

4、当下次回归的时候怎么知道要达到上次的覆盖率需要的时间是多少,万一某些特别的角落在相同的循环次数下无法重现覆盖上次跑的结果怎么办

5、是不是每次仿真都得记录下这些随机的配置,还有随机种子,当出现错误的时候自动的把这个case和这些配置存储下来
发表于 2019-3-4 22:44:59 | 显示全部楼层
回复 1# 851018986@qq.co


1、进行随机配置参数测试的时候,循环的次数由什么决定,还是说设置成无限循环,当达到所设定的功能覆盖率时退出,    还是设定成有限的次数看看最后的功能覆盖率多少再决定增加次数,那么这个次数多少合适

两种方法都可以,大部分验证环境还是选择第二种方法,因为很可能循环无限次覆盖率还是不达标

2、功能覆盖率比如要收集dut代码中的某些变量覆盖率的时候怎么写,例如要覆盖代码中转态机的覆盖率,这时候的功能覆盖率写在哪里
    是需要建一个相同的参考模型,在其rm里面添加吗

《SystemVerilog for Verification》第9章”Functional Coverage ”整章没提到参考模型,为什么不参考里面的写法?

4、当下次回归的时候怎么知道要达到上次的覆盖率需要的时间是多少,万一某些特别的角落在相同的循环次数下无法重现覆盖上次跑的结果怎么办

该改约束改约束,该调试DUT就调试DUT,没有标准流程

5、是不是每次仿真都得记录下这些随机的配置,还有随机种子,当出现错误的时候自动的把这个case和这些配置存储下来

记种子就好了,参考SV LRM 18.14 Random stability  
发表于 2019-3-6 23:13:28 | 显示全部楼层
回复 1# 851018986@qq.co

1、进行随机配置参数测试的时候,循环的次数由什么决定,还是说设置成无限循环,当达到所设定的功能覆盖率时退出,    还是设定成有限的次数看看最后的功能覆盖率多少再决定增加次数,那么这个次数多少合适    没有限制循环次数的规则,后者本人用的多,前者没见过,真得像前面的加复说的,如果达不到设定的覆盖率,那就不会退出了;
   

2、功能覆盖率比如要收集dut代码中的某些变量覆盖率的时候怎么写,例如要覆盖代码中转态机的覆盖率,这时候的功能覆盖率写在哪里
    是需要建一个相同的参考模型,在其rm里面添加吗
    请了解各种代码覆盖率

4、当下次回归的时候怎么知道要达到上次的覆盖率需要的时间是多少,万一某些特别的角落在相同的循环次数下无法重现覆盖上次跑的结果怎么办
     理论上只上以前覆盖到过,后面在没有修改环境的情况下是会覆盖到的,只是时间问题,但不同保证和原来覆盖需要的时候相同;
     如果真是角落的场景,建议修改随机约束,提高此场景随机到的机率;


5、是不是每次仿真都得记录下这些随机的配置,还有随机种子,当出现错误的时候自动的把这个case和这些配置存储下来
     环境和RTL都不修改的情况下,只需要记录随机种子就可以复现,如果不能请定位原因,并解决;
发表于 2019-3-31 19:38:43 | 显示全部楼层
1、进行随机配置参数测试的时候,循环的次数由什么决定,还是说设置成无限循环,当达到所设定的功能覆盖率时退出,    还是设定成有限的次数看看最后的功能覆盖率多少再决定增加次数,那么这个次数多少合适   

答:无限循环解决不了覆盖完备的问题。
  一般是先做几条用例跑一定次数。然后check覆盖率,然后补充定向随机用例。不要试图用一条万能用例冲击到所有的覆盖点。

2、功能覆盖率比如要收集dut代码中的某些变量覆盖率的时候怎么写,例如要覆盖代码中转态机的覆盖率,这时候的功能覆盖率写在哪里
    dut的内部的变量还是寄存器配置?如果是内部建议用sva.
   状态机有专门的fsm 覆盖率,跑用例打开对应选项收集即可。

4、当下次回归的时候怎么知道要达到上次的覆盖率需要的时间是多少,万一某些特别的角落在相同的循环次数下无法重现覆盖上次跑的结果怎么办
     如果走cdv流程,我们的回归目标不是为了重复上一次的覆盖。而是为了暴露更多的问题。为什么一次要跑到上次的角落。
     如果是最后为了过评审。做定向随机用例覆盖即可。
     or  纪录每个种子的覆盖率贡献度,提取最小用例集。可以做到一次回归,覆盖所有func模型。


5、是不是每次仿真都得记录下这些随机的配置,还有随机种子,当出现错误的时候自动的把这个case和这些配置存储下来
     只要不修改随机引擎,记下种子就可以。这些项目组or公司应该有自研的工具。或者用vendor的工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 23:19 , Processed in 0.016576 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表