单独调试写模块,波形是正常的写到了我要求的127列地址,波形也是对的,但仿真打印界面却一直显示我在重复写0、1、2、3的列地址,代码改了又改,工程建了又建,最终在一点点注释的过程中,发现把按位‘|’写成了按位‘&’,原来想得再多不如眼睛看得准,有时候通过波形还真不一定能发现bug。
又是在调DDR的时候,端口各个信号也没毛病,发现数据写完之后,应该跳到读状态,但一直在重复写状态,回到代码一顿操作,东调西调,两天了,还是这样,本来打算放弃调DDR了,没想到仿真是多输入了一个‘0’,变成了运行时间100ms,恰好碰到去接水,仿真就一直在后台运行,回来stop的时候,居然跳到读状态了,这就很无语,再次回到代码,源濑式佐田写测试代码的时候,以下reapeat语句结尾没有打分号(仿真也不报错,就很神奇),导致程序仿真多跑了10倍以上的时间才出结果(心里一万句xxx)。
代码量多了以后,没有经验的话,调试起来是真的难,这两次bug也是出于一定的运气成分调出来的 (因为不够强),两个字,“再也不想敲DDR了”。