为什么FIFO 第一轮读出数据正确,第二轮读出数据的时候读出的是x?FIFO 读出数据有误

发布时间 2023-04-27 16:50:43作者: Doreen的FPGA自留地

仿真如下所示,第一轮写入1 2 3 4 5 6 7 8 读出来都是对的, 后来写9  10 11...等, 读出来就是x了, 这是为什么呢?

 

 这说明指针在指到FIFO 尽头以后出了什么问题。。。。。

 

最后发现是这里指针的位宽是3 ,结果定义为了4位,这样的话,当你指针累计到111的时候并没有返回到000,而是指到了1000。而FIFO深度只有8, 所以会读出是x。

 

 

 

所以把源代码改写为

 

 

问题就解决了。