原创 芯片验证时未随机化导致的bug

2012-6-14 22:18 1469 14 16 分类: FPGA/CPLD

在最近的一个项目中,流片后发现了一个bug。

设计是通过一个三十二位的数据线写一个数据位宽为108位的ram,写三次可以写满108位,这里地址位最低两位为11是无效的。

但是实际的片子出来后却是对一个ram地址最低二位为11的地址写全零后,所有这108位数据全为零,也就是说写了这个地址后影响到了前面写过的数据,看了代码,发现是由于没有考虑到数据最低位为11的情况造成的。

但是,为什么没有通过仿真提前查出这个问题呢?

我们的memory模块验证方式是写一个地址读一个地址,这样势必查不出这个问题,这也是提前没有预见的。

我想如果加入随机化就会发现这个问题:写的时候在所有地址中随机写,每个地址仅写一次,读的时候在已写过的这些地址中随机的选一个读,每个地址仅读一次。

我的教训是验证的时候我的验证思想实在是太水了,才会出现这么大的bug。谨记!

文章评论2条评论)

登录后参与讨论

用户394057 2012-8-17 17:53

片子已经出去了,就没有在修改了,感觉我们验证思想还要加强,主要是现在的仿真平台随机化不够。

用户377235 2012-8-16 17:21

修下ECO就好了吧
相关推荐阅读
用户394057 2012-09-30 15:02
为何我无法创作出自己的设计?
  我时常在想我们作为一个人最大的贡献是什么?应该是一个独一无二的我,一个有自己想法和创造的我,但是这实现起来很难,我不知道怎么实现,因为很难,或者因为周围没有人实现,或者教育没有交给我们怎么...
用户394057 2012-06-14 22:40
systemverilog中struct和union的一种用法
最近在学习systemverilog,没人指导,起初感觉sv对我来说没什么用处,但是慢慢地发现sv有些功能语法很不错,记下来。 虽然在sv中这都是很常用的东西,但是希望记下来让刚学sv的同行看到...
用户394057 2012-05-28 20:58
Quartus II Support for SystemVerilog
最近在看用systemverilog做verification,发现现在综合器支持部分sv的语法,可以考虑将来借鉴sv的语法做设计。   Quartus II Support for Sy...
用户394057 2012-05-23 11:00
task 和 functionM<转载>
  转载于:http://www.cnblogs.com/icelyb24/archive/2011/05/04/2036379.html   task 和 function tas...
用户394057 2012-05-21 10:34
【博客大赛】用debussy在window环境下快速查看fpga工程
本文提供了一种利用debussy快速查看fpga工程代码的方法,特别适合对刚接触大工程或ip核进行查看,以便将精力最大限度的放到逻辑上而不是在各个.v中翻来覆去的找信号。   环境:win...
我要评论
2
14
关闭 站长推荐上一条 /2 下一条