【总线】AXI4第四课时:握手机制详解

news2024/11/17 12:31:16

      大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。

        上一课时我们初步了解了AXI4总线中的“社交礼仪”握手机制的3种情况,对他们有了初步的认识,这一课时我们来聊一聊AXI4总线握手机制在不同通道的注意事项,深入的了解握手机制。

        这里会有一系列的课程,和大家分享AMBA总线家族,欢迎大家一起学习,收藏点赞。

 系列文章

【总线】AMBA总线架构的发展历程-CSDN博客

【总线】设计fpga系统时,为什么要使用总线?-CSDN博客

【总线】AXI总线:FPGA设计中的通信骨干-CSDN博客

【总线】AMBA总线家族的明星成员:AXI协议简介-CSDN博客

【总线】AXI4第一课时:揭秘AXI4总线的五大独立通道-CSDN博客

【总线】AXI4第二课时:深入AXI4总线的基础事务-CSDN博客

【总线】AXI4第三课时:握手机制-CSDN博客

【总线】AXI4第四课时:握手机制详解-CSDN博客

【总线】AXI4第五课时:信号描述-CSDN博客


目录

不同通道的握手

写地址管道

写数据管道

写相应管道

读地址管道

读数据管道

通道间的关系 

握手信号之间的依赖关系


不同通道的握手

写地址管道

  1. AWVALID信号的断言

    主设备只能在提供了有效的地址和控制信息后,才能断言(即置为高电平)AWVALID信号。这意味着主设备准备好发送一个事务请求。
  2. AWVALID信号的持续

    AWVALID信号必须保持被断言状态,直到从设备接受这个地址和控制信息,并通过断言(置为高电平)其对应的AWREADY信号来表示它已经准备好处理这个事务。
  3. AWREADY信号的默认值

    AWREADY信号的默认值可以是高电平(HIGH)或低电平(LOW)。推荐使用高电平作为默认值,这表示从设备默认情况下总是准备好接收新的事务请求。
  4. 高电平AWREADY的含义

    如果AWREADY的默认值是高电平,那么从设备必须能够接受主设备呈现给它的任何有效地址。这要求从设备具有足够的缓冲能力来处理突发的事务请求。
  5. 低电平AWREADY的可能性

    虽然AWREADY的默认值设为低电平是可能的,但这是不推荐的。如果AWREADY默认为低电平,这将意味着每个事务至少需要两个时钟周期:第一个周期用于主设备断言AWVALID,第二个周期用于从设备断言AWREADY。
  6. 低电平AWREADY的影响

    如果使用低电平AWREADY,这将影响事务的传输效率,因为每个事务的开始都会延迟一个周期。

        总结来说,主设备在发送事务请求之前必须确保AWVALID信号有效,并且从设备应该准备好响应这个请求。推荐的AWREADY默认值为高电平,以确保事务的高效传输。

写数据管道

  1. WVALID信号的断言

    主设备在提供了有效的写数据时,才能断言(置为高电平)WVALID信号,表示主设备准备好发送数据。
  2. WVALID信号的持续

    WVALID信号必须保持被断言,直到从设备接受写数据并断言WREADY信号,表示从设备已准备好接收数据。
  3. WREADY信号的默认值

    WREADY的默认值可以是高电平(HIGH),但只有在从设备能够在单个时钟周期内始终接受写数据的情况下才推荐使用。如果WREADY默认为高电平,意味着从设备随时准备好接收数据。
  4. WLAST信号的断言

    主设备在发送突发传输中的最后一个数据时,必须断言WLAST信号。这表示当前传输是突发传输中的最后一个数据。
  5. WVALID信号为低电平时WSTRB的行为

    当WVALID为低电平时,WSTRB(写数据字节使能)信号可以取任何值,但推荐将它们驱动为低电平或保持在先前的值。这是为了确保在非活动周期内,写数据的字节使能信号不会意外地启用。

        总结来说,主设备必须在发送有效数据时断言WVALID,并在从设备准备好接收数据时断言WREADY。WLAST用于标记突发传输的最后一个数据。WREADY的默认值应根据从设备的能力来设置,以确保高效的数据传输。

写相应管道

  1. BVALID信号的断言

    从设备只能在提供了有效的写响应时,才能断言(置为高电平)BVALID信号,表示从设备已经完成了写操作,并向主设备发送了响应。
  2. BVALID信号的持续

    BVALID信号必须保持被断言,直到主设备接受写响应并断言BREADY信号,表示主设备已准备好接收并处理这个响应。
  3. BREADY信号的默认值

    BREADY的默认值可以是高电平(HIGH),但这仅在主设备能够始终在单个时钟周期内接受写响应的情况下推荐使用。这意味着主设备随时准备好接收从设备的写响应。

