AXI 协议支持地址非对齐的传输,允许突发传输的首字节地址,即起始地址与突发传输位宽不对齐。举个例子,总线位宽为 32bit 时,如果起始地址为 0x1002 ,则产生了非对齐现象。与 32bit 位宽总线对齐的地址需要能被 4 整除,即 ADDR[1:0] = 2’b0。
对于非对齐写传输,主机会进行两项操作:
(1)、即使起始地址非对齐,也保证所有传输是对齐的
(2)、在首个 transfer 中增加填充数据,将首次传输填充至对齐,填充数据使用WSTRB 信号标记为无效
(此处需要说明TKEEP和TSTRB了,在写传输中,对于填充数据字节,TKEEP对应的位1,对应的WSTRB为0,表示该字节数据无效,仅用于数据填充,实现地址对齐)。
AXI总线的4K地址对齐问题
如何指示不同字节类型
在AXI-FULL中,我们可以通过WSTRB来分开有效数据和无效数据,但现在又多了占位字节,所以相应地协议多了TKEEP信号,具体规则如下:
https://blog.csdn.net/weixin_38071135/article/details/118581250