什么是FIFO?

news2024/11/25 16:40:01

同步FIFO和异步FIFO

1、FIFO定义

FIFO是英文First In First Out的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

2、FIFO功能

FIFO存储器是系统的缓冲环节,如果没有FIFO存储器,整个系统就不可能正常工作,它主要有几方面的功能:

1)对连续的数据流]进行缓存,防止在进机和存储操作时丢失数据;

2)数据集中起来进行进栈和存储,可避免频繁的总线操作,减轻CPU的负担;

3)允许系统进行DMA操作,提高数据的传输速度。这是至关重要的一点,如果不采用DMA操作,数据传输将达不到传输要求,而且大大增加CPU的负担,无法同时完成数据的存储工作。

3、FIFO分类

FIFO的分类根据FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。同步FIFO和异步FIFO如图所示,从图中可以看到,同步FIFO 具有一个独立的时钟端口 clock,因此所有的输入输出信号都同步于 clock 信号。而在异步FIFO 结构中,写端口和读端口分别有独立的时钟,所有与写相关的信号都是同步于写时钟 wrclk,所有与读相关的信号都是同步于读时钟 rdclk。
在这里插入图片描述
同步 FIFO 常用于同步时钟的数据缓存,异步 FIFO 常用于跨时钟域的数据信号的传递,例如时钟域 A 下的数据 data1 传递给异步时钟域 B,当 data1 为连续变化信号时,如果直接传递给时钟域 B 则可能会导致收非所送的情况,即在采集过程中会出现包括亚稳态问题在内的一系列问题,使用异步 FIFO 能够将不同时钟域中的数据同步到所需的时钟域中。

4、FIFO的几个重要参数

FIFO 的宽度:FIFO 一次读写操作的数据位 N;

FIFO 的深度:FIFO 可以存储多少个宽度为 N 位的数据。

空标志:对于双时钟 FIFO 又分为读空标志 rdempty 和写空标志 wrempty。FIFO 已空或将要空时由 FIFO

的状态电路送出的一个信号,以阻止 FIFO 的读操作继续从 FIFO 中读出数据而造成无效数据的读出。

满标志:对于双时钟 FIFO 又分为读满标志 rdfull 和写满标志 wrfull。FIFO 已满或将要写满时由 FIFO

的状态电路送出的一个信号,以阻止 FIFO 的写操作继续向 FIFO 中写数据而造成溢出。

读时钟:读 FIFO 时所遵循的时钟,在每个时钟的上升沿触发。

写时钟:写 FIFO 时所遵循的时钟,在每个时钟的上升沿触发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/526059.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++修炼之筑基期第三层——拷贝构造函数

文章目录 💐专栏导读💐文章导读🌷拷贝构造函数的概念🌷拷贝构造函数的特性 💐专栏导读 🌸作者简介:花想云,在读本科生一枚,致力于 C/C、Linux 学习。 🌸本文…

Rocky9/Centos stream9 修改静态ip,修改网卡。

目录 需求: 修改ipv4地址为10.10.10.10 子网掩码为255.255.255.0 网关为10.10.10.254 dns为本机ip 当前版本: 前言: 正文: 后续其他方法拓展。 本人新建立一个QQ shell群,感兴趣的可以加入:637257233 …

瑞数5.5逆向笔记(纯扣算法)

瑞数5解密 首先看请求,请求返回202大概率是(瑞数3,4).返回412是瑞数5 还可以看后缀值 MmEwMD4xxxxx 就是4代瑞数,bX3Xf9nD5xxxxx 就是5代瑞数 区别4带上来有1-2个无限debugger,这个直接过掉就好,还会有一个假cookie,5带没有 1.meta content 动态的每次请求都会变…

IDEA如何运行SSM项目(超详细图解)

📖本篇超级详细案例截图教学 IDEA如何运行SSM(Maven工程)项目,图片点击可放大仔细看 1、查看项目 项目里面一般会包含项目源码、数据库、环境配置教程、运行教程。 项目介绍文件有的是.md文件,这个需要记事本或者typora打开,wor…

【瑞吉外卖开发笔记】

瑞吉外卖开发笔记 源码地址 一、业务开发Day01 1、软件开发整体介绍 软件开发流程 角色分工 软件环境 2、瑞奇外卖项目介绍 项目介绍 产品原型展示 技术选型 功能架构 角色 3、环境搭建 开发环境搭建 数据库环境搭建 运行对应db_reggie.sql文件Maven项目搭建 新建Springb…

毫米波雷达(mmWave)基本原理

1. 引言 毫米波(mmWave)是一种特殊的雷达技术,它使用短波长的电磁波。雷达系统发射电磁波信号,然后其路径上的物体将它反射回去。通过捕捉反射信号,雷达系统可以确定目标的距离、速度和角度。毫米波雷达发射的信号波长…

函数(2)

文章目录 6. 函数的嵌套调用和链式访问6.1 嵌套调用6.2 链式访问 7. 函数的声明和定义7.1 函数声明7.2 函数定义 8. 函数递归8.1 什么是递归8.2 递归的两个必要条件8.3 递归与迭代 附&#xff1a; 6. 函数的嵌套调用和链式访问 6.1 嵌套调用 #include <stdio.h>int tes…

基于Python的学生成绩管理系统