概括来说,从设备在发送写响应时必须断言BVALID,并在主设备准备好接收响应时断言BREADY。BREADY的默认值应根据主设备的能力来设置,以确保响应能够被及时接收和处理。这种握手机制确保了写操作的完整性和可靠性。

读地址管道

  1. ARVALID信号的断言

    主设备只有在提供了有效的地址和控制信息时,才能断言(置为高电平)ARVALID信号,表示主设备准备好发起一个读请求。
  2. ARVALID信号的持续

    ARVALID信号必须保持被断言,直到从设备接受地址和控制信息,并断言ARREADY信号,表示从设备已准备好响应这个请求。
  3. ARREADY信号的默认值

    ARREADY的默认值可以是高电平(HIGH)或低电平(LOW)。推荐使用高电平作为默认值,这表示从设备默认情况下总是准备好接收新的读请求。
  4. ARREADY默认值的考虑

    如果ARREADY默认为高电平,从设备必须能够接受主设备呈现给它的任何有效地址。如果ARREADY默认为低电平,这意味着每个事务至少需要两个时钟周期:第一个周期用于主设备断言ARVALID,第二个周期用于从设备断言ARREADY。

概括来说,主设备在发送读请求之前必须确保ARVALID信号有效,并且从设备应该准备好响应这个请求。RVALID信号用于指示从设备何时准备好发送数据,而RREADY信号用于指示主设备何时准备好接收数据。RLAST用于标记突发传输的最后一个数据。

读数据管道

  1. RVALID信号的断言

    从设备只有在提供了有效的读数据时,才能断言RVALID信号,表示从设备准备好发送数据。
  2. RVALID信号的持续

    RVALID信号必须保持被断言,直到主设备接受数据并断言RREADY信号,表示主设备已准备好接收并处理这些数据。
  3. RREADY信号的使用

    主设备使用RREADY信号来表示它接受数据。RREADY的默认值可以是高电平,但这仅在主设备能够立即接受读数据的情况下推荐。
  4. RLAST信号的断言

    从设备在发送突发传输中的最后一个数据时,必须断言RLAST信号。这表示当前传输是突发传输中的最后一个数据。

推荐的ARREADY和RREADY默认值为高电平,以确保事务的高效传输。

通道间的关系 

在AXI4协议中,不同通道之间的关联是灵活的,这些通道包括地址通道、读数据通道、写数据通道和写响应通道。

  1. 通道间关联的灵活性

    在AXI4总线中,写数据(Write Data)可以在相关写地址(Write Address)之前到达接口。这通常发生在写地址通道包含的寄存器级数多于写数据通道时。同时,写数据也可以与地址在同一周期出现。
  2. 地址和写数据的重新对齐

    当互连(Interconnect)需要确定目标地址空间或从设备空间时,它必须重新对齐地址和写数据。这是为了确保写数据仅在目标从设备上有效时才被标记为有效。
  3. 必须维持的两种关系

    必须维持两种关系: a. 读数据(Read Data)必须始终跟随与其相关的地址。这意味着读数据传输必须在地址传输之后发生。 b. 写响应(Write Response)必须始终跟随写事务中的最后一个写传输。这意味着写响应是在写事务的最后一个数据传输之后发送的。

概括来说,尽管写数据可以在写地址之前或与地址同时传输,但必须确保数据传输的正确性和时序准确性。读数据和写响应的传输顺序是固定的,以保证数据的一致性和事务的完整性。这种设计允许AXI4协议在保持高性能的同时,提供必要的灵活性和可靠性。

握手信号之间的依赖关系

