首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助:使用ip核异步fifo 的问题!

求助:使用ip核异步fifo 的问题!

我在开始时对异步fifo进行了清零,然后再往里写数,但第一个数却不能写进去(读出来少了一个数)!还求高手赐教!
每一天都是新的开始,每一天都有新的收获
应该加上读写控制,异步清零会不会和你的读写冲突了呢
美梦成真-->噩梦降临!

异步FIFO第一个写数问题

这种情况很可能是由于你的fifo的写时钟用WR线代替,而非一个标准的时钟信号加写使能
可以采用Verilog HDL语言的IP Core试试,或许又新的发现
你可以仔细读读Xilicx 的 FIFO IPcore的datasheet
谢谢各位,我查了手册,好象第一个读写数会默认为无效
每一天都是新的开始,每一天都有新的收获
我就直接把复位信号拉高清零
每一天都是新的开始,每一天都有新的收获
不是少写了,看看FIFO的读时序就清楚了,当前读脉冲上升沿读出的数据要延时到本次读脉冲得下降沿才有效,这样如果用MCU的/RD(或加上地址译码)的反相作为FIFO都脉冲的话,MCU第一次读到的数据时是上一轮都的FIFO最后一个数据,第二次读得才是FIFO第一个数据。即每个读循环第一次要“空读”一次。主要原因是FIFO输入信号到内部RAM要经过很复杂的逻辑处理,有延时。
要留意这一点,异步FIFO生成时,其深度不是设置值,而是设置值-1,也就是如果设置深度为32,则实际上FIFO仅能写入31个bit
返回列表