您的位置 首页 主动

一种读写深度可装备的异步FIFO规划

引言随着设计复杂度的不断提高,现代电子信息设计中,单一时钟驱动已无法满足设计与应用的需求。基于多时钟驱动的设计已经越来越普遍,在异步时钟域的设计中,跨时钟域数据信号传输是必须考虑的一个问题。控制

导言
跟着规划复杂度的不断进步,现代电子信息规划中,单一时钟驱动已无法满意规划与运用的需求。依据多时钟驱动的规划现已越来越遍及,在异步时钟域的规划中,跨时钟域数据信号传输是有必要考虑的一个问题。操控信号一般运用握手协议来完成异步传输,关于异步时钟域大数据量的传输则常常运用异步FIFO来完成。
依据FIFO进行跨时钟域数据传输的详细规划,首要借助于FIFO的空/满状况信号来操控对FIFO的读写操作。在部分运用处理器检测空/满状况标志的规划中,当FIFO现已空或满时,处理器会呈现来不及呼应的状况,然后形成数据的溢出或许数据流的断流现象。这无法满意一些规划的严厉要求,所以就有了半空/半满标志的运用。但针对一些大容量的FIFO,简略运用半空/半满标志进行FIFO的读写操控时,由于详细运用的不同,会有部分FIFO的存储资源没有运用,形成硬件资源的糟蹋。
针对这一现状,本文提出一种读写深度可装备的FIFO规划。经过对寄存器的装备,来设定发生有用FIFO读写操控信号时FIFO的深度。在进步硬件资源使用率的一起,还能够经过寄存器的装备,使规划满意于不同的详细运用。

1 异步FIFO的作业原理简述
通用异步FIFO的原理结构图如图1所示。由图中能够看出,异步FIFO由4部分组成:存储器模块、写地址逻辑模块、读地址逻辑模块、同步模块。其间,写地址逻辑模块和读地址逻辑模块是两个彼此独立的时钟域模块。

a.JPG

FIFO的空/满状况的判别是FIFO规划中的一个要害部分,首要经过对读/写地址的比较来完成。鉴于读/写地址的操控逻辑别离作业在各自的时钟域下,进行比较时,通常将二进制码的地址转换为格雷码的编码办法,传输到异步时钟域再进行比较,以使亚稳态的发生处于能够承受的规模之内。关于FIFO的读写,当FIFO的满状况信号有用时,制止写操作;当FIFO的空状况有用时,制止读操作。

2 深度可装备的异步FIFO规划
本文所提出的深度可装备异步FIFO的规划,在通用异步FIFO的基础上,添加半空/半满状况标志的发生,一起经过寄存器的装备,可动态调整所添加状况标志的发生条件,然后完成运用中的深度可装备。其接口框图如图2所示。

b.JPG

各接口的说明为:wdata为写入数据,rdata为读出数据;wrst_n为写时钟复位信号,rrst_n为读时钟复位信号;wr_en为写使能信号,rd_en为读使能信号;welk为写时钟,rclk为读时钟;full为输出满状况信号,empty为输出空状况信号;hempty为半空信号,hfull为半满信号;详细半空半满信号的发生可由rd_depth_reg与wr_depth_reg操控。
在选用此FIFO的规划中,full与empty信号别离用于操控写操作与读操作。当full有用时,制止写操作。相同,当empty有用时,制止读操作,然后避免写掩盖与读空的发生。可是在数据途径中,为了避免读数据流的连续,在半空状况时就会开端写操作;在半满状况时就开端读操作,避免写满后制止写操作再进行读取形成数据的丢掉。
在FIFO的逻辑规划中,空/满及半空/半满状况标志的发生都是由读/写地址的指针来判别的。关于空状况首要有两种状况:复位时读/写指针持平或许读指针赶上写指针状况。可是,若写指针循环一次赶上读指针时,此刻读/写指针持平应该为满状况。所以,独自的从读/写指针是否持平不能判别是空状况仍是满状况。
一种区别空和满状况的规划办法是,对两个指针各添加一个冗余位。当写指针添加到最后的FIFO地址时,写指针将添加没有用到的最高位,一起复位其他位,FIFO的空满条件如图3所示(FIFO转过一圈,并置位最高位)。读指针也是相同的状况。假如两个指针的最高位是不同的,则意味着写指针比读指针多转了一圈。假如两个指针的最高位是相同的,则意味着两个指针转过了相同的圈数。n位的指针中,用n-1位来指向整个FIFO的内存缓冲区。当两个指针包含最高位在内的一切位都持平时,FIFO为空。当两个指针除了最高位外,其他位都持平时,FIFO为满。

c.JPG

半空/半满状况信号的发生与空/满状况相似,依据对读写指针除掉冗余位差值的比较,来判别半空半满状况。当冗余位相一起,半满信号为写指针减去读指针大于FIFO物理深度的一半,半空信号则为差值小于FIFO物理深度的一半。当冗余位不一起,半满信号为读指针减去写指针小于FIFO物理深度一半,半空信号为差值大于FIFO物理深度的一半。
在部分实践运用中,若严厉依照半空/半满条件,尽管确保了数据的不丢掉,但数据突发传输的深度仅为FIFO物理深度的一半,然后形成了对硬件逻辑资源的糟蹋。因而,关于半空/半满状况标志的判别,临界值选用寄存器装备的办法确保数据的不丢掉,一起又尽可能地使用现有FIFO的存储资源,进步数据吞吐率。

结语
本文对异步FIFO的作业原理进行了简略介绍,一起提出了一种深度可装备的异步FIFO的规划办法。这种深度可装备的异步FIFO的规划办法,关于含有DMA外设的电路及在高速数据传输体系中,可进行高效牢靠的数据读取操作,一起可进步硬件资源的使用率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/283898.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部