0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FIFO漫谈之异步FIFO空满信号的产生位置

路科验证 来源:芯时代青年 2024-03-19 13:37 次阅读

格雷码的事聊完了,后面顺理成章的就是读写通路模块的设计。不过在读写控制通路之前还要明确下另一个问题,就是空满信号的产生位置的事情。

这个问题在面试时的问法是:空满信号分别在哪个时钟域产生?

众所周知,信号跳变时打两拍(或者三拍)能够消除亚稳态,但是信号从亚稳态恢复的时候不一定恢复成0还是1。而因为格雷码每次变化1比特的特性,可以保证即使恢复错了也不过是错成之前的值罢了。

当然了即使没有亚稳态误恢复的问题,读写指针传到对面的时钟域去,总归会延迟好几拍的,所以在写时钟域看到的读指针是落后于实时读指针的,同理读时钟域看到的写指针也是落后于真实的写指针的。

910c4d72-e5ae-11ee-a297-92fbcf53809c.png

那么来分析下滞后的影响,令fifo_cnt为fifo中已有的数据量计数值。

1.waddr准确,raddr滞后,那么计算得到fifo_cnt会偏大。如waddr=7,raddr=4,滞后的raddr=1,计算得到fifo_cnt为6,而实际上fifo_cnt为3;

2.waddr滞后,raddr准确,那么计算得到fifo_cnt会偏小。如waddr=7,raddr=4,滞后的waddr=5,计算得到fifo_cnt为1,而实际上fifo_cnt为3;

进一步的,如果fifo_cnt计算偏大了,对于读和写来说会有什么影响呢?读可能发生功能问题,写可能发生性能问题。读可能发生功能问题在于,本来你里面没数了,结果fifo_cnt算的偏大还以为有数,有数就能读一读就出错了。写可能发生性能问题在于,本来你里面没满呢,结果fifo_cnt算的偏大还以为满了,满了就不能写本来能写的写不进去那性能不就降下来了么。

如果fifo_cnt计算偏小了,对于读和写来说会有什么影响呢?读可能发生性能问题,写可能发生功能问题。读可能发生性能问题在于,本来你里面还有数,结果fifo_cnt算的偏小还以为没数了,没数了就不能读了。写可能发生功能问题在于,本来你已经满了,结果fifo_cnt算的偏小还以为没满,没满就能写一写就出错了。

所以,对于写fifo而言,fifo_cnt计算偏小不可接收,fifo_cnt计算偏大可以接收,所以满信号必须由准确的waddr和滞后的raddr产生,也就是在写时钟域产生。

对于读fifo而言,fifo_cnt计算偏小可以接收,fifo_cnt计算偏大不可接收。所以空信号必须由滞后的waddr和准确的raddr产生,也就是在读时钟域产生。

91181a8a-e5ae-11ee-a297-92fbcf53809c.jpg



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • fifo
    +关注

    关注

    3

    文章

    387

    浏览量

    43649
  • 格雷码
    +关注

    关注

    2

    文章

    34

    浏览量

    13185
  • 时钟域
    +关注

    关注

    0

    文章

    52

    浏览量

    9535

原文标题:【芯片设计】FIFO漫谈之异步FIFO空满信号的产生位置

文章出处:【微信号:Rocker-IC,微信公众号:路科验证】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求助 FPGA 异步FIFO IP核

    各位大神: 异步FIFO 信号为什么都是高?描述如下:always @(posedge DFIFO_clk or negedge rs
    发表于 07-01 01:51

    异步FIFO指针同步产生的问题

    如图所示的异步FIFO,个人觉得在读写时钟同步时会产生两个时钟周期的延时,如果读写时钟频率相差不大,某一时刻读写指针相等,当写指针同步到读模块时会产生延时,实际同步到读模块的写指针是两
    发表于 08-29 18:30

    【锆石A4 FPGA试用体验】fifo实验(2)-异步fifo

    本帖最后由 630183258 于 2016-11-5 17:31 编辑 一、异步fifo的原理图管脚定义:data输入数据q输出数据wrreq写使能信号,高电平有效wrfull写数据
    发表于 11-05 16:57

    关于异步fifo的安全问题:

    关于异步fifo的安全问题:1. 虽然异步fifo可以提供多个握手信号,但真正影响安全性能的就两个:2. 一个是读时钟域的空
    发表于 03-05 10:40

    高速异步FIFO的设计与实现

    本文主要研究了用FPGA 芯片内部的EBRSRAM 来实现异步FIFO 设计方案,重点阐述了异步FIFO 的标志信号——
    发表于 01-13 17:11 40次下载

    Camera Link接口的异步FIFO设计与实现

    介绍了异步FIFO在Camera Link接口中的应用,将Camera Link接口中的帧有效信号FVAL和行有效信号LVAL引入到异步
    发表于 07-28 16:08 32次下载

    异步FIFO结构及FPGA设计

    异步FIFO结构及FPGA设计,解决亚稳态的问题
    发表于 11-10 15:21 4次下载

    异步FIFO的设计分析及详细代码

    本文首先对异步 FIFO 设计的重点难点进行分析,最后给出详细代码。 一、FIFO简单讲解 FIFO的本质是RAM, 先进先出 重要参数:fifo
    发表于 11-15 12:52 8620次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>的设计分析及详细代码

    基于异步FIFO结构原理

    在现代的集成电路芯片中,随着设计规模的不断扩大,一个系统中往往含有数个时钟。多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步FIFO(Firstln F irsto ut)是解决这个
    发表于 02-07 14:22 0次下载
    基于<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>结构原理

    同步FIFOVerilog实现

    FIFO的分类根均FIFO工作的时钟域,可以将FIFO分为同步FIFO异步FIFO。同步
    的头像 发表于 11-01 09:57 1977次阅读

    异步FIFOVerilog代码实现案例

    同步FIFO的意思是说FIFO的读写时钟是同一个时钟,不同于异步FIFO异步FIFO的读写时钟
    发表于 11-01 09:58 1662次阅读

    异步fifo详解

    异步fifo详解 一. 什么是异步FIFO FIFO即First in First out的英文简称,是一种先进先出的数据缓存器,与普通存储
    的头像 发表于 12-12 14:17 4158次阅读

    FIFO设计—异步FIFO

    异步FIFO主要由五部分组成:写控制端、读控制端、FIFO Memory和两个时钟同步端
    发表于 05-26 16:17 1537次阅读
    <b class='flag-5'>FIFO</b>设计—<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>

    FIFO相关信号状态的原理说明

    FIFO(First In First Out)是异步数据传输时经常使用的存储器。该存储器的特点是数据先进先出(后进后出)。
    发表于 05-29 15:35 7570次阅读
    <b class='flag-5'>FIFO</b>相关<b class='flag-5'>信号</b>及<b class='flag-5'>空</b><b class='flag-5'>满</b>状态的原理说明

    同步FIFO异步FIFO的区别 同步FIFO异步FIFO各在什么情况下应用

    简单的一种,其特点是输入和输出都与时钟信号同步,当时钟到来时,数据总是处于稳定状态,因此容易实现数据的传输和存储。 而异步FIFO则是在波形的上升沿和下降沿上进行处理,在输入输出端口处分别增加输入和输出指针,用于管理数据的读写。
    的头像 发表于 10-18 15:23 1681次阅读