首页 > 其他分享 >AXI总线介绍

AXI总线介绍

时间:2022-11-09 13:44:07浏览次数:77  
标签:access 总线 介绍 突发 传输 地址 信号 AXI

一、AXI总线概述

在Xilinx系列FPGA及其有关IP核中,经常见到AXI总线接口,AXI总线又分为三种:

AXI-Lite,AXI-Full以及AXI-Stream,其中AXI-Lite和AXI-Full都是基于memory map的形式实现数据传输(即包括地址总线),而AXI-Stream是以数据流的形式传输,无地址。

其中AXI-Lite是AXI-Full的简化版,适合小批量的数据传输,常用来进行命令的传输,IP核的初始化等。

AXI-Full则适用于大批量,高性能的数据传输。

文章将对AXI-Full和AXI-Lite进行一个简单介绍,如果需要更进一步了解可以去arm官网下载手册阅读:https://www.arm.com/architecture/system-architectures/amba/amba-specifications

二、AXI总线通道

CH1 时钟和复位(Global signals)

信号

方向

描述

ACLK

时钟源

全局时钟信号,上升沿有效

ARESETn

复位源

全局复位,低有效,(只有在ACLK上升沿拉低才有效)

CH2 写地址通道(Write address channel signals)

信号

方向

描述

AWID

M -> S

写地址ID,用来识别一组写地址信号

AWADDR

M -> S

写地址,给出一次突发传输的首地址,(余下地址由Slave端自己计算,每次传输地址不能超过4KB)

AWLEN

M -> S

突发长度,一次突发传输中的长度,该信息决定了与地址相关的数据个数。在AXI3中只支持1-16个传输长度的突发(Burst_Length = AxLEN[3:0] + 1),在AXI4的INCR突发类型下,允许1-256个长度的突发,对于其他的传输类型依然保持1-16次突发传输(Burst_Length=AxLEN[7:0]+1)。

AXI突发事件有如下规则:

  • 对于wrapping burst,突发长度必须是 2, 4, 8, or 16;
  • 不能跨过4KB的地址边界;
  • 不支持中途停止传输

AWSIZE

M -> S

突发大小,给出每次传输的字节数,支持1、2、4、8、16、32、64、128

AWBURST

M -> S

突发类型,突发类型和突发大小决定slave端地址的计算。

0b00 FIXED:地址不变,常用于加载或清空FIFO

0b01 INCR:地址递增,增加的大小取决于AxSIZE的值

0b10 WRAP:回环突发,与INCR类似,但会在增加到特定的地址后回到低地址。传输的起始地址必须和每次传输的大小对齐;传输的长度只能是2、4、8、16。回环的边界=AxSIZE*AxLEN,如果在一次传输中地址超过了边界,就会进行回环;第一次传输的地址可以高于回环地址。

0b11 Reserved

AWLOCK

M -> S

AXI4不支持,AXI3必须支持

AWCACHE

M -> S

内存类型,表明一次传输是怎么通过系统的。AXI3与AXI4编码不同。

AWPROT

M -> S

保护类型,传输的特权级别、安全等级,是指令传输还是数据传输。

AWPROT[0]   0:unprivileged access

1:privileged access

AWPROT[1]   0:secure access

1:non-secure access

AWPROT[2]   0:data access;

1:instruction access

AWQOS

M -> S

服务质量,只在AXI4中有

AWREGION

M -> S

区域标识,允许一个物理接口用于多个逻辑接口,只在AXI4中有

AWUSER

M -> S

用户在写的过程中自定义的信号,

AWVALID

M -> S

有效信号,表明Master准备发送写地址或信息了

AWREADY

S -> M

就绪,表明Slave准备好接收发送的信息了。

CH3 写数据通道(Write data channel signals)

信号

方向

描述

WID

M -> S

写ID标签,只在AXI3中有

WDATA

M -> S

写数据

WSTRB

M -> S

表明哪个字节通道写入数据。WSTRB[n:0]表明哪一个通道有效,WSTRB[n]对应WDATA[8n+7:8n],当数据有效时,WSTRB必须为高,WVALID为低时,可以为任意值。

WLAST

M -> S

表明该次突发传输中的最后一次传输

WUSER

M -> S

用户在写数据过程中自定义的信号

WVALID

M -> S

有效信号,表明此次写有效

WREADY

S -> M

就绪,表明Slave准备好接收数据了。

CH4 写响应通道(Write response channel signals)

信号

方向

描述

BID

S -> M

响应ID标签,

BRESP

S -> M

写响应,表明写传输的状态

OKAY:成功

EXOKAY:表明单独的一次进程成功

SLVERR:Slave error

DECERR:Decode error

BUSER

S -> M

用户自定义信号,只在AXI4中有

BVALID

S -> M

写响应有效,在一次突发传输的最后拉高一次

BREADY

M -> S

Master能接收到写响应,与BVALID状态有关

CH5 读地址通道(Read address channel signals)

信号

方向

描述

ARID

M -> S

读地址ID

ARADDR

M -> S

读地址,给出一次突发读取传输的首地址

ARLEN

M -> S

突发长度,一次突发传输中的长度,该信息决定了与地址相关的数据个数。在AXI3中只支持1-16个传输长度的突发(Burst_Length = AxLEN[3:0] + 1),在AXI4的INCR突发类型下,允许1-256个长度的突发,对于其他的传输类型依然保持1-16次突发传输(Burst_Length=AxLEN[7:0]+1)。

