微波EDA网,见证研发工程师的成长! 2025骞�03鏈�31鏃� 鏄熸湡涓€
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 异步FIFO问题

异步FIFO问题

时间:10-02 整理:3721RD 点击:
我最近看了cumming的那篇异步FIFO文章,对异步FIFO的控制是通过两个时钟使能信号进行的对吗?然后当FIFO满了以后,不能再往里面写数据,对吧?要是FIFO空了以后,数据不能被读取对吧?不知道我理解的对吗?望大神给点指导。谢谢了!

异步FIFO就像小学时候的一道数学题:一个水库,一边从其他地方抽水进去,一边从水库抽水出去。当水库满了,就不能再抽水进去了,因为已经满了;当水库空了,就不能再抽水出去,因为水库空了。

对,关键就是空满标志的处理


其实满了继续写,或者空了继续读都是可以设置的,在Xilinx FIFO生成选项中可以设置。
一般在逻辑设计中,为避免这种情况,会自己把empty信号加入去控制读信号,防止空了还读或满了再写。

是的啊,就是这样



    那控制信号就是时钟使能信号对吧?



        那控制信号就是时钟使能信号对吧?


其实控制信号我一般理解为读写使能信号,
不叫时钟使能信号,因为读写使能是在时钟同步下产生的。
时钟使能听起来感觉像门控时钟。



    嗯 谢谢了!



   那篇文章讲得挺不错,自己做一下仿真,看一下综合出来的电路。会对异步FIFO有更深刻的理解。

FIFO满了以后,read pointer 立刻锁死(enable deactive)
FIFO空了以后,write pointer立刻锁死(enable deactive)
如果要深究的话,full/empty flag的产生都是跨时钟指针比较的,跨时域是有延迟的,也就是说在flag产生的时候其实fifo并没有相应的满或空。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top