AXI(2)完结

article/2025/9/14 0:29:17

四、握手

4.1握手过程

所有的五个通道都是通过相同的VALID/READY握手处理来传输地址、数据和控制信息。

双向握手的机制意味着主机和从机之间传输数据时,都可以控制传输的速率,只有当VALID和READY同时为高电平时,传输才会发生。

发送方(Source)产生VLAID信号来指明何时数据或控制信息有效。

接收方(Destination)产生READY信号来指明已经准备好接受数据或控制信息。

发送方的VALID信号和接收方的READY信号并不需要同时置位,可以发送方先准备好,也可以接收方先准备好。也就是说VALID可以早于READY,也可以晚于READY,也可以同时置位。对应的就是下面三种情况。

1.VALID先

源设备发出数据或控制信息,并驱动 VALID 信号为高。从源设备发出的数据或控制信息保持稳定,直到目标设备驱动 READY 信号为高,表示目标设备接收数据或控制信息。箭头标示出了传输发生的时间。

2.READY先

目标设备在数据或控制信息有效之前驱动 READY 为高。这表示只要数据或控制信息有效, 目标设备就可以在一个单周期内接收数据或控制信息。箭头标示出了传输发生的时间。

3.同时

源设备和目标设备在同一个周期内表示源设备和目标设备都可以传输数据或控制信息。在这种情况下,传输立即发生。箭头标示出传输发生的时间。

4.2通道之间关系

地址、读、写以及写响应通道之间的关系是灵活的。

  1. 读数据必须在接收到读地址信号之后

  2. 写响应必须在一次写事务的最后一个写数据之后

  3. 通道握手信号之间的依赖关系

4.3通道握手信号之间的依赖

为了避免死锁,协议规定发送方的VALID不能依赖接收方的READY;

反过来,接收方的READY可以等待,也可以不等待发送方的VALID。

单箭头(无依赖关系)

双箭头:(依赖关系)

读传输的依赖关系

当发生一次读传输时,

读地址通道中,主机(master)是发送方,而从机(slave)是接收方;

在读数据通道中,主机是接收方,从机是发送方,这时的依赖关系是:

  • 从机可以先等待 ARVALID 被断言,之后从机再断言 ARREADY

  • 从机必须等待 ARVALID 和 ARREADY 都被断言之后,从机才能断言 RVALID 来返回读数据

写传输的依赖关系

对于写传输来说,

在写地址和写数据通道上,主机是发送方,从机是接收方;

在写响应通道,主机是接收方,从机是发送方,这时的依赖关系是:

  • 从机必须先等待 WVALID 和 WREADY 被断言,之后从机才能断言 BVALID

五、地址选项

本章讲述了 AXI 突发类型,以及计算突发中传输的地址和字节通道。

  • 关于地址选项

  • 突发长度

  • 突发大小

  • 突发类型

  • 突发地址

5.1 关于地址选项AXI

突发传输通俗来讲,就是一次只需要提供首地址,即可传输约定长度的数据。

例如,首地址0X00,突发长度为8,那么一次就可以往地址0x00-0x07中一共写入8个数据。

一次突发传输不能跨越 4KB 边界即0x1000

5.2 突发长度(Burst length)数据个数

AWLEN 和 ARLEN 信号规定了每个突发中的数据传输次数。

对于回环突发,突发长度必须是 2、 4、 8 或 16 个传输。

每个传输必须通过 ARLEN 或 AWLEN 确定传输次数。

突发传输不能在完成所有数据传输前提前结束

5.3 突发大小(burst size)每一拍数据大小

表 4-2 展示了 ARSIZE 或 AWSIZE 信号是怎样确定一个突发中,每拍(beat)或每个数据传输中要传输的最大数据字节数的。

5.4 突发类型(burst type)

AXI 协议定义了三种突发类型,描述如下:

  • 固定长度突发(FIXED)

  • 增量突发(INCR)

  • 回环突发(WRAP)

5.4.1 固定长度突发

每次传输事务的地址均为同一地址。

该类型适合对同一地址进行反复操作,例如写入或者读出FIFO,其操作地址就是固定的。

