您好,请问您异步FIFO的溢出操作时怎么样判断的?

[复制链接]
查看11 | 回复1 | 2011-7-9 21:42:15 | 显示全部楼层 |阅读模式
一般情况下FIFO的长度为2的n次方,这样地址位可以全部使用上,有利于FIFO的循环使用。判断溢出和读空的方法有很多,网上也有介绍,我只在这里说一下我认为比较好的一个方法,就是FIFO的地址位设为n+1位(如:{n+1, n}),这样地址的低n位指向FIFO的实际空间,最高的那个n+1位可以做判断用。初始化时读地址和写地址都清空,设为相等值,读时读地址+1,写时写地址+1,如果读写地址完全相同,表示FIFO为空,此时禁止读;如果低n位相同,但是n+1位相反,表示FIFO为满,此时禁止写,如果不禁止的话就是溢出了(如果地址转换成格雷码,那么FIFO的状态比较就要参考高2位地址信息了)。另外异步FIFO要注意信号的跨时钟域同步问题,一般采用双锁存器同步法,...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行