AXI传输数据结(write strobes)

参考博文:http://blog.sina.com.cn/s/blog_8367f7e30102ydkw.html

AXI 协议是基于burst 传输,master 每次向slave发送burst的第一个byte位传输控制信息和地址信息,slave必须按照burst的传输规则计算出地址。

burst 传输必须不能越过4KB 地址接界线,这样是为了防止一个burst越过两个slave边界,这样也限制了一个slave必须支持的地址增量。

4.1.1 burst 长度:

ARLEN[7:0]:读传输的burst 长度;

AWLEN[7:0]:写传输的burst 长度;

AxLEN代表ARLEN[7:0]和AWLEN[7:0]。

AXI3 的burst 长度为:AxLEN[3:0]+1;

AXI4 的burst 长度为:AxLEN[7:0]+1;提供了INCR burst类型额外的burst 长度。

AXI burst 使用规则限制:

  • l  wrapping burst 中,burst 长度必须是2,4,8,16;
  • l  一个burst 长度不能越过4KB 地址边界;
  • l  burst 传输不可以提前终止;

没有component 可以提前终止burst。然而,为了减少写burst传输数据个数,master 可以通过关闭所有写strobe的方式关闭更多的写操作,在这种情况下,master 必须计算出burst传输需要保持传输的个数。在读burst中,master可以丢弃读数据,但是master也必须计算出burst传输中所有传输的个数。

丢弃读数据在读敏感设备中可能导致数据丢失,比如FIFO。master必须用一个burst长度来匹配传输数据所需长度。

4.1.2 burst 传输的size

每一个burst传输中数据按照byte一拍一拍传输:

ARSIZE [2:0]:读传输;

AWSIZE[2:0]:写传输;

AxSIZE代表ARSIZE和AWSIZE。

burst size编码:

AXIprotocol学习记录(4)——AXI传输数据结构

传输的大小必须不能超过每次传输相关器件的数据宽度。

4.1.3 burst 类型

AXI 协议定义三种burst 类型:

FIXED:

  • l  burst 传输中每次传输的地址相同;
  • l  burst 中所有拍的有效byte line是固定的,然而这些byte line中,真正有WSTRB的byte在burst中每一拍都不同。

INCR:

增量burst。burst中每次传输的地址比前一个变大,增量跟传输的大小相关。例如,一个4byte大小的burst传输,地址比前一个地址加四。

WRAP:

循环 burst 和增量burst相类似,除非高位地址被限制,会循环到低位地址。

循环burst的限制:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值