AXI总线协议
来源:互联网 发布:唇色深怎么改善 知乎 编辑:程序博客网 时间:2024/05/16 09:28
0.绪论
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。
AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。
AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。
1.简介
1.1 AXI协议特点
AMBA AXI协议支持支持高性能、高频率系统设计。
- 适合高带宽低延时设计
- 无需复杂的桥就能实现高频操作
- 能满足大部分器件的接口要求
- 适合高初始延时的存储控制器
- 提供互联架构的灵活性与独立性
- 向下兼容已有的AHB和APB接口
- 分离的地址/控制、数据相位
- 使用字节选通,支持非对齐的数据传输
- 基于burst传输,只需传输首地址
- 读、写数据通道分离,能提供低功耗DMA
- 支持多种寻址方式
- 支持乱序传输
- 易于添加寄存器级来进行时序收敛
1.2 AXI读写架构
AXI协议是基于burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。地址通道携带控制消息,用于描述被传输的数据属性;数据传输使用写通道来实现master到slave的传输,slave使用写响应通道来完成一次写传输;读通道用来实现数据从slave到master的传输。
图1-1 读架构
图1-2 写架构
AXI使用基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。
- 读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。
- 读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024 bit)和指示读传输完成的读响应信号。
- 写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,master无需等待slave对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16...1024 bit)和字节线(用于指示8 bit 数据信号的有效性)。
- 写响应通道:slave使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。
1.3 接口和互联
AXI协议提供单一的接口定义,能用在下述三种接口之间:master/interconnect、slave/interconnect、master/slave。
可以使用以下几种典型的系统拓扑架构:
- 共享地址与数据总线
- 共享地址总线,多数据总线
- multilayer多层,多地址总线,多数据总线
寄存器片(Register Slices):
每个AXI通道使用单一方向传输信息,并且各个通道直接没有任何固定关系。因此可以可以在任何通道任何点插入寄存器片,当然这会导致额外的周期延迟。
使用寄存器片可以实现周期延迟(cycles of latency)和最大操作频率的折中;使用寄存器片可以分割低速外设的长路径。
2. 信号描述
表2-1 全局信号
信号名源描述ACLK时钟源全局时钟信号ARESETn复位源全局复位信号,低有效表2-2 写地址通道信号
信号名源描述AWIDMaster写地址ID,用来标志一组写信号AWADDRMaster写地址,一次突发写的首地址AWLENMaster突发长度,突发写传输数据的个数AWSIZEMaster突发大小,每次突发传输的字节数AWBURSTMaster突发类型,FIXED,INCR,WRAPAWLOCKMaster总线锁信号,normal, exclusive, lockedAWCACHEMasterCache类型,表明一次事务是怎样通过系统的bufferable, cacheable, read-allocate, write-allocateAWPROTMaster保护类型,传输的特权级及安全等级AWQOSMaster质量服务QoS,可作为安全级标志AWREGIONMaster域标记,可以实现一个物理地址与多个逻辑地址的映射,也可以对某些地址进行保护AWUSERMaster用户自定义信号AWVALIDMaster有效信号,表明此通道的地址控制信号有效AWREADYSlave从设备已经准备好接受地址和控制信息
表2-3 写数据通道信号
信号名源描述WIDMaster一次写传输的IDWDATAMaster写数据WSTRBMaster写数据有效的字节线,用来表明哪8bits数据是有效的WLASTMaster突发写传输的最后一个数据WUSERMaster用户自定义信号WVALIDMaster写有效WREADYSlave表明从机可以接收写数据表2-4 写响应通道信号
信号名源描述BIDSlave写响应IDBRESPSlave写响应,表明写事务的状态OKAY,EXOKAY,SLVERR,DECERRBUSERSlave用户自定义信号BVALIDSlave写响应有效BREADYMaster表明主机能够接收写响应
表2-5 读地址通道信号
bufferable, cacheable, read-allocate, write-allocateARPROTMaster保护类型,传输的特权级及安全等级ARQOSMaster质量服务QoS,可作为安全级标志ARREGIONMaster域标记,可以实现一个物理地址与多个逻辑地址的映射,也可以对某些地址进行保护ARUSERMaster用户自定义信号ARVALIDMaster有效信号,表明此通道的地址控制信号有效ARREADYSlave从设备已经准备好接受地址和控制信息
表2-6 读数据通道信号
信号名源描述RIDMaster一次读传输的IDRDATAMaster读数据RRESPMaster读响应,表明读传输的状态RLASTMaster突发读传输的最后一个数据RUSERMaster用户自定义信号RVALIDMaster读有效RREADYSlave表明从机可以接收读数据表2-7 低功耗接口信号
信号名源描述CSYSREQ时钟控制器系统退出低功耗请求,此信号从“时钟控制器”到“外设"CSYSACK外设退出低功耗状态确认CACTIVE外设外设请求时钟有效3. 读写传输
3.1 握手过程
5个传输通道均使用VALID/READY信号对传输过程的地址、数据、控制信号进行握手。使用双向握手机制,传输仅仅发生在VALID、READY同时有效的时候。下图是几种握手机制:
图 3-1 VALID before READY
图 3-2 READY before VALID
图 3-3 VALID with READY
3.2 通道信号要求
通道握手信号:每个通道有自己的xVALID/xREADY握手信号对。
写地址通道:当主机驱动有效的地址和控制信号时,主机可以断言AWVALID,一旦断言,需要保持AWVALID的断言状态,直到时钟上升沿采样到从机的AWREADY。AWREADY默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用来断言AWVALID,一个用来断言AWREADY);当AWREADY为高时,从机必须能够接受提供给它的有效地址。
写数据通道:在写突发传输过程中,主机只能在它提供有效的写数据时断言WVALID,一旦断言,需要保持断言状态,知道时钟上升沿采样到从机的WREADY。WREADY默认值可以为高,这要求从机总能够在单个周期内接受写数据。主机在驱动最后一次写突发传输是需要断言WLAST信号。
写响应通道:从机只能它在驱动有效的写响应时断言BVALID,一旦断言需要保持,直到时钟上升沿采样到主机的BREADY信号。当主机总能在一个周期内接受写响应信号时,可以将BREADY的默认值设为高。
读地址通道:当主机驱动有效的地址和控制信号时,主机可以断言ARVALID,一旦断言,需要保持ARVALID的断言状态,直到时钟上升沿采样到从机的ARREADY。ARREADY默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用来断言ARVALID,一个用来断言ARREADY);当ARREADY为高时,从机必须能够接受提供给它的有效地址。
读数据通道:只有当从机驱动有效的读数据时从机才可以断言RVALID,一旦断言需要保持直到时钟上升沿采样到主机的BREADY。BREADY默认值可以为高,此时需要主机任何时候一旦开始读传输就能立马接受读数据。当最后一次突发读传输时,从机需要断言RLAST。
AXI协议要求通道间满足如下关系:
- 写响应必须跟随最后一次burst的的写传输
- 读数据必须跟随数据对应的地址
- 通道握手信号需要确认一些依耐关系
3.3 通道握手信号的依赖关系
为防止死锁,通道握手信号需要遵循一定的依赖关系。
(1)VALID信号不能依赖READY信号。
(2)AXI接口可以等到检测到VALID才断言对应的READY,也可以检测到VALID之前就断言READY。
下面有几个图表明依耐关系,单箭头指向的信号能在箭头起点信号之前或之后断言;双箭头指向的信号必须在箭头起点信号断言之后断言。
图 3-4 读传输握手依赖关系
图 3-5 写传输握手依赖关系
图 3-6 从机写响应握手依赖关系
3.3 传输结构
3.3.1 地址结构
AXI协议是基于burst的,主机只给出突发传输的第一个字节的地址,从机必须计算突发传输后续的地址。突发传输不能跨4KB边界(防止突发跨越两个从机的边界,也限制了从机所需支持的地址自增数)。
3.3.2 突发长度
ARLEN[7:0]决定读传输的突发长度,AWLEN[7:0]决定写传输的突发长度。AXI3只支持1~16次的突发传输(Burst_length=AxLEN[3:0]+1),AXI4扩展突发长度支持INCR突发类型为1~256次传输,对于其他的传输类型依然保持1~16次突发传输(Burst_Length=AxLEN[7:0]+1)。
burst传输具有如下规则:
- wraping burst ,burst长度必须是2,4,8,16
- burst不能跨4KB边界
- 不支持提前终止burst传输
注:对于FIFO,忽略后续读数据可能导致数据丢失,必须保证突发传输长度和要求的数据传输大小匹配。
3.3.3 突发大小
ARSIZE[2:0],读突发传输;AWSIZE[2:0],写突发传输。
AxSIZE[2:0]bytes in transfer'b0001'b0012'b0104'b0118'b10016'b10132'b11064'b1111283.3.4 突发类型
FIXED:突发传输过程中地址固定,用于FIFO访问。
INCR:增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。
WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的大小对齐。最低的地址整个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN)。
AxBURST[1:0]burst type'b00FIXED'b01INCR'b10WRAP'b11ReservedStart_Address = AxADDR
Number_Bytes = 2 ^ AxSIZE
Burst_Length = AxLEN + 1
Aligned_Addr = (INT(Start_Address / Number_Bytes)) x Number_Bytes。//INT表示向下取整。
对于INCR突发和WRAP突发但没有到达回环边界,地址由下述方程决定:
Address_N = Aligned_Address + (N-1) x Number_Bytes
WRAP突发,突发边界:
Wrap_Boundary=(INT(Start_Address / (Number_Bytes x Burst_Length))) x (Number_Bytes x Burst_Length)
3.3.5 数据读写结构
WSTRB[n:0]对应于对应的写字节,WSTRB[n]对应WDATA[8n+7:8n]。WVALID为低时,WSTRB可以为任意值,WVALID为高时,WSTRB为高的字节线必须指示有效的数据。
3.3.6 读写响应结构
读传输的响应信息是附加在读数据通道上的,写传输的响应在写响应通道。
RRESP[1:0],读传输
BRESP[1:0],写传输
OKAY('b00):正常访问成功
EXOKAY('b01):Exclusive 访问成功
SLVERR('b10):从机错误。表明访问已经成功到了从机,但从机希望返回一个错误的情况给主机。
DECERR('b11):译码错误。一般由互联组件给出,表明没有对应的从机地址。
- AXI总线协议
- AHB总线 AXI总线
- AXI4、AXI4-Lite、AXI-Stream总线协议的简单认识
- AMBA总线协议AHB、APB、AXI对比分析
- axi总线介绍
- AXI-Stream总线知识
- AXI总线简介
- AXI总线简介
- AXI总线特性
- AXI总线简介
- AXI总线简介
- AXI协议整理
- Zing AXI总线Chipscope参考设计
- 关于SOC中的总线AXI/AHB/APB
- 关于SOC中的总线AXI/AHB/APB
- AXI STREAM ,AXIS总线的理解
- AHB总线和axi总线的联系和区别
- 数字集成电路设计-16-关于AXI协议
- extjs4如何让actioncolumn的操作按钮动态隐藏?
- 银行票据之间的区别
- date转long 和long转date
- Bootstrap-table refresh 加载数据出现的问题
- Rails启动项一些参数的调整
- AXI总线协议
- iOS Podfile文件变成exec格式
- linux下查看so文件的函数列表
- 普里姆(Prim)算法 Java实现
- 四旋翼无人机控制
- shell中的${},##和%%的使用
- WinSock 异步I/O模型[5]---完成端口+线程池技术
- Linux网络测试命令
- 【前端Web】Jquery实现的四款牛B的时间轴