0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Altera FPGA中使用FIFO实现功能设计?

FPGA之家 来源:FPGA学习交流 作者:FPGA学习交流 2021-03-12 16:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一:fifo是什么

FIFO的完整英文拼写为FirstIn First Out,即先进先出。FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个存储器,常被用于数据的缓存或者高速异步数据的交互。

二:FIFO有几种结构

FIFO从大的情况来分,有两类结构:单时钟FIFO(SCFIFO)和双时钟FIFO(DCFIFO),其中双时钟FIFO又可以分为普通双时钟(DCFIFO)和混合宽度双时钟FIFO (DCFIFO_MIXED_WIDTHS)。三种FIFO结构的英文含义如下所示:

•SCFIFO: 单时钟FIFO

•DCFIFO:双时钟 FIFO

•DCFIFO_MIXED_WIDTHS: 混合宽度双时钟

在没有特别指明的情况下,混合宽度双时钟FIFO和双时钟FIFO统称为双时钟FIFO。

下图为分别为单时钟FIFO和双时钟FIFO的符号图:

8c05d538-82f5-11eb-8b86-12bb97331649.png

从图中我们可以看到,单时钟FIFO具有一个独立的时钟端口clock,当Clock上升沿到达时,且wrreq有效时,将data[7..0]中的数据写入FIFO;当Clock上升沿到达时,且rdreq有效时,将q[7..0]中的数据输出FIFO;full是满标志位,当FIFO写满时有效,almost_full是将满标志,当快写满时有效,almost_full数值可以配置;同理empty与almost_empty是空标志和将要空标志,自己也可以配置almost_empty。usedw[7..0]是当前FIFO可以使用的数据。sclr是同步清零,当有效时且Clocks上升沿到达时清楚FIFO的数据;aclr是异步清零,当有效时清除FIFO的数据。

双时钟FIFO和单时钟FIFO基本一样,就是读写分别采用不同的时钟信号。wrfull为写满标志,wrempty为写空标志,当我们想在只有FIFO空的时候才能写入时就用wrempty来判断,wrusedw[8..0]写入多少数据,rdusedw[8..0]能读出多少数据。这里将写入的数据和刻度的数据分开计数的原因是,当我们写入数据长度和读数据长度不同时,比如写的数据长度是16位,读的数据长度是8位,当写入一个数据wrusedw[8..0]=1,而rdusedw[8..0]=2。rdfull是读满标志,当我们要想要只有写满时才可读可根据这个标志判断(读数据包)。rdempty读空标志,当FIFO没有可读数据时有效。aclr异步请零。双时钟FIFO只有异步清零。

三:不同结构的FIFO各有什么作用

单时钟FIFO:

单时钟FIFO常用于片内数据交互,例如,在FPGA的控制下从外部传感器读取到的一连串传感器数据,首先被写入FIFO中,然后再以UART串口的数据发送速率将数据依次发送出去。由于传感器的单次读取数据可能很快,但并不是时刻都需要采集数据,例如某传感器使用SPI接口的协议,FPGA以2M的SPI数据速率从该传感器中读取20个数据,然后以9600的波特率通过串口发送出去。此过程每秒钟执行一次。因为2M的数据速率远高于串口9600的波特率,因此需要将从传感器中采集到的数据首先用FIFO缓存起来,然后再以串口的数据速率缓慢发送出去。这里,由于传感器数据的读取和串口数据的发送都是可以同步于同一个时钟的,因此可以使用单时钟结构的FIFO来实现此功能。

双时钟FIFO:

双时钟FIFO的一个典型应用就是异步数据的收发。

所谓异步数据是指数据的发送端和接收端分别同步与不同的时钟域,使用双时钟FIFO的独立的读写时钟结构,能够将不同时钟域中的数据同步到所需的时钟域系统中。例如,在一个视频图像采集系统中,实现将摄像头采集的数据通过VGA在显示器上显示。摄像头输入的数据长度和速度与输出到VGA显示的数据长度和速度都不相同,这种情况下使用双时钟FIFO。

四:如何在Altera FPGA中使用FIFO实现功能设计

在Altera FPGA中使用FIFO实现用户功能设计主要有三种实现方式,第一种为用户根据需求自己编写FIFO逻辑,当用户对于FIFO的功能有特殊需求时,可以使用此种方式实现,但此种方式要求用户有较高的RTL设计能力。第二种方式为使用第三方提供的开源IP核,此种IP核以源码的形式提供,能够快速的应用到用户系统中,当用户对FIFO功能有特殊需求时,可以在此源码的基础上进行修改,以适应自己的系统需求。第三种方式为使用Quartus II软件提供的免费FIFO IP核,此种方式下,Quartus II软件为用户提供了友好的图形化界面方便用户对FIFO的各种参数和结构进行配置,生成的FIFO IP核针对Altera不同系列的器件,还可以实现结构上的优化。

原文标题:一起来了解一下FIFO!

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22571

    浏览量

    640740
  • fifo
    +关注

    关注

    3

    文章

    407

    浏览量

    45961

