FIFO Generate IP核使用——异步复位

FIFO Generator IP核提供了一个复位输入,当该输入被激活时,它会复位所有的计数器和输出寄存器。对于块RAM或分布式RAM实现,复位FIFO并不是必需的,可以在FIFO中禁用复位引脚。共有两种复位类型选项:异步复位和同步复位。
在这里插入图片描述
异步复位(rst)激活时,会异步地复位所有的计数器、输出寄存器和存储器。当实现复位时,它会在内部与每个相应的时钟域同步,以将FIFO的内部逻辑设置为已知状态。这种同步逻辑允许在IP核内部正确设置复位逻辑的定时,以避免闪烁和亚稳态行为。

在应用复位时,时钟必须可用。如果由于任何原因在复位时丢失了时钟,那么当时钟恢复时必须再次应用复位。违反这一要求可能会导致意外的行为。有时,忙碌信号可能会卡住,可能需要重新配置FPGA。

如果在异步复位时使用的是最慢时钟宽度的一个周期,并且断言发生在最慢时钟上升沿附近,那么复位检测可能无法正确进行,导致意外的行为。为了避免这种情况,总是建议将异步复位断言至少保持3个或C_SYNCHRONIZER_STAGE(以较大者为准)个最慢时钟周期。

1 使用RAM(BRAM)、分布式RAM(Distributed RAM)和移位RAM(Shift RAM)时钟时

当使用异步复位时,确保在两次连续复位之间有至少6个时钟周期(在独立时钟情况下为较慢的时钟)的间隔。以下是对这些类型FIFO在使用异步复位时的一些关键注意事项:

在使用块RAM(BRAM)的异步复位时,提供了一个额外的安全电路选项(如上图所示,Enable Safety Circuit),以确保BRAM输入信号的断言和去断言是同步发生的。如果使用安全电路选项,你需要在应用下一个重置或发起任何写操作之前,等待wr_rst_busy信号从1过渡到0。对于BRAM的DRC(Design Rule Check)警告,如果与异步复位和安全电路相关,可以视为误报。

如果选择了FIFO生成器的安全电路选项,需要确保复位(rst)信号在写/读时钟周期(以较慢者为准)中至少被断言为高(逻辑1)3个或C_SYNCHRONIZER_STAGE(以较大者为准)个周期。

