微波EDA网,见证研发工程师的成长! 2025骞�04鏈�01鏃� 鏄熸湡浜�
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何自动对异步fifo进行功能验证?

如何自动对异步fifo进行功能验证?

时间:10-02 整理:3721RD 点击:
各位大神,小弟目前在写一个异步fifo,需要对其进行功能验证,遇到了一些问题:如何自动对异步fifo进行功能验证?比方说自动验证数据读写是否正确?验证空满信号是否正确产生?并且可以在一定时间内都可以验证?请各位大神提点小弟一下,多谢!

其实自动比对数据就包含空满验证,空满出错了的话自动比对也会出错,比较容易思考的办法就是,读写时钟频率比例每次都随机一下,然后读写信号的en也可以随机下,在tb里对读写端的数据进行采样到较大的buffer里面,然后依次比较读写buffer里面的每一个数据,写数据肯定先于读数据,那么每次收到一个读数据就跟写数据buffer里面第一个数比较,对了就比较下一个,错了就debug,如果空满信号出错比对也会出错,只要控制好时钟频率比例以及读写en产生的比例,就能测到空满的情况



  谢谢!但是我还存在几个疑问:1. 如果采用较大的buffer缓存数据,会带来内存的消耗吧?2.如果验证时间较长,采用任何buffer都会存在容量的限制,这个问题如何解决,是采用循环吗?3.还有如何控制验证的时间,比如验证一天的时间?


对于buffers深度,要估算读写最大的数据差,说是buffer,如果用sv写tb的话,可以直接使用队列,如果单纯使用verilog需要仔细估算下,buffer肯定是循环放数据的。
另外,对于仿真时间,一个办法是只有在错误的时候stop或者finish,否则一直跑下去。另一种是脚本控制,如果出错就不继续跑,否则就开启下一次仿真,写个简单的脚本就可以做到。

学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top