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

      大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是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协议中进行事务处理时,握手信号之间必须遵守的依赖规则,以确保数据传输的顺利进行并避免死锁。设计者需要仔细考虑这些依赖关系,以确保系统设计既高效又稳定。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

乐观锁和悲观锁(MySQL和Java)

乐观锁和悲观锁(MySQL和Java) 在并发编程中,为了确保数据的一致性和完整性,我们通常需要使用锁机制来控制对共享资源的访问。锁主要分为两种:乐观锁和悲观锁。本文将详细介绍这两种锁的概念、工作原理以及它们的优缺点。 悲观锁 悲观锁(Pe…

LabVIEW电涡流检测系统

开发了一种基于LabVIEW的软件与硬件结合的电涡流检测系统,通过同步采样技术和编码器的协同工作,显著提高了大型结构物的损伤检测精度和效率,具有良好的应用前景和实用价值。 项目背景 传统的手持式电涡流检测方法因其速度慢、灵敏度低、准确…

根文件系统

根文件系统 1 介绍1.1 根文件系统介绍1.2 根文件系统目录1.3 常见的根文件系统 2 Buildroot 根文件系统的构建2.1 介绍2.2 依赖文件2.3 交叉编译工具2.4 构建2.4.1 配置 Target options2.4.2 配置 Toolchain2.4.3 配置 System configuration2.4.4 配置 Filesystem images2.4.5 …

微服务知识

传统架构 传统架构会出现的问题 配置烦琐,上线容易出错 加机器要重启 负载均衡单点 管理困难 CAP原则。 CAP原则是指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Toleranc…

产品中心|高效能双处理器Xilinx FPGA 4通道射频收发板卡

1、产品概述 基于Xilinx XC7K325T芯片的4通道射频收发板卡,搭载高能效Cortex-A8内核处理器、1组16bit/2GB DDR3及1组4GB DDR3、 1组2GB Nand Flash、1路USB接口、4路高速ADC、4路高速DAC,支持外触发,外时钟。用于FPGA程序加载板卡工作温度范…

Zynq7000系列FPGA中的DMA控制器简介(一)

DMA控制器(DMAC)使用64位AXI主接口来执行与系统存储器和PL外围设备之间的DMA数据传输,操作频率同CPU_2x的时钟速率。传输由DMA指令执行引擎控制。DMA引擎运行在一个小指令集上,该指令集提供了一种灵活的指定DMA传输的方法。这种方…

激光雷达数据处理

激光雷达技术以其高精度、高效率的特点,已经成为地表特征获取、地形建模、环境监测等领域的重要工具。掌握激光雷达数据处理技能,不仅可以提升工作效率,还能够有效提高数据的质量和准确性,为决策提供可靠的数据支持。 第一章、激…

STM32_hal库学习(3)-OLED显示

硬件:stm32f103c8t6,四脚oled 四脚OLED用的是iic通讯协议,什么是IIC通讯协议?具体可看这篇文章。 stm32中IIC通讯协议-CSDN博客 既然了解了iic协议,接下来我们就利用stm32cubemx来配置oled。 1.新建一个工程 2.然…

愁煞了,UI设计师是闷葫芦,会干不会说,该咋办呢?

Hi,我是大千UI工场,经常有粉丝反映做好设计,不知道咋给客户和团队小伙伴阐述,传达设计里面,换言之就是设计师有必要提升表达能力,该如何提升。 UI设计师需要提升语言表达能力的原因有以下几点:…

科技赋能·创领未来丨智合同和百胜中国就Contract AI Studio项目达成合作

#智合同 #百胜中国 #AIGC #NLP #LLM #Contract AI Studio 近期,国内AIGC和LLM大语言模型发展可谓是如火如荼,其迅速崛起为社会和产业发展起到了非常重要的作用。人们利用AI技术(AIGC、LLM大语言模型、NLP等)将其赋能到企业生…

<sa8650>QCX ISP Tuning 使用详解 — Tuning前置条件

<sa8650>QCX ISP Tuning 使用详解 — Tuning前置条件 一 如何安装 Qualcomm Chromatix™ 摄像头校准工具二 如何使用 Qualcomm Chromatix™ tuning工具创建tuning项目2.1 创建工程前提依赖2.2 创建工程2.3 添加场景2.4 编辑区域触发器三 如何创建Tuning 树一 如何安装 Qualco…

ChatGPT国内中文版镜像网站整理(2024/6/25)

一、国内外模型大对比 1.交互式对话测评 用同样一个问题问文言一心3.5模型和ChatGPT3.5模型,以下是得到的两个结果: 文言一心3.5模型的回答 文言一心的这个回答显然非常愚蠢,虽然回答了很长一段话,但是“一斤土豆的重量和土豆的…

详细分析SpringBootTest中的测试类(附Demo)

目录 前言1. 基本知识2. Demo3. 实战3.1 项目测试3.2 功能测试 前言 书写测试类,一般只需要加入Test即可,但是结合Springboot项目来整体测试对应需要怎么下手 详细的Java知识点推荐阅读:java框架 零基础从入门到精通的学习路线 附开源项目面…

26、 MySQL数据库基础练习系列股票交易系统基础查询和复杂查询

5、基础查询 -- 1、查询用户信息仅显示姓名与手机号 SELECT username as 姓名,phone as 手机号 from users;-- 2、模糊查询和explain语句 alter table stocks add index stock_name_index(stock_name); explain SELECT * from stocks where stock_name like %东吴证券%; -- 3、…

提升自来水公司经济效益的策略研究

现阶段,如何提高自来水公司经济效益的问题已经得到社会的广泛关注。文章将立足于成本管理的角度,在对自来水公司生产现状分析的基础上,总结影响自来水公司经济效益的相关因素,最后从成本管理的角度出发,对如何提高自来…

企业级Windows设备日志采集工具

永久免费: 前往Gitee最新版本 更新内容 进一步提升工程师部署采集客户端效率. 打开根Url,自动跳转到部署页面.(原工程师需输入很长的Url);新增复制同类客户端同步任务功能.优化客户端分组操作;文件同步到服务器后,可配置文件名增加时间戳; 介绍 定时全量或增量采集工控机,…

字节码编程ASM之两数之和

写在前面 源码 。 看下如何使用ASM来写如下的类: package com.dahuyou.demo.asm;public class AsmSumOfTwo {public AsmSumOfTwo() {}public static void main(String[] var0) {int var1 (new AsmSumOfTwo()).sum(1, 2);System.out.println(var1);}public int su…

C++精解【8】

文章目录 运算,- 加减法* / 乘除法逐元 乘法逐元 除法逐元综合运算矩阵乘法与加减法 转置、共轭、伴随矩阵点乘法,叉积 运算 ,- 加减法 逐元加减法 #include <iostream> #include "e:/eigen/Eigen/Dense" using namespace std;int main() {Eigen::Matrix2d …

【源码】Spring Data JPA原理解析之Auditing执行原理

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 5、Spring Data JPA自定…

vue + Lodop 制作可视化设计页面 实现打印设计功能(二)

历史&#xff1a; vue2 Lodop 制作可视化设计页面 实现打印设计功能&#xff08;一&#xff09; 前言&#xff1a; 之前本来打算用直接拿之前做的vue2版本改改就发的&#xff0c;但考虑到现在主流都是vue3了&#xff0c;所以从这篇文章开始使用vue3来写&#xff0c;以及最后…