dram sram利用 利用_基于SRAM的同步FIFO设计

本文探讨了同步FIFO的基础设计,包括使用寄存器和SRAM的实现方式。针对SRAM延迟问题,提出了一种内部带有缓存(cache)的FIFO设计,确保在SRAM延迟期间仍能当拍输出读数据。此外,文章还讨论了FIFO的各种状态监测和控制逻辑,以及在不同场景下的优化策略。
摘要由CSDN通过智能技术生成

在上一篇FIFO小谈中大概介绍了FIFO的基本结构,应用场景和一些深度选择的考量。这一章主要介绍一下 同步FIFO的设计 

同步FIFO根据具体的场景不同有很多不同的设计方法,比如信元FIFO每次只写一段数据,多次写之后才能将一个信元写全,更新一次信元指针。再比如用寄存器列表搭建的FIFO,一拍写入多个数据,写指针按块跳动。这些都是FIFO的特殊应用,这里只讨论最基本的FIFO。

9192031bc88a3fe3ea3de5f1293487cc.gif 使用寄存器搭建FIFO

首先看一个最简单的同步FIFO,是使用寄存器搭建的:

09e8907d584009d3a7e8687c8e4f1145.png

上图中,

输入部分为:

USER_INPUT:主要是FIFO的使用者输入到FIFO的控制信号,包括

1. 写使能

2. 写数据

3. 读使能

输出部分为:

FIFO_RDATA:主要是FIFO使用者从FIFO读出的数据

FIFO_STATUS:主要是FIFO的各种指示状态,空/满状态,将空/将满状态,水位,溢出等

整个FIFO被划分成3个子模块:

■ CTRL_GEN:用来生成FIFO储存单元的实际控制信号,包括:

1. 写指针,指向将要写的FIFO空间,该空间没有数据,满状态除外。每次有效写的下一个时钟根据写入数据数量更新到下一个写位置。

2. 读指针,指向将要读的

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值