MDY的仿真,test_log报告出现如下错误:the din_sop is x or z,new din_sop=x
答:上面提示中测试文件为tb_mdyFifoAsy的模块u_mdyCheckPkt报错,并且是该模块中的信号din_sop和din_eop有错。
时间点是在51000这个时刻。
定位思路是:查看mdyCheckPkt的波形,检查在这个时刻下din_sop和din_eop是否为x或者z态。
如果是,就要解决它。
问题的根源:MDY的mdyCheckPkt模块要求输入信号,din_sop和din_eop在复位撤消的时刻必须为0,不能为其他。
这就意味着例化mdyCheckPkt时这些信号必须连上,不能空着。
如果这个sop和eop为某个IP核的输出,并且为x态是正常的,那么可以屏蔽此项的检查,
其思路是产生一个屏蔽信号mask,屏蔽时刻为1,非屏蔽时刻为0,如下图中的1所示。
然后在例化时,din_sop在屏蔽时刻为0,其他时刻正常即可,如下图中的2。