FIFO是FPGA设计中最常用的IP,读写时序相对简单,可能正是因为这个原因,通常不会去细读FIFO手册,具体怎么操作大概清楚,上手就写,一般不会出什么问题。最近却遇到读FIFO异常的情况,特意记录一下,顺便细读了一下PG057。

FIFO读操作异常

数据写入FIFO后,读取数据,没有输出。

FIFO 读时序

下图是pg057读时序图,在文档中读到这样一句话:

shows a standard read access. When you write at least one word into the FIFO,
empty is deasserted — indicating that the data is available to be read。

当FIFO中的empyt信号为0时,才可以读FIFO。

为什么原来不出这种错误呢

仔细观察抓到的时序图发现,从写使能有效到empty由高变低经历了几个时钟周期,之前使用FIFO时,empty应该是在写使能下一个周期就置低了。差异就在于以前FIFO读写都是8bit数据,这次是64bit数据。应该是输入位宽导致empty的变化。

读写位宽不同时

FIFO输入为64bit,输出为32bit。

当向FIFO写入64‘h090a0b0c0d0e0f10时,从输出端先读出32’h090a0b0c,后读出32‘h0d0e0f10。

使用valid信号

valid不是必须使用信号,但该信号指示读出数据有效状态,非常有用。

First-Word Fall-Through与Show-ahead

在读使能信号有效之前,FIFO输出数据,这个功能在Xilinx叫First-Word Fall-Through,Intel叫Show-ahead。功能类似,在使用First-Word Fall-Through时,valid信号不再能准确只是输出有效。在有效情况下使用First-Word Fall-Through会更方便,但我有时更愿意麻烦点,使用标准FIFO,因为遇到做器件移植的情况,要移植的器件不支持这种模式,需要修改时序。

Underflow 与Overflow

Underflow

Underflow用来指示读操作不成功,当FIFO为空时,进行读操作,该信号触发。

Overflow

Overflow用来指示写操作不成功,当FIFO为满时,进行写操作,该信号触发。

FIFO实现

Intel FPGA的FIFO通常由两种资源实现,Block RAM和 Distributed RAM。Xilinx有如下四种资源实现。

FIFO读数据异常分析相关推荐

  1. [解决问题]selenium.remote.UnreachableBrowserException 异常分析并解决问题

    [解决问题]selenium.remote.UnreachableBrowserException 异常分析并解决问题 参考文章: (1)[解决问题]selenium.remote.Unreachab ...

  2. java.lang.ArrayIndexOutOfBoundsException异常分析及解决

    2019独角兽企业重金招聘Python工程师标准>>> java.lang.ArrayIndexOutOfBoundsException异常分析及解决 这是一个非常常见的异常,从名字 ...

  3. LCD显示异常分析——开机闪现花屏【转】

    转自LCD显示异常分析--开机闪现花屏 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现. 其实这类问 ...

  4. java异常——分析堆栈跟踪元素+使用异常机制的技巧

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常--分析堆栈跟踪元素+使用异常机制的技巧 的相关知识: [1]分析堆栈跟踪元素相关 ...

  5. Linux Kernel Oops异常分析

    0.linux内核异常常用分析方法 异常地址是否在0附近,确认是否是空指针解引用问题 异常地址是否在iomem映射区,确认是否是设备访问总线异常问题,如PCI异常导致的地址访问异常 异常地址是否在st ...

  6. createsemaphore 异常_浅析SPC之异常分析

    未来能源的短缺及资源匮乏,导致各国都在寻求替代能源以避免发生无资源可用的情况.汽油替代能源-生质酒精由此得到了广泛的应用. 生质酒精属于生质燃料(Biofuel)的一种,是由生物或化学转换成生物质(b ...

  7. Spring Boot————BeanCreationNotAllowedException异常分析

    引言 在对数据库进行新增记录的JUnit测试时,抛出一个BeanCreationNotAllowedException异常: 异常分析与解决 异常信息太长,图片截不下,粘贴来看: Exception ...

  8. Enterprise Services (COM+)服务组件开发异常分析

    Enterprise Services (COM+)服务组件开发异常分析<?xml:namespace prefix = o ns = "urn:schemas-microsoft-c ...

  9. 经验:Library Cache Lock之异常分析-云和恩墨技术通讯精选

    亲爱的读者朋友: 为了及时共享行业案例,通知共性问题,达成共享和提前预防,我们整理和编辑了<云和恩墨技术通讯>,通过对过去一段时间的知识回顾,故障归纳,以期提供有价值的信息供大家参考.同时 ...

  10. FPGA系统时间戳偶尔异常分析及定位

    1.1 FPGA系统时间戳偶尔异常分析及定位 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA系统时间戳偶尔异常分析及定位: 5)结束语. 1.1.2 本节引言 ...

最新文章

  1. 零基础入门学习Python(3) 变量与字符串
  2. 机械爪角度与距离之间的关系
  3. linux的write是线程安全的吗,socket的write/send还是是否是线程安全?
  4. js数组的定义方法与基本使用
  5. linux 环境下配置ftp服务器
  6. python 包和模块的区别_3分钟带你搞懂Python模块、包的区别和使用
  7. 浅谈 SQL Server 内部运行机制
  8. 第一章:Chrome 43 配置 java + selenium 环境
  9. 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
  10. DOS窗口的一些简单介绍
  11. 步进电机基础(5.9)-步进电机的驱动与控制-三相步进电机的驱动电路
  12. matlab 求不规则体积,matlab,求不规则三维图形体积?
  13. HTML5CSS3笔记:CSS3选择器、字体和颜色模式
  14. WPF基础之XAML----(XAML 根元素和 xmlns,事件和 XAML 代码隐藏)
  15. 正常情况下如何卸载计算机软件?
  16. 深度剖析CMOS、FinFET、SOI和GaN工艺技术
  17. 当房地产插上数字翅膀后,成本收益几何?|2021中国房地产数字峰会
  18. 24.线程系列- google提供的一些好用的并发工具类
  19. 计算机一级里面有ppt,计算机一级.ppt
  20. 系统的存储分离之----cifs文件管理系统

热门文章

  1. arm板发热和功耗探讨
  2. Mac VMWare键盘鼠标失灵
  3. 无线信道仿真 matlab,基于Matlab的无线信道仿真.doc
  4. TP5加支付宝手机网站支付配置
  5. mixamo进不去_酷站推荐!3D人物动画工具
  6. Windows7不停弹出计算机界面,拨号连接自动弹出,教您如何解决电脑总是自动弹出...
  7. 使用dos删除隐藏的.git文件
  8. cnzz.php,PHP curl抓取cnzz统计数据
  9. 短诗整理5—景物+记事
  10. 观3b1b线性代数本质系列视频的思考感悟