在支持乱序传输的module验证中,有时在debug的过程中会遇到一类问题,那就是rtl漏包,但是由于rtl是乱序回的,具体很难知道是哪一笔包被漏掉了,当然,理想的环境都是每笔包发出的时候记录一下时间,然后设定一个watchdog时间,超过这个时间rtl还没有回resp就报错提出,并且打印debug信息,但有时watchdog时间太短会挡住正常的case,设的太大,当rtl真正有问题的时候,又需要跑太久才能报错,现在利用fsdbreport把波形上的信息导入到文本中,可以很方便的对比看出遗漏的包是哪笔,具体方法如下:
通过以上命令即可将波形中需要查看的信号导入到文本中,需要注意几个点:
1.数据只在跳变的时候写出
2.以上命令没有加限定条件,通常我们使用都会加上限定条件,比如valid和ready都有效,并且是在clk为1的时候,这个时候就需要加上option:-exp "xxx.valid & xxx.ready&xxx.clk" ,比如:
到处到文本中后,我们就可以利用gvim相关命令简单处理成方便对比的形式,比如文本排序sort等。
参考文章: