AXI4读时序在AXI Block RAM (BRAM) IP核中的应用

news2024/11/29 12:55:28

在本文中将展示描述了AXI从设备(slave)AXI BRAM Controller IP核与Xilinx AXI Interconnect之间的读时序关系。

Single Read

图1展示了一个从32位BRAM(Block RAM)进行AXI单次读取操作的时序示例。

38b93a529def4bf59d4a41548af0b4b7.png

图1  AXI 单次读时序图

在该时序中,需要注意的信号有:

(1)ARREADY信号

AXI读地址通道(AR Channel)上的ARREADY信号是一个注册输出信号,它默认是高电平断言(即置高)。AXI BRAM Controller可以在ARVALID信号首次有效的同一时钟周期内接受读取地址。当ARVALID和ARREADY信号都被断言时,AXI BRAM Controller将读取地址寄存器化(即存储)。

(2)读取地址流水线

AXI BRAM Controller内部有一个读取地址流水线(通常有两级深度)。当流水线满时(即已经有两个地址等待处理),AXI BRAM Controller会清除ARREADY信号,直到流水线中的地址数量减少,再次回到非满状态。

(3)RREADY信号

如果主设备可以立即接受数据,它可以在同一时钟周期内断言RREADY信号。当主设备在AXI总线上断言RREADY信号时,AXI BRAM Controller会否定(即置低)RVALID信号。这表示主设备已经准备好接收数据,并且BRAM Controller会在下一个时钟周期提供数据。

(4)RVALID和RLAST信号

对于单次读取事务,AXI BRAM Controller会在与RVALID信号相同的时钟周期内断言RLAST信号。RLAST信号表示这是单次读取操作中的最后一个数据项。在burst读取操作中,RLAST信号会在burst中的最后一个数据项时被断言。

在AXI读取事务中,读取数据总是在读取地址握手之后传输。AXI BRAM Controller不会断言RVALID信号,直到在同一时钟周期内ARVALID和ARREADY信号都被断言。换句话说,AXI BRAM Controller不支持提前访问,也没有内部缓存能力。

在AXI协议中,地址通道(AR通道)和数据通道(R通道)是分开的,这使得地址和数据可以独立地进行传输和处理。

2 Read Bursting

图2展示了一个AXI BRAM Controller进行的一个AXI读突发的时序图。

内存读突发开始于BRAM的0x1000h地址,并给定C_S_AXI_BASEADDR = 0xA000 0000以及C_S_AXI_HIGHADDR允许超过4k的可寻址内存。

AXI Read Address Channel 接口保持 ARREADY 信号断言,直到 AXI BRAM Controller 中的读地址流水线填满,这个过程是AXI协议中主从设备间数据传输的一个重要时序行为。

在AXI的读数据通道(R通道)上,AXI BRAM Controller支持AXI主设备/互联设备(Interconnect)在同一时钟周期内对RVALID信号的断言进行响应,即发出RREADY信号。

当AXI主设备或互联设备(Interconnect)在接受读突发数据时发生节流(即通过将RREADY信号置为低电平来减缓数据接收速率),AXI BRAM Controller能够处理这种情况,并暂停数据流水线,直到RREADY信号再次被断言(置为高电平)。

0ce671c492624cb88a18df0c27e5c66d.png

图2 AXI读突发时序

3 Read Throttling

AXI BRAM Controller必须支持读节流。在读操作过程中,AXI BRAM Controller向块RAM发出读命令,但只能在读数据缓存流水线中预读两个地址(这取决于AXI BRAM Controller支持的BRAM读数据节拍数)。请求AXI主设备无需立即捕获所有数据,而是可以在准备好接收数据时,通过断言RREADY信号来进行节流。当请求主设备否定RREADY时,AXI BRAM Controller必须暂停读操作并保持现有读数据。图3展示了这种行为以及相应的BRAM端口操作。

两级读数据流水线确保了所有到块RAM的输出和到AXI读数据通道的输出都被寄存。图3所展示的行为反映了主设备在RVALID被断言之前等待断言RREADY的情况。然而,AXI BRAM Controller可以在RVALID断言之前接受主设备对RREADY的断言。两个信号都必须被断言,以推进AXI BRAM Controller中的读数据缓存流水线。

f5f211aefc5a4dc3b469db2a05ec2388.png

图3  AXI读突发节流

4 Read Address Pipeline

