AXI4与AXI3的区别——仅限个人理解

一、axlen
axi3中len[3:0],len为0-15,burst length为1-16。
axi4中len[7:0],len为0-255,burst length为1-256。
注意:
1.1、axi4中len>16只有burst type为INCR自增式猝发才支持。
1.2、axi3协议规定len为0-15,实际芯片设计中根据需求来自行设置不同位宽的len,len大于16,对协议的完整性没有影响。一般根据自己的系统需求来定,通常取2的n次方。
1.3、在较大的芯片设计中,axi4和axi3通常混用。此时,如果总线从axi4转为axi3,如果len直接截掉高位从7:0]到[3:0],则需要控制源头激励,len不能大于15,否则会无响应进而挂死。较优的解决方案是通过协议桥来进行axi4转axi3。
二、axi4取消wid
axi4取消wid,则写通道没有out of order乱序和interleave间插功能,所有写数据都是order有序的,减少pin-count,减少设计复杂度。
三、写响应的相关性
axi3协议中规定b 通道必须在w 通道结束之后即wlast拉起才能回响应。
axi4协议中规定b 通道必须在w 和aw 通道都结束之后才能回响应,进一步避免deadlock。
在axi3中,由于w通道和aw通道之间是相互独立的,存在w通道先完成,b通道回响应,aw在完成,从而造成deadlock的场景。在设计中,为规避deadlock,即使w先到,slave一般会把wready拉低,等待aw通道完成后再完成w通道。其次,在系统互联矩阵上的设计上,也会对通路上的aw和w命令个数做限制,来规避deadlock。
四、cache信号
axi3中cache[3:0]中第1bit为0时,表示对读或写数据不做处理。第1bit为1时,对于写数据,意味着可以对它进行拆分或者合并,一般是矩阵的downsize/upsize对数据进行处理。对于读数据,这意味着对多个读处理一个区域能够仅仅一次被预取或者取出来。取决定是否一个传输应该被cache这一位应该与Read Allocate和Write Allocate位联系起来使用。
axi3中cache=0,对数据不做处理。cache=1,矩阵会对读写数据进行合并或拆分处理。
cache[0],Bufferable,一般针对写操作,表示interconnect,或者其他类似component,可以先返回resp,之后再写向final distination。
cache[1],1)与RA,WA配合,控制cache。2)表示transaction的属性,可以在中间被更改。对写操作,表示数据可以被merge。对于读操作,表示地址可以被prefetch。
五、user信号
AxUser是axi4增加的用户自定义信号。一般不建议使用,互联设备两边可能对信号定义不一样,从而导致在互联时不兼容。
六、Qos信号
AxQos是axi4增加的用户服务质量信号。主要针对不同写/读事务的优先级,如果不使用,建议设置为default value 4‘b0000。
协议中希望互联组件中有可配置寄存器,在传输中可以修改Qos信号值。一般尽量在系统级统一规划Qos,并且设置为可编程Qos。

  • 11
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值