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

在描述FIFO(First In First Out)或其他存储结构的同步复位(Synchronous Reset)功能时,srst(或wr_rst/rd_rst,即写入和读取时钟域的同步复位信号)仅适用于块RAM(Block RAM)、分布式RAM(Distributed RAM)、移位RAM(Shift RAM)或内置FIFO的实现。

1 使用Common Clock的块RAM、分布式RAM或移位RAM FIFOs

同步复位(srst)在断言时同步地复位所有计数器、输出寄存器和内存。由于复位引脚与输入时钟同步,并且FIFO中只有一个时钟域,因此不需要额外的同步逻辑。

00c0b68049ef48a99f84434b7617caa8.png

图3-37展示了当srst被释放(即,从活动状态变为非活动状态)后,FIFO中各种标志(flags)或状态位的变化。

在同步复位被释放后,FIFO将恢复到其初始状态,所有计数器将被清零,输出寄存器将被复位,并且内存内容(如果适用)也可能被清除(这取决于具体的FIFO实现和设计需求)。此后,FIFO将准备好再次接受数据。

2 使用Independent Clock 块和分布式RAM FIFOs(在没有选择(Enable Reset Synchronization选项的情况下)

同步复位(wr_rst/rd_rst)在断言时同步地复位各自时钟域的所有计数器和输出寄存器。因为复位引脚是与各自时钟域同步的,所以不需要额外的同步逻辑。

当同时断言写入和读取的同步复位(wr_rst/rd_rst)时,至少要保持一个时钟周期,如图3-38所示。复位的断言/去断言时间可能有所不同,在这个期间,FIFO的输出会变得无效。为了避免意外的行为,不要在第一个复位断言到最后一个复位去断言的期间执行写入或读取操作。

注意:对于使用首字直通(First-Word-Fall-Through)和ECC配置构建的FIFOs,sbiterrdbiterr(分别表示单个位错误和双位错误的标志)可能在两个复位(wr_rstrd_rst)都去断言后执行有效读取之前保持高电平状态。

图3-38和图3-39详细说明了复位的过程。

0acb5e67273643ce85ebb5b319975190.png

在复位过程中:

  • 在两个时钟域(写入和读取)中分别使用wr_rstrd_rst进行同步复位。
  • 这两个复位信号需要同时断言至少一个时钟周期。
  • 在复位断言期间,FIFO的输出不应被使用,因为它们可能是无效的。
  • 在复位去断言之后,直到执行了有效的读取操作之前,sbiterrdbiterr标志可能保持高电平状态(如果FIFO配置了ECC)。
  • 在复位期间,不应执行写入或读取操作以避免FIFO的未定义行为。

下表中定义了在上电和复位状态下输出端口的值。如果没有指定dout(数据输出)的复位值,它默认会被设置为0。FIFO只需要一个时钟周期的复位脉冲。在复位被释放后的时钟周期,FIFO就可以进行数据传输了。对于同步复位,上电时的值与复位状态相同。

38120eec76cf462fab22813d101a7a97.png

3 使用UltraScale架构内置的FIFO

UltraScale架构内置的FIFO主要支持同步复位(srst),并且这个复位必须始终与写入时钟(clk/wr_clk)同步。这些内置的FIFO需要至少一个写入时钟周期的同步复位脉冲。同时,这些FIFO提供了wr_rst_busyrd_rst_busy输出信号。

srst被断言时,wr_rst_busy输出会在wr_clk的上升沿之后立即被断言,并持续保持到复位操作完成。在wr_rst_busy被断言之后,内部复位会与rd_clk域同步。当到达rd_clk域时,rd_rst_busy会被断言,并保持到rd_clk域的所有信号复位完成。此时,rd_rst_busy会被去断言。在公共时钟模式下,由于不需要跨时钟域,这个逻辑会被简化。

在复位状态下,rd_enwr_en端口必须被去断言(即,不能进行读取或写入操作)。复位的断言会导致fullprog_full标志去断言,而emptyprog_empty标志会被断言。在wr_rst_busyrd_rst_busy被释放之后,FIFO核心会退出重置状态并准备好进行写入。

  • underflow(下溢信号)是依赖于rd_en(读取使能)的。如果rd_en被断言(即,激活)并且FIFO为空,那么underflow就会被断言(即,发出下溢信号)。
  • overflow(上溢信号)是依赖于wr_en(写入使能)的。如果wr_en被断言并且FIFO已满,那么overflow就会被断言(即,发出上溢信号)。

需要注意的是,下溢和上溢信号直接与FIFO基本单元连接。如果rd_en被断言并且FIFO为空,那么下溢信号会被断言。如果wr_en被断言并且FIFO已满,那么上溢信号会被断言。

此外,当应用复位时,请确保FIFO Generator IP核的输入时钟是自由运行的。违反这一点可能会导致复位挂起状态,这可能需要硬重启或重新引导来恢复。

 

 

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

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

相关文章

网络安全之静态路由

以下是一个静态路由的拓扑图 Aping通B,C可以ping通D。 路由器转发数据需要路由表,但仍可以Aping通B,C可以ping通D,是因为产生了直连路由:产生的条件有两个,接口有IP,接口双up(物理up&#xff…

Python爬虫教程:入门爬取网页数据

1.遵守法律法规 爬虫在获取网页数据时,需要遵守以下几点,以确保不违反法律法规: 不得侵犯网站的知识产权:爬虫不得未经授权,获取和复制网站的内容,这包括文本、图片、音频、视频等。 不得违反网站的使用条…

MacOS快速安装FFmpeg,并使用FFmpeg转换视频

前言:目前正在接入flv视频流,但是没有一个合适的flv视频流地址。网上提供的flv也都不是H264AAC(一种视频和音频编解码器组合),所以想通过fmpeg来将flv文件转换为H264AAC。 一、MacOS环境 博主的MacOS环境(…

【C++干货基地】揭秘C++STL库的魅力:stiring的初步了解和使用

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

使用Portal V17搜索PN(profinet)设备的方法

这里的PN就是profinet,无需连接PLC,只需要将PN设备连接电脑即可,如下图, 跳出如下窗口, 点击start search 搜索完毕后就看到PN设备的名字啦: 是不是很简单呢。

泰克示波器怎么看波形的有效值?

泰克示波器是一款高性能的数字示波器,可以用于各种信号的测量和分析。在实际测试中,我们经常需要了解信号的有效值,以评估信号的幅度大小和稳定性。泰克示波器提供了多种方法来查看信号的有效值,下面将介绍几种常用的方法。 垂直…

Redis 源码安装(CentOS 单机)

序言 本文给大家介绍如何在 CentOS 上,通过 Redis 源码单机部署 Redis 服务。 一、部署流程 通过官网下载源码 # 下载源码 wget https://download.redis.io/redis-stable.tar.gz# 解压源码包 tar -xzvf redis-stable.tar.gz在 linux 中执行以下命令,安…

品鉴中的音乐搭配:如何为红酒选择合适的音乐伴侣

品鉴红酒时,音乐是一个不可忽视的元素。合适的音乐能够增强红酒的口感,提升品鉴体验。对于云仓酒庄雷盛红酒而言,如何为其选择合适的音乐伴侣,是一个值得探讨的话题。 首先,了解红酒的风格和特点至关重要。云仓酒庄雷…

(图论)最短路问题合集(包含C,C++,Java,Python,Go)

不存在负权边: 1.朴素dijkstra算法 原题: 思路:(依然是贪心的思想) 1.初始化距离:dis[1]0,dis[i]INF(正无穷) 2.循环n次: 找到当前不在s中的dis最小的点&…

推荐一个gpt全能网站

进入后,里面是这样的 点开后,里面是这样的 你以为只有这些吗? 往下翻一翻,你会发现新大陆!! 在输入框的下面,有一个分类栏,鼠标移上去,下面就会给出一堆网站 光是gp…

Github 2024-05-08 C开源项目日报 Top8

根据Github Trendings的统计,今日(2024-05-08统计)共有8个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目8PHP项目1Python项目1C++项目1PHP:流行的Web开发脚本语言 创建周期:4710 天开发语言:C, PHP协议类型:OtherStar数量:37340 个Fork数量…

上市公司财务困境模型​MertonDD、OScore、RLPM、ZScore四种模型​(1992-2022年)

01、数据介绍 上市公司财务困境模型是用于预测和评估上市公司是否可能陷入财务困境的一种模型。这个模型通常基于一系列的财务比率和其他相关变量,通过统计分析方法来构建。​ 数据名称:上市公司财务困境模型MertonDD、OScore、RLPM、ZScore五种模型 …

从零开始:搭建PXE远程批量安装服务器

在大规模服务器部署时,面对成百上千台服务器,通过手动插入光盘或者USE驱动器来安装操作系统无比繁琐,让大量工程师在现场挨个安装系统也不切实际,PXE的出现使得网络远程批量自动安装和配置操作系统成为现实。 什么是PXE&#xff1…

layui的treeTable组件,多层级上传按钮失效的问题解决

现象描述: layui的treeTable 的上传按钮在一层能用,展开后其他按钮正常点击,上传按钮无效。 具体原因没有深究,大概率是展开的子菜单没有被渲染treeTable的done管理到,导致没有重绘上传按钮。 解决方案: 不使用layu的上传组件方法…

Pytorch学习笔记——神经网络基本框架

一、神经网络是什么 神经网络在人工智能和深度学习的领域,一般称为人工神经网络,即ANN(Artificial Neural Network),是一种模仿人脑神经系统工作方式的计算模型。被广泛应用于人工智能、自动控制、机器人、统计学等领域的信息处理中。 二、…

docker搭建代码审计平台sonarqube

docker搭建代码审计平台sonarqube 一、代码审计关注的质量指标二、静态分析技术分类三、sonarqube流程四、快速搭建sonarqube五、sonarqube scanner的安装和使用 一、代码审计关注的质量指标 代码坏味道 代码规范技术债评估 bug和漏洞代码重复度单测与集成 测试用例数量覆盖率…

使用sqlmodel实现唯一性校验

代码: from sqlmodel import Field, Session, SQLModel, create_engine# 声明模型 class User(SQLModel, tableTrue):id: int | None Field(defaultNone, primary_keyTrue)# 不能为空,必须唯一name: str Field(nullableFalse, uniqueTrue)age: int | …

HarmonyOS NEXT应用开发之多模态页面转场动效实现案例

介绍 本示例介绍多模态页面转场动效实现:通过半模态转场实现半模态登录界面, 与全屏模态和组件转场结合实现多模态组合登录场景,其中手机验证码登录与账号密码登录都为组件, 通过TransitionEffect.move()实现组件间转场达到近似页…

跟随Facebook的足迹:社交媒体背后的探索之旅

在当今数字化时代,社交媒体已经成为了人们日常生活中不可或缺的一部分。而在这庞大的社交媒体网络中,Facebook作为其中的巨头,一直在引领着潮流。从创立之初的一个大学社交网络到如今的全球性平台,Facebook的发展历程承载了无数故…

tf2使用savemodel保存之后转化为onnx适合进行om模型部署

tf2使用savemodel保存之后转化为onnx适合进行om模型部署 tf保存为kears框架h5文件将h5转化为savemodel格式,方便部署查看模型架构将savemodel转化为onnx格式使用netrononnx模型细微处理代码转化为om以及推理代码,要么使用midstudio tf保存为kears框架h5文…