Vavido IP核Independent Clocks Block RAM FIFO简述

news2025/1/12 15:58:24

文章目录

        • 1 FIFO(先入先出)
          • 1.1 概念
          • 1.2 应用场景
          • 1.3 FIFO信号
          • 1.4 FIFO读写时序
            • 1.4.1 FIFO读时序
            • 1.4.2 FIFO写时序
        • 参考

1 FIFO(先入先出)

1.1 概念

    FIFO(First in First out)即先入先出队列,是一种数据缓存器,其没有外部读写地址线,数据地址由内部的读写指针自动加1完成,使用简单。但这也造成FIFO只能按顺序写入数据和读取数据。

1.2 应用场景

    FIFO主要应用在以下几个场景中:

  • 数据缓存:可以暂时存储数据以便进行运算、传输等逻辑操作。
  • 跨时钟域处理:进行数据的跨时钟域处理,即当数据以X频率的时钟获取到,却需要Y频率的时钟取进行处理时,使用FIFO能够更好的完成该操作。
  • 不同数据位宽处理:当数据进行宽度转换时也可以使用FIFO进行操作。
1.3 FIFO信号

    FIFO常用到的信号如下图
在这里插入图片描述

  • rd_clk、wr_clk:FIFO的读写时钟,数据的读写基于这两个时钟进行。
  • rd_en、wr_en:读写使能,写使能信号拉高时向FIFO里面进行数据写入,读使能拉高时则从FIFO里读出数据。
  • rst:FIFO复位信号,拉高时对FIFO进行复位操作。
  • din、dout:din为写入FIFO的数据,dout为从FIFO读出的数据。
  • empty、full:空满信号,empty拉高时标识FIFO里面的数据也被全部读出,不能在进行读操作;full拉高时则表示FIFO能容纳的数据量已达到设计的大小,不能再向里面写入数据了。
  • rd_data_count、wr_data_count:读写数据计数,每写入一个数据时两个计数器自增1,每读出一个数据两个计数器自减1.
1.4 FIFO读写时序
1.4.1 FIFO读时序

    FIFO有两种模式:Standard FIFO(标准模式)和First-Word Fall-Through(FWFT模式)。两种模式下的读时序是不同的,标准模式下读操作时数据会在读使能拉高的下一个时钟给出,而FWFT模式下数据则在读使能拉高的同一个时钟给出。

  • Standard FIFO模式下读时序:

在这里插入图片描述

  • First-Word Fall-Through模式下读时序:
    在这里插入图片描述
1.4.2 FIFO写时序

    在两种模式下其写时序都是一样的,在写使能拉高的同一个时钟沿开始写入数据。
在这里插入图片描述

参考

    1、https://blog.csdn.net/qq_38812860/article/details/120138467
    2、https://blog.csdn.net/HouQi02/article/details/51683635

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

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

相关文章

个性化定制界面还是极简版原装界面?我的选择是……

个性化定制界面和极简版原装界面,哪一个你用起来更加顺手呢,相比之下你更喜欢哪一个?来聊一聊原因吧! 一、我的观点和选择 个性化定制界面和极简版原装界面,二者各有优缺点。 (一)极简版原装…

windows vmware17虚拟机导出、导入

我采用的是vmware17版本的虚拟机软件 直接拷贝VM虚拟机文件 导出 查看虚拟机所在路径 复制整个文件夹,可以先压缩介绍文件大小,拷贝到需要还原该虚拟机的电脑上 导入 在目的电脑上需要安装vnware17版本的虚拟机软件 直接打开vmware17, 选…

Mysql--对varchar字段用int数值来查询的问题

在工作中遇到的一个问题。就是mysql的一个表中的一个字段是varchar类型的,这个字段用来存储身份证,身份证正好是18位的。但是在根据身份证号来查询用户的时候,忘了给这个查询条件的身份证号加上’"",然后就产生了问题。…

Pinia能否替代 Vuex 的更强大状态管理工具

前序 Pinia 是 Vue.js 团队成员专门为 Vue 开发的一个全新的状态管理库,也相当于vuex5,下面关于vuex5的提案是不是觉得很像 Vuex5 的提案 Pinia和Vuex的函数 Vuex: State、Getters、Mutations(同步)、Actions(异步) Pinia: St…

【C++进阶】模板进阶

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

SpringBoot项目集成Druid

文章目录 一、前言二、Druid相关内容1、Druid简介1.1数据库连接池 2、项目集成Druid2.1、环境准备2.2、依赖准备2.3、编写配置文件2.4、测试访问 3、功能介绍3.1、查看数据源3.2、SQL监控3.3、URI监控 三、总结提升 一、前言 本文将介绍Druid的相关内容以及项目如何集成Druid&…