5.4.2 增量突发

在一个增量突发中,每个传输的地址都是在前一个传输地址的基础上递增的。增量值取决于传输大小。

例如,突发中每个传输的大小是 4bytes,则每个传输地址是前一个地址加 4。

5.4.3 回环突发

回环突发类似于增量突发,突发中每个传输的地址按增量递增的。

但是在回环突发中,当达到较大的地址边界时,地址会卷回到较小的地址。回环边界是突发中每个传输的大小乘以突发中总共传输的次数。回环突发需要遵循两个限制:

  • 起始地址必须对齐到传输大小

  • 突发长度必须是 2、 4、 8 或 16

5.5 写选取(Write strobes)WSTRB[3:0]

WSTRB 信号中的单个 bit 置起,表示对应位置上的字节有效。(选通信号)

WSTRB[0] 为 1 WDATA[7:0]有效;WSTRB[1] 为 1 WDATA[15:8]有效

这个信号是用来实现掩码功能的,对于我们的一般应用,直接一直将其拉高,表示当前传输数据全部有效即可。

5.6 读、写响应(Read and Write response)

响应值包括:

OKAY (0b00):正常访问成功。表示已成功完成正常访问

EXOKAY (0b01):专属访问成功。

SLVERR (0b10):从设备错误。已成功访问从设备,但从设备希望向发端主设备返回错误条件(例如,数据读取无效)。

DECERR (0b11):解码器错误。通常由互连组件生成,用于指示传输事务地址处没有任何从设备

六、例子

6.1读突发(四个传输)

注意:控制信号:突发长度和类型等省略了

主机驱动地址和控制信号,从机在一个周期后接收地址。

在地址出现在地址总线上之后,读数据通道上发生数据传输。从机保持 VALID 信号为低,直到读数据有效。

在突发中最后一个数据传输,从机断言 RLAST 信号来表示最后一个数据项已被传输。

6.2写突发

当主机在写地址通道上发送了一个地址和控制信息时,突发过程开始。

之后,主机通过写数据通道发送每个写数据。当主机发送最后一个数据时, WLAST 信号拉高。当从机接收完所有的数据之后,会驱动一个写响应给主机来表示写事物完成。


http://chatgpt.dhexx.cn/article/6fWYXuo6.shtml

相关文章

读Axis2用户帮助文档 (axis2中文文档)

作者:李红霞 时间:2006-10-19 声明:本文可以算作Axis2用户手册的翻译,但是翻译后的文本是经过作者理解写出来的,可能有些偏差,欢迎讨论。本文属作者原创,允许转载,但请注明出处。 英…

AXI 3.0 (1)

一、AXI简介 AMBA3.0中新增加了一种总线——AXI(Advanced eXtensible Interface,高级扩展接口)。 AMBA AXI 协议的目标是高性能、高频的系统设计,其包含了若干特性。 适合高带宽和低延迟的设计 提供高频操作,无需使…

Apache axis2 + Eclipse 开发 WebService

一、简介 Apache Axis2是下一代 Apache Axis。Axis2 虽然由 Axis 1.x 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构。Axis2 基于新的体系结构进行了全新编写,而且没有采用 Axis 1.x 的常用代码。支持开发 Axis2 的动力是探寻模块化…

Axis2与Web项目整合

一、说明: 上一篇介绍了通过使用Axis2来发布和调用WebService,但是是把WebService发布在Axis2提供的项目中,如果我们需要在自己的Web项目中来使用Axis2发布WebService该怎么做呢? 本篇即介绍在Web项目中使用Axis2来发布WebService. 二、具体…

Axis2中文手册

中文原文 http://tenn.javaeye.com/blog/100736 英文原文 http://ws.apache.org/axis2/1_0/userguide.html 概述 这个说明文档涉及以下内容:  如何使用 axis2 创建 web service 和客户端程序  如何定制一个模块 (Module) 并在 web service 中使用它  Sam…

axis2的使用(转载)

通过axis2发起WS请求时添加SOAP header 首先要获得一个ServiceClient对象,因为这个对象是org.apache.axis2.client.Stub里面定义的,所以你生成的stub里面应该直接就可以使用这个对象,或者调用stub的_getServiceClient()方法来获取这个对象。 …

