赞
踩
AXI4对burst length进行了扩展。AXI3最大burst length是16 beats,而AXI4支持最大到256 beats,但是仅支持INCR burst type超过16 beats,exclusive access也不能超过16beats。但是根据经验来讲各家公司好像也没太遵循这个规则,很多AXI3的IP awlen/arlen的位宽是多少,支持多大的burst length也是根据自己的情况来定的,其实这个对protocol的完整性没什么影响,所以大家也是根据自己的系统需求来定,但一般还是2的n次方。
其实ARM自己也没有明确认为好AWQOS和ARQOS的意义,比较像sideband信号,spec里面举例是说用于标识command的priority。但其实很多IP自己有urgent,ultra,flush等sideband信号实现的。
增加了AWREGION和ARREGION,这个比较属于系统组的应用。
(1)给transaction标识region,从而很方便的实现logical adress到physical address的address mapping,如一个logical address标识为不同的region,就可以mapping到不同的物理地址上去。所以不需要slave用额外的decoder去支援不同的逻辑地址。
(2)通过划分region,对某些physical allocation进行保护,别如某个region只能被non-secure write,某个region只能被secure write
在AXI3中规定一定要在write channel结束之后slave才能B channel response;而在AXI4中额外规定AW channel结束才可以回write response。
这是因为,如果发生W channel before AW channel的case时,没有AXI4的规定,B channel也有可能先于AW channel完成。
说实话,即使碰到过W channel before AW channel的情况,也是说W可以先于AW,但是slave一般会把wready先拉低,等AW channel完成后才收data。所以没有碰到过B channel先于AW channel完成的情况。
AXI3中对bit0定义为cacheable bit,但在AXI4中定义为modifiable bit。用于标识tansaction是否被允许修改,比如拆分成多个小的transaction或被merged成其它transaction.(除大于16beats以上的transaction)
其它bit没太接触过,不做解释。感觉这一块对系统应该比较相关,修改也比较大
为了减小设计复杂度,减小pin-count,AXI4将W channel的WID给拿掉了,也就是说,AXI4没有W channel的out of order和interleave特性了。所有data必须是in order的。
这个lite协议其实主要目的是简化protocol,用于系统上对register的访问,到目前接触的项目一般都是通过APB,I2C,RGST或自己定义的ATB类似的协议处理寄存器相关的访问,所以只简单了解过AXI4-LITE,不作说明
https://blog.csdn.net/ivy_reny/article/details/62884564
https://blog.csdn.net/firstlai/article/details/71190718
AXI4对burst length进行了扩展:AXI3最大burstlength是16 beats,而AXI4支持最大到256 beats,但是仅支持INCR burst type超过16 beats,exclusiveaccess也不能超过16beats;。但是根据经验来讲各家公司好像也没太遵循这个规则,很多AXI3的IP awlen/arlen的位宽是多少,支持多大的burstlength也是根据自己的情况来定的,其实这个对protocol的完整性没什么影响,所以大家也是根据自己的系统需求来定,但一般还是2的n次方。
其实ARM自己也没有明确认为好AWQOS和ARQOS的意义,比较像sideband信号,spec里面举例是说用于标识command的priority。但其实很多IP自己有urgent,ultra,flush等sideband信号实现的。
增加了AWREGION和ARREGION,这个比较属于系统组的应用。以我实际碰到case的经验来讲有几个好处。
1.给transaction标识region,从而很方便的实现logicaladress到physical address的address mapping,如一个logicaladdress标识为不同的region,就可以mapping到不同的物理地址上去。所以不需要slave用额外的decoder去支援不同的逻辑地址。
2. 通过划分region,对某些physicalallocation进行保护,别如某个region只能被non-secure write,某个region只能被securewrite。
4.修改了writeresponse dependencies
在AXI3中规定一定要在writechannel结束之后slave才能B channel response; 而在AXI4中额外规定AWchannel结束才可以回write response。这是因为,如果发生W channelbefore AW channel的case时,没有AXI4的规定,Bchannel也有可能先于AW channel完成。
说实话,即使碰到过Wchannel before AW channel的情况,也是说W可以先于AW,但是slave一般会把wready先拉低,等AWchannel完成后才收data。所以没有碰到过B channel先于AWchannel完成的情况。
AXI3中对bit0定义为cacheable bit,但在AXI4中定义为modifiablebit。用于标识tansaction是否被允许修改,比如拆分成多个小的transaction或被merged成其它transaction.(除大于16beats以上的transaction)其它bit没太接触过,不做解释。感觉这一块对系统应该比较相关,修改也比较大 。
为了减小设计复杂度,减小pin-count,AXI4将W channel的WID给拿掉了,也就是说,AXI4没有W channel的out oforder和interleave特性了。所有data必须是in order的。
这个lite协议其实主要目的是简化protocol,用于系统上对register的访问,到目前接触的项目一般都是通过APB,I2C,RGST或自己定义的ATB类似的协议处理寄存器相关的访问,所以只简单了解过AXI4-LITE,不作说明。
表 2-1 全局信号
信号名 | 源 | 描述 |
ACLK | 时钟源 | 全局时钟信号 |
ARESETn | 复位源 | 全局复位信号,低有效 |
表 2-2 写地址通道信号
信号名 | 源 | 描述 | |
AWID[3:0] | 主机 | 写地址ID,用来标志一组写信号 | |
AWADDR[31:0] | 主机 | 写地址,给出一次写突发传输的写地址 | |
AWLEN | [3:0]axi3 | 主机 | 突发长度,给出突发传输的次数(拍数) AXI3所有突发长度为1-16;AXI4 INCR为1-256,其他为1-16 |
[7:0]axi4 | |||
AWSIZE[2:0] | 主机 | 突发大小,给出每次突发传输的字节数。(bits) 总的传输数据量=LEN*SIZE | |
AWBURST[1:0] | 主机 | ||
AWLOCK | 主机 | 总线锁信号,可提供操作的原子性(普通或互斥访问) | |
AWCACHE[3:0] | 主机 | 内存类型,表明一次传输是怎样通过系统的 | |
AWPROT[2:0] | 主机 | 保护类型,表明一次传输的[0]特权级,[1]安全等级,以及[2]交易是数据访问还是指令访问 | |
AWQOS [3:0](AXI4) | 主机 | 质量服务QoS | |
AWREGION[3:0](AXI4) | 主机 | 区域标志,能实现单一物理接口对应的多个逻辑接口 | |
AWUSER(AXI4) | 主机 | 用户自定义信号 | |
AWVALID | 主机 | 有效信号,表明此通道的地址控制信号有效,一直保持有效直到AWREADY为高 | |
AWREADY | 从机 | 表明“从”可以接收地址和对应的控制信号 |
表 2-3 写数据通道信号
信号名 | 源 | 描述 |
WID[3:0](AXI3) | 主机 | 一次写传输的ID tag,与AWID相对应 |
WDATA[31:0] | 主机 | 写数据,写总线可以是8,16,32,64,128,256,512,1024位宽 |
WSTRB[3:0] | 主机 | 写选通,写数据有效的字节线,用来表明哪8bits数据是有效的 |
WLAST | 主机 | 表明此次传输是最后一个突发传输 |
WUSER(AXI4) | 主机 | 用户自定义信号 |
WVALID | 主机 | 写有效,表明此次写有效 |
WREADY | 从机 | 表明从机可以接收写数据 |
AXI4取消了交织传输,也就是说传输的数据必须按地址顺序进行传输。AXI3的主机如果要支持非交织传输,需要将写交织深度配置为1,从机不需要更改。AXI3的WID可以来自AWID。
表 2-4 写响应通道信号
信号名 | 源 | 描述 |
BID[3:0] | 从机 | 写响应ID tag,与AWID匹配 |
BRESP[1:0] | 从机 | 写响应,表明写传输的状态。OKAY,EXOKAY,SLVERR,DECERR |
BUSER(AXI4) | 从机 | 用户自定义 |
BVALID | 从机 | 写响应有效 |
BREADY | 主机 | 表明主机能够接收写响应 |
表 2-5 读地址通道信号
信号名 | 源 | 描述 | |
ARID[3:0] | 主机 | 读地址ID,用来标志一组写信号(与AWID无关) | |
ARADDR[31:0] | 主机 | 读地址,给出一次写突发传输的读地址,只给首地址 | |
ARLEN | [3:0]axi3 | 主机 | 突发长度,给出突发传输的次数 |
[7:0]axi4 | |||
ARSIZE[2:0] | 主机 | 突发大小,给出每次突发传输的字节数 | |
ARBURST[1:0] | 主机 | 突发类型。FIXED,INCR,WRAP,Reserved | |
ARLOCK | 主机 | 总线锁信号,可提供操作的原子性 | |
ARCACHE[3:0] | 主机 | 内存类型,表明一次传输是怎样通过系统的 | |
ARPROT[2:0] | 主机 | 保护类型,表明一次传输的[0]特权级,[1]安全等级,以及[2]交易是数据访问还是指令访问 | |
ARQOS[3:0](AXI4) | 主机 | 质量服务QoS | |
ARREGION[3:0](AXI4) | 主机 | 区域标志,能实现单一物理接口对应的多个逻辑接口 | |
ARUSER(AXI4) | 主机 | 用户自定义信号 | |
ARVALID | 主机 | 有效信号,表明此通道的地址控制信号有效 | |
ARREADY | 从机 | 表明“从”可以接收地址和对应的控制信号 |
表 2-6 读数据通道信号
信号名 | 源 | 描述 |
RID[3:0] | 从机 | 读ID tag,与ARID对应 |
RDATA[31:0] | 从机 | 读数据,读总线可以是8,16,32,64,128,256,512,1024位宽 |
RRESP | 从机 | 读响应,表明读传输的状态,OKAY,EXOKAY,SLVERR,DECERR |
RLAST | 从机 | 表明读突发的最后一次传输 |
RUSER(AXI4) | 从机 | 用户自定义 |
RVALID | 从机 | 表明此通道信号有效 |
RREADY | 主机 | 表明主机能够接收读数据和响应信息 |
表 2-7 低功耗接口信号
信号名 | 源 | 描述 |
CSYSREQ | 时钟控制器 | 系统退出低功耗请求,此信号从“时钟控制器”到“外设” |
CSYSACK | 外设 | 退出低功耗状态确认 |
CACTIVE | 外设 | 外设请求时钟有效 |
http://blog.csdn.net/fanyongwinner/article/details/51890976
http://blog.csdn.net/ganggang0000/article/details/52824757
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。