在AXI4协议中,为了避免死锁情况,必须注意握手信号之间的依赖关系。以下是对上述段落的理解和解释:

  1. 信号依赖规则

    • 在任何事务中,一个AXI组件的VALID信号不能依赖于另一个组件的READY信号。
    • READY信号可以等待VALID信号的断言。
  2. READY信号的灵活性

    • 虽然可以接受VALID信号断言后再断言READY信号,但也可以默认先断言READY信号,这可能导致更高效的设计。
  3. 图3-4和图3-5

    • 这些图展示了握手信号的依赖关系。单头箭头指向可以在前一个信号断言之前或之后断言的信号。双头箭头指向的信号必须在前一个信号断言之后才能断言。
  4. 读事务中的依赖关系(图3-4):

    • 从设备可以在断言ARREADY之前等待ARVALID被断言。
    • 从设备必须在ARVALID和ARREADY都被断言之后,才能开始通过断言RVALID返回读数据。
  5. 写事务中的依赖关系(图3-5):

    • 主设备在断言AWVALID或WVALID之前,不能等待从设备断言AWREADY或WREADY。
    • 从设备可以在AWVALID或WVALID,或两者都被断言之前等待,然后断言AWREADY。
    • 从设备可以在AWVALID或WVALID,或两者都被断言之前等待,然后断言WREADY。
    • 从设备必须在WVALID和WREADY都被断言之后,才能断言BVALID。
  6. 写事务中的重要注意事项

    • 在写事务期间,主设备在驱动WVALID之前,不能等待AWREADY被断言。如果从设备反过来在断言AWREADY之前等待WVALID,这可能会导致死锁情况。

概括来说,这些段落强调了在AXI4协议中进行事务处理时,握手信号之间必须遵守的依赖规则,以确保数据传输的顺利进行并避免死锁。设计者需要仔细考虑这些依赖关系,以确保系统设计既高效又稳定。

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

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

相关文章

【大模型系列】Language-Vision Transformer(LaVIT, ICLR2024)

Title:Unified Language-Vision Pretraining in LLM with Dynamic Discrete Visual TokenizationPaper:https://arxiv.org/abs/2309.04669Github:https://github.com/jy0205/LaVITAuthor:Yang Jin, 北大,快…

谈谈创意设计中的AI、AGI、AIGC

在当今的数字化时代,创意设计领域正经历着前所未有的变革。随着人工智能(AI)、通用人工智能(AGI)以及人工智能生成内容(AIGC)的迅猛发展,设计师们的工作方式和创作手段都发生了深刻的…

【CSAPP】-datalab实验

实验原理与内容 本实验每位学生拿到一个datalab-handout.tar文件。学生可以通过U盘、网盘、虚拟机共享文件等方式将其导入到Unbuntu实验环境中,选择合适位置存放。然后在Ubuntu环境下解压。解压后,根据文件中的叙述和要求更改bits.c文件。本次实验的主要…

奇瑞员工控诉强制加班,加班费最多10元;高德数据被不正当抓取,一审判赔1250万元;知乎入局AI搜索;苹果手机出货量激增

一、商业圈 1.奇瑞员工控诉非法加班:加班费最多10元 根据脉脉平台热搜,近期,有多位网友曝奇瑞上海属地员工发起多项投诉,控诉奇瑞非法加班。据悉,奇瑞汽车正在积极准备上市中,若此事未得到妥善解决&#xf…

【React】上传文章封面基础实现

<Form.Item label"封面"><Form.Item name"type"><Radio.Group onChange{onTypeChange}><Radio value{1}>单图</Radio><Radio value{3}>三图</Radio><Radio value{0}>无图</Radio></Radio.Group&…

用好华为小助手,生活总能快人一步

嘿&#xff01;朋友们&#xff01;你们有没有想过&#xff0c;如果身边有一个小助手&#xff0c;他不仅聪明伶俐&#xff0c;还能在生活的方方面面给予你最贴心的关怀和帮助&#xff0c;让我们的日常生活变得更加方便和快捷&#xff0c;那该有多好&#xff01;没错&#xff0c;…

openEuler AArch64 架构 vCPU 热插拔技术内幕

OpenAtom openEuler&#xff08;简称"openEuler"&#xff09;社区引领技术浪潮&#xff0c;早在openEuler 20.09 创新版本就率先使能并对外开放了 AArch64 架构 vCPU 热插特性。时隔四年&#xff0c;openEuler 24.03 LTS 版本补充了 vCPU 热拔能力&#xff0c;vCPU 热…

MySQL学习(6):SQL语句之数据控制语言:DCL

DCL用来管理数据库用户&#xff0c;控制数据库的访问权限 1.管理用户 1.1查询用户 use mysql; select * from user; #用户信息都存放在系统数据库mysql的user表中 在user表中&#xff0c;一个用户是由用户名和主机名共同决定的&#xff0c;上图中的host一栏就是用户的主机名…

Stable Diffusion用AI绘画古诗文视频副业项目,轻松涨粉10W+,项目拆解分享给你【附详细玩法教程】