SpringBoot2 整合 AXIS2 服务端和客户端

文章目录 一、AXIS2服务端1. 版本选型2.导入依赖3. services.xml4.Axis2配置类5.服务接口6.服务接口实现类7. FileCopyUtils工具类8. 测试验证 二、AXIS2服务端2.1. 客户端类2.2. 服务调用测试开源源码. 一、AXIS2服务端 1. 版本选型 阿健/框架版本spring-boot2.5.5axis21.7.…

WebService之Axis2系列教程(一)Axis2的下载、安装和使用

Axis2是目前比较流行的WebService引擎。WebService被应用在很多不同的场景。例如,可以使用WebService来发布服务端 Java类的方法,以便使用不同的客户端进行调用。这样可以有效地集成多种不同的技术来完成应用系统。WebService还经常被使用在SOA中&#x…

Axis2 webservice学习总结

一、学习课件目录: Axis2(WebService)培训资料1 - 百度文库 (baidu.com) WebService大讲堂之Axis2 - 百度文库 (baidu.com) 二、学习总结: Web Service是构建互联网分布式系统的基本部件,它是一个应用程序,它向外界暴露出一个…

小白轻松使用axis2构建webservice

引言: 使用axis2是来实现webservice接口是比较常见的,就我来说,如果要学一个首次接触东西,简单了解相关基础概念后,就希望自己能够简单快速的实现一个例子,在学习一门开发语言的时候,一个hello…

模板引擎 Velocity语法

Velocity是一个基于java的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用 由java代码定义的对象。作为一个比较完善的模板引擎,Velocity的功能是比较强大的&…

velocity 模板语法

velocity 模板语法 前言1. 访问1.1 变量1.2 属性1.3 方法 2. 指令2.1 #set 创建变量2.2 #if/#elseif/#else 分支控制2.3 #foreach 循环控制2.4 #include - 引入本地文件,文本展示2.5 #parse - 引入本地文件,velocity 解析后展示2.6 #stop - 停止模板解析…

finalize() 原理

finalize 方法的作用是: 如果对象在进行可达性分析后发现没有与 GC Roots 相连接的引用链,那他将会被第一次标记并且进行一次筛选,筛选的条件是此对象是否有必要执行 finalize 方法。 注意:当对象没有覆盖 finalize 方法&#xf…

finalize()

注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。 1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。fina…

java finalize方法详解

1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C中的析构函数不是对应的。C中的析构函数调用的时机是确定的(对象离开作用域或delete掉)&…

java中finalize()方法

finalize 垃圾回收机器(Garbage Collection),也叫GC,垃圾回收器主要有一下特点: 当对象不再被程序所使用的时候,垃圾回收器将会将其回收垃圾回收是在后台运行的,我们无法命令垃圾回收器马上回收资源&…

Finalize详解

finalize()方法详解,前言,finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize的作用: (1)finalize()与C中的析构函数不是对应的。C中的析构函数调用的时机是确定的…

finalize的理解

finalize的理解 一般的回答:它是Object中的一个方法,子类重写它,垃圾回收时候方法会被调用,可以再其中进行一些资源的解释和清理工作。 优秀的回答:将资源的释放和清理放在finalize方法中是非常不好的,影…

Java FX swt_DOC-13-08 JavaFX与SWT的协作性

DOC-13-08 JavaFX与SWT的协作性 本章展示了如何在SWT应用程序中加入一个JavaFX场景图,以及如何使SWT和JavaFX控件协作。 介绍 如果你开发SWT应用程序,你知道SWT使用本地操作系统的控件,而且并不能简单的配置来使用高级GUI特性,比如…

Java SWT 表格Table如何动态显示信息

让Table显示信息用到的是TableItem类。创建一个TableItem类对象,通过调用该对象的setText( new String[ ] )方法可以显示一行数据,循环调用则可以显示多条不同的数据。 一、步骤: 1. 创建Table类 。最好将Table类设置为全局变量。并且设置该表格有多少列…