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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1930|回复: 6

[求助] 有什么技巧使得参考模型和dut动作保持一致。

[复制链接]
发表于 2022-3-7 13:24:57 | 显示全部楼层 |阅读模式

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

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

x
dut中是由时钟驱动,参考模型中有时候没有时钟,这时候有输出不一致的问题,这种情况怎么才能避免呢 要在参考模型里引入时钟信号吗
发表于 2022-3-7 14:56:00 | 显示全部楼层
你的ref md是什么写的?
可以先把ref md的存起来,拿到dut输出再比较
可以用event控制ref md输出
 楼主| 发表于 2022-3-7 17:21:32 | 显示全部楼层


anpengfei 发表于 2022-3-7 14:56
你的ref md是什么写的?
可以先把ref md的存起来,拿到dut输出再比较
可以用event控制ref md输出 ...


是这样 我要验证一个apb接口的w1c寄存器,读操作的时候在scb中比较 ,有一种边界情况,就是在读的那一刻,update寄存器数据,这样dut中读到的就是更新前的值,但是model中读出的是更新后的值,这种情况应该怎么处理
发表于 2022-3-7 18:55:42 | 显示全部楼层
你是用的寄存器模型吗?我不太熟,这种情况是不是不能用update,要用predict吧?
发表于 2022-3-10 11:31:28 | 显示全部楼层
参考模型最大作用的是保持跟dut输出的逻辑功能一致,而不是时序上的一致——后者是driver/monitor的事情,不要让reference-model抢了其他组件的活。
所以,反而应该避免在reference-model里面引入时钟,提高模型的抽象层级,将时序上的逻辑运算抽象成transaction级的逻辑运算,这是基于TLM的验证核心思路。
假如你的参考模型的逻辑功能有明确的先后调用顺序,应该使用事件同步这类方式进行,在monitor和reference-model之间,以及reference-model内部不同process之间进行同步。
当然,假如你的dut的function对时序要求很高(如PLL,PHY,DDR,等等),你可以在验证环境合适的地方插入的断言进行时序检查。

发表于 2022-3-10 11:51:07 | 显示全部楼层
本帖最后由 qsh123_123 于 2022-3-10 11:52 编辑


Mr.Jia 发表于 2022-3-7 17:21
是这样 我要验证一个apb接口的w1c寄存器,读操作的时候在scb中比较 ,有一种边界情况,就是在读的那一刻 ...


你这个是寄存器模型对复位和置位这类寄存器的操作的期望值和镜像值之间存在滞后性的原因。。
最简单的方式是,用先用后门访问读出来对应的寄存器的值,再用前门访问进行该寄存器的读写复位/置位操作,这样你就必然可以拿到寄存器被置位/复位之前的值;
另一种更传统的做法是——修改你的寄存器模型在w1c的寄存器类型时对总线发起读写请求的adapter的操作function/task,这里面也可以修改它返回值是寄存器被置位/复位前的值,甚至可以修改和自定义对应不同寄存器类型的读写时序——毕竟最终真实地将你的寄存器模型的读写函数的调用转换成总线读写时序的就是这个adapter


 楼主| 发表于 2022-3-10 16:32:28 | 显示全部楼层


qsh123_123 发表于 2022-3-10 11:51
你这个是寄存器模型对复位和置位这类寄存器的操作的期望值和镜像值之间存在滞后性的原因。。
最简单的方式 ...


好的 谢谢,我试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-15 13:41 , Processed in 0.018936 second(s), 6 queries , Gzip On, Redis On.

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