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

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

3天内不再提示

关于另外一种设计异步FIFO的简介

冬至子 来源:长点芯 作者:阿杰 2023-10-20 10:50 次阅读

设计者为了提升FIFO的速度使用了将二进制计数器和格雷码计数器结合在一起的方法,从最开始用一组寄存器来进行格雷码到二进制码的转换,二进制码的递增和二进制码到格雷码的转换,到后来的style#2(如图)。

在本篇当中,作者进一步对此设计进行了说明,使用这种格雷码计数器的目的是利用了二进制数进位的机制简化了格雷码到二进制码的转换电路来减少组合逻辑电路,这样整个计数器的工作频率上限就会有所提升。

图片

Dual n-bit Gray Code counter style#2

但是,可以看到这里的设计需要使用两组寄存器,这里可能会体现到PPA trade-off的思想了(因为我也没有实验过这种替换方式会不会带来更大的面积损耗)。不过,对FPGA来讲,FPGA包含着许多寄存器资源,所以使用FPGA来实现这种设计方法就不需要考虑面积上的损耗,更能凸显出速度提升上的优势!

上文说到,设计FIFO中最重要的部分也是最难的部分之一就是如何产生空满标志信号。一种方法就是上一篇提到的使用发送到对面时钟域的同步后的格雷码指针来进行比较,从而判断空满信号的产生。而另外一种方法就是本篇文章所提到的,指针的比较不再是同步的了,而是通过“异步”比较,并判断空满信号。

上篇文章提到的判断空满信号的方法是比较指针是否一样,并通过多增加一个bit位来讨论指针被套圈的问题。不同于上个设计,本篇文章提出了一个更有创意的思路来判断空满信号的产生。

作者将FIFO的地址分成了四个区间并通过编码两个指针计数器最高的两位来比较判断FIFO将要空满的 趋势 。举个栗子,如果写指针落在读指针后面一个区间则表示FIFO将要满,然后当指针重合时则将direction寄存器置位,如下图。

图片

FIFO is going full because the wptr trails the rptr by one quadrant

而如果写指针落在读指针前面一个区间则代表FIFO将要空,然后当指针重合的时候则将direction寄存器复位。

图片

FIFO is going empty because the rptr trails the wptr by one quadrant

结语:

这篇文章理解起来可能要比前一篇更难理解一点,给我的感觉就是看起来很晕。没有把握给大家阐明清楚,所以就不再做更深入的探讨了。还是推荐大家如果对这个设计方法感兴趣的话可以读一下原文。

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

    关注

    45

    文章

    3639

    浏览量

    134444
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120261
  • 二进制
    +关注

    关注

    2

    文章

    795

    浏览量

    41645
  • FIFO存储
    +关注

    关注

    0

    文章

    103

    浏览量

    5969
  • 组合逻辑电路

    关注

    6

    文章

    70

    浏览量

    14649
收藏 人收藏

    评论

    相关推荐

    用FPGA芯片实现高速异步FIFO一种方法

    现代集成电路芯片中,随着设计规模的不断扩大。个系统中往往含有数个时钟。多时钟带来的个问题就是,如何设计异步时钟之间的接口电路。异步 FIFO
    发表于 05-28 10:56 3834次阅读

    基于FPGA的异步FIFO的实现

    大家好,又到了每日学习的时间了,今天我们来聊聊基于FPGA的异步FIFO的实现。 FIFO简介
    的头像 发表于 06-21 11:15 6511次阅读
    基于FPGA的<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>的实现

    关于异步fifo的安全问题:

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

    请问怎样去设计一种异步FIFO

    为什么要设计一种异步FIFO异步FIFO的设计原理是什么?怎样去设计一种
    发表于 06-18 09:20

    异步FIFO结构及FPGA设计

    首先介绍异步FIFO 的概念、应用及其结构,然后分析实现异步FIFO的难点问题及其解决办法; 在传统设计的基础上提出一种新颖的电路结构并对其
    发表于 04-16 09:25 46次下载

    一种异步FIFO的设计方法

    摘要:使用FIFO同步源自不同时钟域的数据是在数字IC设计中经常使用的方法,设计功能正确的FUFO会遇到很多问题,探讨了两不同的异步FIFO的设计思路。两
    发表于 03-24 12:58 769次阅读
    <b class='flag-5'>一种</b><b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>的设计方法

    异步FIFO结构及FPGA设计

    摘要:首先介绍异步FIFO的概念、应用及其结构,然后分析实现异步FIFO的难点问题及其解决办法;在传统设计的基础上提出一种新颖的电路结构并对
    发表于 06-20 12:46 3865次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>结构及FPGA设计

    基于FPGA的异步FIFO设计方法详解

    在现代电路设计中,个系统往往包含了多个时钟,如何在异步时钟间传递数据成为个很重要的问题,而使用异步FIFO可以有效地解决这个问题。
    发表于 07-17 08:33 8387次阅读
    基于FPGA的<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>设计方法详解

    基于异步FIFO结构原理

    问题一种简便、快捷的解决方案。使用异步FIFO可以在两个不同时钟系统之间快速而方便地传输实时数据。在网络接口、图像处理等方面,异步FIFO
    发表于 02-07 14:22 0次下载
    基于<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>结构原理

    关于一种面向异步FIFO的低开销容错机制研究

    异步FIFO(Fist-In-First-Out)是一种先入先出的数据缓冲器[1]。由于可以很好地解决跨时钟域问题和不同模块之间的速度匹配问题,而被广泛应用于全局异步局部同步[2](G
    的头像 发表于 06-19 15:34 3185次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>一种</b>面向<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>的低开销容错机制研究

    一种基于FPGA内部存储器的适合音频解嵌的高效异步FIFO设计

    异步FIFO存储器是一种在数据交互系统中得到广泛应用的先进先出逻辑器件,具有容纳异步信号的频率(或相位差异)的特点。使用异步
    发表于 01-29 16:54 890次阅读
    <b class='flag-5'>一种</b>基于FPGA内部存储器的适合音频解嵌的高效<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>设计

    异步fifo详解

    异步fifo详解 . 什么是异步FIFO FIFO即First in First out的英文
    的头像 发表于 12-12 14:17 4165次阅读

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

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

    请问异步FIFO的溢出操作时怎么样判断的?

    请问异步FIFO的溢出操作时怎么样判断的? 异步FIFO是数据传输的一种常用方式,在些储存器和
    的头像 发表于 10-18 15:28 1621次阅读

    同步FIFO异步FIFO区别介绍

    1. FIFO简介 FIFO一种先进先出数据缓存器,它与普通存储器的区别是没有外部读写地址线,使用起来非常简单,缺点是只能顺序读写,而不能随机读写。 2. 使用场景 数据缓冲:也就是
    的头像 发表于 06-04 14:27 1568次阅读
    同步<b class='flag-5'>FIFO</b>和<b class='flag-5'>异步</b><b class='flag-5'>FIFO</b>区别介绍