微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于FIFO

关于FIFO

时间:10-02 整理:3721RD 点击:
大家是怎么理解FIFO中的空  满建立条件的?

读指针等于写指针,但是应该搞个格雷码,来区分到底是空了还是满了。

当FIFO进行读但不写时,FIFO有效长度减1,当FIFO进行写但不读时,有效长度加1,如果FIFO又读又写或不读也不写,则有效长度不变。
当FIFO中的有效长度等于0或者等于1并且正在读FIFO时,表示读空了。
如果FIFO不读,并且有效长度等于FIFO的深度时,或者有效长度等于(深度-1),并且正在写(即写使能有效)时,表示写满了。
在实现时,通常用读、写指针表示。

防止真空时的读和真满时的写,至于是否反映真实的空满状态倒不一定

不错不错

经常会浪费一个单元

fifo的高深方式,都是为了时序上更稳定,同频不同相(相位固定与相位随机),不同频的数据源的所有可以时钟相位都要去考虑.
原则上所有的方法都不能完全避免时序上的错误,只能少减少可以接受的水平.
这是因不fifo的计数器,要由两个时钟去控制.通常做成一个组合逻缉电路,这一组合逻辑电路由于两个时钟相位的不确定性,存在毛刺,用格雷码只是减少了这种毛刺,输出标志时,用时钟再同步一次也可能减少毛刺带来的错误.
当然有一种用高时钟同步的做法,可以理论上做到无错误.只不过这种做法实际意思不大.

同步FIFO就不用想那么多。
空就是真的空,满就是真的满,不会浪费。

很高深啊

http://d-waves.blogspot.com/2010/03/fifo.html

FIFO到现在也有点懵

大家理解的都很深

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

网站地图

Top