侵权投诉

                  在FPGA设计中FIFO的使用技巧

                  FPGA设计论坛 ? 2021-09-09 11:15 ? 次阅读

                  FIFO是在FPGA设计中使用的非常频繁,也是影响FPGA设计代码稳定性以及效率等得关键因素。在数据连续读取时,为了能不间断的读出数据而又不导致FIFO为空后还错误的读出数据。可以将FIFO的Empty和Almost_empty以及读使能配合起来使用,来保证能够连续读,并准确的判断FIFO空满状态,提前决定是否能启动读使能。

                  具体的实施办法是:当Empty为1,立即停止读;当Empty为0,Almost_empty为0时,可以放心读;当Empty为0,但是Almost_empty为1时,如果上一拍读使能Read也为1,那么不能读;当Empty为0,但是Almost_empty为1时,如果上一拍读使能Read为0,可以读最后一拍。

                  在FIFO使用时,使用到Almost_full信号以及读写counter来控制FIFO的读满预警,如果数据不是在空满判断的下一拍写入FIFO,则设计FIFO的满预警时要小心。如果你不确定判断满预警之后要延迟多少拍才能真正写入FIFO,那么尽量让FIFO有足够满预警裕量。

                  例如,在wr_data_count为128才是真的满了,你可以设成wr_data_count为120的时候就给出满预警,可以保证设计的可靠和安全。当然,如果你能准确的算出判断满预警与真正写入FIFO的延迟,可以用精确的满预警阈值。

                  当需要使用到数据位宽转换时,如将128位的数据转换成64位的数据,最好不要用XILINX自己生成的位宽转换FIFO。可以例化两个64位的FIFO,自己控制128转64。这样可以大大的节省资源,是XILINX CORE生成的FIFO资源的一半。

                  另外,当需要使用到位宽大于18bits,且深度小于等于512的FIFO时,建议使用XILINX COREGenerator来产生,它可以将一个36bits位宽512深度的FIFO在一个18×1024的BLOCK RAM中实现。如果我们自己用BLOCK RAM来实现一个FIFO,那只能例化一个36×1024的BLOCK RAM基元,造成浪费。

                  责任编辑:haq

                  原文标题:FIFO使用技巧

                  文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

                  收藏 人收藏
                  分享:

                  评论

                  相关推荐

                  FPGA怎么对引脚进行分块?DDR3与FPGA的引脚连接

                  FPGA如何对引脚进行分块?是由VCC的电压不同进行自行设计分块?还是每个块的引脚都是固定的? 在进行DDR3与FPGA的...
                  发表于 11-29 16:10 ? 70次 阅读
                  FPGA怎么对引脚进行分块?DDR3与FPGA的引脚连接

                  单片机电路设计中的10个难点

                  单片机是嵌入式系统的核心元件,使用单片机的电路要复杂得多,但在更改和添加新功能时,带有单片机的电路更....
                  发表于 11-29 15:06 ? 7次 阅读
                  单片机电路设计中的10个难点

                  GDDR6给FPGA带来的大带宽存储优势以及性能测试

                  IDC预测,全球数据总量将从2019年的45ZB增长到2025年的175ZB[1]。同时,全球数据中....
                  发表于 11-29 15:00 ? 151次 阅读
                  GDDR6给FPGA带来的大带宽存储优势以及性能测试

                  XC7Z015-2CLG485I 168个一包

                  XC7Z015-2CLG485I 供应商 XC7Z015-2CLG485I怎么订货 XC7Z015....
                  的头像 黄云艳 发表于 11-29 10:31 ? 11次 阅读
                  XC7Z015-2CLG485I  168个一包

                  HMC-ALH140-DIE 低噪声放大器芯片,24 - 40 GHz 优势性能

                  HMC-ALH140 是两级 GaAs MMIC HEMT 低噪声放大器芯片,工作频率在 24 至 ....
                  的头像 黄云艳 发表于 11-29 10:27 ? 16次 阅读
                  HMC-ALH140-DIE 低噪声放大器芯片,24 - 40 GHz 优势性能

                  HMC-ALH435 低噪声放大器芯片,5 - 20 GHz 产品性能浅谈

                  HMC-ALH435 优势性能 HMC-ALH435?特征HMC-ALH435? 应用
                  的头像 黄云艳 发表于 11-29 10:27 ? 18次 阅读
                  HMC-ALH435   低噪声放大器芯片,5 - 20 GHz 产品性能浅谈

                  XC7A100T-2FGG676I 芯片详细信息浅谈

                  XC7A100T-2FGG676I 芯片详细信息如图XC7A100T-2FGG676I 供应商XC....
                  的头像 黄云艳 发表于 11-29 10:23 ? 19次 阅读
                  XC7A100T-2FGG676I 芯片详细信息浅谈

                  实现的IDEA应该使用什么样的硬件系统

                  FPGA、PLC、STM32、Arduino、单片机、计算机等概念间的关系、区别及各自的优缺点入门之初,对于标题所列各个概念总是...
                  发表于 11-29 07:56 ? 0次 阅读

                  STM327的8个串口的FIFO驱动该如何去实现呢

                  STM327的8个串口的FIFO驱动该如何去实现呢? 串口FIFO驱动该怎样移植和使用呢? ...
                  发表于 11-29 07:07 ? 0次 阅读

                  使用STM32点亮LED灯的方法

                  摘要:不知道小伙伴们点亮过多少板子的LED灯,有很多小伙伴留言说讲一下stm32、fpga、liunx他们之间有什么不同,不同点很多,...
                  发表于 11-29 06:14 ? 0次 阅读

                  XC7S25-2CSGA225I芯片详细信息

                  XC7S25-2CSGA225I供应商XC7S25-2CSGA225I怎么订货XC7S25-2CSG....
                  的头像 黄云艳 发表于 11-26 17:18 ? 38次 阅读
                  XC7S25-2CSGA225I芯片详细信息

                  OOK调制解调的FPGA实现,求Verilog代码

                  自己对FPGA刚开始学习,但又特别需要用到FPGA实现OOK的调制解调,求帮忙,由于是新人,还只有一个积分,太可怜了。求...
                  发表于 11-26 16:11 ? 388次 阅读

                  源码免费下载!C6678+K7视频采集处理方案,这里全都有

                  1.为什么说DSP+FPGA架构更适合视频采集处理?高性能的算法处理,使用硬件描述语言去编写算法的话....
                  的头像 黄工 发表于 11-26 14:37 ? 18次 阅读
                  源码免费下载!C6678+K7视频采集处理方案,这里全都有

                  负载点DC-DC转换器解决电压精度、效率和延迟问题

                  为什么使用DC-DC转换器应尽可能靠近负载的负载点(POL)电源?
                  发表于 11-26 14:14 ? 1623次 阅读
                  负载点DC-DC转换器解决电压精度、效率和延迟问题

                  电赛元器件清单多年总结及分析

                  2019元器件清单2021元器件清单一、仪器设备清单数字示波器(100MHz,双通道)函数发生器(5....
                  发表于 11-26 10:36 ? 10次 阅读
                  电赛元器件清单多年总结及分析

                  产生调幅波的几种方法

                  产生调幅波的几种方法调幅波产生随便聊聊调幅波:使载波信号随着调制信号的幅值改变而改变后调制出来的波形....
                  发表于 11-26 10:21 ? 17次 阅读
                  产生调幅波的几种方法

                  边缘AI“金矿”:PC的智能和感知,Lattice sensAI有了新方案

                  电子发烧友网报道(文/黄晶晶)ABI研究数据表明,预计到2024年设备端的AI推理功能将覆盖近60%....
                  的头像 芯链 发表于 11-26 10:14 ? 522次 阅读
                  边缘AI“金矿”:PC的智能和感知,Lattice sensAI有了新方案

                  单片机CPLD/FPGA开发综合实验的相关资料分享

                  CPLDComplex Programmable Logic Device复杂可编程逻辑器件FPGAField Programmable Gate Array现场可编程逻辑门...
                  发表于 11-25 08:19 ? 0次 阅读

                  XILINX MIG(DDR3) IP的AXI接口与APP接口的区别以及优缺点对比

                  XILINX MIG(DDR3) IP的AXI接口与APP接口的区别以及优缺点对比 ...
                  发表于 11-24 21:47 ? 42次 阅读

                  Microchip发布新款用于边缘嵌入式视觉设计的新一代开发工具

                  平台扩展了客户在从神经网络诊断到工业物联网 (IIoT) 和工厂自动化等应用中设计安全可靠系统的选择....
                  发表于 11-24 14:58 ? 1770次 阅读
                  Microchip发布新款用于边缘嵌入式视觉设计的新一代开发工具

                  HDLBits:在线学习 Verilog (二十八 · Problem 135-139)

                  本系列内容来自于知乎专栏,链接如下:https://zhuanlan.zhihu.com/c_113....
                  发表于 11-24 14:06 ? 14次 阅读
                  HDLBits:在线学习 Verilog (二十八 · Problem 135-139)

                  重磅 |芯华章发布多款新产品,打造全面数字验证解决方案

                  EDA作为数字化产业的底层关键技术,自始至终连接并贯穿了芯片与科技应用的发展。未来的数字化系统,将是....
                  发表于 11-24 10:20 ? 1051次 阅读
                  重磅 |芯华章发布多款新产品,打造全面数字验证解决方案

                  NXP-74HC595移位寄存器

                  74HC595移位寄存器
                  发表于 11-24 10:06 ? 9次 阅读
                  NXP-74HC595移位寄存器

                  关于电源排序的解决方案你了解吗

                  通过遵循推荐的电源序列,可以避免在启动期间吸取过大的电流,这反过来又可防止器件受损。对一个系统中的电源进行排序可采用多种...
                  发表于 11-24 06:30 ? 357次 阅读

                  【STM32H7教程】第19章 STM32H7的GPIO应用之按键FIFO

                  完整教程下载地址:http://forum.armfly.com/forum.php?mod=vie....
                  发表于 11-23 18:21 ? 14次 阅读
                  【STM32H7教程】第19章 STM32H7的GPIO应用之按键FIFO

                  STM32做平衡小车,代码,PCB都现成的,妈妈再也不用担心我的毕业设计了

                  ▌一、硬件介绍主控芯片用的是100脚的STM32F103VET6,陀螺仪用的是MPU6050,电机驱....
                  发表于 11-23 18:06 ? 9次 阅读
                  STM32做平衡小车,代码,PCB都现成的,妈妈再也不用担心我的毕业设计了

                  请问怎样才能得到ADS454J64EVM、TSW14J64EVM评估板中的FPGA中的程序源代码?有什么技术资料支持吗?

                  我们最近在用这个做项目,但是发现官网没有这两个评估板相关的开发资料,请问那里有这两个的技术资料吗?也期待和大家一起讨论学...
                  发表于 11-23 16:47 ? 8次 阅读

                  FPGA市场再迎新玩家,这次瞄准了超低功耗

                  尽管经历了收购和洗牌等一系列事件,FPGA市场依然处于一个相对来说被垄断的局面,Intel(Alte....
                  的头像 E4Life 发表于 11-23 09:36 ? 1695次 阅读
                  FPGA市场再迎新玩家,这次瞄准了超低功耗

                  Speedster7t FPGA芯片中GDDR6硬核控制器详解

                  每个GDDR6的硬核支持双通道。总的带宽是16Gbps x 16(位宽) x 2(通道) x 8(控....
                  发表于 11-22 17:51 ? 1284次 阅读
                  Speedster7t FPGA芯片中GDDR6硬核控制器详解

                  算法系列:基于 FPGA 的图像边缘检测系统设计(sobel算法)

                  发表于 11-22 11:05 ? 202次 阅读

                  2021-07-14 串口 、并口、接口划分(UART、RS232、RS422、RS485、TTL、USB)

                  文章目录前言一、串口是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的....
                  发表于 11-22 09:51 ? 50次 阅读
                  2021-07-14 串口 、并口、接口划分(UART、RS232、RS422、RS485、TTL、USB)

                  IIC及AT24C02的读写(单片机实验)

                  IIC及AT24C02的读写(单片机实验)有问题欢迎私信哦课程设计(综合实验)内容及要求通过IIC总....
                  发表于 11-22 09:21 ? 31次 阅读
                  IIC及AT24C02的读写(单片机实验)

                  PWM控制直流电机(单片机实验)

                  PWM控制直流电机(单片机实验)有问题欢迎私信哦一.题目设计电路,使用定时器实现PWM对直流电机的转....
                  发表于 11-22 09:21 ? 60次 阅读
                  PWM控制直流电机(单片机实验)

                  【正点原子FPGA连载】第三章 硬件资源详解 -摘自【正点原子】新起点之FPGA开发指南_V2.1

                  1)实验平台:正点原子新起点V2开发板2)平台购买地址:https://detail.tmall.c....
                  发表于 11-21 14:06 ? 6次 阅读
                  【正点原子FPGA连载】第三章 硬件资源详解 -摘自【正点原子】新起点之FPGA开发指南_V2.1

                  谁能教教我怎么学单片机,怎么入门?

                  大家好,我是张巧龙,本次分享一篇单片机自学教程。文章较长,建议先收藏后再慢慢品尝,肯定会有收货的!0....
                  发表于 11-21 13:21 ? 18次 阅读
                  谁能教教我怎么学单片机,怎么入门?

                  Arduino,FPGA,51单片机,STM32,MSP430使用区别

                  本文简单介绍Arduino,FPGA,51单片机,STM32,MSP430的使用区别,以点亮一盏LE....
                  发表于 11-19 17:51 ? 44次 阅读
                  Arduino,FPGA,51单片机,STM32,MSP430使用区别

                  武汉万象奥科:嵌入式开发的三种方案!

                  嵌入式开发是指利用分立元件或集成器件进行电路设计、结构设计,再进行软件编程(通常是高级语言),实验,....
                  的头像 李娟 发表于 11-19 17:47 ? 24次 阅读
                  武汉万象奥科:嵌入式开发的三种方案!

                  MSP430学习笔记-架构篇

                  最近开始接触MSP430单片机了,打算先把手册结合着书看一遍,之后用来做一个小玩意儿。学习笔记就按照....
                  发表于 11-19 17:36 ? 27次 阅读
                  MSP430学习笔记-架构篇

                  合见工软发布先进FPGA原型验证系统UniVista Advanced Prototyping System

                  UV APS作为合见工软首次推出的EDA原型验证产品系列已通过业内客户的检验,全面覆盖各种验证场景的....
                  发表于 11-19 17:23 ? 1905次 阅读
                  合见工软发布先进FPGA原型验证系统UniVista Advanced Prototyping System

                  史上最全的LED点灯程序—使用STM32、FPGA、Linux点亮你的LED灯

                  摘要:不知道小伙伴们点亮过多少板子的LED灯,有很多小伙伴留言说讲一下stm32、fpga、liun....
                  发表于 11-19 13:36 ? 23次 阅读
                  史上最全的LED点灯程序—使用STM32、FPGA、Linux点亮你的LED灯

                  FPGA、PLC、STM32、单片机、计算机等概念间的关系、区别及各自的优缺点

                  FPGA、PLC、STM32、Arduino、单片机、计算机等概念间的关系、区别及各自的优缺点入门之....
                  发表于 11-19 13:06 ? 35次 阅读
                  FPGA、PLC、STM32、单片机、计算机等概念间的关系、区别及各自的优缺点

                  简谈CPU、MCU、FPGA、SoC芯片异同之处

                  简谈CPU、MCU、FPGA、SoC芯片异同之处今天和大侠简单聊一聊CPU、MCU、FPGA、SoC....
                  发表于 11-19 12:21 ? 128次 阅读
                  简谈CPU、MCU、FPGA、SoC芯片异同之处

                  STM32单片机配置FPGA

                  STM32单片机配置FPGA一、硬件信息1.FPGA:EP4CE10E22C8N2.单片机:STM3....
                  发表于 11-18 20:06 ? 23次 阅读
                  STM32单片机配置FPGA

                  SiT9121:高灵活度、可编程差分晶振,FPGA时钟伴侣

                  关于作者--SiTime样品中心为了加速SiTime MEMS硅晶振产品的应用普及,让中国电子工程师能快速体验
                  的头像 SiTime样品中心 发表于 11-18 18:13 ? 442次 阅读
                  SiT9121:高灵活度、可编程差分晶振,FPGA时钟伴侣

                  芯华章宣布朱洪辰出任副总裁,强化技术解决方案的开发与部署

                  11月17日,芯华章科技股份有限公司宣布朱洪辰(Joyee Zhu)于2021年11月2日加盟芯华章....
                  的头像 西西 发表于 11-18 16:40 ? 2031次 阅读
                  芯华章宣布朱洪辰出任副总裁,强化技术解决方案的开发与部署

                  瑞萨将会有新动作,或将涉足新领域

                  先进半导体解决方案的主要供应商瑞萨电子公司今天宣布,它正在进入现场可编程门阵列 (FPGA) 市场,....
                  发表于 11-18 16:35 ? 55次 阅读

                  CAN总线特点及FPGA的实现

                  【科普】CAN总线介绍及FPGA实现方案简介 这里我们先逆推一下CAN总线的一些特点。 第一,CAN....
                  的头像 OpenFPGA 发表于 11-18 16:35 ? 442次 阅读
                  CAN总线特点及FPGA的实现

                  电子学报第七期《一种可配置的CNN协加速器的FPGA实现方法》

                  电子学报第七期《一种可配置的CNN协加速器的FPGA实现方法》
                  发表于 11-18 16:31 ? 25次 阅读

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(11)

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(11)
                  发表于 11-18 16:24 ? 23次 阅读

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(10)

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(10)
                  发表于 11-18 16:21 ? 18次 阅读

                  GameBoy硬件介绍及FPGA实现

                  拯救童年系列-GameBoy介绍及FPGA实现 这个掌上游戏机应该不需要过多言语,大部分的80后、9....
                  的头像 OpenFPGA 发表于 11-18 16:20 ? 276次 阅读

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(9)

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(9)
                  发表于 11-18 16:18 ? 23次 阅读

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(8)

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(8)
                  发表于 11-18 16:07 ? 13次 阅读

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(7)

                  设计参考书籍-Xilinx FPGA伴你玩转USB3.0与LVDS(7)
                  发表于 11-18 16:02 ? 17次 阅读

                  FPGA和USB3.0通信-硬件测试之SDK的安装

                  FPGA和USB3.0通信-硬件测试(一)SDK的安装 本次演示用的是USB3.0芯片-CYPRES....
                  的头像 OpenFPGA 发表于 11-18 14:20 ? 233次 阅读
                  FPGA和USB3.0通信-硬件测试之SDK的安装

                  TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

                  TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。 远程精度为±1 °C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。 TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150°C),二极管故障检测和温度警报功能。 TMP411器件采用VSSOP-8和SOIC-8封装。 特性 ±1°C远程二极管传感器 ±1°C本地温度传感器 可编程非理想因素 串联电阻取消 警报功能 系统校准的偏移寄存器 与ADT7461和ADM1032兼容的引脚和寄存器 可编程分辨率:9至12位 可编程阈值限...
                  发表于 09-19 16:35 ? 366次 阅读
                  TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

                  TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器

                  TMP468器件是一款使用双线制SMBus或I 2 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。 八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。 TMP468器件可提供高测量精度(0.75°C)和测量分辨率(0.0 625°C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55°C至+ 150°C的温度范围。 特性 8通道远程二极管温度传感器精度:±0.75&...
                  发表于 09-18 16:05 ? 276次 阅读
                  TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器
                  欧美美女的白虎