微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 异步FIFO跨时钟域_求助

异步FIFO跨时钟域_求助

时间:10-02 整理:3721RD 点击:
接触异步FIFO不多,请教各位一个异步FIFO的问题。
需求:AD采样进来20Msps的数据(独立的外部时钟),想转换到80M的内部FPGA时钟上,异步FIFO如何控制才能保证数据在FPGA内部是大致均匀的?

现在的想法是:时钟慢到快,就写若干个进去譬如写十个,超过十个之后写一个进去,就读一个出来。感觉这样就没用起FIFO,请教各位有好的什么建议么?

如果读出时钟是写入的4倍,4个周期读一个出来

不用FIFO,用data ready通知FPGA。当然data ready到FPGA需要同步到FPGA时钟。

我真好也是在做同样的东西,不过我是准备把慢时钟的信号(EOC转换完成)用快时钟锁存器产生一个标记信号,然后采用同步FIFO处理,异步FIFO的时候也是需要锁存一个标记位,采用异或的办法,产生PUSH信号,可以在网上查一下,我记得里面有一篇介绍的很详细

说一个很简单的办法,你这个问题是读时钟Rclk 远大于写时钟Wclk,这就意味着FIFO永远不会overflow.
但是会underflow,但是这正是我们希望看到的。
把读写使能设置为‘1’,这样underflow信号取反作为你读到Rclk时钟域下数据的valid信号。
因为Wclk和Rclk不是同源,所以会有频差,所以你同步到Rclk时钟域下的数据只是近似均匀的。
这样用过,很稳定,仅供参考。

没搞懂什么意思,何为均匀?
首先由慢到快不担心fifo full,其次数据的分布是由AD决定的,FPGA只是接受.

上一篇:quartus怎么设置时序约束
下一篇:ise调用

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

网站地图

Top