Xilinx系FPGA学习笔记(七)FIFO的IP核学习

news/2024/9/17 23:53:34/ 标签: fpga开发, 学习, 笔记

系列文章目录


文章目录

  • 系列文章目录
  • FIFO介绍
  • 双时钟FIFO的IP核配置


FIFO介绍

FIFO(First In First Out),即先进先出。FPGA 或者 ASIC 中使用到的 FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加 1 完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

FIFO 从读写时钟上来分有两类结构:单时钟 FIFO(同步 FIFO) 和双时钟 FIFO(异步FIFO)。单时钟 FIFO 的所有输入输出信号都是同步这个时钟信号的,双时钟 FIFO结构中,写端口和读端口分别有独立的时钟

(1)单时钟FIFO
常用于片内数据交互,由于传感器的数据非常快,所以需要利用FIFO,用快时钟将数据保存下来,后面慢速传递时也可以用快时钟来拿出数据,应该有读写使能配合完成,一般在快速时钟域到慢速的情况下,只需要快时钟就行

在高速ADC的工作时,每一路的时钟都很快,我们采用了一个RAM来存储数据,其实就是一个单时钟FIFO,用这个快时钟作为读写时钟,因为读取速度比较慢,所以有其他时钟来控制读地址,但还用快时钟来读数据。这里其实直接例化一个单时钟FIFO就行了,本质一样的
在这里插入图片描述

(2)双时钟 FIFO
双时钟 FIFO 应用于异步数据的收发,将不同时钟域中的数据同步到所需的时钟域系统中,一般在慢速时钟域到快速时钟的情况下,两个时钟都需要使用。例如将高速 ADC 采集的数据通过千兆以太网发送到 PC 机

FIFO还能进行位宽转换,大转小,小转大,其实就是把数据分割合并

FIFO 的宽度:即 FIFO 一次读写操作的数据位;
FIFO 的深度:指的是 FIFO 可以存储多少个 N 位的数据(如果宽度为 N)。
满标志: FIFO 已满或将要满时由 FIFO 的状态电路送出的一个信号,以阻止 FIFO的写操作继续向 FIFO 中写数据而造成溢出。
空标志: FIFO 已空或将要空时由 FIFO 的状态电路送出的一个信号,以阻止 FIFO的读操作继续从 FIFO 中读出数据而造成无效数据的读出。
读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。
写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。

双时钟FIFO的IP核配置

在这里插入图片描述
在 IP 设置界面对接口类型设置为 Native, FIFO 类型上根据使用的资源以及读写时钟是否相同分为多种, 这里创建一个独立读写时钟,使用嵌入式 Block RAM 资源的 FIFO,选择 Independent Clocks Block RAM。

独立就是双时钟FIFO

在这里插入图片描述
设置读写深度和位宽
在这里插入图片描述
Standard FIFO 是在给了读数据使能后,数据才出来,而 First Word Fall Through 模式是,当前数据提前已经到数据读数据线上,在读使能到来后,下一个数据会到数据线上。选择 Standard FIFO 类型
在这里插入图片描述
在 Output Register 勾选并选择Embedded Register,也可以选择 Fabric Register,或者两个寄存器都选加上,多加一个输出寄存器,输出就会多延迟一个时钟周期出来
在这里插入图片描述
可以保持默认的勾选复位管脚、复位同步和使能 Safety Circuit

复位是对数据输出以及内部读写指针计数等进行复位,复位后,读写指针清零。这里的复位同步功能是
对异步输入的复位信号分别在读写时钟域内先进行同步后再进行读写的各自复位。

Safety Circuit 是一种更加可靠模式,内部通过额外的逻辑电路让 FIFO 复位的更加可靠,勾选 Enable Safety Circuit 后 fifo 模块的管脚会多出 wr_rst_busy 和 rd_rst_busy 两个信号输出,分别表示写/读时钟域复位忙信号(为 1 表示忙,处于复位中,为 0表示复位完),所以每次给一个异步复位信号对 FIFO 进行复位时,需要等到 wr_rst_busy 从1 变为 0 后才能对 FIFO 进行写数据操作(在 FIFO 非满情况下,这个是任何写操作时候都需要满足的),在 wr_rst_busy 为 1 时进行写操作是不允许的;同样的要等到 rd_rst_busy 从 1变为 0 后才能对 FIFO 进行读操作,在 rd_rst_busy 为 1 时进行读是不允许的。

在这里插入图片描述
Synchronization Stages即同步级数,只有在选择独立时钟 FIFO 类型时才会有这个设置,单时钟FIFO没有,异步复位信号持续时间,理论上要设置为周期大的那个时钟