末尾获取源码 开发语言&#xff1a;python 后端框架&#xff1a;django 数据库&#xff1a;MySQL5.7 开发软件&#xff1a;Pycharm 是否Maven项目&#xff1a;是 目录 一、项目简介 二、系统功能 三、系统项目截图 四、核心代码 4.1登录相关 4.2文件上传 4.3封装 一、项…

12.软考——数据流图

数据流图分层 数据字典 数据流图平衡原则 考试必问根据顶层数据流图补充0层数据流图中缺失的数据流图。 1.父图与子图之间的平衡 主要看系统和外部的联系是否缺失,比如上图数据管理中间件--------->前端应用中的处理后的操作结果这个数据流缺失。 2.子图内平衡 正常的加…

1123 Is It a Complete AVL Tree(72行代码+超详细注释)

1123 Is It a Complete AVL Tree 分数 30 全屏浏览题目 作者 CHEN, Yue 单位 浙江大学 An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by…

【原创】ChatGPT访问及内容安全技术设计

作者&#xff1a;黑夜路人 时间&#xff1a;2023/5/15 作为爆火的AIGC产品ChatGPT&#xff0c;以及类似的产品 Cluade、Bard、Newbing 等等&#xff0c;让大家趋之若鹜&#xff0c;如何把这些产品映射到自己的业务产品中&#xff0c;也是很多开发者需要面对的问题。 针对AIGC&…

Prompt工程师指南[从基础到进阶篇]:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题

Prompt工程师指南[从基础到进阶篇]&#xff1a;用于开发和优化提示&#xff0c;以有效地使用语言模型&#xff08;LMs&#xff09;进行各种应用和研究主题 Prompt工程是一种相对较新的学科&#xff0c;用于开发和优化提示&#xff0c;以有效地使用语言模型&#xff08;LMs&…

基于卷积的图像分类识别(二):ZFNet

本专栏介绍基于深度学习进行图像识别的经典和前沿模型&#xff0c;将持续更新&#xff0c;包括不仅限于&#xff1a;AlexNet&#xff0c; ZFNet&#xff0c;VGG&#xff0c;GoogLeNet&#xff0c;ResNet&#xff0c;DenseNet&#xff0c;SENet&#xff0c;MobileNet&#xff0c…

LitCTF2023 Reverse 题解及复现

文章目录 一.enbase641.main函数2.换表函数3. check函数4. 解题脚本: 二.snake1. 修复MagicNumber2. 反编译3. 解题脚本 三.For Aiur1. 注意点2. 解包3. 反编译4. 解题脚本 四.程序和人有一个能跑就行了1. fakeflag2. 真flag 五.debase641. encode函数2. 函数逻辑3. 根据程序逻…

PCIe事务层(详细)总结-PCIe专题知识(六)

目录 前言一、简介二、事务层数据传输三、数据格式四、其他相关链接1、PCIe物理层总结-PCIE专题知识&#xff08;一&#xff09;2、PCIe数据链路层图文总结-PCIe专题知识&#xff08;二&#xff09;3、PCIe物理层链路训练和初始化总结-PCIe专题知识&#xff08;三&#xff09;4…

SpringCloud:微服务保护之规则持久化

现在&#xff0c;sentinel的所有规则都是内存存储&#xff0c;重启后所有规则都会丢失。在生产环境下&#xff0c;我们必须确保这些规则的持久化&#xff0c;避免丢失。 1.规则管理模式 规则是否能持久化&#xff0c;取决于规则管理模式&#xff0c;sentinel支持三种规则管理…

基于卷积的图像分类识别(一):AlexNet

本专栏介绍基于深度学习进行图像识别的经典和前沿模型&#xff0c;将持续更新&#xff0c;包括不仅限于&#xff1a;AlexNet&#xff0c; ZFNet&#xff0c;VGG&#xff0c;GoogLeNet&#xff0c;ResNet&#xff0c;DenseNet&#xff0c;SENet&#xff0c;MobileNet&#xff0c…

机器学习中的监督学习、无监督学习、半监督学习和强化学习,这四种学习方式到底有啥区别?

监督学习、无监督学习、半监督学习和强化学习 人工智能中的机器学习是指让计算机通过学习数据的方式改善性能。在机器学习中&#xff0c;有四种主要的学习方式&#xff1a;监督学习、无监督学习、半监督学习和强化学习。本文将详细介绍这四种学习方式的概念、应用和优缺点。 …

[GXYCTF2019]BabyUpload1

上传文件后提示后缀名不能有ph 那估计都是黑名单过滤&#xff0c;大小写绕过也不行&#xff0c;尝试一下上传.htaccess文件 将文件名称为abc的当做php文件执行 上传后提示上传类型露骨&#xff0c;说明绕过了黑名单但是还有content_type类型坐镇 那就利用burp抓包修改content—…

msvcp140.dll丢失怎样修复,总结4个msvcp140.dll丢失的修复方法

今天早上打开photoshop的时候&#xff0c;电脑突然提示由于找不到msvcp140.dll&#xff0c;无法继续执行此代码&#xff0c;一时间都懵了&#xff0c;不知道怎么处理。在网上找了一上午的资料及修复方法&#xff0c;MSVCP140.dll是一个非常重要的Windows系统文件&#xff0c;它…