原文标题:一起来了解一下FIFO!

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Altera正式推出FPGA AI套件26.1.1版本

    近日,全球最大专注于 FPGA 解决方案的提供商 Altera 宣布,正式推出 FPGA AI 套件 26.1.1 版本,完成其 AI 软件平台的重要升级。
    的头像 发表于 05-12 10:39 1302次阅读

    Altera发布FPGA AI套件

    近期,全球最大专注于FPGA解决方案的提供商Altera正式推出FPGA AI套件26.1.1版本,完成其AI软件平台的又一次重要升级。这款专为FPGA系统打造的AI开发与部署一体化软
    的头像 发表于 05-12 10:18 695次阅读

    Altera三大FPGA系列产品生命周期支持延至2045年

    近日,全球最大专注于 FPGA 解决方案的提供商 Altera 宣布,将其 Agilex、MAX 10 和 Cyclone V FPGA 系列的产品生命周期支持延长至 2045 年。
    的头像 发表于 04-13 16:30 2621次阅读

    Altera Agilex FPGA与SoC实现更智能的AI

    在本期专题中,Altera 院士兼首席架构师 Ilya Ganusov 将带大家深入解析 Altera FPGA 创新的三大核心支柱:性能、AI 加速与安全,同时拆解 Agilex 7 FPG
    的头像 发表于 04-02 14:24 558次阅读

    【ALINX 教程】FPGA Multiboot 功能实现——基于 ALINX Artix US+ AXAU25 开发板

    教程目的 本教程介绍如何在  ALINX Artix US+ AXAU25 FPGA  开发板上,通过  Multiboot  实现多个 bitstream 的存储与动态切换,并在配置失败时自动回退
    的头像 发表于 01-05 15:41 1817次阅读
    【ALINX 教程】<b class='flag-5'>FPGA</b> Multiboot <b class='flag-5'>功能</b><b class='flag-5'>实现</b>——基于 ALINX Artix US+ AXAU25 开发板

    Altera携手合作伙伴共建FPGA创新未来

    2025 年初,全球 FPGA 创新领导者 Altera 正式启动了 “Altera 解决方案合作伙伴加速计划”,旨在强大的生态系统支持下,助力企业打破壁垒,提速创新引擎,加快产品上市并高效拓展业务。
    的头像 发表于 12-19 09:41 2226次阅读

    何在AMD Vitis Unified IDE中使用系统设备树

    您将在这篇博客中了解系统设备树 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 维护来自 XSA 的硬件元数据。本文还讲述了如何对 SDT 进行操作,以便在 Vitis Unified IDE 中实现
    的头像 发表于 11-18 11:13 3445次阅读
    如<b class='flag-5'>何在</b>AMD Vitis Unified IDE<b class='flag-5'>中使</b>用系统设备树

    Altera全新推出MAX 10 FPGA封装新选择

    Altera 全新推出 MAX 10 FPGA 封装新选择,采用可变间距球栅阵列 (VPBGA) 技术并已开始批量出货,可为空间受限及 I/O 密集型应用的设计人员带来关键技术优势。
    的头像 发表于 11-10 16:38 2125次阅读
    <b class='flag-5'>Altera</b>全新推出MAX 10 <b class='flag-5'>FPGA</b>封装新选择

    Altera进一步扩展 Agilex™ FPGA 产品组合,全面提升开发体验

    Altera 首席执行官 Raghib Hussain 表示:“现阶段,Altera 专注于 FPGA 解决方案的运营与发展,使我们能够以更快的速度、更高的敏捷性推动创新,更紧密地与客户互动,并快速
    发表于 10-13 11:08 1528次阅读
    <b class='flag-5'>Altera</b>进一步扩展 Agilex™ <b class='flag-5'>FPGA</b> 产品组合,全面提升开发体验

    何在资源受限型应用中使FPGA

    的性能需求,同时在严格的功耗、尺寸和成本限制内运行。现代现场可编程门阵列 (FPGA) 可以满足这些相互竞争的需求。 本文回顾了为资源受限型应用选择 FPGA 时需要考虑的关键设计标准。然后,以 [Altera] 经过[功率和成
    的头像 发表于 10-03 17:31 2279次阅读
    如<b class='flag-5'>何在</b>资源受限型应用<b class='flag-5'>中使</b>用 <b class='flag-5'>FPGA</b>

    Altera Agilex 3/5 FPGA和SoC的功能特性

    Agilex 5 FPGA 和 SoC 以及新推出的 Agilex 3 FPGA 和 SoC 代表着可编程逻辑技术方面的重大飞跃。这两个设备系列均具备全新功能,可随着设计需求的变化实现
    的头像 发表于 09-06 10:10 3762次阅读
    <b class='flag-5'>Altera</b> Agilex 3/5 <b class='flag-5'>FPGA</b>和SoC的<b class='flag-5'>功能</b>特性

    使用Altera SoC FPGA提升AI信道估计效率

    开销急剧扩大,导致上行带宽的利用率出现瓶颈。   为应对这一挑战,Altera 正依托 Agilex SoC FPGA,提供由 AI 驱动的 CSI 压缩解决方案。结合 Altera 的 FP
    的头像 发表于 08-26 16:27 3877次阅读

    Altera Agilex™ 3 FPGA和SoC FPGA

    Altera Agilex™ 3 FPGA和SoC FPGA Altera/Intel Agilex™ 3 FPGA和SoC
    的头像 发表于 08-06 11:41 4671次阅读
    <b class='flag-5'>Altera</b> Agilex™ 3 <b class='flag-5'>FPGA</b>和SoC <b class='flag-5'>FPGA</b>

    基于FPGA的压缩算法加速实现

    法的速度。我们将首先使用C语言进行代码实现,然后在Vivado HLS中综合实现,并最终在FPGA板(pynq-z2)上进行硬件实现,同时于jupyter notebook
    的头像 发表于 07-10 11:09 2690次阅读
    基于<b class='flag-5'>FPGA</b>的压缩算法加速<b class='flag-5'>实现</b>

    Altera Agilex 3 FPGA和SoC产品介绍

    Altera 的 Agilex 3 FPGA 和 SoC 可在不影响性能的前提下显著提高成本效益。其通过出色的 Hyperflex FPGA 架构、先进的收发器技术、更高的集成度和更强大的安全
    的头像 发表于 06-03 16:40 1857次阅读
    <b class='flag-5'>Altera</b> Agilex 3 <b class='flag-5'>FPGA</b>和SoC产品介绍