网站首页 > 资源文章 正文
异步FIFO是一种可以实现异步读写操作,先进先出(First In First Out)的电路,通常被使用在数据传输接口的部分,用来存储、缓冲数据,解决在两个异步时钟之间的数据传输问题。
前面的文章我们了解到设计异步FIFO有两个难点:如何同步异步信号,抑制亚稳态的发生;如何正确地设计空、满标志位的控制电路。并且解决了第一个问题,今天我们来聊一聊第二个问题,空、满标志位的设计。
空\满标志位产生原则
FIFO空\满标志位的产生部分是FIFO的核心。这一部分逻辑的高效与否,直接决定了FIFO的性能。
一般情况之下,FIFO空满标志位的产生原则是:写满情况下,不能溢出;读空情况下,不能多读。
进一步解释一下这个原则,即在任何情况下,不能出现FIFO的读、写地址,指向同一个地址,进行操作的情况。
当出现读、写地址之间相差一个(阈值自己可以设置)或者位置相同的情况,并且还在进行写操作时,FIFO的满标志位,应该拉高,表示此时FIFO已满,不能再继续接受数据,外部电路应该停止继续发送数据。此时外部电路应该根据实际情况,对数据进行保持、或丢弃等操作。同理,当空标志位拉高,则表示FIFO已空,外部电路不能再继续读数据。
FIFO的设计方法
下面我们给出集中常用的设计方法,不同的设计方法,有对应的优缺点,我们需要根据自己的实际需要,进行选择。
- 通过比较读、写地址产生空满标志
通过上面的描述,可以知道,最直接的方式就是通过比较读、写地址,来产生空满标志位。过程分为以下两步:
- 计算出当前FIFO读、写地址的差值;
- 比较差值和预设值,如果两者相等,则将空 、满标志位置位。
这种方法的优点是,逻辑简单,设计方便。但是因为要计算FIFO读写地址的差值,所以如果减法器的位宽较大,则可能要产生一个很大的组合逻辑,这大概率会降低FIFO的速度。
- 只对比读写地址是否相等
为了解决上面方法中的问题,我们通常只关心读写地址是否相等,来避免减法器的引入。
当读写地址相等时,对应有空或者满两种状态。所以我们需要增加一个区间来区分当前状态时空或者满。将地址空间划分成不同的部分,以此来说明当前读写地址所处的位置。
这种方法,可以提升FIFO的运行速度,但是与此同时,因为读写地址只有相等或者不相等两种状态,所以可能会影响FIFO空满标志位判断的准确性。
- 对delay后的地址进行比较
上面两种方法,都有一定的使用风险,下面给出一种设计建议。
之前的方法是直接对比当前FIFO的读写地址,现在我们先将地址进行延时,然后再进行比较。进行这样设计的考虑,主要是对地址进行delay之后,本质上是,留出了一个(或多个)地址的余量(余量的大小和延时的多少相关)。通过组合比较当前地址,经过一级Dealy(或者多级delay)的信号组合,可以产生可靠的空满标志位。
小结
今天我们比较了集中常用的FIFO空满标志位的产生方法,实际上,在不同的应用中,根据对FIFO需求的不同(有的需要可靠性高,有的需要速度快),会有不同的设计方法。
猜你喜欢
- 2024-09-27 侧方位停车技巧,可以这样修正方向一把入库
- 2024-09-27 把PLC程序一步步讲明白了,那么PLC编程还会很难嘛?
- 2024-09-27 食品生产日期怎么标示?(食品生产日期怎么写)
- 2024-09-27 为什么CAN一致性测试中这几项如此重要?
- 2024-09-27 漫威6位超级英雄的独有标志,最后一个漫威粉也猜不出来!
- 2024-09-27 IP地址、子网掩码、及ip段-如192.168.0.1/24是什么意思?
- 2024-09-27 美式橄榄球球场的每条线的名称和作用?
- 2024-09-27 老司机用心总结,汽车上按钮图解,收藏起来随时看
- 2024-09-27 形位公差符号:掌握精度,铸就精工制造品质
- 2024-09-27 机械:产品形、位公差及符号分类图解,看公差图不求人
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)