【问题2】FIFO总共128个数据,都读到128个数据后,usedw对应还是1,而不是预期的0。
原因:此FIFO使用了SHOW AHEAD模式,所谓的“读到128个数据“指的是从总线看有128个数据,而非产生了128个读使能。
总结:对于FIFO出现了”莫名其妙问题“时,需要严谨检查和确认。
建议的方法:
a. 直接看FIFO这个IP核的输入输出信号,例如读使能、写使能、写数据、空信号、满信号等。写一个,确认;读一个,再确认。
b. 注意FIFO满时不要再写,FIFO空的时候不要再读,否则会出现意想不到的错误。
【问题3】对于双时钟 show ahead 模式,给出第一个读使能为啥读出数据不对呢?
回复:首先,从波形图看到的信息,数据为“0”,而不是“没有数据”。
其次,假如第一个数据不对,需要看前面的第一个写使能有效的时候,写数据是多少。即检查第一个写数据和第一个读到的数据正不正确。