async fifo的full和empty的判断:

1)binary进制,MSB相同时,LSB也相同,empty;

MSB不同时,LSB相同,full

2)gray code,MSB相同时,LSB也相同,empty;

MSB不同,MSB-1也不同,余下LSB相同,full;

ASYNC FIFO中的empty和full的控制流,

首先ptr,    ptr_w--------binary++---------gray code-------FF(wclk)--------SYNC FF(rclk)-------ptr_r

然后empty

fifo的深度问题:

fifo主要做异步时钟域之间的数据缓存功能。

首先应该理解清楚,该FIFO的应用场景,这会直接关系到需要缓存的数据量,FIFO的深度。

其次,在数据缓存的过程中,最好是不发生fifo,满而等待的情况,所以从带宽角度来看,一般是写的带宽大于读的带宽,

但是在这种情况下,如果写操作是连续操作,再大的FIFO也是没有意义的,所以FIFO的写入操作一般是基于Burst的,

在这种写不连续的情况下,通过FIFO,来最小化,大的带宽到小的带宽的转变。

所以FIFO的深度只与,两个带宽最大的差有关。

BW = Freq * Data_width

一般考虑的场景:空闲------Burst传输------空闲------Burst传输

极端的场景:空闲-------Burst传输-------Burst传输------空闲(背靠背传输)

一般的场景:T(Burst)*BW(read)+FIFO depth >= T(Burst)*BW(write)

且保证空闲时间内,slave可以把FIFO读空。(T(空闲)*BW(read) >= FIFO depth)

极端的场景:T(Burst)*BW(read)+FIFO depth >= 2*T(Burst)*BW(write)

且保证空闲时间内,slave可以把FIFO读空。(T(空闲)*BW(read) >= FIFO depth)

FIFO深度的更多相关文章

  1. 深入理解FIFO(包含有FIFO深度的解释)——转载

    深入理解FIFO(包含有FIFO深度的解释) FIFO: 一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行 ...

  2. 深入理解FIFO(包含有FIFO深度的解释)

    FIFO: 一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令. 1.什么是FIFO? FIFO是 ...

  3. FIFO 深度了解

    嘻哈第二篇,深度聊聊各种细节. 优化与跨时钟阈分析

  4. FIFO

    FIFO存储器 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序 ...

  5. 异步fifo的设计

    本文首先对异步 FIFO 设计的重点难点进行分析 最后给出详细代码 一.FIFO简单讲解 FIFO的本质是RAM, 先进先出 重要参数:fifo深度(简单来说就是需要存多少个数据)           ...

  6. 转:FIFO的定义与作用

    一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令. 1.什么是FIFO? FIFO是英文Firs ...

  7. Altera FIFO IP核时序说明

    ALTERA在LPM(library of parameterized mudules)库中提供了参数可配置的单时钟FIFO(SCFIFO)和双时钟FIFO(DCFIFO).FIFO主要应用在需要数据 ...

  8. FPGA FIFO深度计算

    转自:http://comm.chinaaet.com/adi/blogdetail/37555.html 首先,一定要理解清楚FIFO的应用场景,这个会直接关系到FIFO深度的计算,如果是面试官抛出 ...

  9. FIFO深度计算

    本文设计思想采用明德扬至简设计法.在使用FPGA设计系统时,常需要利用FIFO进行数据缓存保证数据不丢失,因此计算FIFO深度是至关重要的.FIFO的深度主要取决于“最恶劣”的情况,以下对于两种最常见 ...

随机推荐

  1. 纪念逝去的岁月——C++实现一个栈(使用类模板)

    这个版本是上个版本的加强版,上个版本的代码:http://www.cnblogs.com/fengbohello/p/4542912.html 目录 1.代码 2.运行结果 1.代码 1.1 调试信息 ...

  2. Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务

    系统环境: $ cat /etc/issueRed Hat Enterprise Linux Server release 5.8 (Tikanga)Kernel \r on an \m 1. 下载安 ...

  3. The Unsolvable Problem

    The Unsolvable Problem 题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=45783 题意: ...

  4. [LintCode] Count and Say 计数和读法

    The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221 ...

  5. H5学习小结——div+css创建电子商务静态网页

    使用Sublime Text软件编写电子商务类网站静态形式首页 经过差不多一星期的学习,基本掌握了div+css的用法之后,开始了实战练习.首先要做的就是要练习一下一般电子商务网页的编写,我做的是下图 ...

  6. centos下安装php后连接不上mysql

    安装完php后需要安装php的扩展比如: 安装php的扩展yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xm ...

  7. mongoDB01 介绍

    MongoDB是一个开源文档型数据库,能够提供高性能.高可用性以及自动拓展. 文档数据库 MongoDB中的一条记录就是一个文档,是一个数据结构,由字段和值对组成.MongoDB文档与JSON对象类似 ...

  8. C# Datatable排序

    在C#中要对Datatable排序,可使用DefaultView的Sort方法.先获取Datatable的DefaultView,然后设置 得到的Dataview的sort属性,最后用视图的ToTab ...

  9. DOM概述

    <!-- DOM:Document Object Model 文档对象模型 用来将标记型文档封装成对象,并将标记型文档中的所有内容(标签,文本,属性等)都封装成对象 封装成对象的目的是为了更为方 ...

  10. 8th 本周工作量及进度统计

    本周PSP: C(类别) C(内容) S(开始时间) ST(结束时间) I(中断时间) T(实际时间) 活动 本周站立会议 -- -- -- 340 撰写博客 构建之法有感 22:10 23:44 3 ...