scutfanyu 发表于 2013-3-31 20:39:03

异步FIFO读写问题

一个异步FIFO,写的速度比读的速度快,并且写是要一直进行不能停下的,那这个FIFO是不是没什么用了哇,因为肯定有读不完溢出的时候。。。。。。是不是这样理解的啊各位大神??!!如果这样不行,有什么替代方法么,主要是为了匹配接口两端的速度差

Fourier00 发表于 2013-3-31 20:43:56

你如果要数据不丢失就 在写端把位宽扩展,然后读端已大位宽进行读取

scutfanyu 发表于 2013-3-31 20:59:40

Fourier00 发表于 2013-3-31 20:43 static/image/common/back.gif
你如果要数据不丢失就 在写端把位宽扩展,然后读端已大位宽进行读取

写端位宽怎么扩展啊,读端加大位宽倒是不错的选择

Fourier00 发表于 2013-3-31 21:02:54

scutfanyu 发表于 2013-3-31 20:59 static/image/common/back.gif
写端位宽怎么扩展啊,读端加大位宽倒是不错的选择

写端做一个位宽拓宽,比如说 写侧 100m时钟 8bit 每一个周期都需要写入,而读侧的时钟只有 70m,这样就可以把写侧的位宽从 8bit转换到16bit ,读侧也是已16bit读,这样就可以处理过来了

scutfanyu 发表于 2013-3-31 21:06:36

Fourier00 发表于 2013-3-31 21:02 static/image/common/back.gif
写端做一个位宽拓宽,比如说 写侧 100m时钟 8bit 每一个周期都需要写入,而读侧的时钟只有 70m,这样就可 ...

哦~~~明白了,谢谢哈

cmdrainsy 发表于 2013-3-31 21:12:16

多fifo轮换操作

Fourier00 发表于 2013-3-31 21:16:21

scutfanyu 发表于 2013-3-31 21:06 static/image/common/back.gif
哦~~~明白了,谢谢哈

{:handshake:}

yangyang1224 发表于 2013-4-8 20:59:12

好像有个乒乓操作是不是解决这个问题的。

sme 发表于 2013-4-9 09:48:52

具体应用没讲清楚。
假设是写比读快,但是是周期性的,例如写10ms会停10ms,这样计算一下一个周期的数据吞吐量,确定fifo size即可。上面提到的把位宽扩宽,也要在这个周期性的写的前提下,并且,fifo size是一样大的。
应该很多应用都是上面这种情况。
如果不是周期性,而是持续的,用什么方法都无解。因为读的速度肯定是根据数据处理的速度来定的,给定时间,只能处理这么多数据,现在写比读快,就算采用双FIFO乒乓操作,或者扩展位宽,使得写比读慢了,但处理读出来的数据的速度跟不上。一定要解决,只能先提高读数据之后的处理速度,要么采用流水线,要么并行处理。之后再扩展写位宽或乒乓操作。

所以如果你是最前面一种情况,我觉得最简单的办法是确定fifo size,其它时序都不需要改动。
页: [1]
查看完整版本: 异步FIFO读写问题