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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 610|回复: 9

[求助] uvm中的reference model如何实现dut时序性质?

[复制链接]
发表于 2024-9-24 14:18:38 | 显示全部楼层 |阅读模式

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

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

x
reference model都是从monitor直接采集信号,而且在参考模型中基本都是组合逻辑,那如何实现dut的时序性质呢?
也就是说model中最外层的while(1)每次循环都只执行dut的一个周期?还是说执行多个周期?
如果是执行多个周期,用#来延时吗?
 楼主| 发表于 2024-9-24 14:20:59 | 显示全部楼层
因为我的参考模型中用到了大量的#延时来模拟dut的功能,但觉得不够严谨,望大佬指点,谢谢!
发表于 2024-9-24 15:58:03 | 显示全部楼层
关注
发表于 2024-9-24 16:13:26 | 显示全部楼层
你可以在模块顶层也写一些设计代码来帮助计算;也可以在验证环境中使用时钟块来进行延时,每个时钟上升沿(或下降沿)计算一次
 楼主| 发表于 2024-9-24 18:58:03 | 显示全部楼层


tcz226 发表于 2024-9-24 16:13
你可以在模块顶层也写一些设计代码来帮助计算;也可以在验证环境中使用时钟块来进行延时,每个时钟上升沿( ...


谢谢你的回复,那请问您在写model时用了延时吗?我看别人写参考模型好像一个延时都没有

发表于 2024-9-25 09:54:19 | 显示全部楼层
可以用也可以不用,具体取决于要验证的模块性质。你说的那种不用延时的,可能是这种经典的验证环境结构:输入monitor采样输入,封装成transaction送给predictor,predictor依据输入transaction计算出期望的输出transaction,将输出transaction送给scoreboard,scoreboard将这个计算出的输出transaction与输出monitor采样的输出transaction进行比较。但是有时候会有一些特殊情况,比如要验证待测模块中两个信号的时序关系、比如待测模块的输出取决于某个信号,但是这个信号的生效时间晚于输入transaction的采样时间等等,上面那种经典情况就不能满足验证需求了
 楼主| 发表于 2024-9-25 13:40:03 | 显示全部楼层


tcz226 发表于 2024-9-25 09:54
可以用也可以不用,具体取决于要验证的模块性质。你说的那种不用延时的,可能是这种经典的验证环境结构:输 ...


懂了,谢谢!
发表于 2024-9-29 19:54:40 | 显示全部楼层
可以考虑分开来:
将时序的部分拎出来,用SVA检查;而功能性的部分,用scb检查
发表于 2024-10-7 16:59:27 | 显示全部楼层
搞过一个自研逻辑的reference model,
那叫一个难受,完全是自己在sv中搭建一个模型出来,里面是安装时钟打拍子去凑的时序,另外由于CDC的问题,还只能按照搞一些计算简单模拟,无法做到特别精准的模拟时序,只能模拟个大概。验证判定时,只能保证一定的误差范围。

但是这种卡时序的验证,建议还是当白盒验证吧,去搞SVA比较合适。
 楼主| 发表于 2024-10-8 20:23:30 | 显示全部楼层


viviy 发表于 2024-10-7 16:59
搞过一个自研逻辑的reference model,
那叫一个难受,完全是自己在sv中搭建一个模型出来,里面是安装时钟打 ...


是的,DUT中有太多的状态机了,有时候某个地方又多一拍出来,就很烦,虽说这种情况很少。但只是多了一拍,功能没问题,我实在有点不想管了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 14:29 , Processed in 0.023295 second(s), 7 queries , Gzip On, Redis On.

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