项目介绍 古诗文自古以来就有着广泛的受众&#xff0c;特别是在短视频平台上&#xff0c;它不仅有很高的流量潜力&#xff0c;还能给观众带来美的享受和教育意义。通过使用AI绘画工具&#xff0c;创作者能够将古诗文中的场景生动地呈现出来&#xff0c;制作出有艺术性、有教育…

【源码+文档+调试讲解】居家养老系统

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了居家养老系统的开发全过程。通过分析高校学生综合素质评价管理方面的不足&#xff0c;创建了一个计算机管理居家养老系统的方案。文章介绍了居家养老系统的系统分…

操作系统真象还原:进一步完善内核

第12章-进一步完善内核 12.1 Linux系统调用浅析 系统调用就是让用户进程申请操作系统的帮助&#xff0c;让操作系统帮其完成某项工作&#xff0c;也就是相当于用户进程调用了操作系统的功能&#xff0c;因此“系统调用”准确地来说应该被称为“操作系统功能调用”。 Linux 系…

用Vue3和Plotly.js打造交互式3D图

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Plotly.js 的动态图表交互&#xff1a;颜色和可见性控制 应用场景介绍 本代码旨在为数据可视化提供一个交互式图表&#xff0c;允许用户动态控制图表中线条的颜色和可见性。此功能对于探索大型数据集或突…

网络安全 文件上传漏洞-18 第十八关 Pass-18

点击进入第十八关&#xff0c;并选择显示代码&#xff1a; //index.php $is_upload false; $msg null; if (isset($_POST[submit])) {require_once("./myupload.php");$imgFileName time();$u new MyUpload($_FILES[upload_file][name], $_FILES[upload_file][tmp…

网络爬虫(一)

1. 深度优先爬虫&#xff1a;深度优先爬虫是一种以深度为优先的爬虫算法。它从一个起始点开始&#xff0c;先访问一个链接&#xff0c;然后再访问该链接下的链接&#xff0c;一直深入地访问直到无法再继续深入为止。然后回溯到上一个链接&#xff0c;再继续深入访问下一个未被访…

SAP 替代关系完全替代简介

最近用户在对长周期物料进行备料的时候又提出替代料的问题,主料库存不足的时候需要考虑替代料的在途库存,经常会忘了SAP标准的替代料逻辑,这次一次性把这个逻辑写清楚。 关于替代料的逻辑在前面的博文中测试多个替代料的使用场景 1、后继物料 2、组合替代 本文主要测试一下…

时序(流式)图谱数据仓库AbutionGraph功能介绍-Streaming Graph OLAM Database

AbutionGraph是一款端到端的流式数据实时分析的图谱数据库&#xff0c;实时&#xff08;流式写入实时、高QPS决策分析实时、流式预处理实时&#xff09;表现在&#xff1a; 构建实时查询QPS响应时长与历史数据量无关的图模型&#xff1b;接入流式数据并实时更新图计算指标&…

软考《信息系统运行管理员》-2.1信息系统运维的管理

2.1信息系统运维的管理 信息系统运维管理体系框架 信息系统运维管理主要流程的目标 标准化&#xff1a;通过流程框架&#xff0c;构件标准的运维流程流程化&#xff1a;将大部分运维工作流程化&#xff0c;确保工作可重复&#xff0c;并且这些工作都有质量的完成&#xff0c;…

设置Docker中时区不生效的问题

项目中使用docker-compose&#xff0c;并通过以下方式设置了时区 environment:- SET_CONTAINER_TIMEZONEtrue- CONTAINER_TIMEZONEAsia/Shanghai 但是并没有正确生效&#xff0c;网上有很多博客都在推荐这个做法&#xff0c;另外一种是使用标准环境标量 -TZAsia/Shangehai …

ARP 原理详解 二

只要确定了 IP 地址后&#xff0c;就能够向这个 IP 地址所在的主机发送数据报&#xff0c;这是我们所熟知的事情。 但是再往深了想&#xff0c;IP 地址只是标识网络层的地址&#xff0c;那么在网络层下方数据链路层是不是也有一个地址能够告诉对方主机自己的地址呢&#xff1f…

SAP实现特别总账的凭证预制

SAP实现特别总账的凭证预制 仔细理解只有”其他”的特殊总帐标识才可预制凭证这句话. F-29/f-48不可预制。F-29/f-48预制时出现错误消息号 FP 030&#xff0c;提示特殊总帐标志类型“汇票和”预付定金“的特别总帐标志的过帐代码不能预制&#xff0c;这是系统写死的&#xff…