打印
[FPGA]

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

[复制链接]
5295|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我在使用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

粉丝