在看MPMC的VFBC的时候,有个问题,比较疑惑,请大家指教。MPMC的VFBC是通过发命令控制的,比如,需要写一帧视频数据,则发一个写命令,命令中指定写入的起始地址,指定一帧视频的大小,然后数据端口提供一帧数据,则VFBC自动写入外部存储器(例如DDR2)。问题就是:
(1)比如首先发写命令写入一帧,将这个命令称为CMD_W0,写入的起始地址为0,帧大小为10000个像素
(2)然后,由于某种原因出现错误,实际提供给VFBC数据端口的像素个数只有8000个,这时,CMD_W0命令就会等剩下的2000个像素的数据到来以后才能执行完成
(3)然后,来了新的一帧数据,也需要将这帧数据写入,发写命令,称这个写命令为CMD_W1,写入的起始地址为10000,帧大小仍然为10000个像素
(4)由于CMD_W0命令在等待剩下的2000个像素,所以,CMD_W0命令会将CMD_W1命令对应的10000个像素的前2000个像素作为他自己的数据写入,这样,导致CMD_W1命令又会缺少2000个像素。并且会导致CMD_W0命令写入的前8000个像素是他自己的,而后2000个像素是CMD_W1的。一旦出现这种情况,则后面的所有帧数据都会错误。
是否是俺理解VFBC错误???
如果这种情况的确存在,则设计时如何避免这种情况???或出现这种情况以后,如果纠错??? |