在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 1603|回复: 4

[求助] 初学FIFO,不懂一个地方,还请指教

[复制链接]
发表于 2022-12-17 20:53:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
FIFO是用于数据速率不匹配,防止数据丢失,但是我觉得FIFO就像一个蓄水池,即便有这个蓄水池,如果读的速率没有写的速率快,那么这个蓄水池永远是满的,那么在写的一端数据不一样会丢失吗?
发表于 2022-12-17 21:52:50 | 显示全部楼层

                               
登录/注册后可看大图

大水库的水(数据)要去灌溉所有的池子,假如说庄稼都是要求3天浇一次水,然后小池子里面的水流到庄稼大概需要1天,大水库的水流到小池子需要半天。
那么,第一天的时候,公用水渠将水灌溉到小池子1/2里面,然后A、B的庄稼开始浇灌,第二天的上午往小池子放水,开始浇灌小池子3,一次类推,等到A的庄稼又需要浇水的时候,数据总线公用水渠再给小池子1放水。。。。
发表于 2022-12-17 23:18:22 | 显示全部楼层
你的想法是正确的,疑问也是合理的。一个有限容积的蓄水池,当单位时间内的进水量大于单位时间的出水量时,蓄水池中会产生水的单位时间净增量,容积除以单位时间净增量,就可以计算出蓄水池满的时间,水满则溢。
所以,继续学,问题可能出在你学习的资料上,如果一篇文献或教材讲解将FIFO用于数据速率匹配时,而不讲解FIFO深度的计算和设计,那这不是一篇好文献或教材。

发表于 2022-12-18 10:12:08 | 显示全部楼层
樓主
  我以前撰寫單晶片 RS232和PC上位機串口通訊 也是有這樣的問題
  
   PC端用C程序設有BUFFER 然後拿捏到一定的TIME 就中斷呼叫WIN32 API和執行緒THREAD去BUFFER收資料   
  
   但是單晶片的資料是一直持續發送

   所以PC端設定執行緒THREAD  弄不好會丟失資料  在我那年代是一門技術活 需要多方驗證
   而現在GITHUB都有現成函式庫~~ 不用太擔心這類問題  因為PC的處理能力很強大  只是初學者不善使用~~
发表于 2022-12-21 17:16:11 | 显示全部楼层
fifo是用来解决数据速率不匹配的问题是指的,读写两端瞬时速度不一样,而不是速度一直不一样。
比如写最大带宽是300M,读是100M,读一直读,写刚开始一直写,写满的时候就不写了,等fifo不满再继续写。读写的实际使用带宽都是100M。
如果写一直以最大带宽300M写,读最大只能到100M,那这是整体带宽设计有问题,FIFO是解决不了的。
我们做整体设计的时候,带宽是很重要的一环,需要先考虑到整体的数据处理带宽和每一路数据的数据带宽的关系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-11 06:14 , Processed in 0.061087 second(s), 3 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表