在这里插入图片描述
Full Flag Reset Value:在复位时,满信号处于什么值,这里保持默认的 1,也就是复位时认为是满,禁止写入。
Dout Reset Value:复位时, FIFO 输出处于什么值,保持默认。
Read Latency:这里会根据前面设置自动更新,前面我们设置输出加上一个寄存器,这里就变为了 2,不加寄存器的情况下是 1,加两个寄存器就是 3。
在这里插入图片描述
wr_ack:写操作响应信号,当向 FIFO 写入数据时,如果正确写入到 FIFO 了,会输出高电平表示数据成功写入。
overflow:上溢出标识信号,表示 FIFO 数据满情况下继续往 FIFO 里写数据,该信号会拉高标志向上溢出。
valid:读数据输出数据有效信号,在进行读操作时, valid 信号伴随数据输出而拉高,高电平表示输出数据有效,用户逻辑可以根据该信号对读出的数据做后续进一步的处理使用。
underflow:下溢出标识信号,表示 FIFO 数据空情况下继续对 FIFO 进行读操作,该信号会拉高标志向下溢出。

在这里插入图片描述
可以对空满数据置位的阈值进行设置,例如默认情况下设置值依次为 253, 252,就是当数据大于等于 253
时, full 信号置 1,在 full 为 1 情况下, fifo 内数据量减小到 252 以下(包括 252)时, full变为 0。almost_full和almost_empty比full和empty信号提前一个时钟周期

Single Programmable Full Threshold Constant:仅对 Assert Value 值可进行设置, Negate Value 不可设置,保持默认。
Multiple Programmable Full Threshold Constant: Assert Value 和 Negate Value 均可设置。
Single Programmable Full Threshold Input Port: Assert Value 可由输入端口进行设置,Negate Value 不可设置 , 保持默认 , 这种情况下FIFO会多出个输入端 口prog_full_thresh。

Multiple Programmable Full Threshold Input Port: Assert Value 和 Negate Value 均可由输入端口进行设置 。 这 种情况下 FIFO会多出两个输入口分 别 为prog_full_thresh_assert[7:0]和 prog_full_thresh_negate[7:0],用于设置 Assert Value 和Negate Value。

在这里插入图片描述
FIFO 数据量计数信号输出, Write Data Count 和 Read Data Count 分别同步与写时钟和读时钟。


http://www.ppmy.cn/news/1524403.html

相关文章

linux入门到实操-3 ​VIM编辑器:整体介绍、常用语法和指令、普通模式、编辑模式、命令模式

教程来源:B站视频BV1WY4y1H7d3 3天搞定Linux,1天搞定Shell,清华学神带你通关_哔哩哔哩_bilibili 整理汇总的课程内容笔记和课程资料(包含课程同版本linux系统文件等内容),供大家学习交流下载:…

Rust使用之【宏】