图4和图5展示了流水线读突发操作的时序示例。AXI BRAM Controller可以处理作为连续突发读操作到块RAM的流水线读地址。在这些条件下,流水线读操作的主设备可以在RLAST(来自先前的读操作)断言后的时钟周期内接收数据:

  • 读操作不是单个数据节拍的传输
  • 读突发大于两个数据节拍
  • AXI突发操作大小等于AXI互联(Interconnect)的数据端口大小
  • 请求的突发类型是INCR或WRAP
  • 在倒数第二个BRAM地址被注册到内存之后,当前读突发在AXI读通道上没有检测到节流

无论是在双端口配置(使用第二个端口到块RAM)还是单端口BRAM配置(没有活动的待处理写传输)中,都支持到块RAM的连续读突发。如果流水线读操作中存在上述任何条件,主设备必须等待RVALID重新断言,才能开始读取后续突发的数据。预期延迟是在先前的RLAST之后两个AXI时钟周期,直到RVALID被断言(当上述任何条件存在时)。图5展示了这种场景的时序。

图4展示了AXI BRAM Controller接受流水线读请求地址的能力,并保持到块RAM的100%总线利用率。数据突发必须大于两个数据节拍,才能在AXI读数据通道上没有空闲时钟周期的情况下,从块RAM达到最大100%的数据吞吐量。请求的突发类型必须是INCR或WRAP,并且请求的读突发大小必须等于AXI互联(Interconnect)读数据端口的大小(没有“窄”突发类型事务),以实现流水线读突发的100%总线利用率。

读数据缓存缓冲区的利用说明了主设备在接受读数据时的节流能力。由此产生的BRAM事务时序如图5所示。

e8929fcb809349a2b51aa0092dbcc585.png

图4 在流水线读突发上实现AXI 100%总线利用率

46dcdc5f79bd4db7b1e931fe6375bce7.png

图5 AXI 读流水线节流时序

Cacheline Reads

图6展示了AXI WRAP或缓存行突发事务的时序。当达到地址边界时,生成到块RAM的地址从目标字开始并循环(WRAP)回到起始点。

在WRAP突发模式下,地址在达到其定义的边界后,会“回绕”到突发开始的地址,并继续以递增的方式发送,直到达到突发长度的指定值。这种模式在访问连续内存区域时特别有用,尤其是当这些区域跨越了物理地址边界(如缓存行边界)时。

对于缓存行突发事务,地址通常按照缓存行的大小(如64字节)递增,并可能在达到缓存行边界时继续下一个缓存行的起始地址。这种突发模式有助于高效地与缓存一致的内存子系统交互,因为缓存行是缓存和主存储器之间数据传输的基本单位。

29c762c8e2d54c23aa5b38245c64f678.png

图6 AXI Cacheline Read

 

 

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

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

相关文章

555555

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 人工智能与机器学习 📝人工智能相关概念☞什么是人工智能、机器学习、深度学习☞人工智能发…

【二次元MMORPG游戏开发】任务系统技术拆解

引言 各位同学大家好。在今天的分享当中,我将对任务系统去做一个拆解。也许你见过很多任务系统,但是今天我要分享的是我们经过一个框架迭代以后的任务系统。我会结合客户端的功能演示给大家去讲解。 跟着演示学开发 基本操作 好,首先我们点…

STM32 ADC学习

ADC Analog-to-Digital Converter,即模拟/数字转换器 常见ADC类型 分辨率和采样速度相互矛盾,分辨率越高,采样速率越低。 ADC的特性参数 分辨率:表示ADC能辨别的最小模拟量,用二进制位数表示,比如8,10…

clickhouse学习笔记06

ClickHouse的建表和引擎选择思路讲解 ClickHouse的常见注意事项和异常问题排查 ClickHouse高性能查询原因剖析-稀疏索引 ClickHouse高性能写入剖析-LSM-Tree存储结构

【每日力扣】98. 验证二叉搜索树 与 108. 将有序数组转换为二叉搜索树

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害 98. 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&a…

Centos7使用kubeadm搭建k8s集群(一主两从)----(mac版)

一、环境准备 1、下载centos7镜像 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 下载地址: centos安装包下载_开源镜像站-阿里云 选择对应的版本即可,我下载的:CentOS-7-x86_64-DVD-2207-02.iso 2、使用VirtualBox安装centos 选择新建&#xff0c…

【读论文】Gaussian Grouping: Segment and Edit Anything in 3D Scenes

