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

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

3天内不再提示

同步FIFO设计分析

CHANBAEK 来源:数字电路IC 作者:lookoutwl 2023-09-11 17:11 次阅读

模块虽小但是要有新意,首先写一个同步FIFO,这是一个烂大街的入门级项目,但是我肯定不会写的那么简单,需求如下:

  • size=3232(高宽)
  • 同时读写
  • 给出空满、将空将满信号
  • 单口sram接到读使能下一拍出数据(或者n拍之后)

和大多数文章所写描述的同步FIFO的需求不一样的地方在于最后一个需求,内部例化的sram的读取动作不是读及读出的操作。因此基于这种sram,又要兼顾FIFO的标准协议,以及需要FIFO逻辑速度到达最优,需要对设计进行一些小的处理

下图为本次同步FIFO设计的框图:

图片

设计分析:

  1. 使用reg0的原因
    由于sram延时一拍读出,因此就需要有reg0处理延时,既只要reg0为空,寄存器就向sram读数,达到提前取数,消除延时的效果。(一般sram有几拍延时就有几个reg0)
  2. 使用reg1的原因
    reg1用于处理边界条件,在sram和reg0为空时,没有读使能的情况下写入第一个数,此时第一个数如果存入sram,则读取流程将变成sram-reg0-output,中间延迟过长,但是假如使用reg1用于存储第一个数据,则可以把这一拍数据延时解决掉。(且同上述,一般有几个reg0就有几个reg1)
  3. 使用mux2的原因
    mux2也是用于处理边界条件,在sram和所有寄存器都为空时,写使能和读使能同时来到,则数据bypass通过SYNC_FIFO模块。
  4. mux0和mux1则用于处理上述逻辑关于数据通道切换的处理。
  5. 关于sram存取、各种空满信号的判断,就不再一一叙述,想了解这方面设计可以参见网上各种同步FIFO设计。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117723
  • sram
    +关注

    关注

    6

    文章

    742

    浏览量

    113900
  • fifo
    +关注

    关注

    3

    文章

    369

    浏览量

    43069
  • 同步FIFO
    +关注

    关注

    0

    文章

    5

    浏览量

    5321
  • FIFO设计
    +关注

    关注

    0

    文章

    7

    浏览量

    4945
收藏 人收藏

    评论

    相关推荐

    同步FIFO设计详解及代码分享

    FIFO (先入先出, First In First Out )存储器,在 FPGA 和数字 IC 设计中非常常用。 根据接入的时钟信号,可以分为同步 FIFO 和异步 FIFO
    发表于 06-27 10:24 1322次阅读
    <b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>设计详解及代码分享

    握手型接口的同步FIFO实现

    按照正常的思路,在前文完成前向时序优化和后向时序优化后,后面紧跟的应该是双向时序优化策略了,不过不急,需要先实现一下握手型同步FIFO
    的头像 发表于 12-04 14:03 296次阅读
    握手型接口的<b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>实现

    可靠性设计分析系统

    要求,需要按照可靠性工作要求开展各种各样的可靠性设计分析工作。其实,这些可靠性工作,目的解决产品可靠性工程问题,严格控制和降低产品质量风险。最近,看到有一个可靠性设计分析系统PosVim,功能还比较
    发表于 12-08 10:47

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

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

    FPGA之FIFO练习3:设计思路

    根据FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO同步
    的头像 发表于 11-29 07:08 1654次阅读

    同步FIFO之Verilog实现

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

    异步FIFO之Verilog代码实现案例

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

    Verilog电路设计之单bit跨时钟域同步和异步FIFO

    FIFO用于为匹配读写速度而设置的数据缓冲buffer,当读写时钟异步时,就是异步FIFO。多bit的数据信号,并不是直接从写时钟域同步到读时钟域的。
    发表于 01-01 16:48 999次阅读

    FIFO设计—同步FIFO

    FIFO是异步数据传输时常用的存储器,多bit数据异步传输时,无论是从快时钟域到慢时钟域,还是从慢时钟域到快时钟域,都可以使用FIFO处理。
    发表于 05-26 16:12 1066次阅读
    <b class='flag-5'>FIFO</b>设计—<b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>

    FIFO设计—异步FIFO

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

    一个简单的RTL同步FIFO设计

    FIFO 是FPGA设计中最有用的模块之一。FIFO 在模块之间提供简单的握手和同步机制,是设计人员将数据从一个模块传输到另一个模块的常用选择。
    发表于 06-14 08:59 257次阅读

    基于寄存器的同步FIFO

      FIFO 是FPGA设计中最有用的模块之一。FIFO 在模块之间提供简单的握手和同步机制,是设计人员将数据从一个模块传输到另一个模块的常用选择。 在这篇文章中,展示了一个简单的 RTL
    的头像 发表于 06-14 09:02 491次阅读

    基于Verilog的同步FIFO的设计方法

    同步FIFO的设计主要包括读写地址的产生、数据的读写、以及状态的控制。下面我们将分别介绍这三个方面的设计。
    发表于 08-31 12:53 303次阅读

    为什么异步fifo中读地址同步在写时钟域时序分析不通过?

    为什么异步fifo中读地址同步在写时钟域时序分析不通过? 异步FIFO中读地址同步在写时钟域时序分析
    的头像 发表于 10-18 15:23 358次阅读

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

    同步FIFO和异步FIFO的区别 同步FIFO和异步FIFO各在什么情况下应用? 1.
    的头像 发表于 10-18 15:23 1016次阅读