每日一题(复制带随机指针的链表)

每日一题(复制带随机指针的链表) 138. 复制带随机指针的链表 - 力扣(LeetCode) 思路: 由于每个链表还包含了一个random节点指向了链表中的随机节点,所以并不能直接照搬复制原链表。首先想到的暴力思路是复…

Self-Attention Transformer完全指南:像Transformer的创作者一样思考

本文从RNN到self-attention,再到Transformer来讲清楚整个算法。 近半年来有大量同学来找我问Transformer的一些细节问题,例如Transformer与传统seq2seq RNN的区别、self-attention层的深入理解、masked self-attention的运作机制;以及各种Tr…

2018ECCV Can 3D Pose be Learned from2D Projections Alone?

摘要 在计算机视觉中,从单个图像的三维姿态估计是一个具有挑战性的任务。我们提出了一种弱监督的方法来估计3D姿态点,仅给出2D姿态地标。我们的方法不需要2D和3D点之间的对应关系来建立明确的3D先验。我们利用一个对抗性的框架,强加在3D结构…

vue通过draggable实现拖拽功能

1. 官方文档 2. 安装 yarn add vuedraggable npm i -S vuedraggable <script src"//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js"></script> 3. 其他组件&#xff1a; sortablejs.js拖拽 非官网文档 npm install …

Java 集合框架3

一、集合框架分类 二、 关于Map接口的常用类 1.HashMap HashMap类是Map接口的子类&#xff0c;是处理无序键值对集合的 HashMap特征1.允许有null键和null值2.数据保存是无序的3.重复的键被算作一个数据 i.HashMap构造方法 //HashMap() 构造一个初始存储空间为16&#xff0c;负…

zemax混合式非序列模拟

基础设置&#xff1a; 3D视图效果&#xff1a; 接下来用非序列模式设计一个多焦透镜 平行光束经过多焦透镜时&#xff0c;会汇聚在不同焦距处 非序列模式的编辑器如图&#xff1a; 注意不要点击左侧的非序列模式&#xff0c;那个时纯粹的非序列&#xff0c;会清除序列模式的数…

Revit SDK 介绍:AutoStamp 自动水印 AutoUpdate 自动更新 CancelSave

前言 这三个例子都是通过注册事件来完成相应的工作&#xff0c;内容比较简单。 内容 事件参考博客&#xff1a;Revit API&#xff1a;Events 事件总览 AutoStamp 自动水印 使用到的事件&#xff1a; application.ControlledApplication.ViewPrinting application.Controll…

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比 目录 时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现EEMD-SSA-LSTM、E…

第一章辩证唯物论,考点七思维导图

逻辑框架 考点七思维导图&#xff1a;

【【萌新的STM32学习-27--USART异步通信配置步骤】】

萌新的STM32学习-27–USART异步通信配置步骤 USART/UART 异步通信配置步骤 1.配置串口工作参数 HAL_UART_Init() 我们会在此处调用MSP中的回调函数 2.串口底层初始化 用户定义HAL_UART_MspInit() 配置GPIO NVIC CLOCK 等 3.开启串口异步接收中断 HAL_UART_Receive_IT() 4.…

基于简单的信息变换实现自然语言模型

题目:基于简单的信息变换实现自然语言模型 摘要:在自然语言处理中,自然语言模型是至关重要的。本论文提出了一种基于简单的信息变换实现自然语言模型的方法。该方法将输入信息进行一系列的信息变换,如分割、属性、等效替换、增加删除等变换,与原始信息进行比较,得知信息是…

解决window安装docker报错问题

第一次打开Docker Desktop后提示错误 试了网上版本都没用&#xff0c;后面发现是电脑没有下载相关虚拟机&#xff1a; 先点击链接下载wsl2&#xff0c;下载后命令行执行&#xff1a;dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /…

Jenkins发送邮件(简洁版)

需求背景 Jenkins构建结束需要通知客户下载项目WAR包&#xff0c;太麻烦且构建时间久的话可能忘记通知客户&#xff0c;想要构建结束自动邮件通知客户。 实现方法 # 安装mailx command -v mailx &> /dev/null || sudo yum -y install mailx# 发送邮件 recipient"ch…

深入解析即时通讯App开发中的关键技术

即时通讯App开发在现代社交和通信领域中扮演着重要的角色。随着移动设备的普及和网络的高速发展&#xff0c;人们对即时通讯工具的需求不断增加。本篇文章将深入探讨即时通讯App开发中的关键技术&#xff0c;帮助读者了解该领域的最新动态和技术趋势。 基础架构和通信协议 现…