[FPGA] 关于ALTERA FPGA自动生成的FIFO的USEDW

[复制链接]
6108|1
 楼主| 小研究 发表于 2014-6-23 16:51 | 显示全部楼层 |阅读模式
我在使用ALTERA的FPGA做一个FIFO,在系统中当双口RAM用。读写异步,由于我的数据深度不是2的整数次幂,大概300多个数据,所以我只能设置一个512深度的FIFO,这样就无法利用FIFO自动的FULL和EMPTY信号。我能想到的办法由2个:
1 凑到512,写数据的一方把剩下的写0,凑够512个。但这个效率不高,不想用。
2 利用FIFO的WRUSEDW和RDUSEDW两个数据,在FPGA中调整FULL和EMPTY信号。(其实不是FIFO自动的FULL和EMPTY,但代表我要写的数据已经够了或者空了)
现在的问题是:我一向理解这两个数据是代表FIFO中的实际个数,两者应该一致,只不过是所依据的反转沿不同,但QUARTUS提供的仿真时序却不是如此,见下图:数据被读之后WRSUEDW并没有发生变化。除非该信号有延迟,图片显不出来,但会延迟这么多吗?
不知道有没有用过类似的应用的大虾,对深度不是2的整数次幂,会如何做?
谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
liwenz 发表于 2016-8-27 11:10 | 显示全部楼层
我也在用altera ep4 可我没有看到wrused rdused 这2个。只看到usedw 1个数据数。
既然2这应该一致,怎么要弄2个呢。
我的也是altera 生成的。或者我们操作不一致。
我不明白你的方案。空就写,另一方,有数就读,这应该是fifo 的基本功能。没必要凑数

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

本版积分规则

153

主题

869

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部