Gaussian Grouping: Segment and Edit Anything in 3D Scenes 文章目录 Gaussian Grouping: Segment and Edit Anything in 3D Scenes1. What2. Why3. How3.1 Anything Mask Input and Consistency3.2 3D Gaussian Rendering and Grouping3.3 Downstream: Local Gaussian Editi…

用手势掌控PPT,玩转演示新姿势

推荐运行环境 使用anaconda创建环境,以免污染原来的python开发环境conda install python3.9pip install -q mediapipe0.10.0pip install pyautoguiPython: version 3.8 - 3.11PIP: version 20.3 请注意以下的坑 以下为我测试过程中的大坑,请及时避开&am…

【嵌入式开发实验】外部中断 按键 LED灯;定时中断;检测直流电机的转速 液晶屏显示;(附实验代码+注释+实验简析)| 附:步进电机/循迹小车相关

“永远不要停止思考,永远不认输。” 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿 🌟[3] 2022年度博客之星人工智能领域TOP4🌟 🏅[4] 阿里云社区特邀专家博主🏅 �

4. Python的深拷贝、浅拷贝

文章目录 0、先说结论1、浅拷贝修改元素值2、深拷贝修改元素值学习链接 0、先说结论 无论深拷贝还是浅拷贝都会为新对象分配一块新的内存,因此新老对象id不相同。 对于浅拷贝,新老对象内部的可变and不可变元素id都是相同的(在没修改元素值之前)。 对于深…

【限时免费,手慢无】Unity 怪物资源包,MONSTER 动作超丰富,不领后悔!

Unity 怪物资源包,MONSTER 动作超丰富 前言资源包内容领取兑换码 前言 👾 突破想象!惊艳众人的怪物模型登场 👾 今天要向大家介绍一款令人瞩目的游戏怪物模型!这个看似丑陋的小怪物,却有着巨大的潜力&…

JavaWeb之过滤器(Filter)与监听器(Listener)

前言 过滤器(Filter) 1.什么是过滤器 2.过滤器的语法格式 3.使用场景 3.1.如何防止用户未登录就执行后续操作 3.2.设置编码方式--统一设置编码 3.3.加密解密(密码的加密和解密) 3.4.非法文字筛选 3.5.下载资源的限制 监听器(Listener) 1.什么是监听器 2.监听器分类…

目标检测——色素性皮肤病变数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

如何理解VMware中的网络模式(NAT、桥接、仅主机)

目录 Ⅰ.NAT模式 Ⅱ.仅主机模式 Ⅲ.桥接模式 Ⅰ.NAT模式 NAT模式:将物理机的网卡作为虚拟交换机的上线链路,将vmware的私有网络转成可以上网的地址进行网络访问,因此在NAT模式下虚拟机是可以访问外部网络的(图一) …

电路板维修【一】

最近喜欢上了电路板维修,经常看很多博主的维修视频,觉得还是颇有收获的(维修板子原来有方法可循),于是做笔记如下: 一.【修了半天也没找到问题,原来是检查方向错了,变频油烟机板维修…

基于SSM的“医院院内物资管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“医院院内物资管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 功能模块图 系统登录页面 用户管理功能模块 模板列表管…

CSS---复合选择器、元素显示模式和背景(三)

一、CSS的复合选择器 1.1 什么是复合选择器 在CSS中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。 复合选择器是由两个或多个基础选择器连写组成,它…

监控异地组网怎么组网?

监控异地组网是指在不同地域的网络环境下,实现对监控设备的远程访问和管理。在传统的网络环境下,由于网络限制和设备配置等问题,监控设备的远程访问往往受到一定的限制和困扰。为了解决这个问题,引入了天联组网技术,实…

LLM大语言模型(十五):LangChain的Agent中使用自定义的ChatGLM,且底层调用的是remote的ChatGLM3-6B的HTTP服务

背景 本文搭建了一个完整的LangChain的Agent,调用本地启动的ChatGLM3-6B的HTTP server。 为后续的RAG做好了准备。 增加服务端role:observation ChatGLM3的官方demo:openai_api_demo目录 api_server.py文件 class ChatMessage(BaseModel…

英语学习笔记9——How are you today?

How are you today? 你好吗? 词汇 Vocabulary well adj. 好的 n. 井 fine adj. 美好的 两个方面:天气、身体。 搭配:a fine day 晴朗的一天    It’s a fine day today. 今天很晴朗。 good adj. 好的 口语偏多 搭配:Good jo…