对于AXI接口的异步复位,在IP核内部断言wr_rst_busy,在复位期间,AXI接口可能会暂时不可用,直到wr_rst_busy信号变为0,并且相关的*axi**valid/*axi**ready信号表明接口已准备好。

表3-7定义了块RAM、分布式RAM和移位RAM FIFO在加电和复位状态下输出端口的值。下溢信号(underflow)取决于rd_en(读使能)。如果rd_en被激活且FIFO为空,则下溢信号被激活。同样,溢出信号取决于wr_en(写使能)。如果wr_en被激活且FIFO已满,则溢出信号被激活。
在这里插入图片描述
对于这些FIFO配置,有两种可用的异步复位行为:满标志复位为1和满标志复位为0。根据所选的满标志复位值,复位要求和FIFO的行为是不同的。FIFO的复位需求和行为会根据所选择的满标志复位值(full flags reset value)的不同而有所差异。
在这里插入图片描述
复位是边沿触发的,而不是电平触发的。同步逻辑寻找rst的上升边沿,并为IP核创建一个内部复位。

请注意,异步复位的断言会立即导致IP 核进入预定的复位状态——这不依赖于任何时钟切换。

复位同步逻辑用于确保不同时钟域中的逻辑在同一时间退出复位模式——这是通过将异步复位的去断言同步到适当的时钟域来实现的。这样做可以避免闪烁和亚稳态。这种同步分别在读写时钟上检测到异步复位的上升边沿后,需要三个时钟周期(写或读)来完成。

为了避免意外行为,建议遵循复位时序要求,并在rst被断言/置高时不建议驱动/切换wr_en/rd_en。

满标志复位值为1

在这个配置中,FIFO需要至少一个写/读时钟周期的异步复位脉冲(以较慢者为准)。当在写时钟的上升沿检测到复位时,需要3个写时钟周期来完成适当的复位同步。在这段时间内,full、almost_full和prog_full标志会被复位(asserted)。当复位被撤销后,这些标志在五个时钟周期(wr_clk/clk,取决于使用的是写时钟还是公共时钟)后撤销(deasserted),然后FIFO可以接受写操作。

为了确保在FIFO IP核处于复位状态时不会发生写操作,full和almost_full标志会被复位(asserted)。当FIFO退出复位状态并准备好进行写操作时,full和almost_full标志会撤销(deassert)。这通常发生在异步复位撤销后的约五个时钟周期。

如图3-31所示,提供了复位期间FIFO行为的示例时序图。请注意,在这种配置下,上电(power-up)时的值与复位状态的值是不同的。
在这里插入图片描述
满标志复位值为0

在这个配置中,FIFO需要至少一个写/读时钟周期的异步复位脉冲(以较慢者为准)来完成适当的复位同步。在复位期间,full、almost_full和prog_full标志会被撤销(deasserted)。当FIFO退出复位同步状态后,它准备好进行写操作,这通常发生在异步复位断言后的约五个时钟周期。

2 在7系列中内置FIFO的公共/独立时钟配置时

表3-8 定义了内置FIFO在电源上电和复位状态期间输出端口的值。dout复位值仅支持具有嵌入式寄存器选项的公共时钟内置FIFO。内置FIFO需要至少五个读和写时钟周期的异步复位脉冲。为了确保在所有内置FIFO配置中的一致性,建议为内置FIFO提供至少5个读和写时钟周期的异步复位脉冲。然而,FIFO生成器IP核具有一个内置机制,确保所有内置FIFO的复位脉冲至少持续五个读和写时钟周期。

在复位期间,rd_en(读使能)和wr_en(写使能)端口需要被撤销(即不允许进行读或写操作)。复位断言会导致full和prog_full标志撤销(即不指示FIFO已满或接近满),而empty和prog_empty标志置位(即指示FIFO为空或接近空)。当异步复位被释放后,IP核退出复位状态并准备好进行写操作。如图3-34所示。
在这里插入图片描述
FIFO(First-In, First-Out)的underflow(下溢)和overflow(上溢)信号的行为是依赖于读使能(rd_en)和写使能(wr_en)信号的。

Underflow(下溢)::当FIFO为空(即没有任何数据可读)时,如果读使能(rd_en)信号被断言(即设置为高电平或逻辑真),则FIFO的下溢信号会被触发(断言)。

Overflow(上溢):当FIFO已满(即没有空间写入新数据)时,如果写使能(wr_en)信号被断言(即设置为高电平或逻辑真),并且有一个写操作尝试将数据写入FIFO,则FIFO的上溢信号会被触发(断言)。

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

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

相关文章

FTP和NFS

一、FTP 1.FTP原理 FTP(file Transfer Protocol,文件传输协议),是典型的C/S架构的应用层协议,由客户端软件和服务端软件两个部分共同实现文件传输功能,FTP客户端和服务器之间的连接时可靠的,面…

八股文(C#篇)

C#中的数值类型 堆和栈 值类型的数据被保存在栈(stack)上,而引用类型的数据被保存在堆(heap)上,当值类型作为参数传递给函数时,会将其复制到新的内存空间中,因此在函数中对该值类型的修改不会影…

Windows CDM命令提示符-杀死端口且进程

在Windows中,我们可以使用netstat和taskkill命令来杀死特定端口号的进程。 首先,我们需要找到使用特定端口的进程的PID。我们可以使用netstat命令与findstr命令结合来实现。 解决方案1: for /f "tokens5" %a in (netstat -aon ^…

数据结构===二叉树

文章目录 概要二叉树的概念分类存储遍历前序中序后序 小结 概要 简单写下二叉树都有哪些内容,这篇文章要写什么 二叉树的概念分类,都有哪些二叉树遍历 对一个数据结构,最先入手的都是定义,然后才会有哪些分类,对二叉…

【C】137 只出现一次的数字

给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 解法一 #include <stdio.h>int singleNumber(i…

spring-cloud-starter-alibaba-nacos-discovery如何从nacos上获得已经注册的服务地址

在Spring Cloud中&#xff0c;可以使用Spring Cloud Alibaba Nacos Discovery来从Nacos服务器获取所有微服务的地址。你需要在你的微服务中添加以下依赖&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-star…

时代少年团MV女主被骂上热搜,时代峰峻走到了十字路口

女演员和男团拍个MV都会被骂上热搜&#xff0c;这年头粉丝都这么霸道了&#xff1f; #时代少年团女主 贺美琦# #贺美琦曾是TFBOYS的MV女主# #时代少年团MV有女主# ...... 自从时代少年团第三张专辑《叁重楼》的新歌《那些我没说的话》曝光之后&#xff0c;歌曲MV中女主角的…

Qt中几种启动外部程序的方法

//启动外部程序方法1:QString startCmd QString("start %1/ADTvision/ADTvision.exe").arg(QCoreApplication::applicationDirPath()); system(startCmd.toLatin1().data());//启动外部程序方法2:QString startPath QCoreApplication::applicationDirPath() &q…

开源电子邮件营销平台 listmonk 使用教程

做产品肯定要做电子邮件营销&#xff0c;特别是面向海外的产品&#xff0c;电子邮件营销已成为企业与客户沟通、建立品牌忠诚度和推动销售的重要工具&#xff0c;可以直接接触到目标受众&#xff0c;提供个性化内容&#xff0c;并以相对较低的成本获得可观的投资回报。你看&…

Vue2——前端笔记

Vue 一、Vue核心1.1、vue简介1.2、初始vue1.3、模板语法1.4、数据绑定1.5、el与data的两种写法1.6、MVVM模型1.7、Vue中的数据代理1.7.1、Object.defineProperty() 理解1.7.2、Vue中的数据代理 1.8、事件处理1.8.1、事件的基本用法1.8.2、事件修饰符1.8.3、键盘事件 1.9、计算属…

学习java第六十一天

什么是控制反转(IOC)&#xff1f;什么是依赖注入&#xff08;DI&#xff09;&#xff1f; IoC(Inversion of Control) – 控制反转。它不是一种技术&#xff0c;而是一种思想。 IOC&#xff1a;就是对象之间的依赖关系由容器来创建&#xff0c;对象之间的关系本来是由我们开发者…

KUKA机器人KR3 R540维护保养——更换齿形带

对KUKA机器人进行维护保养&#xff0c;可以增加机器人的使用寿命&#xff0c;减少故障率。本篇文章的内容是更换KUKA机器人轴齿形带。我们知道机器人长时间运行后&#xff0c;部分轴的齿形带会发生磨损&#xff0c;张力也会发生变化&#xff0c;这时就需要更换齿形带。本篇文章…

第 10 场蓝桥杯小白入门赛题解

1.五一礼物【算法赛】 - 蓝桥云课 (lanqiao.cn) #include <iostream> using namespace std; int main() {cout<<"51"<<endl;return 0; }2.合成贤者之石【算法赛】 - 蓝桥云课 (lanqiao.cn) 假设黄水晶的个数是 x x x,那蓝水晶个数肯定是 x − 1 …

RoNID:通过生成可靠标签与聚类友好型表征来实现新意图的发现

论文地址&#xff1a;https://arxiv.org/abs/2404.08977 原文地址&#xff1a;intents-are-not-going-away-ronid-is-a-new-intent-discovery-framework 2024 年 4 月 26 日 Robust New Intent Discovery&#xff08;RoNID&#xff09;框架致力于在开放域场景中识别已知意图并合…

【STM32+HAL】DS18B20读取环境温度

一、准备工作 有关CUBEMX的初始化配置&#xff0c;参见我的另一篇blog&#xff1a;【STM32HAL】CUBEMX初始化配置 二、所用工具 1、芯片&#xff1a; STM32F407VET6 2、IDE&#xff1a; MDK-Keil软件 3、库文件&#xff1a;STM32F4xxHAL库 三、实现功能 串口打印当前温度值…

羊毛项目(华为iPhone茅台),讲解抢购渠道与抢购注意事项

薅羊毛天花板&#xff0c;华为iPhone茅台无脑撸&#xff0c;几分钟换几百元(非脚本项目) 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#xff1a;0b8x

投屏协议DLNA

目录 1. 常见投屏方案 2. 什么是DLNA 3. DLNA设备分类 4&#xff0c;DLNA的架构 1. 常见投屏方案 常见的投屏方案主要有以下几种&#xff1a; DLNA DLNA的全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟)。DLNA委员会已经于2017年1月5日正式解散&#xff0c;原…

Merck:mPAGE® Lux SDS-PAGE制胶系统

相对于传统SDS-PAGE制胶工艺&#xff0c;Merck公司的mPAGE Lux制胶系统是一种更快速、简单、安全的替代方法&#xff0c;可实现更具可重现性的结果。mPAGE Lux制胶系统可在90秒内完成小型凝胶固化&#xff0c;而传统方法则需要90分钟以上。该系统采用紫外线照射快速制胶工作流程…

Android 编译文件简述(Android.mk)

Android 编译文件简述(Android.mk) Android.mk 文件是 Android 构建系统中的一种构建配置文件,使用 GNU Make 语法,用于定义 Android 项目中的模块、库、应用程序、JNI 代码等的编译和链接方式。每个 Android.mk 文件通常对应一个目录,代表构建系统应该如何处理该目录下的源…

用 node 写一个命令行工具,全局安装可用

现在&#xff0c;不管是前端项目还是 node 项目&#xff0c;一般都会用 npm 做包管理工具&#xff0c;而 package.json 是其相关的配置信息。 对 node 项目而言&#xff0c;模块导出入口文件由 package.json 的 main 字段指定&#xff0c;而如果是要安装到命令行的工具&#x…