(1)如果波形出现X态,可能并不是波形错了,而是自己“看”错了
如何理解这个问题呢,首先第一点可能的原因是自己没有把波形缩小到100%,
像当然的看着,说的确是全是x态,缩小到100%发现波形的结果藏在了最后。
哈哈哈,我刚开就是会犯这个错误,我说咋可能是x态呢,所以,仿真加入波形
之后第一步就是缩小到100%,看看波形的全貌,观察观察,别着急。
(2)如果波形读写不一致,咋输出比输入滞后了一个时钟,可能还是自己“看”错了。
我们经常会遇到数据的读写,一放大发现我的天,这输出是和输入对上了,
怎么会延后一拍呢,哈哈哈,其实这已经是第二个周期输入,
把波形缩小到100%会发现输出的是延迟后第一个周期的输入。
(3)如果波形出现X态,哈哈哈,还是自己“看”错了?
如何理解呢,其实有时候我们再观察一个小模块A的时候,波形验证完成了,
直接切到小模块B,比如我们验证完dcache,然后去验证icache,发现,
卧槽怎么读写都是x态,其实是自己忘记切换fsdb了,细节虽小,切勿再犯。
(4)那么说了这么多,什么情况下会出现x态呢?
(1)rtl中本身赋值就是x态
(2)tb中对一个变量进行了多次赋值
(3)tb没有对变量initial