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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3885|回复: 5

[求助] 如何自动对异步fifo进行功能验证?

[复制链接]
发表于 2017-4-4 13:02:54 | 显示全部楼层 |阅读模式

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

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

x
各位大神,小弟目前在写一个异步fifo,需要对其进行功能验证,遇到了一些问题:如何自动对异步fifo进行功能验证?比方说自动验证数据读写是否正确?验证空满信号是否正确产生?并且可以在一定时间内都可以验证?请各位大神提点小弟一下,多谢!
发表于 2017-4-5 08:56:03 | 显示全部楼层
其实自动比对数据就包含空满验证,空满出错了的话自动比对也会出错,比较容易思考的办法就是,读写时钟频率比例每次都随机一下,然后读写信号的en也可以随机下,在tb里对读写端的数据进行采样到较大的buffer里面,然后依次比较读写buffer里面的每一个数据,写数据肯定先于读数据,那么每次收到一个读数据就跟写数据buffer里面第一个数比较,对了就比较下一个,错了就debug,如果空满信号出错比对也会出错,只要控制好时钟频率比例以及读写en产生的比例,就能测到空满的情况
 楼主| 发表于 2017-4-5 16:09:00 | 显示全部楼层
回复 2# 南宫恨


  谢谢!但是我还存在几个疑问:1. 如果采用较大的buffer缓存数据,会带来内存的消耗吧?2.如果验证时间较长,采用任何buffer都会存在容量的限制,这个问题如何解决,是采用循环吗?3.还有如何控制验证的时间,比如验证一天的时间?
发表于 2017-4-6 07:45:18 | 显示全部楼层
回复 3# 钢铁孙

对于buffers深度,要估算读写最大的数据差,说是buffer,如果用sv写tb的话,可以直接使用队列,如果单纯使用verilog需要仔细估算下,buffer肯定是循环放数据的。
另外,对于仿真时间,一个办法是只有在错误的时候stop或者finish,否则一直跑下去。另一种是脚本控制,如果出错就不继续跑,否则就开启下一次仿真,写个简单的脚本就可以做到。
发表于 2017-4-6 16:32:36 | 显示全部楼层
学习了
发表于 2024-4-13 16:29:16 | 显示全部楼层
请问您解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 13:31 , Processed in 0.018305 second(s), 8 queries , Gzip On, Redis On.

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