今天写了个fifo的代码,因为是新手,所以有些问题想不通,钻了一下午的牛角尖。
fifo读写时钟频率基本相同,只是相位上有偏差。
当fifo满时,写指针不变,不将数据写入,当fifo空时,读指针不变,不读数据。
看到一些资料介绍说,fifo作为数据的缓存要避免对fifo的同一地址进行读写操作。
那么是否到检查到真的空或真的满时,再去处理读写指针就晚了?
是否一定要设置一个将空将满标志,检查到将空或将满时将读写指针清零?
如果检查到真空时,将读写指针清零,此时读写指针因为都是0,所以就一直处于空的状态?
头脑木讷了,想不通;代码是写好了,在设备上也能用,但总感觉在检测到空满时的处理方式不对,通用性应该不强。 |