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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 91|回复: 4

[求助] vcs使用dtl然后发现restore的结果是跑原来的base case,而不是新的case

[复制链接]
发表于 昨天 10:24 | 显示全部楼层 |阅读模式

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

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

x
vcs使用dtl然后发现restore的结果是跑原来的base case,而不是新的case,有大佬知道是为什么吗?

从log中看,确实是在post_reset phase的时候save的,这个时候,base_seq.start(sqr)还没有开始执行,代码中是在相同的save的时刻点之后,开始创建new_seq,然后new_seq.start(sqr),理论上说,应该是会创建新的seq,restore之后的执行应该是new seq。
发表于 昨天 16:11 | 显示全部楼层
save restore是在save的时间节点开始继续往后执行,所以需要在save阶段,后边的程序激励都要存在。restore回来可以选择不同的分支走,无法创建新的一条路去执行
 楼主| 发表于 昨天 16:35 | 显示全部楼层


kang98253 发表于 2025-6-20 16:11
save restore是在save的时间节点开始继续往后执行,所以需要在save阶段,后边的程序激励都要存在。restore ...


谢谢大佬回复!!
可是例子里面说的是先生成一个base_pkg_IP,然后作为sharedlib,再次编译新的case,新的case直接restore节省了common sequence部分。好像没有要求所有的激励都要在,而且我这边新的case的seq是重载了base case的seq。试了非重载和重载,最后跑的都是base case。
发表于 昨天 16:53 | 显示全部楼层


枫舞 发表于 2025-6-20 16:35
谢谢大佬回复!!
可是例子里面说的是先生成一个base_pkg_IP,然后作为sharedlib,再次编译新的case,新 ...


以下是在我自己的尝试中得出来的结论。连仿真中的参数都会跟着被restore回来,比如save的时候使用"simv +UVM_TESTNAME=test1 +ENABLE_VIP",那么就算你restore的时候使用"simv +UVM_TESTNAME=test2 +DISABLE_VIP",用例还是会去使用save时候给进来的“+UVM_TESTNAME=test1 +ENABLE_VIP”参数,所以按照我的理解restore回到的是save时候的场景。save-restore不能解决两条在前面是一模一样,但是后面不一样的路的问题,它只能解决前面走的同一条,后面走向不同分支的路的问题
 楼主| 发表于 昨天 17:17 | 显示全部楼层


kang98253 发表于 2025-6-20 16:53
以下是在我自己的尝试中得出来的结论。连仿真中的参数都会跟着被restore回来,比如save的时候使用"simv + ...


谢谢大佬。
另外想请教一下,restore之后走向不同分支的路,这个不同分支的指定,要怎么实现呢,用宏的话,restore之后也不生效了,用一个count参数作为累计执行次数来判断么,不知道行不行。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-21 03:49 , Processed in 0.016411 second(s), 8 queries , Gzip On, MemCached On.

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