LogiCORE FIFO生成器 –  PROG_EMPTY和PROG_FULL可以产生错误断言-Altera-Intel社区-FPGA CPLD-ChipDebug

LogiCORE FIFO生成器 – PROG_EMPTY和PROG_FULL可以产生错误断言

问题描述

在基于FIFO的内置FIFO生成器实现中,当输出深度大于所选的原始深度时,如果可编程空或可编程满阈值接近极限值,则PROG_EMPTY和PROG_FULL可能产生伪断言值。他们的范围。

示例(PROG_EMPTY):

输入/输出深度= 4096

原始深度= 1024

可编程空阈值= 1013

同时读取和写入FIFO,PROG_EMPTY可能会被断言一段时间,即使FIFO中的字数远大于1013.(在本例中,我们的测试场景中PROG_EMPTY断言为2059个字。)

原因(PROG_EMPTY):

将FIFO16基元深度链接在一起时存在固有的延迟。由于这些延迟的性质,读操作可以在链中的下一个FIFO重新填充之前稍微清空最后一个FIFO。在上面的示例中,1024深度原语能够充分清空以略微低于1013字阈值,此时PROG_EMPTY标志被断言。因此,虽然FIFO中可能总共有2059个字,但PROG_EMPTY警告用户最后一个FIFO16中的字数已经下降到1013字以下。

原因(PROG_FULL):

将FIFO16基元深度链接在一起时存在固有的延迟。链中的第一个FIFO可以在来自它的字能够向下传播并从读取接口读取之前填满。因此,第一个FIFO16可以比整个设计更快地接近FULL,因此PROG_FULL可能在奇数时间断言。即使FIFO中指定的字数不足,FIFO也可以报告PROG_FULL。对于其有效范围下限附近的可编程全阈值尤其如此。

解决/修复方法

使用内置FIFO配置时,请务必为读写时钟输入正确的频率。

这两个时钟的相对频率对于产生FIFO很重要。

请登录后发表评论

    没有回复内容