1、FIFO最为重要的几个信号便是复位信号与使能信号,使能信号分为写使能和读使能,读使能尤需关注;如果复位信号设计出现问题,则会使FIFO中的数据为空或者一直为满,如果写使能设计出现疏漏,过早写入则会让复位信号清空写进去的数据,意味着读出的数据出现问题(部分数据不能读出,注意哈,这种情况不是数据不想出来,而是数据已经被清楚了,读不出来了),如果写入过迟,则有可能读出一串 'h0 ;读使能与写使能大差不差。
2、FIFO有两种模式,一种使普通模式,一种是前显模式,有什么区别呢,区别就是前者不会提前拿数据出来,后者会提前拿出一个数据等使用者来使用这个数据,意味着如果FIFO第一个字节出现 'h0 的时候可以使用前显模式来试一下能否解决,一般是能解决的,但是FIFO读出的第一数据为 'h0 具体的原因是读使能出现了异常。
3、如果发现自己输出的数据中有一串很长的相同数据的时候,就得怀疑FIFO是否空了,当FIFO为空的时候会一直输出FIFO的最后一个数据。
4、当发现FIFO的empty信号有一段时间为高,那么就得怀疑写使能与读使能,如果这两者都没有逻辑问题,那么寻找问题的方向就转变到写入数据的速度与读出数据的速度,也就是写时钟域读时钟。
5、FIFO的位宽设置看自己输入的数据与输出的数据,假设输入16bit数据,输出8bit数据,那么就设置FIFO位宽写入数据为16bit,读出数据位宽为8bit(这是一个位宽转换器),深度可以随意一些,设置大些也没关系(设置36、56、79、128、256......都是可以的)。简而言之,就是位宽与深度初学者可以随意设置,不用使用突发长度什么的来计算,先入门再考虑其它复杂的设计。
2425