一、简单使用clap clap { version "4.5.17", features ["derive"] }其中,什么是features ["derive"]:表示你希望在添加 clap 依赖时启用 derive 特性。这通常意味着你希望使用 clap 的派生(derive&#x…

Flink CEP(复杂事件处理)高级进阶

Flink CEP(Complex Event Processing,复杂事件处理)是 Apache Flink 中用于复杂事件模式检测的库。它允许用户定义复杂的事件模式,从流数据中检测出符合模式的事件序列。这在实时监控、欺诈检测、用户行为分析等场景中非常有用。 Flink CEP 高级进阶 为了深入理解和使用 …

网络安全架构师

网络安全架构师负责构建全面的安全框架,以保护组织的数字资产免受侵害,确保组织在数字化转型的同时维持强大的安全防护。 摩根大通的网络安全运营副总裁兼安全架构总监Lester Nichols强调,成为网络安全架构师对现代企业至关重要,…

DApp开发入门指南:从概念到实践

随着区块链技术的不断发展,去中心化应用(DApp)逐渐成为科技领域的热门话题。DApp不仅打破了传统应用的中心化控制,还为开发者和用户提供了更高的安全性、透明度和自治性。本文将带你深入了解DApp的开发流程以及如何设计合理的DApp…

[数据集][目标检测]汽车头部尾部检测数据集VOC+YOLO格式5319张3类别

数据集制作单位:未来自主研究中心(FIRC) 版权单位:未来自主研究中心(FIRC) 版权声明:数据集仅仅供个人使用,不得在未授权情况下挂淘宝、咸鱼等交易网站公开售卖,由此引发的法律责任需自行承担 数据集格式:Pascal VOC格…

nano 和 vim对比

nano 和 vim 是两种流行的文本编辑器,各有优缺点和适用场景。以下是对这两种编辑器的详细对比: Nano 优点: 1.简单易用:nano 的界面和命令非常简单,易于新手上手。所有的命令都列在屏幕底部,不需要记住复…

【C++题解】1330. 求最大梯形的面积

欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 问题:1330. 求最大梯形的面积 类型:二维数组 题目描述: 从键盘读入 n ( 3≤n≤100 )个梯形的上底、下底和高,请问这 n 个梯形中,最大面积…

AnyChart 数据可视化框架

AnyChart 数据可视化框架 AnyChart 是一个灵活的 JavaScript(HTML5、SVG、VML)图表框架,适合任何需要数据可视化的解决方案。 目录 下载并安装开始插件将 AnyChart 与 TypeScript 结合使用将 AnyChart 与 ECMAScript 6 结合使用技术集成贡献…

qwen2 VL 多模态图文模型;图像、视频使用案例

参考: https://huggingface.co/Qwen/Qwen2-VL-2B-Instruct 模型: export HF_ENDPOINThttps://hf-mirror.comhuggingface-cli download --resume-download --local-dir-use-symlinks False Qwen/Qwen2-VL-2B-Instruct --local-dir qwen2-vl安装&#x…

https的特点

https的特点 优点:缺点:HTTPS是如何保证安全的? 优点: 使用HTTPS协议可以认证用户和服务器,确保数据发送到正确的客户端和服务器;使用HTTPS协议可以进行加密传输、身份认证,通信更加安全、防止…

SpringSecurity原理解析(五):HttpSecurity 类处理流程

1、SpringSecurity 在spring boot中与SSM项目中基于配置文件的区别 通过前边的笔记我们可以知道,在传统的SSM项目中 SpringSecurity的使用是基于配置文件 的,然后spring 容器初始化的时候将 SpringSecurity 中的各种标签解析成对应的Bean对象&#xff0c…

CSS实现前端布局更巧妙的方案!在 flex 布局中通过使用 margin 实现水平垂直居中以及其他常见的前端布局

在前端开发中,实现水平垂直居中一直是个热门话题。随着 CSS Flexbox 布局的普及,开发者们开始更多地使用 justify-content 和 align-items 这两个属性来解决这个问题。 然而,还有一种更加简洁、灵活的方式——使用 margin: auto; 来实现居中以…

动态规划(算法)---03.斐波那契数列模型_最小花费爬楼梯

题目链接: 746. 使用最小花费爬楼梯 - 力扣(LeetCode)https://leetcode.cn/problems/min-cost-climbing-stairs/description/ 一、题目解析 题目: 解析: 题目说cost[i]为从某一个台阶向上爬的的费用,我们…

黑马点评18——多级缓存-OpenResty

文章目录 安装OpenRestyOpenResty快速入门OpenResty获取请求参数封装Http请求向Tomcat发送http请求根据商品id对tomcat集群负载均衡Redis缓存预热查询Redis缓存Nginx本地缓存 安装OpenResty 安装参考博客 OpenResty快速入门 nginx是没有业务能力的,我们是把请求转发…

【精彩瞬间】2024外滩大会回顾

9月8号,为期3天的“2024 inclusion外滩大会”在上海黄浦圆满落下帷幕。本届大会,共吸引了5.2万人到场参观,无论是参会规模还是国际嘉宾的数量都创下历史新高。 500位演讲嘉宾分别在1场开幕主论坛、36场见解分论坛上聚焦“ai产业新实践”“科技…

再获新认可!创客匠人被评2024年度腾讯云教育行业“最佳新锐奖”

近日,2024腾讯全球数字生态大会在深圳国际会展中心举行。知识变现整体解决方案服务商创客匠人受邀参会,并凭借其卓越的创新能力和显著的市场成绩荣获2024年度腾讯云教育行业“最佳新锐奖”。 这一荣誉不仅是对创客匠人在知识服务领域持续深耕与探索的充…

git-repo使用

即使用 XML 格式文件&#xff08;manifest 清单文件&#xff09;定义一个项目的多仓库关联&#xff0c;然后用 repo 客户端工具操作多仓库 git repo命令行格式&#xff1a; git repo <子命令> <参数>创建一个空目录&#xff0c;作为工作区。 $ mkdir workspace$ …

AI教程_AI大模型 Prompt提示词工程 Langchain AI原生应用开发视频教程分享(IT营)

AI&#xff08;人工智能&#xff09;正在以惊人的速度席卷着各行各业&#xff0c;其影响深远且广泛。十九大开幕式把人工智能列入了报告内容&#xff0c; 普京表示过人工智能是整个人类的未来&#xff0c;马斯克说人工智能有可能是人类科技的终极战场。雷总说过一句话&#xff…