AXI突发事件有如下规则:

  • 对于wrapping burst,突发长度必须是 2, 4, 8, or 16;
  • 不能跨过4KB的地址边界;
  • 不支持中途停止传输

ARSIZE

M -> S

突发大小,给出每次传输的字节数,支持1、2、4、8、16、32、64、128

ARBURST

M -> S

突发类型,突发类型和突发大小决定slave端地址的计算。

0b00 FIXED:地址不变,常用于加载或清空FIFO

0b01 INCR:地址递增,增加的大小取决于AxSIZE的值

0b10 WRAP:回环突发,与INCR类似,但会在增加到特定的地址后回到低地址。传输的起始地址必须和每次传输的大小对齐;传输的长度只能是2、4、8、16。回环的边界=AxSIZE*AxLEN,如果在一次传输中地址超过了边界,就会进行回环;第一次传输的地址可以高于回环地址。

0b11 Reserved

ARLOCK

M -> S

AXI4不支持,AXI3必须支持

ARCACHE

M -> S

内存类型,表明一次传输是怎么通过系统的。AXI3与AXI4编码不同。

ARPROT

M -> S

保护类型,传输的特权级别、安全等级,是指令传输还是数据传输。

AWPROT[0]   0:unprivileged access

1:privileged access

AWPROT[1]   0:secure access

1:non-secure access

AWPROT[2]   0:data access;

1:instruction access

ARQOS

M -> S

服务质量,只在AXI4中有

ARREGION

M -> S

区域标识,允许一个物理接口用于多个逻辑接口,只在AXI4中有

ARUSER

M -> S

用户在写的过程中自定义的信号,

ARVALID

M -> S

有效信号,表明Master准备发送写地址或信息了

ARREADY

S -> M

就绪,表明Slave准备好接收发送的信息了。

CH6 读数据通道(Read data channel signals)

信号

方向

描述

RID

S -> M

读ID标签,只在AXI3中有

RDATA

S -> M

读数据

RRESP

S -> M

读响应,表明写传输的状态

OKAY:成功

EXOKAY:表明单独的一次进程成功

SLVERR:Slave error

DECERR:Decode error。

RLAST

S -> M

表明该次突发传输中的最后一次传输

RUSER

S -> M

用户在写数据过程中自定义的信号

RVALID

S -> M

有效信号,表明该通道需要读取数据

RREADY

M -> S

就绪,表明Master准备好接收数据了。

AXI总线的握手机制

AXI总线的五个通道都使用的是相同的VALID和READY握手,发送端发送的VALID信号表明此时发送出去的信息有效,接收端发出的READY信号表明此时接收端已经准备好了接收信息,该握手机制存在三种情况:

发送端准备好了信息,发送VALID信号,此时接收端还未准备好接收,如果在下一个时钟周期接收端准备好了,就会把READY拉高。此时VALID和READY都为高,完成一次传输。

接收端处于准备接收的状态,READY为高,一旦发送端准备好了信息,发送VALID信号,此时接收端在时钟上升沿直接接收,完成一次传输。

发送端准备好了信息,发送VALID信号,此时接收端也准备好接收,READY为高,完成一次传输。

VALID信号和READY信号的拉高不分先后,只要同时为高,就完成了一次握手,

标签:access,总线,介绍,突发,传输,地址,信号,AXI
From: https://www.cnblogs.com/amxiang/p/16873343.html

相关文章

  • Eureka注册中心介绍 及 搭建完成 服务注册、发现
    (目录)Eureka注册中心假如我们的服务提供者user-service部署了多个实例,如图:思考几个问题:order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和......
  • commons-lang介绍
    原文链接:https://blog.csdn.net/zlfprogram/article/details/78189878跟java.lang这个包的作用类似,CommonsLang这一组API也是提供一些基础的、通用的操作和处理,如自动生......
  • AXI
    注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。AXI是赛灵思器件设计中广泛使用的处理器接......
  • H5游戏开发-游戏的介绍
    一、游戏的介绍1.游戏的种类1.端游(客户端游戏)电脑(网络)游戏。2.页游(网页游戏)web游戏,无端游戏,基于web浏览器的网络在线多人互动游戏。3.手游(手机游戏)运行在手机上的软......
  • axios 二次封装
    importaxiosfrom"axios";importNProgressfrom"nprogress";import'nprogress/nprogress.css'constserver=axios.create({baseURL:'/api',//此处/api......
  • 【luffy】前台全局样式、后台主页模块接口、跨域问题、自定义配置、git介绍和安装
    目录1.前台全局样式和js配置1.1bodydiv默认样式,统一去掉1.2全局配置2.后台主页模块接口2.1根据原型图分析出来2.2软件开发模式2.3轮播图表2.4轮播图接口编写3.......
  • Pandas的介绍及 Series、 DataFrame的创建
    1.Pandas是什么?Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。Pandas的主要数据......
  • Map-Layer部分介绍
    Map-Layer部分介绍1.从Mxd文件说起1.1.Mxd文件介绍ArcGIS的地图文件为.mxd扩展名。Mxd文件的是有版本的,和ArcGIS的版本对应。可以在ArcMap中的File-SaveACopy,保存一个......
  • git的介绍、git的功能特性、git工作流程、git 过滤文件、git多分支管理、远程仓库、把
    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。[1]也是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开......
  • 嵌入式软件/硬件工程师必备的设备使用介绍
    大纲1.ARM仿真器2.USBCANII设备3.示波器的使用4.直流稳压电源的使用 1.ARM仿真器(1)废话不说先上图        (2)设备引脚relevantparameter......