首页 > 编程知识 正文

异步fifo sdc约束如何设置,同步fifo空满判断

时间:2023-05-06 17:28:11 阅读:63781 作者:4704

今天和HR聊天的结果,我发现我对异步FIFO的理解还很浅,回来后稍微理解了一下那个机制,所以分享一下。

异步FIFO的设计: http://blog.csdn.net/moon 9999/article/details/77822606

疑问1:进行数据空满的对比时,读写时钟域都有读写指针,此时应该怎么对比?为什么?

另一个博客上有这样一句话:

将rd_cntr与clk_write时钟字段同步,并与wr_cntr进行比较以确定FIFO是否满; (判断满是wr_cntr - rd_cntr ) ) ) ) )。

使wr_cntr与clk_read时钟字段同步,并与rd_cntr进行比较以确定FIFO是否为空; (空为rd _ cntr==判断为wr _ cntr ) ) ) ) )。

这是结论。 那么,现在我们必须仔细想想这句话为什么这么做。

首先画形象。

那么,现在让我们来想想在各种情况下会发生什么。 在此,暂时不考虑准稳态的情况,认为同步模块取得了信号,但信号会丢失。

第一种情况我们假定写时钟特别快,读时钟都采不齐写指针。

那么,此时空逻辑是错的吗? 假设写入指针已经在1 2 3 4 5 6 7 8 9上运行,读出时钟取了1 2 6 8。 如果此时指针在8上,对比两边一样,报告“空”为“当然这是假说之一”。 那么,实际上没有空怎么样? 并不是因为我写了9就写在一个数字上。 但是,没关系。 之后,必然会取9 (或者10等)。 状态很快就会恢复正常。 或者,没有空就报告了空闲,这也是可以理解的。 因为这样,对可能会变空的FIFO停止读取,立即恢复正常,数据不会产生混乱。 空闲时无法报告,读取数据出现问题怎么办? 不,请想想。 写入指针跑得比采样快,是因为指向“不是空的”(不是越写数据越多吗),所以不会发生这样的错误。

“完全”逻辑判断没有问题,因为读取指针不会与写入时钟字段同步。

第二种情况我们假定读时钟域特别快,写时钟都采不齐读指针。

这时的逻辑错了吗? 看看吧。 同样,假设指针从1跑到9,只采样到7。 此时,如果写入指针上也写着7,比较两者就会发现写着“满”。 实际上未满,但此时外部写入也将停止。 这不会影响FIFO的数据,很快就会恢复“不满”。 此时,指针变成5的话,从两者的对比中就会出现“不满”的逻辑。 实际情况怎么样? 同样不满。 读到7的话已经不满意了,所以实际上读到9的话会更加“不满”。 这样就说明好了。

“空”逻辑的判断没有问题,因为写指针本身不会与读时钟区域同步。

接到HR的要求,我们也许可以选择一个符号:

“满”逻辑是要给谁的——给写信号告诉他你别写了——那么写指针能多跑出去么?跑多了不就把数据覆盖了!——所以必须在写时钟域进行对比;

“空”逻辑是要给谁的——给读信号告诉他你别读了——那么读指针能多跑出去么?跑多了不就读出来错误的数了!——所以在读时钟域进行对比;

现在,让我们理解到这一步吧。

疑问2:为什么要用格雷码进行同步传输?

我认为使用格雷码的好处体现在读写时钟差异不是特别大的时候。 一个1000M米,一个10M谁也救不了。 让FIFO深度无限增长吧。 那么,假设读写的时钟频率差异不大。 例如,就像133米100米。

我们不可避免地会知道这个异步时钟的采样是不经过特殊处理而被错误地采用的。 如果错误地采用或不采用单个信号,则该多个信号的读写指针很可能出现问题。 如果此时指针为1011 (二进制=2),则在向1100(2)跳转时,由于信号的前进距离不同、触发事件或逻辑门的延迟不同等原因,在其他时钟字段中为1011(2)、1110 该过程如下图所示。

所以选择格雷码,看看格雷码发生了什么。 1011(2)=1110(g ) g )、1100(2)2)=1010(g ) g ),因此格雷码跳跃为1110(g )-1010(g ) g。 让我们考虑一下采样出了问题。 因为我已经说过读写时钟频率的差不是很大,所以采样可能有1110(g )和1010(g ) g两种情况。 到另一个时钟域将转换为二进制1011(2) 2和1100(2) 2。 看到这里不是想到了什么吗! 如果得到1100的话应该没问题哦。 这是真正的值。 如果我得到1011呢? 我实际上跑到了1100,你采集了1011。 上一个问题的“指针实际上跑到9,你只采集了7。 不发生问题吗”类似吗? 答案是否定的。 其理由是,我们在进行比较时对时钟域的选择解决了这个问题。 因此,即使使用格雷码发生采样错误,也可以看到“空闲”判定并不是有问题。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。